بدست آوردن مشخصات سیستم در VB.NET

این مقاله شامل ترفندهایی جهت بدست آوردن مشخصات سیستم مانند نام ماشین، ورژن سیستم عامل و همچنین کاربردهای آنهاست.

در این مقاله به بررسی روشهایی پرداخته میشود که به کمک آن می‌توان چند مشخصه از مشخصات سیستم را بدست آورد و از آنها در برنامه‌های کاربردی خود استفاده کرد. این ویژگیها با استفاده از فضانام System.Environment بدست می آیند. کلاس Environment شامل اطلاعاتی در مورد محیط کار و پلات‌فرم حاضر روی سیستم و همچنین وسایلی در این زمینه می باشد. این کلاس نمی‌تواند به ارث برده شود.

نام ماشین (MachineName):
به کار بردن خصوصیت MachineName از این کلاس نام NetBIOS کامپیوتر مربوطه را برمی‌گرداند. با بکار بردن کد زیر در رویداد کلیک یک Button می‌توان نام ماشین را در یک جعبه متن نمایش داد:

کد:
TextBox1.Text = System.Environment.MachineName.ToString


ورژن سیستم عامل (OSVersion):
با استفاده از خصوصیت OSVersion می‌توانید ورژن سیستم عامل کامپیوتر کاربر را شناسایی کنید. برای مثال با بکار بردن کد زیر روی ویندوز ایکس پی، عدد 5.1.2600 به عنوان نتیجه برگردانده میشود.

کد:
TextBox1.Text = System.Environment.OSVersion.ToString


از موارد استفاده این خصوصیت می‌توان به کنترل نسخه ویندوز قبل از اجرای برنامه اشاره کرد. به عنوان مثال اگر برنامه شما برای اجرا روی ویندوز ایکس پی نوشته شده است با کنترل مقدار خروجی این خصوصیت از اجرای آن روی نسخه‌های پایین‌تر ویندوز جلوگیری شود.


دایرکتوری سیستم (SystemDirectory):
خصوصیت SystemDirectory، نام دایرکتوری سیستم کاربر را برمی‌گرداند. من با اجرای این کد در کامپیوترم نتیجهء F:WinNTSystem32 را گرفتم. (ویندوز ایکس پی من روی درایو F نصب شده است).

کد:
TextBox1.Text = System.Environment.SystemDirectory.ToString


نام دامنه (UserDomainName):
این خصوصیت نام دامنه شبکهء کامپیوتر میزبان را اعلام میکند. مقدار این خصوصیت به طور معمول همان نام کامپیوتر میزبان است. برنامه شما باید تحت ویندوز ان تی 3.1 و یا بالاتر از به اجرا درآید؛ درغیراینصورت یک استثناء برپا خواهد شد (PlatformNotSupportedException).

کد:
TextBox1.Text = System.Environment.UserDomainName.ToString


نام کاربر (UserName):
مقدار خروجی این خصوصیت نام کاربری شخصی است که به سیستم وارد شده است. این خصوصیت می‌تواند جهت شناسایی کاربر حاضر در سیستم به کار گرفته شود و از آن برای کنترل دسترسی به برنامه و اهداف امنیتی بهره برد. از دیگر کاربرد‌های این خصوصیت، سفارشی کردن برنامه برای هر کاربر است.

کد:
TextBox1.Text = System.Environment.UserName.ToString


ورژن CLR ‏(Version):
این خصوصیت نگارش زبان معمول زمان اجرا (Common Language Runtime) را برمی‌گرداند.

کد:
TextBox1.Text = System.Environment.Version.ToString



TickCount:
این ویژگی یکی از ویژگیهای جالب ویندوز است که کاربردهای فراوانی دارد. این خصوصیت یک عدد 32 بیتی را برمی‌گرداند که نشان دهندهء زمانی است (بر حسب میلی ثانیه) که از روشن شدن سیستم میگذرد. این مقدار از تایمر سیستم گرفته میشود و در یک متغیر عددی 32-بیتی علامتدار ذخیره میشود. با توجه به اینکه این مقدار 32 بیت طول دارد، بنابراین اگر سیستم شما 24.9 روز روشن بماند، این مقدار صفر شده و ازنو شروع به شمردن میکند. دقت کنید این خصوصیت نمی تواند کمتر از 500 میلی ثانیه باشد. با بکار بردن کد زیر میتوان این مقدار را در یک جعبه متن نمایش داد:

کد:
TextBox1.Text = System.Environment.TickCount.ToString


از جمله کاربردهای خصوصیت TickCount میتوان به محدود کردن زمان استفاده از کامپیوتر توسط کاربر اشاره کرد که میتواند کاربردهای فراوانی داشته باشد.

نکته: توجه داشته باشید که TickCount با Tick تفاوت دارد. Tick عددی است با وقفه های به مدت 100 نانو ثانیه که شامل مدت زمانی است که از ساعت 12:00am مورخ 1/1/0001 میگذرد. این خصوصیت را میتوانید با استفاده از System.DateTime.Now.Ticks بدست بیاورید.

دات نت

دات نت برای شروع
از زمان معرفی دات نت توسط مایکروسافت در تابستان 2000 ، تعداد زیادی از علاقه مندان به دنیای گسترده کامپیوتر خصوصا" طراحی و پیاد ه سازی نرم افزار، همواره با این سوال مواجه بوده و هستند که دات نت چیست و استفاده از آن چه دستاوردهائی را برای استفاده کنندگان بدنبال خواهد داشت ؟ اجازه دهید تعریف دات نت را عینا" از خود مایکروسافت نقل و قول نمائیم :" دات نت ، پلات فرم مایکروسافت برای سرویس های وب XML است " . بمنظور شناخت تمامی ابعاد دات نت لازم است به موارد زیر نیز توجه گردد :
• دات نت ، پلات فرمی جدید بمنظور پیاده سازی و بکارگیری برنامه های مدیریت یافته ، شی گراء و پیشرفته است .
• بمنظور پیاده سازی برنامه های دات نت می توان از زبان های برنامه نویسی متفاوتی استفاده کرد (کد تولید شده توسط کمپایلر ، Runtim دات نت خواهد بود ) .
• دات نت ، کتابخانه کلاس گسترده ای را ارائه می نماید.
• دات نت ، روشی جدید بمنظور پیاده سازی برنامه تحت ویندوز ( Desktop application ) را با استفاده از کلاس های فرم های ویندوز ، ارائه می نماید .
• دا ت نت، امکان تشریح خودکار عناصر نرم افزاری را ارائه و حمایت می نماید .
• دات نت ، امکاناتی نظیر : ارتباط بین زبان ها ، عناصر مستقل از زبان برنامه نویسی با قابلیت استفاده مجدد و توارث در بین زبان ها را ارائه می نماید .
• دات نت ، روش جدیدی برای پیاده سازی برنامه های مبتنی بر مرورگر ( برنامه های وب ) را با استفاده از کلاس های ASP.NET ، ارائه می نماید.
• کلاس های ADO.NET مربوط به دات نت ، یک معماری جدید غیر متصل برای دستیابی به داده ه از طریق اینترنت را ارائه می نما یند .
• دات نت ، امکان ایجاد سرویس های وب XML مستقل از پلات فرم را با استفاده از استانداردهائی نظیر :
SOAP)Simple Object Access Protocol) و WSDL)Web Service Description Langauge ) ارائه می نماید .
• دات نت، یک معماری جدید برای پیاده سازی و بکارگیری اشیاء راه دور را ارائه می نماید .
• دات نت ، تکنولوژی ها ی متعددی از ویندوز را حمایت می نماید.
بنظر حکایت دات نت همچنان ادامه و ما با واقعیتی بسیار بزرگ و توانمند روبر هستیم . برای شرکت مایکروسافت مهمترین تحول پس از عرضه ویندوز ، معرفی دات نت است . پیاده کنندگان نرم افزاری که تمایل به استفاده از پلات فرم فوق را دارند ، می بایست بسرعت با چارچوب و مفاهیم اولیه آن آشنا شده تا زمینه استفاده معقول و منطقی از آن فراهم گردد.
پیاده سازی در دات نت
برای پیاده کنندگان نرم افزار تحت ویندوز ، دات نت امکانات متعددی را از ویژوال ++ C تا ویژوال بیسیک ارائه می نماید .دات نت ،مستقل از نوع زبان برنامه نویسی بوده و در این راستا کمپایلرهای متعددی برای چندین زبان طراحی و پیاده سازی شده و تمهیدات لازم درخصوص طراحی و پیاده سازی کمپایلرهای دیگر نیز انجام شده است . در حال حاضر از زبان های C#, Visual Basic .NET, JScript .NET, COBOL, Perl, Python, Eiffel, APL ، می توان استفاده کرد. دات نت از زبان های فوق مستقیما" حمایت نمی نماید . در حقیقت ، دات نت صرفا" قادر به درک یک زبان بیشتر نیست . زبان فوق ، زبان میانی مایکروسافت ( Microsoft Intermediate Languge :IL ) نامیده می شود.

