loading...

وبلاگ عالی برای همه

همینطور که میدونید برنامه نویس باید یک چیزی بیشتر از کد نویسی یاد داشته باشه و بتونه مطالب بیشتری رو در پروژش از یک کد ساده به کار ببره . لایه بندی برنامه یکی ا...

بازدید : 803
جمعه 29 مرداد 1395 زمان : 18:46
  • 1
  • 2
  • 3
  • 4
  • 5

وبلاگ عالی برای همه

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

ابتدا اولین سوالی که مطرح هست ، اینکه ساختار(معماری) چند لایه چیست ؟؟

ساختار چند لایه به ساختار نرم افزارهایی اطلاق میشه که دارای سه لایه (یا قسمت) منطقی باشند که جدا از هم هستند . هر لایه فقط مستقیما با لایه پایین تر از خودش کار میکنه که هر لایه مسئول وظایف خاصی هست .

چرا ما از ساختار چند لایه استفاده میکنیم ؟

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

نکته : تفاوت N-Layer و N-Tier : در بعضی از منابع تفاوتی بین این دو ذکر نشده است، اما در بعضی این دو مفهوم رو مستقل از هم میدونستند ، که من خدمت شما عرض میکنم ::

N-Tier به این معناست که کد یا پروسه در کجا اجرا بشه که منظور همون محل فیزیکی هست ، اما منظور از N-Layer این هست که کد به چه صورت منطقی دسته بندی(گروه بندی) شده است .

در اکثر مواقع معماری چند لایه دارای سه لایه هست که به صورت زیر نام گذاری می شوند ::

· لایه نمایش ( Presentation Layer )

· لایه تجاری ( Business Layer )

· لایه دسترسی به منابع داده ( Data Access Layer )

1. لایه نمایش ( Presentation Layer ) یا ( Interface Layer )

این لایه وظیفه داره تا با استفاده از لایه تجاری ( Business Layer ) اشیا رو نمایش بده ، برای مثال در ASP.NET صفحه های aspx یا کنترلهای سرور و از این قبیل موارد ، یا در برنامه های ویندوزی فرمهای ویندوز ( Windows Form ) این وظیفه رو دارند .

2. لایه تجاری ( Business Layer )

این لایه وظیفه داره که اطلاعات رو از لایه داده ( Data Layer ) بگیره ، به روز کنه یا پاک کنه و در بعد اونها رو در لایه اینترفیس نمایش بده . برای مثال اشیای SqlClient یا oledb داده های رو میگیرند یا پاک میکنند یا به روز میکنند و .. ، در بعد اونها رو بوسیله اشیایی مانند Datareader یا DataSet نمایش میدهند .

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

در اکثر مواقع این لایه به دو لایه تقسیم میشود :

1 – لایه منطقی تجاری ( Business Logic Layer )

2- لایه دسترسی داده ( Data Access Layer )

3. لایه داده ( Data Layer )

این لایه شامل منبع داده ( Data Source ) شما میشود . مانند SQL Server یا هر نوع منبع داده دیگه مانند XML . البته ناگفته نمونه که sql سریعترین بانک اطلاعاتی هست با پلتفرم دات نت .

تفاوت بین لایه منطقی ( Logical Layer ) و لایه فیزیکی ( Physical Layer )

اکثر افراد بین این دو مفهوم گیج میشند ، به همین جهت نیاز دیدم تا به این دو مفهوم هم اشاره ای بشه:

لایه منطقی به لایه ای می گویند که از نظر اسمبلی و کلاسها تقسیم شده باشد اما از نظر مکان در یکجا باشد.برای مثال در یک وب سایت کلاسها تقسیم شده هست اما همه بر روی یک سرور قرار دارند .لایه فیزیکی به این معنا هست که کلاسها و به طور کلی لایه های دیگر در جاهای مختلف هست و البته کدهایی هم برای ارتباط لایه ها در آنها قرار داده شده است ، برای مثال در لایه های یک وب سایت بر روی چند سرور قرار گرفته است و برای ارتباط اونها از وب سرویسها ( Web Service ) یا .. استفاده میکنیم.

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

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

موفق باشید .

سایت آموزش برنامه نویسی



مشاهده پست مشابه : فاکتورهای موثر بر استفاده از کود پسته
نظرات این مطلب

تعداد صفحات : 9

درباره ما
Profile Pic
با سلام خدمت دوستان عزیز امیدوارم که از مطالبی که در این وبلاگ منتشر میکنم راضی باشید
لطفا نظراتتون رو بگید
موفق باشید دوستان
اطلاعات کاربری
نام کاربری :
رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    چت باکس




    captcha


    آمار سایت
  • کل مطالب : 93
  • کل نظرات : 1
  • افراد آنلاین : 6
  • تعداد اعضا : 313
  • بازدید امروز : 25
  • بازدید کننده امروز : 17
  • باردید دیروز : 91
  • بازدید کننده دیروز : 72
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 397
  • بازدید ماه : 256
  • بازدید سال : 8204
  • بازدید کلی : 439042
  • کدهای اختصاصی