معماری برنامه های دات نت یا net framework architecture.

معماری برنامه های دات نت

تخمین مدت زمان مطالعه : 5 دقیقه
  • سطح مقاله : مقدماتی
  • نویسنده : پوریا منتخب

سلام ، امیدوارم عالی باشی . من پوریا منتخبم و تو این مقاله میخوام یه نگاهی به معماری برنامه های دات نتی داشته باشم اما قبلش بهت پیشنهاد میکنم مقاله قبلی ، تحت عنوان مقایسه سی شارپ و دات نت فریمورک  رو بخونی .

در ادامه مقاله قبلی ، میخواستم برات Class Library  ها رو توضیح بدم . در زبان های سطح بالا مثل C# وقتی یه برنامه رو بیلد می کنیم . برنامه مون شامل یه سری بلاک هایی میشه که بهش میگن Class-Library   ها .

مجموعه ای از کلاس ها که یک اپلیکینش را تشکیل میدهد

 

این کلاس ها در زمان اجرا با هم در تعاملن تا بتونن در نهایت یک عملکردی رو ارائه بدن .اما ممکنه یه سوال برات پیش بیاد . این که اصلا کلاس چیه ؟ (کلاس ؟ شیب ؟  دووشواری ؟؟ 😊). آقای مُش همدانی (از خوبای برنامه نویس) اینطوری میگه که : کلاس یه کانتینر ، یه نگهدارنده ست که شامل مقداری داده که این داده ها تحت عناوین اتریبیوت ها یا انگلیسشم بگم همون Attributes و فانکشن ها (Functions : البته فانکشن ها به یه نام دیگه هم استفاده میشن که میشه همون Methods  یا متد ها ) . من در ادامه از عنوان متد ها استفاده میکنم .

متد ها یه سری رفتار دارن . کد ها رو اجرا می کنن و در اصل برای ما یه سری عملیات رو انجام میدن .داده ها هم از طرفی برای نمایش وضعیت برنامه مون استفاده میشه . البته بزار یه مثال تصویری برات بزنم .

اجزای تشکیل دهنده کلاس در زبان برنامه نویسی c#

 

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

فضا های نام یا Namespace ها در زبان برنامه نویسی c#

Namespace  ها نگهدارنده هایی برای کلاس های مرتبط به هم هستن .برای مثال تو دات نت فریمورک ما Namespace هایی رو داریم که هر کدومشون شامل صد ها کلاس مرتبط به هم هستن . مثلا ما Namespace  هایی رو داریم برای کار با داده ها مثل دیتابیس ها . فضا های نامی رو داریم برای کار با گرافیک ها و تصاویر ، همینطور Namespace  هایی رو داریم برای کار با امنیت .حالا یه سوال دیگه . اگه این Namespace  ها هم زیاد بشن چطور میشه بخش بندی و مدیریتشون کرد ؟اوهوم درسته . Assembly ها . استانبولی نه ها : ) اَسِمبِلی ها  . به عکس پایین نگاه کن .

اسمبلی ها یا Assembly در زبان برنامه نویسی C#

Assembly  ها نگهدارنده هایی برای Namespace  های مرتبط به هم هستن . در نهایت این اسمبلی ها هستن که به صورت فیزیکی روی دیسک ذخیره میشن . اگه دقت کرده باشی این فایل ها قابلیت اجرا دارن و پسوندشون هم .dll هست یا همون Dynamically linked library

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

بدنه خروجی برنامه های نوشته شده در زبان های برنامه نویسی تحت دات نت

  امیدوارم این مطلب برات مفید بوده باشه و ازت میخوام هر سوالی در مورد این موضوع داری پایین همین مقاله ازم بپرس. دوره های مقدماتی و متوسطه آموزش زبان سی شارپ در آکادمی استاد باش رو برای یادگیری این زبان قدرتمند از دست نده.

منبع : سلسله اموزش های جناب Mosh Hamedan