یک پلات فرم مستقل از زبان
از یک کمپایلر اختصاصی هر زبان، بمنظور ترجمه کدهای نوشته شده به IL ، استفاده می گردد.خروجی فرآیند ترجمه ، شامل IL و متا دیتا است .IL ، را می توان بمنزله یک زبان اسمبلی برای یک پردازنده مجازی stack-based دات نت تصور نمود . از این زاویه ، عملکرد IL ، مشابه کدهای P تولیده شده در نسخه های اولیه ویژوال بیسیک و یا بایت کدهای منتشر شده توسط یک کمپایلر جاوا ، است . ( IL ، قبل از اجراء بطور کامل ترجمه خواهد شد) . IL ، برای یک زبان خاص طراحی نشده است . عبارات IL ، نوع های متداول به اشتراک گذاشته شده را که توسط تمامی زبانهای دات نت ،استفاده می گردد ، پردازش می نمایند . سیستم نوع فوق ، CTS ) Common Type System) ، نامیده می شود. یک نوع دات نت، چیزی بمراتب بیشتر از یک نوع داده است . نوع های دات نت ، عموما" توسط کلاس هائی شامل کد و اعضاء داده تعریف می گردند. در زمان اجراء ، CLR)Common Language Runtime) ، مسئولیت استقرار یک برنامه دات نت در حافظه و اجرای آن را برعهده خواهد داشت .بمنظور نیل به هدف فوق ، CLR از تکنیکی با نام JIT) Just-In-Time) بمنظور ترجمه IL به کد مختص و وابسته به یک ماشین استفاده می نماید . کد دات نت ،همواره ترجمه و هرگز تفسیر نمی گردد ، بنابراین دات نت از یک ماشین مجازی بمنظور اجراء برنامه استفاده نکرده و در مقابل کد IL برای هر متد براساس کمپایلر JIT در اولین فراخوانی ترجمه خواهد شد. در مرتبه بعد که یک متد صدا زده می شود ، کد ترجمه شده توسط JIT ، اجراء خواهد شد .

