ارسال پاسخ 
 
امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
بررسی ساختار و چارپوب دات نت فریم ورک
05-07-2016, 08:43 PM
ارسال: #1
بررسی ساختار و چارپوب دات نت فریم ورک
نوشتن برنامه براي يک کامپيوتر همانند یاد دادن گره زدن بند کفش به کودکان است . تا زماني که شما نتوانید درست مراحل کار را بيان کنيد ، هيچ کاري انجام نمي شود . ويژوال C# يک زبان برنامه نويسي است که بوسيله ان مي توانيد به کامپيوتر خود بگوييد چه کارهايي را انجام دهد اما کامپيوتر نيز مانند يک کودک است و فقط کارهايي را مي تواند انجام دهد که مراحل ان به وضوح مشخص مي شوند . اگر تا کنون هيچ برنامه اي ننوشته باشيد ممکن است اين کار بسيار مشکل به نظر برسد ، البته در بعضي مواقع نيز به همين صورت است. اما خوشبختانه . ويژوال C# زباني است که سعي کرده است اين موضوع را تا حد ممکن ساده کند و به شما اجازه مي دهد تا کارهاي بسيار مشکل را به سادگي انجام دهيد . درک اتفاقي که در سطوح پايين براي اجراي يک برنامه رخ مي دهد هيچ وقت ضرري نداشته است ، اما در . ويژوال C# براي نوشتن يک برنامه نيازي به درگيري با مسائلي از اين قبيل نداريد و مي توانيد به راحتي بر الگوريتم برنامه اي که مي خواهيد بنويسيد تمرکز کنيد.
برنامه هايي که بوسيله . ويژوال C# نوشته مي شوند مي توانند بر روي سيستم عامل ويندوز اجرا شوند حتي اگر تا کنون هيچ برنامه اي براي کامپيوتر ننوشته باشيد . ويژوال C# ( همانطور که از اسم .NET مشخص است) مي توانيد براي ايجاد برنامه هاي قابل استفاده در اينترنت مورد استفاده قرار گيرد شما مي توانيد با اين زبان به راحتي براي دستگاههاي موبايل و يا Pocket PC برنامه بنويسيد.

چارچوب .NET چيست ؟
چارچوب .NET چگونه کار مي کند وچه چيزي باعث شده است که به يک فريم ورک پر طرفدار تبديل شود ؟ با زبان C# چه برنامه هايي را مي توان نوشت ؟

