PDA

View Full Version : برنامه نویسی سه لایه یا بیشتر



sare443
سه شنبه 07 خرداد 1392, 14:56 عصر
با سلام دوستان

1-علت استفاده از برنامه نویسی سه لایه چیست؟
2-چرا بسیاری از شرکت ها از برنامه نویسی سه لایه یا بیشتر استفاده می کنند؟
3-مزیت استفاده از برنامه نویسی سه لایه چیست؟؟؟


ممنون

saeed31641
سه شنبه 07 خرداد 1392, 19:37 عصر
در برنامه نويسي چند لايه هر برنامه مي تواند به چندين بخش تقسيم شود كه هريك از اين بخش ها داراي وظايفي هستند.هر برنامه مي تواند چندين لايه داشته باشد اما معمولا لايه هاي زير را براي هر برنامه مي توان تعريف نمود:
Data Access Layer
Business logic layer
Presentation Layer يا User Interface Layer
لايه DataAccess وظيفه ايجاد ارتباط با Database و ذخيره و بازيابي اطلاعات از بانك را بر عهده دارد
ممكن است اطلاعات وارد شده توسط كاربر نياز به پردازش و اعتبارسنجي داشته باشند انجام اين كار وظيفه لايه business logic مي باشد مثلا مي خواهيم كاربر دريك قسمت از برنامه فقط عدد وارد كند كه براي بررسي اين كار قطعه كدي را مي نويسيم
لايه Presentation نيز قسمتي از نرم افزار است كه با كاربر ارتباط برقرار مي كند نمايش داده ها به كاربر و دادن مجوز دسترسي به داده ها براي كاربر مهم ترين وظيفه اين لايه مي باشد
حالا مزايا و معايب برنامه نويسي لايه اي را بررسي مي كنيم:
مزايا:
برنامه به چند لايه منطقي مجزا تقسيم مي شود بنابراين مديريت قسمت هاي مختلف نرم افزار به راحتي امكان پذير است
در برنامه كلاينت از هيچ دستور sql اي استفاده نمي شود و تمامي اين كارها در لايه DataAccess ‌انجام مي شود
تغيير يا گسترش برنامه بسيار ساده تر خواهد بود

عيب:
تنها عيب اين روش ايجاد و مديريت چندين كلاس مختلف در يك برنامه خواهد بود اما در هر حال مزاياي اين روش بهتر از عيب مي باشد

saeed31641
سه شنبه 07 خرداد 1392, 19:39 عصر
در اخز با توجه به orm خوبی که هست مثل ef
میشه چند لایه ای استفاده نکرد در پروژه.چون خود orm کار چند لایه ای رو میکنه

ahmad156
سه شنبه 07 خرداد 1392, 20:00 عصر
در اخز با توجه به orm خوبی که هست مثل ef
میشه چند لایه ای استفاده نکرد در پروژه.چون خود orm کار چند لایه ای رو میکنه
دوست عزیز ORM ها معمولا فقط لایه DAL رو برای شما پیاده سازی میکنن بقیه لایه ها باید پیاده سازی بشن

saeed31641
چهارشنبه 08 خرداد 1392, 08:32 صبح
دوست عزیز ORM ها معمولا فقط لایه DAL رو برای شما پیاده سازی میکنن بقیه لایه ها باید پیاده سازی بشن

برنامه نویسی سه لایه بیشتر تمرکز بخاطر لایه dal هست .یعنی بیشتر بخاطر این مزیتش به این سمت میرند.
د

ahmad156
چهارشنبه 08 خرداد 1392, 08:52 صبح
برنامه نویسی سه لایه بیشتر تمرکز بخاطر لایه dal هست .یعنی بیشتر بخاطر این مزیتش به این سمت میرند.
د
اصلا موافق نیستم.شما اگر از ORM ها استفاده نکنید خیلی ملموس تر میتونین این رو احساس کنین.شما در این روش ها برای لایه DAL نهایت نیاز به یه کلاس دارین که میتونین اون رو همه جا استفاده کنین و حتی مقدار کدی هم که صرف اون میکنین خیلی نیست.

saeed31641
پنج شنبه 06 تیر 1392, 12:00 عصر
در خود برنامه نویسی چند لایه ای می تونی از Ef استفاده کنید.

fakhravari
پنج شنبه 06 تیر 1392, 12:59 عصر
چند لايه همه اينا يه روش دسترسي به ابجكت ها است.
بستگي به شما داره حد عقل با 2 لايه ميتوني برنامه جلو ببري.
لايه بندي در ado كاربرد داره.
در entity اين بحث جمع ميشه.
اما همه در كنار هم قابل پياده است.

CsharpNevisi
شنبه 15 تیر 1392, 23:27 عصر
بچه ها ORM DAL اینا چین ؟

tree1371
یک شنبه 16 تیر 1392, 01:00 صبح
سه لایه یعنی چی ؟ سه لایه در اصل میشه گفت منظور همون چند لایه هست !؟ البته با طرز فکر من !؟ چرا ؟ بین خوب لایه دیتا جدا لایه عملیات هم جدا لایه یوزر هم جدا . خوب من خودم شخحصا در هر لایه یا هر کدام قسمت از چندین قسمت دیگه اتسفاده می کنم یا قسمت هایی مثل اپلود عکس رو به صورت یک کلاس کاملا جدا می نویسم که هر جا خواست عکس آپلود کنم با یک ارسال کوچیک بتونم این کارو کنم. همه چیز به طرز فکر ما بر می گرده چه کدی بنویسیم و چه جور استفاده کنیم و چه جور واقعا راحتیم !؟؟؟

mohammadreza110
شنبه 26 مرداد 1392, 01:57 صبح
دوست عزیز ORM ها معمولا فقط لایه DAL رو برای شما پیاده سازی میکنن بقیه لایه ها باید پیاده سازی بشن

بسیار جالب توضیح دادی خلاصه ولی مفید این یک خطت خیلی کمکم کرد ممنون ahmad156

mohammadreza110
شنبه 26 مرداد 1392, 02:06 صبح
دوستان عزیز که به جمع شدن بحث 3 لایه با وجود EF اشاره کردند جالبه بدونیم که ما اگه از روش Code First استفاده کنیم اون وقته که معنی اصلی 3 لایه بودن رو با وجود EF بیشتر احساس کنیم چون از database first بعضی ها استفاده میکنند و اون موقع است که فرقش رو جمع شدن بحث 3 لایه با وجود EF میدونند .