ماحصل فرآیند ترجمه ، تولید یک فایل اجرائی ویندوز با فرمت PE)Portable Executable) ، است .در رابطه با فایل فوق ، ذکر دونکته ضروری است : اول اینکه ، CLR از زبان استفاده شده برای تولید برنامه و یا عنصر مورد نظر آگاهی نداشته و صرفا" به کدهای IL توجه خواهد داشت .ثانیا" ، در تئوری استفاده ازکمپایلر JIT تمام عملیات مورد نیاز بمنظور استفاده از پتانسیل های دات نت است .
دات نت و کد مدیریت یافته ( اداره شده )
نحوه اجراء برنامه های دات نت تابع مدلی است که در شکل فوق ، نشان داده شده است . کد تولید شده که مقصد آن CLR فریمورک دات نت باشد را برنامه های مدیریت یافته ( managed applications ) می گویند. در مقابل،برنامه های ویندوز غیر از دات نت با نام برنامه های غیرمدیریت یافته ( unmanaged applications ) از آنان یاد می گردد. مایکروسافت بر این مسئله تاکید نموده است که در حال حاضر و طی سالیان آتی نیاز به این نوع برنامه ها وجود داشته( برنامه های غیرمدیریت یافته ) و تمهیدات لازم در خصوص ارتباط بین آنها اندیشیده شده است. متداولترین نیاز در این رابطه، همزیستی برنامه های دات نت در کنار عناصر COM است . بدین منظورمایکروسافت ، امکان فعالیت و کار برنامه های دات نت را با عناصر غیرمدیریت یافته COM ، فراهم نموده است . در این راستا می توان یک عنصر دات نت را بعنوان یک شی COM ریجستر کرد. در رویکردی مشابه ، دات نت امکان دستیابی به Win32 API برای برنامه های دات نت را فراهم تا از این طریق و در صورت تمایل و ضرورت ، عناصر مدیریت یافته قادر به فراخوانی توابع غیر مدیریت یافته موجود در یک DLL)Dynamic Link Library) ، باشند .
CLR ، علاوه بر اینکه امکان ترجمه کدهای IL را به کد مختص یک ماشین فراهم می نماید ، عملیات مدیریتی لازم در خصوص برنامه ها را نیز انجام خواهد داد. استقرار یک برنامه در حافظه ، بررسی صحت کد ، حفاظت برنامه ها از یکدیگر ، تاکید بر مسائل امنیتی ، ارائه سرویس های اشکال زدائی ، نمونه هائی از خدمات ارائه شده توسط CLR می باشند . مدیریت کد توسط CLR ، یک لایه اضافه را ارائه و باعث جداسازی برنامه ها از سیستم عامل می گردد . در گذشته سرویس های ارائه شده توسط لایه فوق در خود برنامه و با استفاده از امکانات ارائه شده سیستم عامل ارائه می گردید.
متا دیتا و ضرورت انتشار و همراهی آن با کد IL یکی از جنبه های کلیدی دات نت است . برای افرادیکه با COM و CORBA آشنائی دارند ، متا دیتا بمنزله شکل خاصی از یک IDL)Interface Definition Language) بوده که بصورت اتوماتیک توسط کمپایلر زبان مربوطه تولید می گردد. متادیتا مسئول تشریح نوع ها ، شامل فیلدهای مربوطه ، خصلت ها ، امضاء( تائید) متد بوده و عملیات حمایتی لازم را در این خصوص ارائه می نماید. با تولید اتوماتیک این داده در زمان ترجمه ، عناصر دات نت بصورت خود تشریح شده و نیازمند سایر اطلاعات مورد نیاز برای استفاده از عناصر دات نت نوشته شده با زبانهای برنامه نویسی متفاوت بمنظور ارتباط یین آنها وجود نخواهد داشت .
اولین برنامه دات نت
برنامه زیر ، یک برنامه خط دستوری نوشته شده با زبان #C بوده که به کاربر یک پیام را نمایش می دهد .
برنامه نمونه دات نت نوشته شده با C#
// file : hello.cs
// compile : csc hello.cs
using System;
class Hello {
public static void Main() {
Console.WriteLine("Hello from C#");
}
}
هر برنامه #C، می بایست شامل حداقل یک کلاس باشد . در مثال فوق، کلاس مورد نظر Hello بوده و متد Main نقطه ورود برنامه و محلی است که از آنجا برنامه آغاز می گردد. بمنظور نمایش پیام دلخواه از متد WriteLine کلاس Console استفاده شده است.( کلاس فوق در namespace با نام System وجود داشته و بعنوان بخشی از کتابخانه کلاس فریمورک دات نت محسوب می گردد). در ابتدای برنامه تمهیدات لازم در خصوص تعریف System namespace اندیشیده شده است ( using System ).بدین ترتیب امکان استفاده از namespace فوق ، در طول برنامه وجود داشته و می توان از کلاس های موجود در namespace فوق ، استفاده کرد.مثال فوق ، نحوه استفاده از کتابخانه کلاس فریمورک دات نت ( یک مخزن عظیم از کلاس های مفید، قابل استفاده در تمامی برنامه های دات نت ) را نشان می دهد. کلاس های فوق ، بر اساس نوع عملکرد گروه بندی و در namespace ها ، سازماندهی شده اند. بمنظور ترجمه برنامه فوق ، به یک نسخه از فایل NET SDK و یا ویژوال استودیو دات نت نیاز خواهد بود. برای ترجمه و اجراء مثال فوق ، از طریق خط دستور،کمپایلر # C را بصورت زیر فعال می نمائیم :
csc hello.cs
بمنظور مقایسه اولیه زبان C# و VB.NET ، کد مثال فوق را با ویژوال بیسیک دات نت ، بازنویسی می نمائیم .
برنامه نمونه دات نت نوشته شده با VB.NET
' file : hello.vb
' compile : vbc hello.vb
Imports System
module Hello
sub main()
Console.WriteLine("Hello from VB.NET")
end sub
end module
همانگونه که مشاهده می شود ، نسخه ویژوال بیسیک دات نت مثال فوق، شباهت زیادی با نسخه نوشته شده #C دارد. برنامه ویژوال بیسیک دات نت نیز از کلاس Console مربوط به System namespace استفاده می نماید. کتابخانه کلاس فریمورک دات نت بخشی از پلات فرم دات نت بوده و بمنظور استفاده در یک زبان خاص ایجاد نشده است .
در حالت کلی تفاوت های اندکی بین # C و ویژوال بیسیک دات نت وجود داشته که عمدتا" به نوع گرامر برمی گردد . برنامه نویسان # C و ویژوال بیسیک دات نت از کلاس های مشابه فریمورک استفاده و با جنبه ها و مفاهیم مشترکی در رابطه با دات نت نظیر : namespace ، کلاس ها ، CLR سروکار دارند . برنامه های نوشته شده توسط هر یک از زبانهای فوق پس از ترجمه به IL تبدیل خواهد شد . در صورتیکه کد تولید شده IL هر یک از برنامه های نوشته شده با #C و یا ویژوال بیسیک دات نت را مشاهده نمائیم به شباهت بسیار زیاد موجود بین آنها بیشتر واقف خواهیم شد .
پلات فرم در مقابل زبان برنامه نویسی
IL ، یک زبان اسمبلی عمومی در مقایسه با زبان های اسمبلی نظیر 8080 و یا 6809 نیست . IL ، شامل مجموعه ای از دستورالعمل ها و یک بردار از ویژگی هائی است که بمنظور حمایت از عملیات ضروری و خصایص تعداد زیادی از برنامه های پیشرفته و شی گراء ، طراحی شده است . تاکید دات نت بر بودن بعنوان یک سیستم شی متداول در مقابل یک زبان برنامه نویسی خاص است . CLR ، مستقیما" ویژگی های زیادی را که عموما" بعنوان خصایص مربوط به زبان های برنامه نویسی مطرح می گردد، حمایت می نماید . این موضوع شامل یک سیستم نوع زبان های طبیعی برای حمایت از کلاس ها ، توارث ، نسبت دهی پویا ، مدیریت حافظه ، جمع آوری زائده های حافظه ، بررسی و برخورد با موارد غیر قابل پیش بینی و سایر موارد مرتبط است . مثلا" یک جمع کننده اطلاعات زائد حافظه ، مسئولیت حذف اشیاء غیر استفاده شده را از heap و بازیافت حافظه را بر عهده داشته و مهم نیست که کدها با چه زبانی نوشته شده اند .ارائه پتانسیل های فوق در CLR ، یک پل ارتباطی معقول بمنظور تسهیل در ارتباط و یکپارچگی بین زبانها و عناصر را بدنبال خواهد داشت .
بمنظور تسهیل در ارتباط بین زبانها ، دات نت مشخصه استانداردی را برای زبانها ، تعیین نموده است ( Commom Language Specification:CLS ) . استاندارد فوق ، مجموعه قوانین لازم در ارتباط با امکاناتی نظیر: نوع های اساسی ، محدوده های بردار ، نوع های مرجع ، اعضاء ، خصلت ها ، رویدادها و سایر موارد دیگر را تعریف می نماید . عناصر و کتابخانه هائی که استانداردهای فوق را رعایت و به آنها پایبند باشد بعنوان یک زبان سازگار با CLS شناخته خواهند شد .
توارث در بین زبانها ، چالش خاصی را در زمان فراخوانی کد سازگار با CLS ایجاد نخواهد کرد. در این راستا می توان ، یک کلاس پایه را با استفاده از ویژوال بیسیک دات نت ایجاد که از یک کلاس # C ،مشتق شده باشد . ویژگی فوق (ارتباط بین زبانها ) ، یکی از مهمترین پتانسیل های دات نت محسوب می گردد .
معرفی کتابخانه کلاس فریمورک دات نت
در اوایلی که ویندوز پیاده سازی گردیده بود ، برنامه ها عموما" با زبان C کد واز طریق توابع API مبتنی بر C با سیستم عامل مرتبط و از خدمات مربوطه استفاده می نمودند. این موضوع در حقیقت بدین علت است که بخش عمده ای از ویندوز خود با زبان C نوشته شده است .پس از طی سالیانی ، رویکرد فوق بر روی استفاده از اینترفیس های مبتنی بر COM انعطاف پذیر، تمرکز و امکان استفاده از آنان ( فراخوانی ) توسط برنامه های مبتنی بر C و سایر برنامه های نوشته شده توسط زبان های اسکریپت ، فراهم گردید.
دات نت ، رویکردهای فوق را با یک کتابخانه کلاس فریمورک مستقل از زبان جایگزین نموده است . در فریمورک دات نت ، هر چیز بمنزله یک شی در نظر گرفته می شود. ازیک بردار ساده در #C و یا ویژوال بیسیک دات نت ( System.Array ) گرفته تا یک دایرکتوری مربوط به سیستم فایل ( System.IO.Directory ) و یا جمع کننده اطلاعات زائد در حافظه ( System.GC ) . همانگونه که قبلا" اشاره گردید ، کلاس های فریمورک دات نت بر اساس عملکرد و منطق مربوطه گروبندی و در مجموعه ای از namespace ها سازماندهی شده اند. در این راستا بیش از یکصد namespace بهمراه دات نت ارائه شده که برخی از آنان شامل ده ها کلاس می باشند. ذکر تمامی namespace ها بهمراه کلاس های موجود در آنان ، کار مشکلی بوده و امکان آن از حوصله این مقاله خارج است . علاقه مندان می توانند در این راستا به مقاله : " کتابخانه کلاس فریمورک دات نت " ، مراجعه نمایند .
برنامه نویسی کلاس های فریمورک دات نت
Namespace ، روشی مناسب بمنظور تقسیم منطقی گروه هائی از کلاس های مرتبط با یکدیگر است . کلاس ها خود بصورت فیزیکی در فایل های DLL قرار گرفته وبهمراه فریمورک دات نت ، ارائه شده اند . فایل های DLL در دایرکتوری زیر قرار دارند :
C:WINNTMicrosoft.NETFramework<.NET Version>
در صورتیکه یک برنامه از کلاس های موجود در سایر DLL ها ، استفاده نماید ، می بایست در زمان ترجمه، برنامه به DLL مربوطه مراجعه نماید . مثلا" کلاس SecurityIdentity از namespace با نام System.EnterpriseServices در System.EnterpriseServices.dll قراردارد. بمنظور ترجمه یک برنامه # C که از کلاس فوق استفاده می نماید می بایست از گزینه reference/ کمپایلر استفاده و نام dll مربوطه را مشخص نمود. ( یکی از روش های زیر )
csc /reference:System.Enterpriseservices.dll MyProg.cs
csc /r:System.Enterpriseservices.dll MyProg.cs
لازم به این نکته مهم اشاره گردد که یک تناظر یک به یک بین namespace و فایل های DLL وجود ندارد . یک DLL ممکن است شامل کلاس هائی از چندین namespace متفاوت بوده در حالیکه کلاس هائی از namespace های مشابه ممکن است بصورت فیزیکی در بین چندین فایل DLL توزیع شده باشند . شکل زیر نحوه استقرار فریمورک بهمراه مدل پیاده سازی دات نت را نشان می دهد .

