درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
حسین احمدی
امتیاز: 215942
رتبه:3
344
265
416
2833
حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ... پروفایل کاربر

آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش اول)

تاریخ 57 ماه قبل
نظرات 5
بازدیدها 6804
آموزش زبان سی شارپ - بخش سوم :: آشنایی با .NET Framework و ساختار آن (قسمت اول)

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

در ادامه سری آموزشی سی شارپ، به بررسی ساختار .NET Framwork خواهیم پرداخت. مواردی که در این بخش مطرح می شوند، بیشتر جنبه تئوریک دارند، اما یادگیری مباحث به ما کمک میکنه که درک درستری از محیطی که قصد داریم با اون کار کنیم داشته باشیم. به دلیل زیاد بودن مطالب این بخش، در دو یا سه بخش ارائه خواهند شد.

در این بخش مطالبی که مطرح خواهند شد به شرح زیر هستند:

  1. تاریخچه .NET Framework
  2. مروری بر ساختار کلی دات نت و سرویس های آن
  3. آشنایی با ساختار CLR و کاربرد آن
  4. نحوه کار JIT در اجرای برنامه های دات نت
  5. اجرای مدیریت شده برنامه ها و مدیریت حافظه در دات نت
  6. برخی ابزارهای کاربردی در دات نت

تاریخچه .NET Framework


افرادی که قبل از عرضه .NET Framework کار برنامه نویسی انجام داده باشند، با مفهومی به نام COM آشنایی دارند. COM یا Component Object Model تکنولوژی بود که مایکروسافت برای نوشتن برنامه های تحت ویندوز ارائه داده بود. اگه با Visual Basic نسخه 6 به قبل برنامه نوشته باشید با این تکنولوژی آشنایی دارید. COM این قابلیت رو به اجزای مختلف نرم افزار میداد که با همدیگه ارتباط داشته باشند. نوشتن کامپوننت های Re-Usable و لینک کردن بخش های مختلف نرم افزار به همدیگه از کاربرد های COM بود. زبان هایی مثل C++، Visual Basic قابلیت استفاده از COM رو فراهم می کردند. اما برنامه نویسانی که از COM استفاده می کردند مشکلاتی هم روبروشون قرار داشت. برای مثال، مدیریت حافظه یکی از مسائلی بود که برنامه نویس ها باهاش درگیر بودند. همچنین مشکلات فایل های DLL و استفاده از این فایل ها در سیستم مقصد از دیگر مشکلات تکنولوژی COM بود که در ادامه سری مقالات به تفصیل در مورد مسائل COM و راه حل های .NET خواهیم پرداخت. در سال 1990 مایکروسافت پروژه دات نت رو برای رفع مشکلات COM استارت زد و در سال 2002 به صورت رسمی .NET رو ارائه داد. در حقیقت .NET Framework لایه ای هست که بر روی روی COM قرار گرفته و دسترسی به سرویس های ویندوز و کامپوننت های اون و راحت تر کرده. تا این لحظه نسخه های زیر از دات نت ارائه شده:

  1. نسخه 1.0 در سال 2002
  2. نسخه 1.1 در سال 2003
  3. نسخه 2.0 در سال 2005
  4. نسخه 3.0 در سال 2006
  5. نسخه 3.5 در سال 2007
  6. نسخه 4.0 در سال 2010
  7. نسخه 4.5 در سال 2012
  8. نسخه 4.5.1 در سال 2013
  9. نسخه 4.5.2 در سال 2014

نسخه مورد استفاده در این سری، نسخه آخر یعنی 4.5.2 هست که به همراه Visual Studio 2013 ارائه شده.

مروری بر ساختار کلی دات نت و سرویس های آن


.NET Framework از دو بخش اصلی تشکیل شده، کتابخانه دات نت یا .NET Framework Class Library و Common Language Runtime یا CLR.
کتابخانه دات نت مجموعه ای از کلاس های آماده از پیش نوشته شده است که در تمامی زبان های مبتنی بر .NET قابل استفاده هستند.
اما CLR وظیفه اجرا و مدیریت برنامه های تحت دات نت رو داره. تبدیل کدهای IL به کد ماشین، کنترل و مدیریت اجرای برنامه ها، مدیریت حافظه و کنترل و مدیریت امنیت در برنامه های دات نت از وظایف CLR هست. در حقیقت میشه گفت CLR قلب تپنده دات نت هست. برای درک بهتر ساختار دات نت به تصویر زیر توجه کنید:

آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش اول)


در ابتدای تصویر بالا زبان هایی قرار دارند که شما می توانید بوسیله آنها برنامه های خود را مبتنی بر دات بنویسید. برنامه های تحت وب، ویندوز، موبایل، سرویس های وب و ...، در مرحله بعد، کتابخانه دات نت قرار داره. این کتابخانه مجموعه ای از کدهای از پیش نوشته شده است که نوشتن کدها رو برای شما راحت تر می کنه. بعد از کتابخانه، CLR قرار داره که وظیفه تبدیل کدهای شما به زبان ماشین و اجرای برنامه ها رو به عهده داره. در پایین ترین لایه، سرویس های ویندوز قرار داره که وظیفه ارتباط با این لایه، به عهده CLR و کتابخانه دات نت هست.

آشنایی با نقش .NET Framework


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

اما یکی از اصطلاحات در دات نت CLS یا Common Language Specification هست. موسسه European Computer Manufacturers Assoscian یا ECMA، استانداردی رو تدوین کرده که CLS مبتنی بر این استاندارد پیاده سازی شده است. در حقیقت CLS استانداردی هست که با رعایت این استاندارد، کلیه زبان های برنامه نویسی مبتنی بر دات نت، قابلیت ارتباط با یکدیگر را خواهند داشت. برای مثال زبان های VB.NET و C# دو زبان مبتنی بر دات نت هستند. زمانی که شما کدی را با زبان C# نوشته اید، با CTS این قابلیت به شما داده میشه که بتونید از کد نوشته شده در زبان C# در زبان VB.NET نیز استفاده کنید.
کدهایی که با استاندارد CLS تطابق داشته باشند، بعد از کامپایل به یک کد میانی به نام IL ترجمه می شوند، کد IL کدی شبیه به کد Assembly هست. بعد از ایجاد کد IL توسط کامپایلر، کد IL توسط CLR به کد ماشین ترجمه شده و اجرا می شود. در حقیقت بعد از کامپایل کردن دو برنامه که یکی به زبان C# و دیگری به زبان VB.NET نوشته شده، کدی که ایجاد می شود کد IL هست.
کدی میانی که توسط کامپایلرهای مبتنی بر دات نت ایجاد می شوند Microsoft Intermediate Language یا MSIL نام دارند که به برنامه ها قابلیت برقراری ارتباط با یکدیگر را می دهد.

استاندارد دیگری که توسط ECMA تدوین شده، استاندارد CLI یا Common Language Infrastructre هست. این استاندارد یک سری خصوصیات مشترک در بین کدهای میانی ایجاد شده توسط کامپایلرها رو تعریف میکند که برای اجرای کد IL به آنها نیاز است. برای مثال سیستم نوع داده مشترک (Common Type System) یا سرویس های از قبیل Type Safety و اجرای مدیریت شده کدها از خصوصیات تدوین شده هستند. لیست زیر خلاصه ای از استاندارد های ECMA تحت دات نت می باشد:

  1. CLS یا Common Language Specification
  2. CTS یا Common Type System
  3. TS یا Type Safety
  4. IL یا Intermediate Language

در این قسمت به اولیه .NET Framework و ساختار اون پرداختیم. در بخش بعدی به بررسی سرویس ها و خصوصیات CLR، نحوه اجرای کدها در دات نت و سرویس JIT، اجرای مدیریت شده کدها و مدیریت حافظه در دات نت خواهیم پرداخت.

