مایکروسافت زبان #C «سی شارپ» را در سال ۲۰۰۰ ایجاد کرد. #C یک زبان برنامهنویسی شیگرا است که در NET. فریمورک استفاده میشود. این زبان به گونهای طراحی شده که ساده، کارآمد و چندمنظوره باشد و اغلب برای ساخت طیف گستردهای از برنامههای دسکتاپ، وب و موبایل به کار میرود. در این مقاله، به معرفی معماری NET Framework. و مؤلفههای مختلف آن پرداخته خواهد شد که شامل اجزای کلیدی مانند CLR ،FCL ،WPF ،ADO.NET و بسیاری دیگر میشود. این مؤلفهها با همکاری یکدیگر، پلتفرم قدرتمندی را برای توسعه برنامهها فراهم میکنند.
NET Framework. یک چارچوب توسعه نرمافزار است که یک محیط اجرایی و مجموعهای از کتابخانهها و ابزارها را برای ساخت و اجرای برنامهها روی سیستمعاملهای ویندوز فراهم میکند. این چارچوب شامل زبانهای برنامهنویسی مختلفی از جمله سیشارپ #C است و از انواع برنامهها، از جمله برنامههای دسکتاپ، وب، موبایل و بازی، پشتیبانی میکند.
مقدمه
NET Framework. یکی از ابزارهای قدرتمند و چندمنظوره برای توسعه نرمافزار است که توسط مایکروسافت طراحی و ارائه شده است. این چارچوب به برنامهنویسان این امکان را میدهد تا برنامههای مختلفی را برای سیستمعاملهای ویندوز، موبایل، وب و حتی بازیها توسعه دهند. با استفاده از زبانهای برنامهنویسی مختلف مانند C# ،VB.Net و #F، توسعهدهندگان قادر به ساخت برنامههای کاربردی با قابلیتهای بالا و عملکرد مناسب خواهند بود.
عناصر کلیدی در معماری NET Framework.
۱- Common Language Runtime (CLR): محیط اجرای مشترک زبان مسئول مدیریت اجرای کد نوشتهشده در هر یک از زبانهای پشتیبانیشده توسط NET. است. هنگامی که یک برنامه اجرا میشود، CLR ابتدا کتابخانههای موردنیاز برنامه را بارگذاری میکند و سپس کد میانی (Intermediate Language یا IL) را که در مرحله کامپایل تولید شده است، به کد ماشین تبدیل میکند تا پردازنده کامپیوتر قادر به اجرای آن باشد.
علاوه بر وظیفه اصلی تبدیل کد، CLR خدمات پیشرفتهای ارائه میدهد که کارایی و قابلیت اطمینان برنامهها را بهبود میبخشند. از جمله این خدمات میتوان به مدیریت خودکار حافظه اشاره کرد. همچنین، CLR از طریق مکانیسمهای امنیتی، اجرای کدها را کنترل میکند و از نفوذهای مخرب جلوگیری مینماید. این ویژگیها نه تنها به افزایش امنیت و پایداری برنامه کمک میکنند، بلکه تجربه توسعهدهندگان را نیز با سادهسازی مدیریت منابع و امنیت ارتقا میدهند.
۲- NET Framework Class Library (FCL).: کتابخانه کلاسهای NET. فریمورک مجموعهای بزرگ از توابع و کلاسهای از پیش ساخته شده را فراهم میکند که میتوان از آنها برای ایجاد طیف گستردهای از برنامهها استفاده کرد.
این کتابخانه شامل انواع فضای نامها «Namespaces» است که دسترسی به کلاسها و متدهایی را فراهم میکنند که وظایف مختلفی مانند مدیریت ورودی/خروجی (I/O) فایل، ارتباطات شبکه، دسترسی به پایگاه دادهها و طراحی رابطهای گرافیکی کاربر (GUI) را پشتیبانی میکنند. وجود این ابزارهای از پیش تعریفشده، فرآیند توسعه را تسهیل میکند و توسعهدهندگان را از نوشتن کدهای تکراری بینیاز میسازد.
علاوه بر این، کتابخانه کلاسهای NET. شامل ابزارهای توسعهای مانند محیط یکپارچه توسعه (IDE) ویژوال استودیو است که مجموعه قدرتمندی از ابزارها را برای کدنویسی، طراحی، اشکالزدایی و آزمایش برنامهها فراهم میکند. این ترکیب، کار توسعهدهندگان را سریعتر، دقیقتر و کارآمدتر میسازد و کیفیت برنامههای تولیدشده را بهبود میبخشد.
علاوه بر محیط اجرای مشترک زبان (CLR) و کتابخانه کلاسهای NET ،(.NET FCL) .NET. فریمورک شامل تعدادی مؤلفه دیگر نیز هست، از جمله سیستم نوع مشترک (Common Type System – CTS)، زبان میانی مشترک (Common Intermediate Language – CIL) و کامپایلر آنی (Just In Time Compiler – JIT). این مؤلفهها با یکدیگر همکاری میکنند تا یک پلتفرم توسعه قدرتمند و چندمنظوره را فراهم کنند که میتوان از آن برای ساخت طیف گستردهای از برنامهها استفاده کرد.
بهطور کلی، #C و NET. فریمورک یک پلتفرم توسعه قدرتمند و چندمنظوره را ارائه میدهند که به طور گسترده برای ساخت برنامههای دسکتاپ، وب و موبایل روی سیستمعاملهای ویندوز استفاده میشود.
NET. یک چارچوب نرمافزاری است که توسط مایکروسافت طراحی و توسعه یافته است. نسخه اول(۱.۰) این چارچوب، در سال ۲۰۰۲ منتشر شد. به زبان ساده، NET. نقش یک ماشین مجازی را ایفا میکند که برای کامپایل و اجرای برنامههای نوشتهشده به زبانهای مختلف طراحی شده است. زبانهایی مانند C# ،VB.Net و دیگر زبانهای پشتیبانیشده توسط این چارچوب میتوانند در محیط .NET اجرا شوند.
این چارچوب برای توسعه برنامههای مبتنی بر فرم، برنامههای مبتنی بر وب و خدمات وب به کار میرود. پلتفرم NET. شامل انواع زبانهای برنامهنویسی است که VB.Net و #C از رایجترین آنها هستند. این چارچوب برای ساخت برنامههایی برای ویندوز، موبایل، وب و دیگر پلتفرمها استفاده میشود. همچنین، امکانات بسیاری را ارائه میدهد و از استانداردهای صنعتی نیز پشتیبانی میکند.
معماری پایه و پشته مؤلفههای NET.
سه مؤلفه اول از پایین، بهعنوان معماری NET Framework. در نظر گرفته میشوند که در سال ۲۰۰۵ معرفی شدند. پس از آن، مایکروسافت مؤلفههای بیشتری را به NET. فریمورک اضافه کرد. این مؤلفهها به شرح زیر هستند:
۱- CLR (Common Language Runtime): یک محیط اجرایی است که کدهای نوشتهشده به هر زبان برنامهنویسی NET. را اجرا میکند. دات نت فریمورک از زبانهای مختلفی مانند C# ،F# C++ ،Cobra ،Jscript.Net ،VB.Net ،Oxygene و غیره پشتیبانی میکند.
۲- FCL (Framework Class Library): تعداد زیادی از کتابخانههای کلاس در این چارچوب وجود دارد که به عنوان FCL شناخته میشوند. این کتابخانهها شامل کلاسها و توابع از پیش ساختهشدهای هستند که توسعه برنامهها را سادهتر میکنند.
۳- انواع برنامهها: برنامههایی که عمدتاً در دات نت فریمورک ساخته میشوند به سه دسته زیر تقسیم میشوند:
- WinForms: برنامههای مبتنی بر فرم در این دسته قرار میگیرند. به زبان ساده، میتوان گفت برنامههای مبتنی بر کلاینت که با سیستم فایل کار میکنند (خواندن و نوشتن دادهها) در این دسته جای دارند.
- ASP.NET: برنامههای مبتنی بر وب در این دسته قرار میگیرند. ASP.NET یک چارچوب برای توسعه وب است که یکپارچگی عالی بین HTML، CSS و JavaScript را ارائه میدهد و آن را برای توسعه برنامههای وب، وبسایتها و خدمات وب مفید میسازد. خدمات وب (Web Services) در نسخه ۲.۰ NET. فریمورک اضافه شدند و به عنوان بخشی از برنامههای وب ASP.NET در نظر گرفته میشوند.
- ADO.NET: شامل برنامههایی است که برای ارتباط با پایگاه دادههایی مانند MS SQL Server ،Oracle و غیره توسعه داده شدهاند. این بخش عمدتاً از کلاسهایی تشکیل شده است که میتوان از آنها برای اتصال به پایگاه داده، بازیابی دادهها، درج اطلاعات و حذف دادهها استفاده کرد.
۴- WPF (Windows Presentation Foundation): یک زیرسیستم گرافیکی است که توسط مایکروسافت ارائه شده و از DirectX استفاده میکند. این سیستم در برنامههای مبتنی بر ویندوز برای نمایش رابط کاربری (UI) به کار میرود. WPF ابتدا به عنوان بخشی از NET Framework 3.0. در سال ۲۰۰۶ منتشر شد و قبلاً با نام “Avalon” شناخته میشد.
۵- WCF (Windows Communication Foundation): یک چارچوب برای ساخت برنامههای متصل و مبتنی بر سرویس است که برای انتقال دادهها بهصورت ناهمزمان از یک نقطه سرویس به نقطه سرویس دیگر استفاده میشود. این چارچوب قبلاً با نام Indigo شناخته میشد.
۶- WF (Windows Workflow Foundation): یک فناوری است که توسط مایکروسافت ارائه شده و یک پلتفرم برای ساخت گردشکارها (workflows) در برنامههای NET. فراهم میکند.
۷- CardSpace : CardSpace یک کلاینت نرمافزاری در NET. فریمورک است که برای فراهم کردن هویت دیجیتال کاربران به سرویسهای آنلاین به روشی امن، ساده و قابل اعتماد طراحی شده است.
۸- LINQ (Language Integrated Query): مؤلفه LINQ در نسخه ۳.۵ NET. فریمورک معرفی شد. اساساً، یک زبان کوئری است که برای انجام کوئریها به منابع داده با استفاده از زبانهای برنامهنویسی VB یا C# به کار میرود.
۹- Entity Framework: یک چارچوب مبتنی بر ORM (نگاشت شیء-رابطهای) است که در نسخه ۳.۵ NET. فریمورک معرفی شد. این چارچوب به توسعهدهندگان NET. این امکان را میدهد که با استفاده از اشیاء NET. با پایگاهدادهها کار کنند. قبل از معرفی Entity Framework، توسعهدهندگان NET. باید بسیاری از کارهای مرتبط با پایگاهدادهها را به صورت دستی انجام میدادند.
به عنوان مثال، برای باز کردن ارتباط با پایگاهداده، توسعهدهندگان باید یک Data Set ایجاد میکردند تا دادهها را از پایگاهداده بازیابی یا ارسال کنند، دادهها را از Data Set به اشیاء NET. یا برعکس تبدیل میکردند. این فرآیند نه تنها پیچیده و زمانبر بود، بلکه احتمال خطا نیز زیاد بود، برای حل این مشکل “Entity Framework” برای خودکارسازی تمام این فعالیتهای مرتبط با پایگاهداده معرفی شد. بنابراین، Entity Framework به توسعهدهندگان اجازه میدهد تا در سطح بالاتری از انتزاع با پایگاهداده کار کنند.
۱۰- Parallel LINQ (Language Integrated Query): مفهوم Parallel LINQ که در نسخه ۴.۰ NET. فریمورک معرفی شد و به اختصار PLINQ نیز نامیده میشود، یک موتور اجرای همزمان برای LINQ فراهم میکند. این ویژگی LINQ را بهصورت موازی اجرا میکند بهگونهای که سعی میکند از حداکثر توان پردازشی سیستم اجرایی استفاده کند.
۱۱- TPL (Task Parallel Library): مجموعهای از انواع عمومی و APIها است. این کتابخانه به توسعهدهندگان این امکان را میدهد که با سادهسازی فرآیند افزودن همزمانی و موازیسازی به برنامههای NET.، بهرهوری بیشتری داشته باشند.
۱۲- NET API For Store/UWP Apps.: در سال ۲۰۱۲، مایکروسافت برخی APIها را برای ایجاد برنامههای UWP (Universal Windows Platform) برای ویندوز با استفاده از #C یا VB اضافه کرد.
۱۳- (Task-Based Asynchronous Model): این مدل برای توصیف عملیات و تسکهای غیرهمزمان در NET Framework. استفاده میشود.
این مدل به توسعهدهندگان کمک میکند تا بهصورت سادهتر و قابلفهمتر عملیات غیرهمزمان را در برنامههای خود پیادهسازی کنند.
نتیجه گیری
NET Framework. و زبان برنامهنویسی #C یک پلتفرم توسعه بسیار قدرتمند و انعطافپذیر هستند که ابزارهای متنوعی برای ساخت انواع برنامهها فراهم میکنند. از جمله این ابزارها میتوان به محیط اجرای مشترک زبان (CLR)، کتابخانه کلاسهای چارچوب (FCL)، و تکنولوژیهایی مانند WPF، WCF، و Entity Framework اشاره کرد که همگی به توسعهدهندگان امکان میدهند برنامههای پیچیده و کاربردی را به راحتی و با کارایی بالا بسازند.
همچنین، ویژگیهایی همچون LINQ ،TPL و پشتیبانی از خدمات وب و برنامههای موبایل، موجب شدهاند که NET. فریمورک یکی از انتخابهای اصلی برای توسعه نرمافزار در دنیای مدرن باشد. این مجموعه از ابزارها و تکنولوژیها به توسعهدهندگان کمک میکند تا بتوانند برنامههایی با عملکرد بالا، قابلیت مقیاسپذیری و امنیت مناسب ایجاد کنند.
تشکر از مطالب ارزشمندی که در اختیار ما قرار دادید