متا دیتا از کتابخانه کلاس فریمورک دات نت بسمت کمپایلر #C حرکت می نماید . کمپایلر از متادیتا بمنظور ترجمه مراجعات به نوع ها در زمان ترجمه، استفاده خواهد کرد. همانگونه که در شکل فوق مشاهده می گردد ، CLR عملیات pulling را در رابطه با IL و متا دیتا برای هم برنامه و هم کلاس های فریمورک استفاده شده ، انجام خواهد داد .
جایگاه ASP و ADO در دات نت
ممکن است با ASP و یا ADO آشنا بوده و این سوال مطرح گردد که امکانات فوق به چه صورت با دات نت مرتبط می گردند؟ در پاسخ به سواال فوق ، می بایست به این نکته اشاره نمود که تکنولوژی های فوق، بعنوان کتابخانه کلاس پیاده سازی شده اند. مثلا" System.Data و System.Data.SqlClient و System.Data.SqlTypes ، انواع متفاوتی از namespace های موجود بوده و بعنوان بخشی از زیر سیستم جدید ADO.NET مطرح می باشند. در مقابل System.Web و System.Web.UI و چندین namespace دیگر بخشی از زیر سیستم جدید ASP.NET را تشکیل می دهند. در روشی مشابه ، فریمورک دات نت ، امکانات لازم در خصوص طراحی و پیاده سازی رابط کاربر برنامه های ویندوز را از طریق کلاس های فرم های ویندوز System.Windows.Forms ، ارائه می نماید.
دات نت ، امکانات مناسب و یکپارچه ای را بمنظور پیاده سازی برنامه های مبتنی بر وب و ویندوز ارائه و فصل جدیدی را در عرصه طراحی و پیاده سازی نرم افزار خصوصا" برنامه های توزیع شده ، ایجاد نموده است . شناخت پلات فرم فوق ، شرط اولیه استفاده مطلوب و هدفمند در رابطه با طراحی و پیاده سازی نرم افزار در عصر حاضر برای علاقه مندانی است که محیط مایکروسافت را برای طراحی و پیاده سازی نرم افزار انتخاب و یا قصد گزینش آن را دارند