نمایش نتایج 1 تا 34 از 34

نام تاپیک: مقاله : برنامه چندلایه چیست ؟

  1. #1

    Tick مقاله : برنامه چندلایه چیست ؟

    با توجه به اینکه دیدم خیلی از دوستان در این مورد سوال دارند دلم نیومد این مقاله ارزشمند رو اینجا نزارم :

    در معماری چند لایه تمام برنامه به چندین بخش تقسیم می‌شود. این بخش‌ها می‌توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می‌دهد مثلا نمایش interface کاربر یا دسترسی به داد‌ه‌ها. برنامه می‌تواند به هر تعداد لایه داشته باشد ولی به هر حال بیش‌تر برنامه‌ها سه لایه‌ی مجزا دارند که عبارت‌اند از:


    Presentation Layer
    Business Logic Layer
    Data Access Layer


    همان‌طور که احتمالا حدس زده‌اید، لایه‌ی Presentation چیزی نیست به جز بخشی از نرم‌افزار که با کاربر برنامه‌ی شما ارتباط برقرار می‌کند (interface برنامه‌ی شماست). نمایش داده‌ها به کاربر نهایی و اجازه به آنان برای ارتباط داشتن با داده‌ها، اصلی‌ترین وظیفه‌ی این لایه است.

    در بیش‌تر موارد، داده‌هایی که توسط کاربر وارد می‌شوند نیاز به اعتبارسنجی یا پردازش اضافی دارند. این مسؤولیت لایه‌ی Business Logic است.

    در نهایت داده‌های برنامه‌ی شما نیاز به ذخیره و بازیابی از طریق یک انبار داده دارند (مثلا سیستم مدیریت DataBaseهای رابطه‌ای یا RDBMS و یا XML و ...) این وظیفه توسط لایه‌ی دسترسی به داده انجام می‌شود.

    به‌طور خلاصه، فرایند مورد نظر ما این‌گونه کار می‌کند:

    - کاربر برای داده‌های برنامه، درخواستی ارسال می‌کند.

    - لایه‌ی Data Access داده‌های مورد نظر را بازیابی می‌کند و از طریق لایه‌ی Business Logic آن‌ها را به لایه‌ی نمایش می‌فرستد. بعضی مواقع لایه‌ی دسترسی به داده‌ها، این داده‌ها را مستقیما به لایه‌ی نمایش ارسال می‌کند.

    - لایه‌ی نمایش اطلاعاتی که باید نمایش داده شوند را از طریق لایه‌ی Business Logic دریافت می‌کند.

    - کاربر داده‌ها را تغییر می‌دهد و عمل مناسب در مورد آن‌ها را اجرا می‌کند (مثل اضافه یا به‌روز کردن داده‌ها)

    - لایه‌ی Business Logic صحت داده‌های وارد شده توسط کاربر را بررسی می‌کند (داده‌ها را اعتبارسنجی می‌کند)

    - اگر داده‌ها معتبر باشند آن‌ها را برای به‌روز رسانی در بانک اطلاعاتی به‌دست لایه‌ی دسترسی به داده می‌سپارد.



    مزیت‌های برنامه‌های چند لایه

    - برنامه‌ها به چند بخش منطقی جدا از هم تقسیم می‌شوند و اتصال میان UI (رابط کاربری)، پردازش‌ها و بانک اطلاعاتی کم می‌شود.

    - تغییر در بانک اطلاعاتی یا روال‌های دسترسی به داده‌ها، تاثیری در لایه‌ی نمایش یا برنامه‌ی کلاینت نخواهد گذاشت.

    - برنامه‌ی کلاینت با عبارات SQL آمیخته نخواهد شد.

    - نام جداول و ستون‌ها به‌طور مؤثری از برنامه‌ی Client حذف می‌شوند.

    - برنامه‌ی Client نمی‌فهمد که داده‌ها از کجا آمده‌اند (چیزی که به آن Location Transparency گفته می‌شود)

    - تغییر یا گسترش برنامه بسیار ساده‌تر خواهد شد، بدون نیاز به تغییر یا کامپایل مجدد برنامه‌ی Client.

    نکته‌ی منفی در معماری چند لایه این است که شما باید تعداد زیادی بخش‌ها و کلاس‌های ازهم جدا در نرم‌افزار بسازید. اما به هر حال مزایای این روش بیش‌تر و برتر از معایب آن است.



    انتخاب‌های لایه‌ی Presentation

    دو انتخاب اصلی برای ساخت یک لایه‌ی نمایش در دات نت وجود دارد. آن‌ها فرم‌های ویندوزی یا فرم‌های وبی ASP.NET هستند.

    با استفاده از ویندوز فرم‌ها شما می‌توانید برنامه‌های دسکتاپ فرم محور (Form Base) معمول را بسازید. برنامه‌های ویندوز فرمی می‌توانند المان‌های رابط کاربری بسیار غنی به‌کاربر پیشنهاد کنند. آن‌ها کم و بیش شبیه به فرم‌های ویژوال بیسیک هستند.

    جذاب‌ترین گزینه برای توسعه‌ی لایه‌ی نمایش استفاده از وب فرم‌های ASP.NET است. کنترل‌هایی مثل: دیتاگرید، دیتالیست و تقویم (Calendar) یک رابط کاربری قدرتمند را با مقدار کمی کد فراهم می‌کنند.

    انتخاب‌هایی که در بالا برای ساخت یک لایه‌ی نمایش بررسی کردیم می‌توانند توسط زبان‌های مختلفی مثل C#‎Visual Studio.Net پیاده‌سازی شوند.


    انتخاب‌های لایه‌ی Business Logic

    لایه‌ی Business Logic از چندین بخش که کارهایی نظیر اعتبار سنجی کار، گردش کار یا کارهای مشابه را انجام می‌دهند تشکیل شده است.

    Componentهای .Net این لایه را شکل می‌دهند. شما می‌توانید با Interop از Componentهای COM استفاده کنید ولی این کار کارایی را پایین خواهد آورد.

    وب‌سرویس‌های ASP.NET هم می‌توانند به‌عنوان یک Business Logic عمل کنند. اما به هر حال آن‌ها را نمی‌توان در همه‌ی شرایط به‌عنوان جایگزین Componentها به‌کار برد. وب‌سرویس‌ها تنها زمانی قابل استفاده خواهند بود که اعتبارسنجی در جایی بیرون از شبکه‌ی شما اتفاق افتاده باشد.

    Componentهایی که توسعه می‌دهید به ماندن روی ماشین‌های مشابه نیازی ندارند. با استفاده از دات NET Remoting می‌توانید آن‌ها را روی چندین ماشین توزیع کنید.


    انتخاب‌های لایه‌ی Data Access

    این لایه با دستکاری داده‌ها مثل اضافه، حذف و به‌روز رسانی آن‌ها سر و کار دارد. داده‌هایی که به آن‌ها اشاره کردیم می‌توانند در RDBMS یا XML قرار داشته باشند. شما باید لایه‌ی دسترسی به داده را چنان طراحی کنید که دیگر لایه‌ها نیازی به دانستن وضعیت انبار داده‌ها نداشته باشند.

    ADO.NET فناوری دسترسی به داده‌ی تحت دات .Net است. اگر چه ADO.NET از طریق کلاس‌های DataReader اجازه‌ی دسترسی به داده‌های در هنگام اتصال را می‌دهد ولی بیش‌ترین تمرکز روی دسترسی به داده‌ها در زمان متصل نبودن است. DataSet نقش کلیدی را در این مورد بازی می‌کند. در بعضی موارد می‌توانید ADO را هم برای دسترسی به داده‌ها استفاده کنید ولی استفاده از آن باید دلیل معتبری داشته باشد. از ADO استفاده نکنید فقط به خاطر این‌که RecordSetها را دوست دارید!

    این‌جا هم Componentهای .Net لایه را تشکیل می‌دهند. همان‌طور که قبلا گفته شد می‌توانید از Componentهای کلاسیک COM هم استفاده کنید.

    هم‌چنین وب‌سرویس‌ها هم می‌توانند لایه‌ی دسترسی به داده را شکل دهند. این مخصوصا زمانی درست است که DataBase شما فراهم‌کننده‌ی (Provider) داده ندارد. در این‌گونه موارد شما می‌توانید مقداری کد برای اتصال به داده‌ها و پر کردن DataBaseها و بازگرداندن نتایج درون DataSet به درخواست‌کننده‌ی داده بنویسید.

    علاوه بر ADO.NET شما می‌توانید از امکانات سیستم مدیریت DataBase خود مثل توابع و یا روال‌های ذخیره شده (Stored Procedures) استفاده کنید.



    ارسال داده از یک لایه به لایه‌ی دیگر


    در تمام موارد به ارسال اطلاعات از یک لایه به لایه‌ی دیگر نیاز است؛ به‌طور معمول برنامه‌نویسان از رشته‌ها، آرایه‌ها، RecordSetهای غیرمتصل برای رسیدن به این هدف استفاده می‌کنند. در .Net ، DataSetها یک راه فوق‌العاده برای انتقال اطلاعات میان لایه‌ها فراهم می‌کنند. شما حتی می‌توانید با برنامه‌نویسی یک DataSet بسازید و آن را با داده‌های خودتان پر کنید. اگر اشیا را خیلی دوست دارید می‌توانید از Typed DataSets استفاده کنید که در واقع کلاسی مشتق شده از کلاس DataSet است که جداول و سطرها را به شکل یک شی معرفی می‌کند.



    منبع :رشد

  2. #2
    مقاله و پروژه در باره برنامه نویسی چندلایه خیلی زیاده پیدا میشه ! هم فارسی هم لاتین ! (نمونش هم تو سایت هست )
    ولی مشکلی اینجاست که من تا به حال هر دوی این ها رو یعنی هم پروژه و هم توضیح کامل اون رو یکجا ندیدم !
    دوستان اگه سراغ دارن معرفی کنن ! لاتین هم باشه موردی نداره !

  3. #3
    یک پروژه چندلایه رو که یکی از دوستان در بخش asp.net معرفی کردند که میتونید از اون استفاده کنید

  4. #4
    کاربر دائمی آواتار peymannaji
    تاریخ عضویت
    مهر 1385
    محل زندگی
    تو یکی از صفرهای گوگل ...
    پست
    881
    سلام . ممنون از مقالتون ...

    من میخوام بدونم که کاری که میکنم بفرض در یک برنامه ای که یک فیلد داره که طرف اسمشو وارد میکنه و یک دکمه داره که ذخیره در دیتا بیس انجام میشه ، برنامه نویسی لایه ای هست یا خیر :

    اول - اینتر فیس برنامه که در همون قسمت طراحی دات نت ساخته میشه
    دوم - دستورات و کامپونت هایی که با درگ کردن از قسمت کامپونت ها میندازم رو صفحه( یک تکست باکس + یک دکمه + ولیدیتور ) و برای هر کدوم کد مینویسم و مقادیری که کاربرا وارد میکنن رو کنترل میکنم و پاسشون میدم به دیتا بیس .
    سوم - ذخیره در دیتا بیس رو بصورت استورپرسیجر نوشتم .

    پس روند کار به اینصورته که از رابط کاربری ( اینترفیس ) فرد نامشو میزنه ( Presentation Layer)
    و بعدش کدهایی که نوشتم مقدار تکست باکس رو چک میکنه و اون رو میفرسته به سمت بانک ( Business Logic Layer) و مقداری که به استور پروسیجر پاس شده با دستور اینسرت که در پرسیجر نوشتم وارد بانک میشه ( Data Access Layer)

    آیا اینی که گفتم میشه برنامه نویسی 3 لایه ؟ چیزی که از نوشته هاتون فهمیدم این بو د ...
    خوب در اینجا هم من 3 بخشی که گفتید رو دارم .... منتظر جوابتون هستم

    با تشکر ....

  5. #5
    کاربر دائمی آواتار babak_delphi
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    آستارا
    پست
    634
    در برنامه نویسی چند لایه بخشهای مربوط به دسترسی به پایگاه داده ها کاملا مستقل است و کلاینت ها به صورت منطقی به اون وصل می شوند
    برنامه های کلاینت اطلاعی از نحوه دسترسی به پایگاه داده و نحوه بازیابی اطلاعات ندارند
    ولی برنامه ای که شما نوشتید یک برنامه معمولیه نه چند لایه
    چون همه اون قسمتها توی یک سیستم هستند و اگر بخواهید که چند نسخه از این برنامه رو داشته باشید باید همهِ اون قسمتها رو روی تک تک سیستمها تکرار کنی یا نهایتا در حالت Client/Servet میتونی دیتابیس رو روی سرور قرار بدی ولی باز باید لایه میانی رو روی تک تک کلاینت ها تکرار کنی ولی در روش چند لایه ، لایه میانی هم مثل Data Access Layer روی یک سیستم مجزا قرار داره و هر چند تا کلاینت هم که باشه شما فقط یک لایه میانی برای همهء اونها دارید که البته میتونه یک گره فیزیکی باشه (یعنی روی یک سیستم مجزا) یا یک گره منطقی (یعنی روی همون سیستمی که Data Access Layer روی اون قرار داره) که در حالت اول سه گره فیزیکی و سه گره منطقی دارید و در حالت دوم دو گره فیزیکی و سه گره منطقی

    امیدوارم مفید واقع شده باشه.

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    90
    می شه لطفا بیشتر توضیح بدید
    من در مورد این معماری سه سطحی خیلی تو سایت خوندم ، ولی توضیح زیادی در موردش ندیدم، توضیحات دوستمون هم زیاد جالب نبود . بیشتر گیجم کرد
    می شه یکم بیشتر توضیح بدید و یا لینک بدید

  7. #7
    کاربر دائمی آواتار teshnehab
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    پست
    200

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط cactuskhan مشاهده تاپیک
    مقاله و پروژه در باره برنامه نویسی چندلایه خیلی زیاده پیدا میشه ! هم فارسی هم لاتین ! (نمونش هم تو سایت هست )
    ولی مشکلی اینجاست که من تا به حال هر دوی این ها رو یعنی هم پروژه و هم توضیح کامل اون رو یکجا ندیدم !
    دوستان اگه سراغ دارن معرفی کنن ! لاتین هم باشه موردی نداره !
    سلام
    من هم همين مشكل رو دارم. پروژه برنامه نويسي 3 لايه با آموزش مرحله به مرحله باشه.
    البته نمونه كد كوچك براي راهنمايي و راه افتادن.
    لطفا با آدرس، لينك يا سايت معرفي كنيد.
    با تشكر

  8. #8
    کاربر دائمی آواتار شاپرک
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    ناکجاآباد
    پست
    1,157

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    وقتی بحث برنامه نویسی چند لایه پیش میاد همه مقاله سایت رشد رو میذارن یا لینک میدن ...
    تو رو خدا دیگه بسه ... توی همین سایت برنامه نویس چندین بار این مقاله Copy و Paste شده .
    بخدا ما مفهومش رو فهمیدیم فقط میخوایم یه نمونه کوچیک با توضیح ببینیم .
    یه نفر بیاد به زبون ساده و همراه با یک نمونه ساده این موضوع رو توضیح بده ... جای دوری نمیره !
    همه هم دعاتون میکنن .

    منتظریم

  9. #9
    کاربر دائمی آواتار peymannaji
    تاریخ عضویت
    مهر 1385
    محل زندگی
    تو یکی از صفرهای گوگل ...
    پست
    881

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    من با شاپرک موافقم . متاسفانه با هر کسی که صحبت میکنم هر کس یک درکی از این موضوع داره و واقعیت امر اینکه اکثریت نمیدونیم این موضوعی که همیشه در حد یک تئوری بیان میشه در عمل به چه صوورت پیاده سازی میشه ...

  10. #10

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    مي شه دوستان يك برنامه ساده با #C بزارن...

    من برنامه هام را اينجوري مي نويسم ببينيد اين برنامه چند لايه مي شه يا نه ؟ و اشكالش كجاست ؟

    اول يك پرژه Windows Forms Application مي سازم تا با كاربر ارتباط برقرار كنه
    بعد يك پرژه Class Library اضافه مي كنم كه يك dll. مي شه و از داخل اون به بانكم دسترسي دارم و اينزرت و آپديت... انجام مي دم ( و ممكن اين dll. ها چندتا باشه هر كدوم واسه يك كار با ديتا بيس)
    و از داخل برنامه اصلي داده ها به اين dll. ها پاس مي دم يا ازشون اطلاعات رو دريافت مي كنم و براي راهتي كار توابع داخل dll. ها رو هم static مي نويسم

  11. #11
    کاربر تازه وارد آواتار ohh_mid
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    62

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط ahmadahmadi مشاهده تاپیک
    مي شه دوستان يك برنامه ساده با #C بزارن...

    من برنامه هام را اينجوري مي نويسم ببينيد اين برنامه چند لايه مي شه يا نه ؟ و اشكالش كجاست ؟

    اول يك پرژه Windows Forms Application مي سازم تا با كاربر ارتباط برقرار كنه
    بعد يك پرژه Class Library اضافه مي كنم كه يك dll. مي شه و از داخل اون به بانكم دسترسي دارم و اينزرت و آپديت... انجام مي دم ( و ممكن اين dll. ها چندتا باشه هر كدوم واسه يك كار با ديتا بيس)
    و از داخل برنامه اصلي داده ها به اين dll. ها پاس مي دم يا ازشون اطلاعات رو دريافت مي كنم و براي راهتي كار توابع داخل dll. ها رو هم static مي نويسم
    سلام
    من فکر می کنم یکی از مزایای مهم برنامه چند لایه این باشه که به راحتی بشه لایه UI رو تغییر داد . اما این کاری که شما انجام دادی از لایه Business خبری نیست
    به فرض می خوایم برنامه شما رو به Web تغییر بدیم مجبوریم خیلی از کارها رو مجددا انجام داد .
    در مورد static گرفتن متد ها هم نمی تونم چیزی بگم . ولی static گرفتن یک متد ربطی به معماری چند لایه نداره .

    برای اینکه بشه یه سمپل گذاشت از دوستان خواهش می کنم با هم همکاری کنیم و یه سمپل تهیه کنیم .
    سمپل می تونه از یه برنامه ساده باشه برای اینکه حرف بالا رو هم به صورت عملی ببینیم به هر دوصورت وب و ویندوز پیاده سازی کنیم .
    مدیریت
    کاری هم که انجام بدیم این باشه که یه فرم برای ثبت داشته باشیم (فرم ساده )
    اطلاعات ثبت شده رو در یک گرید نمایش می دیم
    فرمی هم جهت ویرایش

    کاربری
    نمایش اطلاعات به کاربر
    برای شروع بایستی یک کلاس جهت ارتباط با DataBase داشته باشیم و کلیه کارهای مربوط به دیتابیس از طریق این کلاس مدیریت شود .

    این کلاس شامل متدهای پایه جهت کار با دیتابیس می باشد
    مانند
    1- برقراری ارتباط با دیتابیس
    2- انجام عملیات : Insert , Update , Delete
    3- انجام عملیات : Select
    به طور ساده تر متدهایی که خروجی آنها به صورت یک DataSet یا datatable می باشد یا متدهایی Affected کویری شما را بر می گرداند

    تا بعد ...

    راستش من قصد نداشتم چیزی بنویسم ولی من هم مثه شما از اینکه هیچ کس در این مورد هیچ چیزی نمی گه ناراحتم من هم اطلاعاتم زیاد نیست اما خوشحال میشم که با کمک هم بتونیم این کارو تکمیل کنیم . ضمنا کلاس بالا رو هم آماده می کنم و می ذارم . تا اگه خدا خواست با هم ادامه بدیم

  12. #12

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط ohh_mid مشاهده تاپیک
    سلام
    اما این کاری که شما انجام دادی از لایه Business خبری نیست
    منون از توجه و پاسختون، من برنامه جديدم را تغيير دادم و مثل قبلي نيست و لايه بيزنس رو هم اضافه كردم
    نقل قول نوشته شده توسط ohh_mid مشاهده تاپیک
    در مورد static گرفتن متد ها هم نمی تونم چیزی بگم.
    در واقع من متدهاي static براي سادگي كار و استفاده بهتر از منابع بهره گرفتم چون اينجوري فكر كردم احتياجي به ايجاد نمونه از كلاس ندارم(البته مي دونم اصولي نيست.) و به خاطر معماری چند لایه از متد static استفاده نكردم.
    نقل قول نوشته شده توسط ohh_mid مشاهده تاپیک
    برای اینکه بشه یه سمپل گذاشت از دوستان خواهش می کنم با هم همکاری کنیم و یه سمپل تهیه کنیم .
    .... تا اگه خدا خواست با هم ادامه بدیم
    من هم موافقم و اگر كاري از دست بر مي آيد پيغام خصوصي بزنيد تو يك تاپيك جديد با عنوان آموزش طراحي برنامه هاي چند لايه كار شروع كنيم.
    (ممكن من تجربه زيادي تو برنامه چند لايه نداشته باشم اما يكي كار با ديتابيس و طراحي اينترفيس و چيزهاي ديگه رو تا حدودي بلدم.)

  13. #13
    کاربر تازه وارد آواتار ohh_mid
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    62

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    سلام
    برای ادامه من یک DatabaseHelper آماده کردم که می تونه کارهای مربوط به بانک اطلاعاتی رو انجام بده . (راستی من تجربه ویندوزی زیادی ندارم واسه همین بلد نیستم که تو برنامه های ویندوزی کانکشن رو کجا تعریف می کنند منظورم برای تغییرات بعدی کانکشن هست شاید بهتر باشه تو یه فایل متنی گذاشت و از تو همون فایل خوندش یا تو قسمت appsetting مربوط به ویندوز شاید بشه connection رو تعریف کرد خلاصه این چیزیه که به نظرم می رسه اگه راهنماییم کنید ممنون میشم تا بتونیم این قسمت مربوط به database رو برای برنامه های دسکتاپ هم سفارشی کنیم . )

    کدها خیلی ساده هستند ولی بازم اگه سوالی بود من در خدمتم . البته اگر کسی نظر بهتری داشته باشه یا از تکنولوژی های جدید مثل Linq بخواد استفاده کنه باعث خوشحالیه .

    ضمنا microsoft یه کتاب داره به اسم Application Architecture Guide 2.0 که دیدنش فکر می کنم خالی از لطف نباشه .

    می تونیم از همین جا بریم سراغ برنامه اصلی و یه نمونه ساده از معماری چند لایه رو پیاده سازی کنیم ولی می تونیم قبل از شروع یکمی ادویه اش رو بیشتر کنیم !!!
    مثلا می تونیم واسه برنامه مون چیزهای زیر رو هم اضافه کنیم
    1- کلاسی مربوط به encrypt در فضای نام Security
    2- کلاس مربوط به Globalization
    3- کلاس مربوط به استفاده از Resource
    4- کلاسی مربوط به Logger

    راستی برای ادامه کار بهتره که یه Solution داشته باشیم و کارهایی که انجام می دیم تو یه Solution باشه این طوری به نظرم مرتب و تر و تمیز تر میشه .

    از نظراتتون محرومم نکنید .

    دانلود

  14. #14
    کاربر دائمی آواتار mohsen_zelzela00
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    internet && .net
    پست
    755

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط ohh_mid مشاهده تاپیک
    سلام
    برای ادامه من یک DatabaseHelper آماده کردم که می تونه کارهای مربوط به بانک اطلاعاتی رو انجام بده . (دانلود
    منطورتون از این جمله چی هست

  15. #15
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط شاپرک مشاهده تاپیک
    وقتی بحث برنامه نویسی چند لایه پیش میاد همه مقاله سایت رشد رو میذارن یا لینک میدن ...
    تو رو خدا دیگه بسه ... توی همین سایت برنامه نویس چندین بار این مقاله Copy و Paste شده .
    بخدا ما مفهومش رو فهمیدیم فقط میخوایم یه نمونه کوچیک با توضیح ببینیم .
    یه نفر بیاد به زبون ساده و همراه با یک نمونه ساده این موضوع رو توضیح بده ... جای دوری نمیره !
    همه هم دعاتون میکنن .

    منتظریم
    Design Pattern Framework. Release 2.0. C#‎ edition را از در گوگل جستجو کنید و دانلود کنید به همراه فایل های pdf یک مثال هم هست که برنامه نویسی چند لایه + سرویس بیس را کاملا با یک مثال توضیح داده است. بخاطر مسایل کپی رایت از گذاشتنش تو سایت معذورم

  16. #16
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    تهران
    سن
    35
    پست
    166

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    من یک نمونه تا الان خواستم بذارم که خیلی ساده و کوچیکه اما توضیحات فارسی داره که همه متوجه میشن.اما حجمش 4مگابایته با دیتا بیس .متاسفانه نمیشه آپلود کرد.
    باید چکارکرد؟تا آپلود کنم؟دوستان استفاده کنند.........

  17. #17
    کاربر دائمی آواتار peymannaji
    تاریخ عضویت
    مهر 1385
    محل زندگی
    تو یکی از صفرهای گوگل ...
    پست
    881

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط antisocial مشاهده تاپیک
    من یک نمونه تا الان خواستم بذارم که خیلی ساده و کوچیکه اما توضیحات فارسی داره که همه متوجه میشن.اما حجمش 4مگابایته با دیتا بیس .متاسفانه نمیشه آپلود کرد.
    باید چکارکرد؟تا آپلود کنم؟دوستان استفاده کنند.........

    برای من ایمیل کنید تا در هاست اختصاصی خودم آپلود کنم

    spanish_boys1[at]yahoo[.]com

  18. #18

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    با سلام

    ميشه لطفا لينك دانلودي كه براي نمونه برنامه ي 3 لايه گذاشتيد رو چك كنيد . من نمي تونم دانلودش كنم . ارور ميده .
    اگه مشكلي هست و توي سايت نمي تونيد بذاريد ،لطفا به ايميلم بفرستيد.
    هر جور كه راحتيد و امكانش وجود داره.
    parandep@yahoo.com

    ممنون
    موفق باشيد

  19. #19
    کاربر دائمی آواتار RED-C0DE
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    31 4E 20 20 54 48 33 20 20 28 72 59 70 54 30 47 33 4E 31 28 20 20 5C 2F 30 52 31 7C 7C 29 20 20 7C 2
    پست
    551

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    اینجا ی نمونه برنامه گذاشتم من ، بصورت 3 لایه و ساده یک دفترچه تلفن رو پیاده کردم :
    https://barnamenevis.org/showpo...&postcount=302

  20. #20
    کاربر جدید آواتار esfahanitg
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    اصفهان توي اين دنيا.توي اون دنيارو هم هنوز بي خبرم
    سن
    37
    پست
    14

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    خوب مثل اينكه دوباره خودم بايد همه دعوا ها رو حل كنم :
    همانطور كه دوستان اشاره كردند و تعريف لايه هارو گفتند .3 تا لايه تو هر برنامه مي تونه وجود داشته باشه.اگه 1 برنامه نويس حرفه اي باشين و از ويزارد ها براي ساخت برنامه استفاده نكنيد مي تونيد به روش زير برنامه 3 لايه بنويسيد:
    اول فرم برنامه و كامپوننت هاي مورد نظرتون رو بنويسيد
    دوم كلاسي تهيه كنيد كه حاوي خواص مورد نظر براي پياده سازي شي شما جهت اتصال به پايگاه داده باشه.اين خواص وظيفه ايجاد ارتباط بين لايه مياني(bll) را بر عهده دارد .مثلا كلاس مشتري كه داراي خواص نام و فاميل و آدرس مشتري و... مي باشد.تو اين لايه شما ميتونين قوائد تجاري مربوط به اون سازمان كه واسش برنامه مي نويسين رو اعمال كنيد.مثلا چك كنيد كه اگه بدهي شخصي از 2000000 بيشتر هست نتونه خريد كنه و از اينجور موارد يا اينكه اگه فرد يك مشتري دائمي هست بهش تخفيف داده بشه و.....

    سوم كلاسي تهيه كنيد كه وظيفش ايجاد ارتباط بين برنامه و پايگاه داده باشه يعني به زبان خودموني وظيفش اجراي رويه هاي ذخيره شده درون پايگاه داده باشه.

    خوب حالا كه اين 3 تا مرحله رو انجام دادين 1 برنامه 3 لايه نوشتيد.
    تذكري كه بايد بدم اينه كه واسه ايجاد ارتباط بين لايه ها مي تونيد از اين روش استفاده كنيد كه :
    اكه قراره يك دستور select از پايگاه داده انجام بشه بايد نوع برگشتي توابع درون كلاس هاي لايه Data access و Business از نوع Datatable يا Dataset و از اين موارد باشند تا لايه به لايه در صورتي كه عمليات از پايين ترين سطح درست انجام شد مقادير رو برگردونن و اگه قرار يك دستور مثل Insert,delete,... اجرا بشه بهتره نوع توابع از نوع bool باشه تا لايه به لايه در صورت درستي عمليات مقدار True برگردونه تا لايه بالايي از اجراي صحيح لايه پايين مطمئن بشه :
    نكته:اغلب كلاس لايه DAL يك كلاس هست كه اين قابليت رو داره كه هر رويه اي كه بهش اعلام ميشه رو اجرا كنه اما كلاس لايه BLL بهتره كه واسه هر موجوديتي تو سيستم جداگانه طراحي بشه مثلا يك BLL واسه مشتري يكي واسه كالا يكي واسه فاكتور .....
    يك مثال از تابعي در لايه DAL :
    public bool Insert(string procname, SqlParameter[] Params)
    {

    SqlConnection con = Publicclass.CreateCon();
    try
    {
    SqlCommand cmd = new SqlCommand(procname, con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddRange(Params);
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    return true;
    }
    catch (Exception)
    {
    con.Close();
    return false;
    }

    }
    اينم يه مثال از لايه BLL :

    public bool BLLInsert()
    {


    DAL dalobject = new DAL();
    SqlParameter[] param = new SqlParameter[5];
    param[0] = new SqlParameter("@sid", pid);
    param[1] = new SqlParameter("@title", title);

    param[2] = new SqlParameter("@f_text", f_text);
    param[3] = new SqlParameter("@s_date", date);
    param[4] = new SqlParameter("@adress", adress);

    return dalobject.Insert("add_contents", param);

    }
    متغيير هاي pid,title,_text,... خواص كلاسي هستند كه اين تابع درون اون تعريف شده.
    در فرم برنامه يا همون لايه PL اين خواص بايد مقدار دهي بشن و بعد تابع BLLInsert صدازده ميشه

    البه بحث برنامه نويسي لايه اي خيلي گسترده تر از اين حرفا هست و اين در واقع يك نمونه كوچيك اون هست.اصلا اين 3Layer programing hast كه با 3tire programing فرق داره .
    يك نكته ديگه هم بگم و تمام : اگه از روش كامپوننتي با پايگاه داده كار كنيد مي تونين از اشيايي مثل Dataset به عنوان لايه Dal استفاده كنيد.
    بسه ديگه فكر كنم زياد حرف زدم : من دير به دير ميام تو اين سايت .شايد ديكه اين تاپيك رو ادامه ندم.اكه كسي سوالي داشت مي تونه بهم ايميل بزنه به آدرس EsfahanITG@yahoo.com
    آخرین ویرایش به وسیله esfahanitg : یک شنبه 15 شهریور 1388 در 23:14 عصر

  21. #21
    کاربر دائمی آواتار peymannaji
    تاریخ عضویت
    مهر 1385
    محل زندگی
    تو یکی از صفرهای گوگل ...
    پست
    881

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    دوست عزیز ممنون از توضیحات . کاشکی بصورت یه فایل پروژه این مثال ها رو پیاده میکردی ... اما با این حال ممنون از وقتی که گذاشتید ...

  22. #22
    کاربر دائمی
    تاریخ عضویت
    آبان 1385
    محل زندگی
    تهران
    پست
    1,112

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    در این لینک مقالات بسیار خوبی وجود داره
    http://www.asp.net/learn/data-access/

  23. #23
    کاربر دائمی آواتار jingiliboyz
    تاریخ عضویت
    دی 1388
    محل زندگی
    تهران
    پست
    183

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    اگر این رو pdf میزاشتید خیلی بهتر بود

  24. #24

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    من خودم می خواستم 3 لایه یاد بگیرم هی اینطوری برام داستان نگفتن، فایده نداره،یک درج و واکشی کردن من یاد گرفتم.

  25. #25
    کاربر جدید
    تاریخ عضویت
    دی 1388
    محل زندگی
    فارس - زرین دشت
    پست
    29

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    بنظر می آد برنامه نویسی چند لایه ای خط قرمز برنامه نویسانه. من حالا هرچه جستجو کردم یه برنامه چند لایه ای ندیده ام. من تا حالا برنامه نویسی چند لایه ای کار نکردم یعنی در مرحله آموزش هستم.بنظرم اگه کسی به برنامه نویسی یک زبان تسلط داشته باشه ، فکر کنم که برنامه نویسی چند لایه ای کار زیاد سخت و شاقی نباشه. چون برنامه نویسی چند لایه ای یک منطق برنامه نویسه و کد های مخصوص نداره
    من اکیدآ به خودم و سایر دوستان مبتدی توصیه می کنم فعلا چند لایه ای رو بعد از آموزش و تسلط نسبی به زبان مورد علاقه خودتون دنبال کنن.
    البته این نظر منه . اگه منتقد دارم خوشحال میشم نقدتون رو بیان کنن
    در پایان اضافه کنم که چون چند لایه ای یه منطق برنامه نویسی یه در نتیجه میشه توامان با آموزش زبان همراه باشه اما تسلط به برنامه نویسی باعث میشه ما از هدف چند لایه ای دور نشویم. سرعت ، کارایی و.....

  26. #26

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    یه سوالی که برای من پیش اومده اینکه با linq بازهم نیازی به لایه dal هست ؟

  27. #27

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    اینم یک پروژه ساده که با معماری سه لایه نوشته ام ، واسه دوستانی که درخواست سمپل داشتند
    سایت مشکل داره ، نمیشه اینجا آپلود کرد
    دانلود

  28. #28
    کاربر دائمی آواتار ricky22
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    شیراز
    پست
    1,591

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط AZERILA مشاهده تاپیک
    یه سوالی که برای من پیش اومده اینکه با linq بازهم نیازی به لایه dal هست ؟
    سلام
    اره
    http://aspguy.wordpress.com/2008/07/...h-linq-to-sql/

  29. #29
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    33
    پست
    661

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    سلام. من يه آموزش خوب پيدا كردم. يه پروژزه هم با asp نوشتم كه خيلي سادست. براتون ميذارم. يه دونه هم PowerPonit هست اونم ميذارم!!!
    اين يه سايت خوب:
    http://www.how2learnASP.NET/article....8-b75d804d6e2c


    اينم تو همين سايت:
    https://barnamenevis.org/showth...A7%D9%8A%D9%87
    كه من بالايي رو توصيه ميكنم!!!

    اين پروژه آموزشي:(صفحه كه باز شد creat download link رو بزنيد)
    http://www.xlpar.com/h47oj4qeag8t/class.rar.html
    به محضز اينكه بتونم آپلود كنم يه پي دي اف هم ميذارم كه مربوط به همين پروژه ميشه!! آخه حجمش بالاس و من سرعتم كم!!

    آخرین ویرایش به وسیله moslem.hady : دوشنبه 08 شهریور 1389 در 13:40 عصر

  30. #30
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1387
    محل زندگی
    اصفهان
    سن
    36
    پست
    37

    Smile نقل قول: مقاله : برنامه چندلایه چیست ؟

    نقل قول نوشته شده توسط ashkan209 مشاهده تاپیک
    اینم یک پروژه ساده که با معماری سه لایه نوشته ام ، واسه دوستانی که درخواست سمپل داشتند
    سایت مشکل داره ، نمیشه اینجا آپلود کرد
    دانلود
    لینک را یک بررسی بکنید. و لطفا لینک جدید را بزارید.
    ممنون

  31. #31
    کاربر دائمی آواتار Javad.Kashi
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    قم
    پست
    355

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    سلام به همه
    دوستان من در این سایت ، فیلم های آموزشی در مورد برنامه نویسی چند لایه یافته ام می توانید از آنها استفاده کنید .موفق باشید

    یا علی

  32. #32

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    سلام
    شاید بد نباشه این تاپیکو از زیر خاک بیرون بکشم !

    تا اونجا که فهمیدم برنامه نویسی لایه ای یعنی اینکه مثلا لایه اینترفیس (رابط کاربری ) با بقیه لایه ها جدا باشه و برای مثال کسی که داره رو این لایه کار میکنه فقط چینش و دیزاین رو انجام میده و نمیتونه مثلا برای یه دکمه رویداد بنویسه

    تا اینجا اگه درست باشه پس در واقع اگه با WPF کار کرده باشید متوجه میشید که لایه رابط کاربری کلا از بقیه قسمت ها جدا شده و با زبان XAML هست (راحت میشه اونو تحت وب یا تحت ویندوز کرد) و کسی که وظیفه ساخت رابط کاربری رو داره اصلا احتیاجی به دانستن دانش زبان هایی از قبیل C#‎ ,.. نداره
    و باالعکس برنامه نویسی که میخواد رویدادهارو تعریف کنه اصلا کاری به زبان XAML نداره


    در واقع این روش برای تسریع هر چه بیشتر و کار تیمی بدرد میخوره

  33. #33
    کاربر تازه وارد آواتار hadidan
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    یکی از روستاهای گیلان
    پست
    73

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    با سلام
    من تو asp تازه کارم ،
    من فرق بین برنامه نویسی چند لایه و asp mvc رو درک نمی کنم
    آیا هر دو یکی هستند؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    ،چون asp mvc هم برنامه رو به سه لایه تقسم می کند.

  34. #34
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: مقاله : برنامه چندلایه چیست ؟

    با سلام
    دوستان من چنتا مثال میزنم و شما بگیر اشتباه میگم یا درسته.
    1) لایه Data Access Layer = فقط برای اتصال ما به بانک است مثال تعریف
                       connect() و Disconnect() و DataTable select(string sql) و  docommand(string sql) و 
    public string ServerName;
    public string DBName = "libdb.mdf";
    public string username;
    public string password;
    SqlConnection con;
    SqlCommand cmd;
    SqlDataAdapter da;

    public DataAccess()
    {
    con = new SqlConnection();
    cmd = new SqlCommand();
    da = new SqlDataAdapter();
    cmd.Connection = con;
    da.SelectCommand = cmd;
    }


    است . و
    2) Business Logic Layer این لایه کارش اینه که کلاسها رو درست کنیدم مانند
                  Add() و GetOne() و Update() و...              

    ______________________
    3) آیا Presentation Layer فقط همان صفحه می شود که کاربر برای وارد کردن اطلاعات از ان استفاده میکند که می شود واسط کاربر و برنامه
    _____________________________-
    دوستان اگه مواردی جا انداختم یا اشتباه گفتم راهنمایی کنید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •