PDA

View Full Version : سوال: برنامه نويسي از طريق معماري سه لايه يا استفاده از linq



Iran58
دوشنبه 10 مهر 1391, 20:54 عصر
براي نوشتن يك برنامه ،بهتر است برنامه را به طريق معماري سه لايه بنوسيم و يا از Linq استفاده كنيم
هركدام چه مزايا و معايبي دارند
پيشنهاد شما چيست

r. salehi
سه شنبه 11 مهر 1391, 05:16 صبح
سلام دوست عزیز
من در حد اطلاعات خودم پاسخ میدم امیدوارم براتون مفید باشه
معماری چند لایه منافاتی یا مغایرتی با Linq نداره. در معماری چند لایه پروژه به بخشهای مختلفی که عمداتا شامل بخش ها زیر هست، تقسیم میشه.
1- لایه Data Access layer:
در این لایه کانکشنها و ارتباط با بانکهای اطلاعاتی قرار میگیره. ما میتونیم توی این لایه کلاسهایی بنویسیم که به صورت پارامتریک قابلیت این را داشته باشند که به بانکها و جدواول مختلف متصل بشند و ارتباط را مدریت کنند.
2- لایه Business Entity Layer:
این لایه ای هست که در اون برای هر جدول یک کلاس تعریف میکنیم و اطلاعات جداولمون را با این کلاس برای کل برنامه در دسترس قرار میدیم. این لایه به صورت مشترک برای بقیه لایه ها کاربرد خواهد داشت. فرض کنید وقتی برنامه ای نوشتید بنا به هر دلیلی مجبور شدید ساختار یکی از جاولتون را تغییر بدید. در چنین حالتی به جای اینکه کل برنامه رو دوباره ویرایش کنید فقط کلاسهای این لایه رو تغییر خواهید داد.
3-لایه Logical:
یا لایه میانی که عملیات منطقی برنامه را در خودش جا میده. البته گاهی این لایه خودش به چندتا زیر لایه برای کارهایی مانند: اعتبار سنجی داده هایی که کاربران وارد میکنند، همین طور زیرلایه امنیتی که دسترسی کاربران به بخشهای مختلف را مدیریت میکنه و یا زیر لایه محاسباتی که عملیات های پالایش و محاسبات رو انجام میده
4-لایه کاربر یا Interface: همون طوری که از اسمش پیداست ما فرمها و SubForm ها را در این لایه قرار میدیم و فقط کنترلها رو با خروجی و ورودی کلاسهایی که در لایه های قبلی هستند متصل می کنیم
خوب شاید شما اینها رو بدونید اما موردی که اصل سوال شما است و در مورد Linq هست اینه که Linq یا بهتره دقیقتر بگیم تکنولوژی Linq to SQL لایه اول و دوم را یه جورایی میتونه ادغام کنه. چون تکنولوژیهای اخیر Linq to SQL و Entity Framwork میشه گفت دادهها را به صورت شی در دسترس کابر قرار میدند. به عبارتی هم به بانک متصل میشند (وظیفه لایه اول) و هم داده ها رو به صورت شی (همون کاری که لایه دوم انجام میده) به کاربر ارائه می کنند.
امیدوارم ابهامتون برطرف شده باشه.
موفق باشید

kamrannazari
جمعه 21 مهر 1391, 13:04 عصر
لايه 1 و 2 رو مي تونيم حذف و به جاش از لينك استفاده كنيم بسيار بسيار راحت تر و به راحتي از آبجكت ها ي موجود در ديتابيس مثل يك متد ها به صورت مستقيم استفاده كنيم