ابتدا | مقالات
عنوان مقاله: چارچوب دات نت (NET Framework.)
مترجم: سيامک
تاريخ: بهمن 82
مرجع: Developing Web Applications, Microsoft Press
فايل همراه: ندارد

چارچوب "دات نت" (.NET Framework)

(ترجمه: سيامک ، سايت برنامه نويس ايراني . از بحث در مورد مطالب اين مقاله در محيط هاي بحث برنامه نويس ايراني استقبال ميشود. کليه حقوق اين ترجمه براي سايت برنامه نويس ايراني محفوظ است. ذکر مقاله با درج نام و آدرس دقيق اينترنتي سايت برنامه نويس ايراني در ابتداي مقاله مجاز است.)

چارچوب دات نت (.NET Framework)، سکوي برنامه نويسي جديد ميکروسافت براي تهيه برنامه هاي ويندوز و "وب" است و از دو قسمت مهم تشکيل گرديده است.

1- يک موتور اجرا (execution engine) که مانند موتور جاوا برنامه هاي اجرايي دات نت تحت آن اجرا ميگردند و به نام اجرا کننده زبان مشترک (common language runtime, CLR) خوانده ميشود.

2- يک کنابخانه کلاسهاي برنامه نويسي که توابع ا صلي برنامه نويسي شامل توابع سيستمي که قبلا توسط Windows API در دسترس قرار ميگرفتند ، توابع برنامه نويسي وب (ASP.NET) ، توابع دسترسي به داده ها (ADO.NET) ، امنيت و مديريت از راه دور را در بر ميگيرد.

برنامه هاي دات نت همانند برنامه هاي مرسومي که شما عادت به ساختن و نوشتن آنها داشتيد اجرا نميگردند. برنامه هاي دات نت برخلاف برنامه هاي مرسوم که با کامپايل ، به کد زبان ماشين قابل اجرا توسط ميکروپروسسور (native code) تبديل ميشدند ، اينبار به يک زبان مياني به نام "زبان مياني ميکروسافت" (Microsoft Intermediate Language MSIL) ترجمه ميشوند. کدهاي مياني در فايلهايي به نام Assembly (آنرا با زبان اسمبلي اشتباه نگيريد) ذخيره ميگردند که اين فايلها با پسوندهاي DLL و exe قابل اجراي دات نت ميباشند. اين کد ها بصورت مستقيم توسط ريزپرداز کامپيوتر قابل اجرا نميباشند و در هنگام اجرا ابتدا تحويل موتور اجرا کننده زبان مشترک يا CLR که قبلا در مورد آن اشاره کرديم ميگردند. CLR کد مياني فايلهاي Assembly را در همان هنگام اجرا و بصورت همزمان با آن به کد زبان ماشين قابل اجرا توسط ميکروپروسسور ترجمه کرده و تحت نظارت خود اجرا ميکند. نظارت CLR در هنگام اجرا شامل مديريت حافظه ، کنترل صحت نوع متغيرها (type safety check) و مسائل ديگر ميگردد. تصوير زير نحوه انجام اين مراحل را نشان ميدهد.



برنامه هايي که توسط و تحت CLR اجرا ميشوند برنامه هاي مديريت شده (managed code) ناميده ميشوند زيرا CLR بيشتر کارهايي را که قبلا در داخل کد برنامه انجام ميشد را بعهده ميگيرد و همچنين برنامه تحت مراقبت CLR اجرا ميگردد. کد مديريت شده بسياري از مشکلات برنامه نويسي تحت ويندوز را حل ميکند از جمله ثبت اجزاء (Component Registration) و نسخه بندي ( که مشکل نسخ متفاوت از DLL ها و توابع مختلف در نسخ مختلف يک DLL را بوجود مي آورد و به نام جهنم DLL ها مشهور شده بود) را حل ميکند زيرا يک اسمبلي Assembly علاوه بر کد شامل اطلاعات لازم براي نسخه بندي نيز ميباشد و ديگر لازم نيست اين اطلاعات در رجيستري مانند آنچه در مدل اجزاء COM مرسوم بود ، ذخيره گردد. همچنين در يک سيستم بطور همزمان ميتوان چندين نسخه از يک اسمبلي را با توانايي ها و محتويات متفاوت داشت بدون اينکه مشکل تلاقي آنها با هم پيش بيايد.

کتابخانه کلاسها امکان دسترسي به تمام امکانات CLR را فراهم ميکند. کتابخانه کلاسهاي دات نت با استفاده از فضاهاي نام (namespaces) تقسيم بندي گرديده است. هر فضاي نام شامل توابع مرتبط با يک قابليت يا موضوع خاص است.جدول زير تعدادي از فضاهاي نام مهم مورد استفاده را معرفي مينمايد.
 

 

طبقه بندي فضاي نام (Namespace) کلاسهاي فراهم شده
نوعهاي عمومي System کليه نوع هاي داده عمومي شامل رشته ها و نوعهاي عددي. اين کلاسها شامل توابعي براي تبديل نوعها ، دستکاري رشته ها و آرايه ها، رياضيات و اعداد تصادفي ميشوند.
دسترسي به داده ه System.Data, System.Data.Common, System.Data.OleDb, System.Data.SqlClient, System.Data.SqlTypes دسترسي به پايگاههاي اطلاعاتي شامل کلاسهايي که امکان اتصال به پايگاههاي داده ، اجراي دستورات برروي پايگاههاي داده ، دريافت و تغيير داده ها
يافتن خط System.Diagnostics اجراو يافتن خطاهاي برنامه
دسترسي به فايله System.IO, System.IO.IsolatedStorage, System.DirectoryServices دسترسي به فايل سيستم شامل خواندن ، نوشتن فايلها دريافت مسيرفايلها و ليست فايلها و از اين قبيل
ارتباطات شبکه System.Net, System.Net.Sockets ارتباطات برروي اينترنت از طريق پروتکل هاي سطح پايين شامل TCP/IP وکلاسهايي براي ساختن برنامه هاي peer-to-peer
امنيت System.Security, System.Security.Cryptography, System.Security.Permissions, System.Security.Policy, System.Web.Security شناسايي کاربر، کنترل دسترسي کاربر ، رمزنمودن اطلاعات
برنامه هاي تحت وب System.Web, System.Web.Caching, System.Web.Configuration, System.Web.Hosting, System.Web.Mail, System.Web.SessionState, System.Web.UI, System.Web.UI.Design, System.Web.UI.WebControls, System.Web.UI.HtmlControls کلاسهاي لازم براي ساختن برنامه هاي کلاينت – سرور که به شکل وب اجرا ميگردند. اين کلاسها هسته برنامه هاي کاربردي ASP.NET را شامل ميگردند.
وب سرويسه System.Web.Services, System.Web.Services.Configuration, System.Web.Services.Description, System.Web.Services.Discovery, System.Web.Services.Protocols ساختن و انتشار اجزائي که قابل استفاده از روي اينترنت ميباشند. اين کلاسها شامل هسته لازم براي ساختن "وب سرويسها" با استفاده از ASP.NET ميگردند.
برنامه هاي تحت ويندوز System.Windows.Forms, System.Windows.Forms.Design ساختن برنامه هاي تحت ويندوز با استفاده از اجزاء رابط کاربر ويندوز . اين کلاسها امکان استفاده از فرمهاي ويندوزي ، اجزاء ويندوزي و ساختن اجزاء را فراهم مينمايند.
داده هاي XML System.Xml, System.Xml.Schema, System.Xml.Serialization, System.Xml.Xpath, System.Xml.Xsl ساختن و دسترسي به فايلهاي XML


از آنجائيکه فضاهاي نام در دات نت بر اساس کارآيي توابع و کلاسها دسته بندي گرديده است ، يافتن توابع مربوط به توانايي مورد نظر شما در CLR بسيار راحت تر گرديده است. براي مثال فضاي نام سيستم که يکي از مهمترين و پر استفاده ترين فضاهاي نام موجود در دات نت ميباشد ، شامل کلاسهايي براي اعمال مهم بر روي نوعها شامل رشته ها و نوعهاي عددي ميگردد. هرگاه که متغييري عددي ، رشته اي يا ازنوع آرايه تعريف ميکنيد درواقع از فضاي نام System استفاده مينماييد.

اين خط مشي به چارچوب دات نت توانايي داشتن توابع داخلي براي تبديل نوعها و دستکاري رشته ها و آرايه ها را بطور موثر تر داده است. براي مثال خطوط کد آمده در زير متدهاي داخلي کلاسهاي رشته و آرايه را براي مرتب سازي يک ليست مورد استفاده قرار ميدهند


Visual Basic .NET:
' Declare and initialize a string.
Dim strFruit As String = "oranges apples peaches kumquats nectarines mangos"
' Declare an array.
Dim arrFruit As String()
' Place each word in an array element
arrFruit = strFruit.Split(" ")
' Sort the array.
System.Array.Sort(arrFruit)
' Put the sorted data back in the string.
strFruit = String.Join(" ", arrFruit)

Visual C#:
// Declare and initialize a string.
string strFruit = "oranges apples peaches kumquats nectarines mangos";
// Declare an array
string[] arrFruit;
// Place each word in an array element.
arrFruit = strFruit.Split(" ".ToCharArray());
// Sort the array.
System.Array.Sort(arrFruit);
// Put the sorted array back in the string.
strFruit = System.String.Join(" ", arrFruit);
 

