PDA

View Full Version : حرفه ای: معماری‌های چندلایه و توزیع‌شده



hmahdavi921
سه شنبه 04 آبان 1395, 21:41 عصر
با سلام
در آگهی های استخدام برنامه نویس ،آشنایی با معماری‌های چندلایه و توزیع‌شده به چشمم خورد.
دوستان اطلاعاتی در این مورد دارید؟
میتونید نمونه یا مرجعی رو معرفی کنید؟
با تشکر

hmahdavi921
چهارشنبه 05 آبان 1395, 20:16 عصر
یعنی هیچ کس با این مفاهیم آشنا نیست؟

CsharpNevisi
چهارشنبه 05 آبان 1395, 20:47 عصر
معماری چند لایه از 3 تا لایه اصلی تشکیل شده :
1 - Data Access Layer
2 - Business Layer
3 - Application Layer

سیستم های توضیع شده حداقل باید این سه تا لایه اصلی رو داشته باشه .

Data Access Layer وظیفش اینه که ارتباطات با بانک اطلاعاتی رو کنترل کنه و کلا با بانک اطلاعاتی درگیر هستش
Business Layer میشه منطق برنامه و سیاست های نرم افزارتو ایجا مشخص میکنی .. مثلا اینکه آیا فیلد نام خالی است یا نه , در ضمن از لایه Data Access Layer فقط به این رفرنس میخوره و فقط و فقط لایه Business Layer هستش که مستقیم به لایه داده وصی میشه .
Application Layer نرم افزار شماست , میتونه یه برنامه اندروید باشه , یه نرم افزار تحت وب باشه یا یک ویندوز اپلیکیشن ویندوز فرم .

یعضی ها مثل من چندتا لایه اضافی هم به این لایه ها اضافه میکنیم مثل Loging یا Model یا Setting و یا Factory .

اینطوری کارکردن انعطاف برنامه رو بالاتر میبره , فک کن شما یه نرم افزار مینویسی بعد ها همونو تحت وب یا اندروید مینویسی , خب بانک اطلاعاتی که ساختار یکی داره , منطق برنامه هم که همون منطقه , فقط اینجا شما لایه اپلیکیشن رو تغییر میدی , یعنی شما یه بار هسته برنامه رو مینویسی و تو پلتفرم های دیگه استفاده میکنی .

hmahdavi921
جمعه 07 آبان 1395, 15:45 عصر
معماری چند لایه از 3 تا لایه اصلی تشکیل شده :
1 - Data Access Layer
2 - Business Layer
3 - Application Layer

سیستم های توضیع شده حداقل باید این سه تا لایه اصلی رو داشته باشه .

Data Access Layer وظیفش اینه که ارتباطات با بانک اطلاعاتی رو کنترل کنه و کلا با بانک اطلاعاتی درگیر هستش
Business Layer میشه منطق برنامه و سیاست های نرم افزارتو ایجا مشخص میکنی .. مثلا اینکه آیا فیلد نام خالی است یا نه , در ضمن از لایه Data Access Layer فقط به این رفرنس میخوره و فقط و فقط لایه Business Layer هستش که مستقیم به لایه داده وصی میشه .
Application Layer نرم افزار شماست , میتونه یه برنامه اندروید باشه , یه نرم افزار تحت وب باشه یا یک ویندوز اپلیکیشن ویندوز فرم .

یعضی ها مثل من چندتا لایه اضافی هم به این لایه ها اضافه میکنیم مثل Loging یا Model یا Setting و یا Factory .

اینطوری کارکردن انعطاف برنامه رو بالاتر میبره , فک کن شما یه نرم افزار مینویسی بعد ها همونو تحت وب یا اندروید مینویسی , خب بانک اطلاعاتی که ساختار یکی داره , منطق برنامه هم که همون منطقه , فقط اینجا شما لایه اپلیکیشن رو تغییر میدی , یعنی شما یه بار هسته برنامه رو مینویسی و تو پلتفرم های دیگه استفاده میکنی .

آقای CsharpNevisi خیلی ممنونم که وقت گذاشتین. پاسختون درسته اما من فکر میکنم یه کمی تغییر نیاز داره . یعنی به جای Application Layer باید از لایه نمایش استفاده میکردید البته توضیحاتتون درسته.
من فکر میکنم الان برای داشتن چنین معماری باید در ویژوال یک سلوشن باز کنیم وبرای لایه Application یا نمایش مثلا یک اپلیکیشن MVC به سلوشن اضافه میکنیم .برای لایه BLL یک اپلیکیشن از نوع Class Library به سلوشن اضافه میکنیم و برای لایه DAL هم فکر میکنم باز هم باید از Class Library استفاده کنیم (مطمئن نیستم :از EF میخوام استفاده کنم). اگر درسته یک سوال : فرض کنیم کد نویسی یک برنامه با این معماری تموم شد الان میخوام دو لایه DAL , BLL رو به یک پروژه دیگه انتقال بدیم روش کار به چه صورت هست؟
-----------------<<<< بحث سیستم های توزیع شده باقی موند >>>--------------------------------

CsharpNevisi
یک شنبه 09 آبان 1395, 07:25 صبح
بله درسته البه لایه نرم افزار و لایه نمایش دوتا اسمن که به یه چیزی اشاره میکنن و فرقی با همدیگه ندارن گرچه این لایه به Application Layer هم معروفه

من یه سلوشون دارم که دوتا کلاس لایبرری داخلش هست .
منطق و داده , یه نرم افزار تحت وب نوشتم حالا میخوام تحت ویندوزشو بنویسم , یا اصلا یه وبسرویس , ویندوز سرویس یا هر چزه دیگه ای که دات نتتی باشه , خب براش یه پروژه مثلا ویندوز فرم تو همون سلوشن درست میکنم و کلاس لایبرری هارو بهش رفرنس میزنم .

یه موقعی هست که شما مثلا میخوایی نرم افزار تحت اندروید بنویسی با جاوا , اینجا بین لایه منطقی و نرم افزار جاوا شما یه لایه هم باید بزاری برای API

AmiN0012
یک شنبه 09 آبان 1395, 08:14 صبح
سلام دوست عزیز.برو تو این لینک. pdf دانلود کن امیدوارم بدردت بخوره:
http://s9.picofile.com/file/8272729550/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C_3%D9%84%D8%A7 %DB%8C%D9%87.pdf.html

اینم ی لینک خوب:
http://www.daneshjooyar.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-3-%D9%84%D8%A7%DB%8C%D9%87-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1/

واین:
http://www.matlabsite.com/5966/three-layer-architecture-in-c-sharp.html
موفق باشید.

hmahdavi921
دوشنبه 10 آبان 1395, 06:57 صبح
-----------------<<<< بحث سیستم های توزیع شده باقی موند >>>--------------------------------

AmiN0012
دوشنبه 10 آبان 1395, 07:58 صبح
با سلام.این لینک امیدوارم کمکتون کنه:
http://barnamenevis.org/showthread.php?151844-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%D8%AA%D9%88%D8%B2%DB%8C%D8%B9-%D8%B4%D8%AF%D9%87