چارچوب .NET چيست ؟
درتعريف .NET مي توانيم بگوييم که : " چارچوب .NET يک پلتفرم جديد است که توسط مايکروسافت براي طراحي و توسعه نرم افزار ايجاد شده است ."
نکته جالبي که در اين تعريف وجود دارد ابهام زيادي است که در اين تعريف به کار برده ام اما براي اين کار دليل خوبي وجود دارد . براي شروع، توجه کنيد که در اين تعريف نگفته ام " طراحي و توسعه نرم افزار براي سيستم عامل ويندوز . " اگر چه مايکروسافت چارچوب .NET را براي اجرا روي سيستم عامل ويندوز منتشر کرده است ، به زودي نسخه هاي ديگري از اين چارچوب را مشاهده خواهيد کرد که بر روي سيستم عامل هاي ويندوز منتشر کرده است ، به زودي نسخه هاي ديگري از اين چارچوب را مشاهده خواهيد کرد که بر روي سيستم عامل هاي ديگر مانند لينوکس نيز اجرا مي شوند . يکي از اين نسخه ها مونو است. مونو يک نسخه متن باز از چارچوب .NET است (که شامل کامپايلر C# نيز هست) که براي سيستم عامل هاي گوناگوني مانند نسخه هاي مختلف لينوکس و مکينتاش منتشر شده است به علاوه ميتوانيد با استفاده از نسخه فشرده اين چارچوب به نام Microsoft .NET Compact Framework که زير مجموعه اي از چارچوب .NET است . اگر به تعريفي که در بالا براي چارچوب .NET اورده شده است مشاهده مي کنيد که اين تعريف محدود به نوع خاصي از برنامه ها نيست . در حقيقت در مورد نوع برنامه هايي که مي توان با .NET نوشت هيچ محدوديتي وجود ندارد که بخواهيم انرا ذکر کنيم از چارچوب .NET مي توانيد براي طراحي برنامه هاي تحت ويندوز برنامه هاي تحت وب ، سويسهاي مبتني بر وب و ... استفاده کنيد .
چارچوب .NET يک چارچوب کلي است و محدود به زبان برنامه نويسي خاصي نيست. شما ميتوانيد برنامه خودتان را به هر زباني که بخواهيد بنويسيد.

چارچوب .NET از چه اجزايي تشکيل شده است ؟
يکي از اجزاي اصلي چارچوب .NET کتابخانه کلاس عظيم ان است که مي توانيد از ان در برنامه هاي خود استفاده کنيد کتابخانه کلاس يک مجموعه از توابع وکلاسها است که براي انجام امور مختلف مورد استفاده قرار مي گيرد . براي مثال يک کتابخانه کلاس ، شامل توابعي براي کنترل ورودي و خروجي ، استفاده از امکانات چاپ ، کار با انواع مختلف شبکه و ... است . اين توابع وکلاسها که با استفاده از تکنيکهاي برنامه نويسي شئ گرا نوشته شده اند ، در .NET به گروهها يا فضاي نامهاي مختلفي دسته بندي مي شوند .
در نوشتن يک برنامه مي توانيد هر کدام از فضاي نامها را که نياز داشتيد به برنامه اضافه کنيد براي مثال يکي از اين فضاي نامها براي برنامه نويسي تحت ويندوز بکار مي رود ،يکي ديگر براي برنامه نويسي شبکه مورد استفاده قرار مي گيرد فضاي نام ديگري براي برنامه نويسي تحت وب به کار مي رود . بعضي از اين فضاي نامها خود به فضاي نامهاي کوچکتري تقسيم مي شوند که براي کار برد خاصي در ان قسمت استفاده مي شود. براي مثال فضاي نام برنامه نويسي تحت وب شامل يک فضاي نام کوچکتر است که براي نوشتن سرويسهاي تحت وب بکار مي رود .
بايد توجه داشته باشيد که تمام سيستم عامل ها،همه توابع موجود در اين فضاي نامها را پشتيباني نمي کنند. براي مثال يک دستيار ديجيتال شخصي از توابع اصلي چارچوب .NET پشتيباني مي کند ، اما يک سري از توابع که در اين وسايل کاربردي ندارند به وسيله انها پشتيباني نمي شود .
بخش ديگري از چارچوب .NET يک سري نوع هاي داده هاي ابتدايي را تعريف مي کند . نوع هاي داده اي براي نگهداري اطلاعات يک برنامه در طول اجراي ان مورد استفاده قرار مي گيرند.نوع هاي داده هاي که در اين قسمت از .NET تعريف مي شوند به صورت بسيار پايه اي هستند (مانند "عدد صحيح علامتدار 32 بيتي ") . نوع هاي داده اي پيشرفته تري که در زبانهاي برنامه نويسي مبتني .NET مانند C# و يا ويژوال بيسيک وجود دارند بايد بر اساس يکي از اين نوع هاي داده اي تعريف شده در اين قسمت از چارچوب .NET باشند . اين مورد باعث هماهنگي بين زبانهاي برنامه نويسي مي شود که از چارچوب .NET استفاده مي کنند . اين قسمت از چارچوب .NET ، سيستم نوع داده اي عمومي و يا به اختصار CTS ناميده مي شود .
علاوه بر کتابخانه کلاسي که ذکر شد چارچوب .NET شامل بخشي به نام زبان عمومي زمان اجرا و يا به اختصار CLR است.اين بخش از چارچوب .NET (که مهمترين بخش ان نيز محسوب مي شود)مسئول کنترل ومديريت اجراي تمام برنامه هايي است که با استفاده از کتابخانه کلاس نوشته شده اند .

JIT , MSIL :
هنگامي که برنامه اي که در ان از توابع موجود در کتابخانه کلاس .NET استفاده شده است را کامپايل مي کنيد ، بلافاصله کد قابل فهم براي سيستم عامل و يا کد محلي توليد نمي شود . در عوض کد شما به زباني به نام زبان سطح مياني مايکروسافت و يا به اختصار MSIL تبديل مي شود . اين کد براي سيستم عامل خاصي نيست و همچنين منحصر به زبان C# نيز نيست . به عبارت ديگر کد زبانهاي ديگر نيز مي تواند به MSIL تبديل شود .
کدهاي زبانهاي ديگر که از چارچوب .NET استفاده مي کنند نيز (مانند ويژوال بيسيک)هنگام کامپايل ابتدا به زبان MSILتبديل مي شوند . هنگام استفاده از ويژوال استوديو براي نوشتن برنامه ، اين مرحله از کامپايل توسط ويژوال استوديو انجام مي شود.
اما براي اجراي يک برنامه توسط سيستم عامل يک مرحله ديگر نيز مورد نياز است . اين مرحله وظيفه کامپايلر Just – in – Time يا به اختصار JIT کامپايلر است . اين کامپايلر کد MSIL يک برنامه را دريافت کرده و ان را به کدي تبديل مي کند که بوسيله سيستم عامل قابل اجرا باشد . بعد از اينکه تبديل توسط JIT انجام شد سيستم عامل مي تواند برنامه را اجرا کند .همانطور که از اسم اين قسمت نيز مشخص است (Just – in – Time)کدهاي زبان MSIL فقط هنگامي به زبان محلي قابل فهم براي سيستم عامل تبديل مي شوند که بخواهند اجرا شوند.
در گذشته براي اينکه بتوانيد برنامه خود را بر روي سيستم عامل هاي مختلف اجرا کنيد نياز داشتيد که براي هر يک از نسخه هاي سيستم عامل ، ان کد را يک مرتبه به طور کامل کامپايل کنيد . اما در چارچوب .NET نيازي به اين کار نيست . زيرا براي هر نوع پردازنده و نيز هر نوع سيستم عامل يک نسخه از JIT وجود دارد .
برنامه شما در هر سيستم عاملي که اجرا شود ، کامپايلر JIT موجود در ان سيستم عامل ، کد MSIL برنامه شما را که مستقل از سيستم عامل و نوع پردازنده است دريافت کرده و کد محلي مناسبي توليد مي کنند که براي سيستم عامل قابل فهم باشد .
فايده استفاده از اين روش در اين است که وظيفه برنامه نويس به شدت کاهش مي دهد . در حقيقت مي توان گفت که به عنوان برنامه نويس ، هنگام نوشتن کد مي توانيد سيستم عاملي که قرار است برنامه روي ان اجرا شود را فراموش کرده و فکر خود را بر روي کد و منطق برنامه متمرکز کنيد .

کدهاي مديريت شده :
همانطور که گفتم برنامه ي شما هنگام کامپايل ابتدا به کد MSIL تبديل مي شود ، سپس اين کد قبل از اجرا بوسيله JIT به کد محلي تبديل شده و کد محلي بوسيله سيستم عامل اجرا مي شود . تمام اين قسمتها بخشي از وظايف CLR است ، اما وظايف CLR به اين موارد ختم نمي شود . برنامه اي که بوسيله .NET نوشته شده است در طول زمان اجرا توسط CLR مديريت مي شود . به عبارت ديگر در طول اجراي برنامه هاي نوشته شده با .NET ، CLR مسئول کنترل امنيت انها ، مديريت حافظه برنامه ها ، کنترل بخشهاي خطا يابي در برنامه ها و ... است . به همين دليل به برنامه هاي که با .NET نوشته شده اند ، برنامه هاي مديريت شده مي گويند . در مقابل برنامه هاي تحت کنترل CLR اجرا نمي شوند به برنامه هاي مديريت نشده معروف هستند و زبانهاي مشخصي مانند C++ مي توانند چنين برنامه هاي را توليد کنند . از کدهاي مديريت نشده بيشتر در مواقعي استفاده مي شود که قابليت استفاده از کدهاي مديريت شده نباشند ، همانند فراخواني توابع سطح پايين سيستم عامل .
البته با استفاده از زبان C# نمي توان کدهاي مديريت نشده توليد کرد و تمام کدهاي توليد شده به وسيله کامپايلر C# تحت کنترل CLR اجرا مي شوند .

مديريت حافظه در .NET :
يکي از مهمترين ويژه گيهاي کدهاي مديريت شده بخش مديريت حافظه در اين نو ع کدها است که بوسيله سيستمي به نام Garbage Collection و يا به اختصار GC انجام مي شود . چارچوب .NET با استفاده از اين سيستم مي تواند اطمينان حاصل کند که حافظه اي که به يک برنامه اختصاص داده مي شود ، با پايان برنامه بطور کامل بازيابي مي شود . در زبانهاي برنامه نويسي قبل از .NET اين مورد بوسيله برنامه نويس کنترل مي شد و امکان داشت که با يک اشتباه کوچک در کد برنامه، مقدار زيادي از فضاي غير قابل استفاده بماند و برنامه با کمبود حافظه مواجه شود . اين گونه مشکلات باعث کاهش سرعت برنامه ها و حتي در بعضي شرايط باعث توقف سيستم مي شد .
نحوه کار GC در .NET به اين صورت است که در زمانهاي مشخصي به بررسي حافظه مي پردازد و داده هايي را که ديگر استفاده نمي شوند از حافظه پاک مي کند . البته بررسي حافظه توسط GC در فاصله زماني ثابت صورت نمي گيرد بلکه ممکن است در شرايطي در هر ثانيه چندين هزار بار اجرا شود و در شرايط ديگر در هر چند ثانيه يک بار اجرا مي شود.

مراحل اجراي برنامه در .NET :
قبل از ادامه مراحل لازم براي ايجاد يک برنامه با .NET را که در قسمتهاي قبلي توضيح داده شد جمع بندي مي کنيم :

1) کد برنامه به وسيله يکي از زبانهاي سازگار با .NET مانند C# نوشته مي شود (شکل1-1):