تعداد زيادي از متد هاي کلاسهاي مربوط به فضاي نام System بدون ساختن يک شيئي (object) از روي کلاس ، قابل استفاده ميباشند. اين متد ها در Visual Basic.NET اعضاي اشتراکي و در Visual C# اعضاي ثابت (Static Members) ناميده ميشوند. اعضاي ثابت با استفاده از نام کلاس بطور مستقيم قابل فراخواني ميباشند. مثالي از اين مسئله را در کد بالا در خطي که از System.Array.Sort استفاده ميکند ، ديديد. مثال ديگري از اين مسئله در استفاده از متد هاي Pow و Pi در زير نشان داده شده است.


Visual Basic .NET
' Get the area of a circle.
dblCircArea = System.Math.Pi * System.Math.Pow(intRadius, 2)

Visual C#
// Get the area of a circle.
dblCircArea = System.Math.PI * System.Math.Pow(intRadius, 2);


دات نت استفاده از قابليت هاي کلاسها را با حذف مرحله ساختن شيئي از کلاسهاي داراي عضو ثابت يا اشتراکي ( توجه داشته باشيد که همه کلاسها عضو ثابت ندارند ) آسان تر کرده است.
چارچوب دات نت حدود 100 فضاي نام مختلف را در بر ميگيرد. از اين تعداد فقط 40 فضاي نام مهم در جدول فوق بطور خلاصه معرفي گرديده اند. براي ديدن ليست کاملي از اين کلاسها ميتوانيد به موضوع “Class Library” در راهنماي محيط برنامه نويسي دات ت (Visual Studio .NET) مراجعه کنيد.
 

زبانهاي برنامه نويسي

چارچوب دات نت از زبان برنامه نويسي مستقل است. اين بدين معني است که شما براي نوشتن يک برنامه دات نت ميتوانيد از هر زباني که کامپايلر سازگار با CLR دارد استفاده کنيد. مايکروسافت علاوه بر ارائه زبانهاي برنامه نويسي خود با توليد کنندگان زبانهاي ديگر مانند دلفي ، پرل ، ايفل ، کوبول ، پيتون ، اسمال تاک و... براي پشتيباني آن زبانها همکاري کرده است.

در حال حاضر زبانهاي Visual Basic .NET و Visual C# مرسومتر از بقيه زبانها هستند. اين دو زبان قابليت هاي مشابهي را براي ساختن برنامه هاي وب و ويندوز ارائه ميکنند. بيشتر تفاوتهاي اين دو زبان در کلمات کليدي بکار رفته ميباشند.

بدينترتيب برنامه نويسان ميتوانند زباني را انتخاب کنند که با آن بيشتر آشنا هستند. برنامه نويساني که هم اکنون با Visual Basic آشنايي دارند با برنامه نويسي Visual Basic .NET راحت تر خواهند بود و برنامه نويسان C و C++ با زبان Visual C# احساس راحتي بيشتري خواهند کرد.

اگر شما بتازگي ميخواهيد برنامه نويسي را فرا بگيريد و يا تصميم به يادگيري يک زبان جديد براي افزايش توانايي هايتان گرفته ايد ، يادگيري C# و VB.NET هردو اهدافي کاملا عملي ميباشند.

مرجع :
Microsoft Press, Developing Web Applications with Visual Basic.NET and Visual C#.NET
 


در صورتيکه سوالاتي در مورد هرکدام از مقالات اين بخش داريد سوال خودرا در تابلوهاي بحث و تبادل نظر برنامه نويس ايراني مطرح نماييد.

(ح) کليه حقوق مربوط به مقالات منتشر شده در اين سايت براي سايت برنامه نويس ايراني و نويسنده يا مترجم مقاله  محفوظ ميباشد. انتشار مقالات تنها با ذکر مرجع و تنها با اجازه کتبي سايت برنامه نويس ايراني مجاز ميباشد.

تابلوهاي بحث
از تابلوهاي بحث براي مطرح کردن مشکلات و سوالات خود استفاده نماييد.

مطالب گسترده اي در تابلوهای بحث مورد بررسي قرار ميگيرند که مسلما براي شما مفيد خواهند بود.

ورود به تابلوهای گفتگو

تبليغات
 
نشريه برنامه نويس ايراني
نشريه برنامه نويس ايراني هر 2 ماه يکبار منتشر ميگردد و محتوي مقالاتي خواهد بود که مناسب براي سطوح مختلف برنامه نويسان باشد.

براي اشتراک در نشريه ماهانه برنامه نويس ايراني بر روي آدرس زير اشاره کرده و سپس در پنجره ظاهر شده آدرس پست الکترونيک خود را وارد کرده و دکه ارسال را فشار دهيد.

هرماه يک نسخه از نشريه با فرمت PDF برای شما ارسال خواهد شد.

اشتراک نشريه الکترونيک

ابتدا | تابلوهاي بحث | درباره ما
(ح) 1381-1382  کليه حقوق براي برنامه نويس ايراني محفوظ است.