چراNET.؟
در گذشته زبانهای برنامهسازی، سیستمهای عامل و محیطهای اجرایی نرمافزارها برای دورهای خاص ساخته میشدند. هنگامیکه برنامهها از محیطهای رومیزی(Desktop) به اینترنت منتقل میشدند، ابزارهای موجود نیازمند API هایی اضافی و قابلیتهای دیگری بودند. بیشتر این قابلیتها در کنار زبانهای برنامهسازی بعنوان ابزارهایی جهت رفع این نیازمندیها ارائه میشدند. هرچند این ابزارهای اضافی بصورت قابل توجهی نیازمندیها را حل کرده و باعث رسیدن اینترنت به وضعیت کنونی شدند، اما همچنان مسائل بسیاری وجود داشت که نیاز به حل شدن داشتند.
NET. به منظور پشتیبانی از کاربردهای عصر جدید اینترنت ساخته شد. مواردی همچون گسترش، امنیت و versioning، که از مسایل مهممی بودند، توسط NET. پوشش داده شدند. قسمت مرکزیNET. بخش CLR (Common Language Runtime) است که یک موتور اجرایی مجازی است که از توسعه، امنیت و ارتقای نسخه کد پشتیبانی مینماید. در گذشته چنین امکاناتی برای کدهای کامپایل شده فراهم نبود. بدلیل اینکهNET. توانست بر این مشکلات اساسی فائق آید، راه حل قدرتمندتری جهت ساخت برنامههای تحت اینترنت به شمار میرود.
NET. چیست؟
NET. محیطی جهت ساخت برنامههای توزیع شده است که شامل ابزارهایی نظیر ""کتابخانه کلاسهای پایه"(BCL: Base Class Library)، CLR و زبانهای برنامهنویسی است. این ابزارها امکان ساخت انواع مختلفی از نرمافزارها، از قبیل فرمهای ویندوز، ADONET.، ASPNET. و سرویسهای وب، را فراهم میآورند.
فرمهای ویندوز، مجموعهای از کتابخانهها جهت ساخت رابطهای کاربر گرافیکی برای برنامههای کاربردی است. این کتابخانهها اغلب API های Win32 را در خود دارا میباشند. همچنین امکان استفاده از رهیافت شیگرایی را جهت تولید آسان برنامههای تحت ویندوز، فراهم میآورند.
ADONET. مجموعهای از کلاسهای شیگرایی است که جهت ساخت مولفههای داده و سطوح دسترسی داده در برنامههای n-tiered مورد استفاده قرار میگیرد.
ASPNET. شامل مدل برنامهنویسی فرمهای وب است که بوسیله آن برنامههای تحت وب ساخته شده و تحت اینترنت قابلیت اجرا پیدا کرده و از طریق مرورگر(Browser) قابل دسترسی میباشند. این روش مدل بهبود یافته برنامهسازی وب است که در آن کدها در سرور کامپایل میشوند ولی همانند صفحات HTML در کامپیوتر مشتری اجرا میشوند.
سرویسهای وب، رهیافتی جدید، مستقل از platform و استاندارد، جهت ایجاد ارتباط و فعالیت بین سیستمهای ناهمگون در اینترنت، میباشند. سرویسهای وبNET.، از زیر ساخت شیگرایی برنامهنویسی ASPNET. استفاده میکنند، اما همچنان از استانداردهای باز و مدلی بر پایه پیغام(Message Based Model) استفاده مینمایند. استفاده از استانداردهای باز از قبیل XML، WSDL و UDDI باعث میشوند تا سرویسهای وب با سایر سرویسهای وب استاندارد که پیادهسازیهایی متفاوت دارند، بدون توجه به محیط و platform آنها، ارتباط برقرار نمایند.
این چند نمونه، اندکی از انواع مختلف نرمافزارهایی بودند که میتوان تحتNET. به پیادهسازی آنها پرداخت.
کتابخانههای کلاسهای پایه(Base Class Library: BCL)
BCL درNET.، شامل هزاران نوع قابل استفاده، جهت افزایش بهرهوری در ساخت برنامههایNET. است. به علت گستردگی BCL یادگیری تمام کلاسهای آن وقتگیر بوده و امکان پذیر نمیباشد، به همین دلیل برای صرفهجویی در زمان بهتر است قبل از ایجاد یک نوع خاص به جستجوی نوعهای موجود در BCL بپردازیم. نگاهی کلی به BCL میتواند بسیار سودمند باشد. جدول زیر Namespace های مهم و توضیح نوعهای مختلف BCL را نمایش میدهد.
NET. Namespaces
Namespace Description
System The most commonly used types.
System.CodeDom Allows creating types that automate working with source code, that is, compilers and code creation tools.
System.Collections Collection types such as ArrayList, Hashtable, and Stack.
System.ComponentModel Supports building reusable components.
System.Configuration Types for working with various kinds of XML configuration files.
System.Data Most of the types for ADONET. database programming. Other types are in namespaces that are specific to a database or data interface.
System.Diagnostics Process, EventLog, and Performance Counter types.
System.DirectoryServices Managed interface for accessing Windows Active Directory Services.
System.Drawing GDI+ types.
System.EnterpriseServices COM+ types.
System.Globalization Types for culture-specific support of calendars, formatting, and languages.
System.IO Directory, File, and Stream types.
System.Management APIs for performing WMI tasks.
System.Messaging Types for working with message queues.
SystemNET. Access to networking protocol types.
System.Reflection Reflection APIs for inspecting assembly metadata.
System.Resources Types for culture-specific resource management.
System.Runtime COM Interop, Remoting, and Serialization support.
System.Security Code access security, role-based security, and cryptography types.
System.ServiceProcess Types for building Windows Services.
System.Text Text encoding/decoding, byte array from/to string translation, the StringBuilder class, and regular expressions.
System.Timers Timer types.
System.Threading Threads and synchronization types.
System.Web HTTP Communications, ASPNET., and Web Services types.
System.Windows Windows Forms types.
System.XML All XML support types, including XML Schema, XmlTextReaders/XmlTextWriters, XPath, XML Serialization, and XSLT.
جدول 1-1 Namespaceهای مهم و رایج
هر Namespace مجموعهای از کلاسهای از پیس ساخته شده NET. است که میتوان از آنها در برنامههای مختلف استفاده نمود.
(Common Language Runtime)CLR
CLR یک موتور اجرایی است که با هدف اصلی اجرای هدایت شده کدها درNET. ایجاد گردیده است. CLR به مدیریت اجرا، ارتقای نسخه و امنیت تمامی کدها درNET. میپردازد. به همین دلیل کدهایNET. یا C# اغلب تحت عنوان کدهای مدیریت شده، شناخته میشوند.(Managed Code) تمامی کدهایی که به CLR مرتبت هستند، تحت عنوان "مدیریت شده" و کدهایی توسط CLR مدیریت نشدهاند، بلکه مستقیماً به کد ماشین تبدیل میشوند، تحت عنوان "مدیریت نشده" بیان میشوند.
کدهای مدیریت شده، به کد ماشین کامپایل نمیشوند، بلکه به زبان سطح میانی مایکروسافت(MSIL) کامپایل شده و مورد استفاده قرار میگیرند. این زبان سطح میانی را میتوان زبانی شبیه به زبان اسمبلی تصور کرد. IL در حافظه بارگذاری میشود و بلافاصله بوسیله CLR در حافظه به کد ماشین کامپایل میگردد.