استخدام برنامه نویس .NET Framework
برنامه نویس .NET Framework وظیفهی نوشتن برنامههایی بر اساس تکنولوژی .NET را بر عهدهدارد. اگر نگاهی به آگهیهای استخدام داشتهباشید، تقاضا برای استخدام برنامه نویس دات نت فریم ورک حتما به چشمتان خوردهاست. در صورتیکه شما هم تصمیم داشته باشید به عنوان یک برنامهنویس.NET Framework وارد بازارکار شوید بهتر است با مباحث تئوریک آن بیشتر آشنا شوید. یادگیری این مباحث به شما کمک میکند تا به درک درستی از محیطی که قرار است از آن استفادهکنید، دستیابید.فریم ورک چیست؟
برای شروع کار بهعنوان یک برنامه نویس.NET Framework قبل از هر چیزی باید مفهوم فریمورک را بدانید.به طور کلی فریم ورکها (Frameworks)، قالبهای کاری یا همان چارچوبهای نرمافزاری هستند که بسیاری از برنامه نویسان، آنها را نجاتبخش راه برنامهنویسی و توسعهی برنامهها میدانند. همانگونه که وجود اسکلت یا چهارچوب، باعث ایجاد ساختاری منظمتر و بهتر برای یک ساختمان میشود، فریم ورکها نیز برای انجام عملیات کدنویسی با نظم بیشتر، مورد استفاده میباشند. فریمورک داتنت (.NET Framework) که در این مطلب راجعبه آن صحبت خواهیمکرد یک فریمورک زبان مایکروسافتی میباشد.
چهموقع باید از فریم ورکها استفاده کنیم؟
زمانیکه از یک زبان برنامه نویسی استفاده میکنید، در حالت پایه این زبان و کتابخانههای پیش فرض آن امکانات پایهای مانند برقراری ارتباط با سخت افزار، عملیات پایهی ریاضی، کنترل رشتهها و … را به ما میدهند. در حالیکه برای عملیات پیچیدهتر امکانات از پیش تعریف شدهای وجود ندارد. به عنوان یک برنامهنویس هنگام مواجه شدن با این حالت، تنها دو انتخاب پیش رو دارید.در اولین انتخاب، میتوانید خودتان دست به کار شوید و با نوشتن توابع و کلاسهای مورد نیاز آن، به هدف خود برسید. مزیت این روش تسلط کامل برنامه نویس بر روی قسمتهای مختلف برنامهای است که مینویسد. اما ایراد بزرگ این انتخاب، زمان طولانی آن است. برخی اوقات روزها و ساعتها وقت لازم است تا یک برنامهنویس بتواند ابتدا توابع مورد نیاز خود را بنویسد سپس از آنها در جای مناسب استفادهکند.
انتخاب بعدی استفاده از فریمورکها می باشد. در واقع یک Framework با فراهمکردن امکانات پایه و اغلب پیچیده به یک برنامهنویس.NET Framework کمک میکند تا زمان خود را برای قسمتهای اولیه و آمادهسازی آنها برای توسعهی نرمافزار مورد نظرش، صرفنماید.
.NET Framework چیست؟
چارچوب دات نت (.NET Framework) یک فناوری نرمافزاری است که توسط شرکت مایکروسافت طراحی و ساختهشدهاست. به بیانی ساده، .NET Framework یک ماشین مجازی برای تهیه و اجرای برنامههایی است که به زبانهای مختلف مانند C# ، VisualBasic.Net و غیره نوشتهشدهاست.برنامه نویسان.NET Framework از این چارچوب برای توسعهی برنامههای مبتنی بر فرم، برنامههای مبتنی بر وب و سرویسهای وب استفادهمیکنند. .NET Framework بیش از ۶۰ زبان برنامهنویسی را پشتیبانی میکند که از میان آنها ۱۱ زبان برنامهنویسی توسط مایکروسافت طراحی و ساختهشدهاند.
برنامههای نوشتهشده در این چارچوب توسط برنامه نویسان .NET Framework، پس از ترجمه به زبان میانی مشترک، توسط زمان اجرای زبان مشترک اجرا میشوند. داتنت فریمورک، موجب یکسان شدن قدرت برنامهنویسی در زبانهای تحت این چارچوب شده و تنها تفاوت در نوع کدنویسی وجود دارد. دلیل این امر آن است که ابزار و قدرت در دات نت از خواص این فناوری است، نه زبان مورد استفاده.
تاریخچهی .NET Framework
اگر شما هم پیش از عرضهی.NET Framework کار برنامهنویسی انجام دادهباشید، قطعاً با مفهومی به نام COM آشنایی دارید. COM یا Component Object Model یک تکنولوژی برای نوشتن برنامههای تحت ویندوز و ارائهشده توسط شرکت مایکروسافت بود. نوشتن مولفههای Re-Usable و لینککردن بخشهای مختلف نرمافزار با یکدیگر از کاربردهای COM بود. زبانهایی همچون C++ و Visual Basic قابلیت استفاده از COM را دارا بودند، اما برنامه نویسی با استفادهاز COM، با مشکلاتی نیز همراه بود. مثلاً، مدیریت حافظه، مشکلات فایلهای DLL و استفاده از این فایلها در سیستم مقصد، از جمله مشکلات تکنولوژی COM بود. این امر سبب شد تا در سال ۱۹۹۰ مایکروسافت پروژهی دات نت را برای رفع مشکلات COM آغاز کند و در سال ۲۰۰۲ به صورت رسمی .NET Framework را ارائهداد. در حقیقت چارچوب جدید دات نت بهعنوان لایهای بر روی COM قرار گرفت و دسترسی به سرویسهای ویندوز و اجزای آن را بسیار راحتتر کرد. با ورود .NET Framework به دنیای برنامهنویسی بستری برای یک کدنویسی لذتبخش برای برنامه نویسان .NET Framework فراهمآمد.نسخههای .NET Framework
جدول زیر لیست تمام نسخههای منتشر شدهی فریمورک داتنت به همراه نسخههای متفاوت ویندوز و ویژوال استودیو برای استفادهی برنامهنویسان.NET Framework را نشانمیدهد.پشتیبانی ویندوز | ابزار توسعه | سال انتشار | نسخهی داتنت |
XP SP1 | Visual Studio .NET | 2002 | 1.0 |
XP SP2, SP3 | Visual Studio .NET 2003 | 2003 | 1.1 |
N/A | Visual Studio 2005 | 2005 | 2.0 |
Vista | Expression Blend | 2006 | 3.0 |
7, 8, 8.1, 10 | Visual Studio 2008 | 2007 | 3.5 |
N/A | Visual Studio 2010 | 2010 | 4.0 |
8 | Visual Studio 2012 | 2012 | 4.5 |
8.1 | Visual Studio 2013 | 2013 | 4.5.1 |
N/A | N/A | 2014 | 4.5.2 |
10 v1507 | Visual Studio 2015 | 2015 | 4.6 |
10 v1511 | Visual Studio 2015 Update 1 | 2015 | 4.6.1 |
نکات مهم
از سال ۲۰۱۷ تا کنون دو نسخهی دیگر از چارچوب داتنت، شامل داتنت فریمورک ۴.۸ و ۴.۸.۳ نیز برای برنامهنویسان .NET Framework عرضه شدهاند.
ویژوال استودیو ابزاری برای طراحی و توسعهی برنامههای داتنت است. برای استفاده از ویژوال استودیو ، کاربر ابتدا باید چارچوب .NET را روی سیستم نصب کند.
در نسخه قدیمی Windows OS مانند XP SP1 ، SP2 یا SP3 ، داتنت فریمورک با استفاده از رسانهینصب (فلش یا DVD) نصب شدهاست.
ویندوز ۸، ۸.۱ و ۱۰، نسخهی از پیش نصبشدهی ۳.۵ یا بالاتر از .NET Framework را ارائه نمیدهد. بنابراین، نسخههای بالاتر از ۳.۵ باید یا از طریق یک رسانهینصب ویندوز و یا تقاضای اینترنتی نصب شود. بهروزرسانی ویندوز برای نصب .NET Framework توصیههایی را ارائه میدهد.
ویژوال استودیو ابزاری برای طراحی و توسعهی برنامههای داتنت است. برای استفاده از ویژوال استودیو ، کاربر ابتدا باید چارچوب .NET را روی سیستم نصب کند.
در نسخه قدیمی Windows OS مانند XP SP1 ، SP2 یا SP3 ، داتنت فریمورک با استفاده از رسانهینصب (فلش یا DVD) نصب شدهاست.
ویندوز ۸، ۸.۱ و ۱۰، نسخهی از پیش نصبشدهی ۳.۵ یا بالاتر از .NET Framework را ارائه نمیدهد. بنابراین، نسخههای بالاتر از ۳.۵ باید یا از طریق یک رسانهینصب ویندوز و یا تقاضای اینترنتی نصب شود. بهروزرسانی ویندوز برای نصب .NET Framework توصیههایی را ارائه میدهد.
ساختار کلی دات نت فریم ورک و سرویسهای آن
داتنت فریمورک شامل دو بخش اصلی است:
- Framework class library
- Common Language Runtime
FCL : یک کتابخانهی بسیار بزرگ و شامل تعداد زیادی کلاس، داده و ساختارهای شمارشی است. کلاسهای موجود در FCL در بخشهای مختلفی به نام Name Space دستهبندی شدهاند و در برنامه نویسی ویندوز میتوان از آنها استفادهکرد.
CLR : امکانات زیادی از جمله مدیریتحافظه (Memory Management)، امنیت (Security)، اجرای کد و سایر سرویس ها را فراهم میکند و در واقع، هستهی اصلی داتنت فریمورک است.
CLR : امکانات زیادی از جمله مدیریتحافظه (Memory Management)، امنیت (Security)، اجرای کد و سایر سرویس ها را فراهم میکند و در واقع، هستهی اصلی داتنت فریمورک است.
مزایای استفاده از .NET Framework برای برنامه نویسان .NET Framework
قابلیت برنامهنویسی در تمام سطوح از جمله وب، ویندوز و موبایل را برای برنامهنویسان فراهم میکند.
محیطی یکپارچه و یک چارچوب واحد و مجتمع را جهت تولید و اجرای نرمافزارها ایجاد مینماید.
برنامه نویسان.NET Framework برنامههای تولید شدهی خود را که تحت داتنت فریمورک نوشتهشده بدون بروز هیچگونه مشکلی، بر روی تمام سیستمعاملهای ویندوز اجرا خواهندکرد.
محدود نبودن برنامهنویسان به یک زبانبرنامهنویسی خاص در یک پروژهی نرمافزاری و توانایی استفاده از چندین زبانبرنامه نویسی در یک پروژه
داتنت فریم ورک بهترین ابزار را برای پیادهسازی برنامههای تحت اینترنت و شبکه، در اختیار توسعهدهندگان سیستم های نرمافزاری و برنامه نویسان.NET Framework قرار دادهاست. دلیل این امر آن است که از زمان طرح ایده تا روزهای پایانی پیادهسازی داتنت، شبکه و اینترنت به عنوان مهمترین فناوریهای روز دنیا در این پروژه مطرح بوده است. در نتیجه این چارچوب از هر لحاظ برای پیادهسازی برنامههای تحت شبکه و تولید وبسایت، بسیار سودمند است.
محیطی یکپارچه و یک چارچوب واحد و مجتمع را جهت تولید و اجرای نرمافزارها ایجاد مینماید.
برنامه نویسان.NET Framework برنامههای تولید شدهی خود را که تحت داتنت فریمورک نوشتهشده بدون بروز هیچگونه مشکلی، بر روی تمام سیستمعاملهای ویندوز اجرا خواهندکرد.
محدود نبودن برنامهنویسان به یک زبانبرنامهنویسی خاص در یک پروژهی نرمافزاری و توانایی استفاده از چندین زبانبرنامه نویسی در یک پروژه
داتنت فریم ورک بهترین ابزار را برای پیادهسازی برنامههای تحت اینترنت و شبکه، در اختیار توسعهدهندگان سیستم های نرمافزاری و برنامه نویسان.NET Framework قرار دادهاست. دلیل این امر آن است که از زمان طرح ایده تا روزهای پایانی پیادهسازی داتنت، شبکه و اینترنت به عنوان مهمترین فناوریهای روز دنیا در این پروژه مطرح بوده است. در نتیجه این چارچوب از هر لحاظ برای پیادهسازی برنامههای تحت شبکه و تولید وبسایت، بسیار سودمند است.
قوانین استفاده از دات نت فریم ورک
شرکت مایکروسافت یک سری قوانین برای برنامهنویسانی که بخواهند بر روی بستر داتنت فریمورک کار کنند، تعیین کردهاست. کلیهی برنامه نویسان .NET Framework و توسعهدهندگان موظند که از آن قوانین پیروی کنند. رعایت این قوانین موجب میشود که یک تعامل بسیار خوب بین زبانها برقرار شود. به طور مختصر این قوانین شامل دو بخش است:
Common Type System یا CTS : تمام مولفههای داتنت باید از قوانینی که در CTS وجود دارند پیروی کنند. بهعلاوه CTS انواع دادههای مورد استفاده در تمام زبانهای برنامهنویسی دات نت را تعریف میکند. CTS از مفاهیم Reference type Class، Interface، Delegates و Value type پشتیبانی میکند.
Common Language Specification یا CLS : مجموعه قوانینی است که هر یک از زبانهای سازگار با دات نت باید رعایت کنند. اگر یک زبان برنامهنویسی بخواهد با زبانهای داتنت ارتباط برقرار کند باید از قوانین CLS پیرویکند.
Common Type System یا CTS : تمام مولفههای داتنت باید از قوانینی که در CTS وجود دارند پیروی کنند. بهعلاوه CTS انواع دادههای مورد استفاده در تمام زبانهای برنامهنویسی دات نت را تعریف میکند. CTS از مفاهیم Reference type Class، Interface، Delegates و Value type پشتیبانی میکند.
Common Language Specification یا CLS : مجموعه قوانینی است که هر یک از زبانهای سازگار با دات نت باید رعایت کنند. اگر یک زبان برنامهنویسی بخواهد با زبانهای داتنت ارتباط برقرار کند باید از قوانین CLS پیرویکند.
زبانهای برنامه نویسی .NET Framework
چارچوب دات نت فریم ورک شامل مجموعهای از زبانهای برنامهنویسی است که C# و Visual Basic مهمترین آنها میباشند. در زیر برخی دیگر از زبانهای برنامهنویسی این فریمورک را آوردهایم:
- PowerShell زبانی است که در اوت سال ۲۰۱۶ با منبعآزاد و در چهارچوب .NET Framework ساختهشد.
- J# زبانی برای برنامهنویسان جاوا و تکمیلشدهی زبان J++ است که تحت داتنت فریمورک ۲.۲ کار میکند.
- F# یک زبان برنامهنویسی از خانوادهی زبان ML است و که با استفاده از داتنت فریمورک پیادهسازی میشود.
- IronPython بهعنوان یک اجرای منبعباز از زبان برنامهنویسی پایتون است که کاملاً با چهارچوب .NET Framework یکپارچه شدهاست. IronPython میتواند از کتابخانههای.NET Framework و Python و سایر زبانهای داتنت استفادهکند.
توجه داشته باشید که ASP.Net یک تکنولوژی طراحی سایت و ارائهشده توسط شرکت مایکروسافت میباشد تا با کمک آن، برنامهنویسان بتوانند سایت، برنامه و سرویسهای وب (WEB) را ایجاد کنند. ASP.Net نسخهی .NET تکنولوژی ASP است. در واقع ASP مبتنی بر زبانهای مشترک در حال اجرا است که به برنامهنویسان اجازه میدهد کدهای ASP را با استفاده از زبانهای .NET Framework که در بالا به آنها اشاره کردیم بنویسند.
تبدیل کدهای C# به برنامهی اجرایی با استفاده از دات نت فریم ورک
برنامه نویسان .NET Framework به خوبی میدانند که در زمان کامپایل، کدها به زبان مشترک میانی که تقریبا شبیه و نزدیک به زبان اسمبلی است ترجمه میشوند. مثلاً کدهای C# ابتدا به زبان مشترک میانی (Common Intermediate Language) یا CIL ترجمه میشوند. از آنجایی که فقط CIL برای دات نت فریم ورک قابل فهم است، قبل از هر چیزی کدها باید به این زبان ترجمهشوند. به همین سبب برنامههای مختلف در دات نت فریم ورک که به زبانهای متفاوتی نوشته شدهاند، توانایی برقراری ارتباط با یکدیگر را دارند.
برای داشتن یک زبان سازگار با دات نت فریم ورک باید کامپایلری ایجاد کنید که کدهای شما را به زبان میانی ترجمهکند. سپس کدهای ترجمهشده توسط IL در یک فایل اسمبلی مانند .exe یا .Dll ذخیره میشوند. کدهای ترجمه شده به کامپایلر JIT (Just In Time)، منتقل میشوند. در واقع کامپایلر JIT، همانطور که از اسمش پیداست، فقط کدهایی را که برنامه در لحظه به آنها نیاز دارد، به زبان ماشین ترجمه میکند. در ادامه بهطور خلاصه، نحوهی تبدیل کدهای C# به یک برنامهی اجرایی را آوردهایم:
۱- برنامه نویس .NET Framework ، برنامهی خود را با یک زبان داتنت مانند C# مینویسد.
۲- کدهای C# به کدهای معادل آن در زبان میانی تبدیل میشوند.
۳- کدهای زبان میانی در یک فایل اسمبلی ذخیره میشوند.
۴- وقتی کدها اجرا میشوند کامپایلر JIT کدهای زبان میانی را در لحظه به کدهایی که برای کامپیوتر قابل خواندن باشند تبدیل میکند.
برای داشتن یک زبان سازگار با دات نت فریم ورک باید کامپایلری ایجاد کنید که کدهای شما را به زبان میانی ترجمهکند. سپس کدهای ترجمهشده توسط IL در یک فایل اسمبلی مانند .exe یا .Dll ذخیره میشوند. کدهای ترجمه شده به کامپایلر JIT (Just In Time)، منتقل میشوند. در واقع کامپایلر JIT، همانطور که از اسمش پیداست، فقط کدهایی را که برنامه در لحظه به آنها نیاز دارد، به زبان ماشین ترجمه میکند. در ادامه بهطور خلاصه، نحوهی تبدیل کدهای C# به یک برنامهی اجرایی را آوردهایم:
۱- برنامه نویس .NET Framework ، برنامهی خود را با یک زبان داتنت مانند C# مینویسد.
۲- کدهای C# به کدهای معادل آن در زبان میانی تبدیل میشوند.
۳- کدهای زبان میانی در یک فایل اسمبلی ذخیره میشوند.
۴- وقتی کدها اجرا میشوند کامپایلر JIT کدهای زبان میانی را در لحظه به کدهایی که برای کامپیوتر قابل خواندن باشند تبدیل میکند.