نویسنده : حسین احمدی
منبع : جزیره برنامه نویسی وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
برچسب ها
ردیف عنوان
1 دوره آموزشی .NET Framework و زبان برنامه نویسی سی شارپ - مقدمه
2 آموزش سی شارپ - قسمت اول :: معرفی و بررسی ابزارهای مورد نیاز دوره
3 آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش اول)
4 آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش دوم)
5 آموزش زبان سی شارپ - قسمت سوم :: آشنایی اولیه با محیط Visual Studio و نوشتن اولین برنامه
6 آموزش زبان سی شارپ - قسمت چهارم :: آشنایی با ساختار برنامه ها و کامپایلر زبان سی شارپ
7 آموزش زبان سی شارپ - قسمت پنجم :: آشنایی با دستورات کنسول و متغیرها
8 آموزش زبان سی شارپ - قسمت ششم :: نوع های داده اولیه
9 آموزش زبان سی شارپ - قسمت هفتم :: آشنایی با عملگرهای زبان سی شارپ
10 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش اول)
11 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش دوم)
12 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش سوم)
13 آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش چهارم)
14 آموزش زبان سی شارپ - قسمت نهم :: آشنایی با آرایه ها و دستور foreach
15 آموزش زبان سی شارپ - قسمت دهم :: آشنایی با متدها در زبان سی شارپ (بخش اول)
16 آموزش زبان سی شارپ - قسمت دهم :: آشنایی با متدها در زبان سی شارپ (بخش دوم)
17 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت یازدهم :: مقدمه ای بر برنامه نویسی شئ گرا
18 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت دوازدهم :: آشنایی با کلاس، اشیاء و فضاهای نام
19 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت سیزدهم :: آشنایی با فیلدها و رفتارها
20 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت چهاردهم :: آشنایی با Property ها
21 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت پانزدهم :: آشنایی با سازنده ها و روش های ایجاد اشیاء
22 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت شانزدهم :: وراثت یا Inheritance
23 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت هفدهم :: آشنایی با مفهوم Polymorphism
24 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت هجدهم:: کلاس های abstract و sealed
25 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت نوزدهم :: سازنده ها در وراثت، کلمه کلیدی protected و فیلدهای readonly
26 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیستم :: کلاس های static و partial و Extension Method ها
27 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و یکم :: Reference Types و Value Types
28 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و دوم :: آشنایی با کاربرد interface ها
29 آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و سوم :: آشنایی با مفاهیم Inversion of Control و Dependency Injection
30 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و چهارم :: آشنایی با مفهوم Type Casting و انواع Cast ها
31 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و پنجم :: آشنایی با operator overloading و تعریف cast ها
32 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و ششم :: مفاهیم boxing و unboxing
33 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و هفتم :: قابلیت Generics
34 آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و هشتم :: نکات تکمیلی Generic ها، کلاس List و کلاس Dictionary
35 آموزش زبان سی شارپ -قسمت بیست و نهم (پایانی): استثناء ها (Exceptions) و مدیریت خطاها در سی شارپ
دوره مجموعه کل دوره
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
  • نویسنده و منبع مقاله کجاست دوست من ؟
  • اضافه شد دوست من :دی
  • Base Class Library شامل کلاس‌های پایه در دات نت فریم‌ورک می‌باشد
    تمامی زبان های دات نتی نظیر #C#، VB.Net و... که تعدادشون هم کم نیست جهت اجرای برنامه های خود نیاز به بسته دات نت فریم ورک دارند.
    دات نت فریم ورک درون خود دارای بخش هایی است که مدیریت برنامه شما را به عهده خواهند گرفت. مانند CLR یا Common Language Runtime که قلب اصلی دات نت فریم ورک به شمار می رود.
    همچنین BCL یا Base Class Library که به کتابخانه دات نت نیز معروف است و شامل دات نت اسمبلی های و کلاس های بسیار زیاد نوشته شده توسط ماکروسافت می باشد که می توانید از وجود آن ها در برنامه استفاده کنید خیلی ها میگن BCL یه دشتی از اسمبلی های موجود هست که قبلاً مایکروسافت اونا رو نوشته و ما میتونیم بار ها و بارها تو برنامه هامون از اینا استفاده کنیم
    هر زبان برنامه نویسی مبتنی بر دات نت فریم ورک پس از کمپایل شدن توسط کمپایلر مخصوص به خود به زبان واسطی به نام IL یا Intermediate Language تبدیل می شود.
    پس از این مرحله و یک سری مراحل دیگه کد شما به باینری تبدیل شده و روی سیستم مقصد اجرا می گردد.
  • ممنونم دوست خوبم
    مهندس احمدی عزیز
    فقط خواهشا ادامه دار باشه این آموزش ها و ضمن اینکه اگه ممکنه لینک آموزش های قبلی رو در هر آموزش جدید اضافه کنید.
  • ممنون فرهاد جان، یک ماه قبل خیلی درگیر بودم، به همین خاطر وقفه افتاد. به امید خدا آموزش ها با ریتم منظم تو سایت قرار داده میشه.

برای ارسال نظر ابتدا به سایت وارد شوید