[تصویر:  6359829151423180830Capture.JPG]
شکل 1-1 : C#

2)اين کد به زبان MSIL کامپايل مي شود و سپس در يک فايل اسمبلي ذخيره مي شود(شکل 2-1):

[تصویر:  6359829168558387520Capture.JPG]
شکل 2-1 : کامپايل و ذخيره کردن

3)هنگامي که کد بخواهد اجرا شود (چه خود فايل اجرايي باشد و به تنهايي اجرا شود، چه يک فايل حاوي توابع مورد استفاده باشد و به وسيله ديگر برنامه ها احضار شود ) ابتدا بايد به وسيله يک کامپايلر ديگر به کد محلي تبديل شود . اين کامپايلر JIT نام دارد (شکل 3-1):

[تصویر:  6359829191804020860Capture.JPG]
شکل 3-1 : JIT

4)کد محلي توليد شده به وسيله JIT به همراه ديگر برنامه هاي در حال اجرا که بوسيله .NET نوشته شده اند ، تحت کنترل CLR به اجرا در مي ايد(شکل 4-1):

[تصویر:  6359829197486881050Capture.JPG]
شکل 4-1 : کد محلي توليد شده با JIT



==================================================
طراحی وب سایت
پروژه های برنامه نویسی تجاری
دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات
دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات
دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . .
دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات
پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات
دانلود پروژه های کارآفرینی
دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی
قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس
برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده
==================================================
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان