به نام خدا
مقدمه
درمورد علل شکل گيري Visual Studio.NET بطور خلاصه مي توان گفت با اينکه مايکروسافت مي دانست با ابزارهاي قبلي شرکت مي توان برنامه هاي اينترنتي نوشت ولي براي قبضه کردن بازار احتياج به تکنولوژي جديدي داشت . مايکروسافت از سال ۱۹۹۸ که ويژوال استوديو ۶ را به بازار وارد کرد در پي حل اين مشکلات بود تا در سال ۲۰۰۰ ، NET. را در کنفرانس برنامه نويسان حرفه اي PDC به جهان معرفي کرد. از آن روز تا به حال مايکروسافت حدود ۸۰ % از توانش را براي تکميل NET. مصرف کرده است . در همين راه پروتکلهاي جديدي مانند SOAP يا Simple Object Access Protocol را ايجاد کرد . همچنين نسل جديدي از برنامه نويسي به عنوان Web Service را تهيه کرده است. از مهمترين دلائل استفاده از دات نت مي توانيم به موارد زير اشاره نماييم.

طراحي برنامه هاي اينترنتي بر سبک برنامه هاي Win32 GUI: همانطور که مي دانيد برنامه نويسي براي Win32 GUI از قدرت خوبي برخوردار است ، در NET. برنامه هاي اينترنتي نيز از همين قدرت برخوردارند.

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

انتقال ساده به سيستم هاي ديگر: در NET. براحتي مي توان برنامه ها را با يک کپي ساده به کامپيوتر هاي ديگر انتقال داد .
پشتيباني از زبانهاي مختلف: در NET. به زبانهاي برنامه نويسي مايکروسافت مثل ويژوال بيسيک ، سي شارپ و يا ++C محدود نيستيم . به طوري که در حال حاضر نسخه هاي Cobol.NET و Pascal.NET در حال ساخته شدن است . اما شرکت مايکروسافت زبان ويژوال بيسيک را به عنوان زبان اصلي برگزيده است . اين مساله ريشه در تاريخ مايکروسافت دارد !

Platform هاي آينده: هم اکنون NET. براي ويندوز نوشته شده است ولي در آينده نزديک نسخه هاي Unix و Linux و همچنين براي Mobile و PDA نيز ارائه خواهد شد. اين امر اين امکان را مي دهد که برنامه اي که براي ويندوز در NET. نوشته ايد در تمامي سيستم عامل ها و دستگاه هاي بالا قابل اجرا باشد.

SQL Server 2000 موتور پايگاه داده ارائه شده توسط مايکروسافت است و ادامه ويرايش ۷٫۰ اين محصول مي باشد. مايکروسافت سرمايه گذاري عظيمي را صرف پشتيباني و بازاريابي SQL Server 7.0 نمود و نتيجه آن ارائه SQL Server 2000 است. اين محصول پرکاربردترين موتور پايگاه داده در صنعت کامپيوتر براي محيط هاي ويندوز NT/2000 است و ۶۸ درصد از پايگاه داده را بنا به اطلاعات وب سايت مايکروسافت به خود تخصيص داده است. البته انتظار مي رود اين روند ادامه يابد و سهم بيشتري از اين بازار در اختيار مايکروسافت قرار گيرد.

SQL Server 2000 به عنوان يک سرويس در NT Workstation ، سرويس دهنده ويندوز NT يا هر ويرايشي از ويندوز ۲۰۰۰ پياده سازي شده است. در صورت نصب بر روي ويندوز ۹۸ يا ME به عنوان يک برنامه کاربردي که به سيستم وارد شده است اجرا مي شود.کليه برنامه هاي کمکي نظير Enterprise Manager مانند برنامه هاي معمولي سرويس گيرنده/ سرويس دهنده کار مي کنند و به شما اجازه مي دهند پايگاه داده SQL Server را تقريبا از هر محلي کنترل کنيد.
SQL Server نوعي از پايگاه داده به نام پايگاه داده رابطه اي را بکار مي برد. در پايگاه هاي داده رابطه اي، داده ها در قالب جداول سازماندهي مي شوند. جداول داده هاي مربوط به يک موضوع واحد را گروه بندي مي کنند و حاوي سطرها و ستونهاي اطلاعات هستند. جداول توسط موتور پايگاه داده در هنگام درخواست به يکديگر مرتبط مي شوند.

در SQL Server 2000 يک پايگاه داده لزوماً به يک فايل مجزا بسته نمي شود وبيشتر يک مفهوم منطقي مبتني بر مجموعه اي از اشياء مرتبط است. براي مثال يک پايگاه داده در SQL Server شامل نه تنها داده هاي خام بلکه شامل ساختار پايگاه داده ، ايندکس ها،ايمني پايگاه داده و احتمالاً ساير اشياء نظير ديدها يا روالهاي ذخيره شده خاص پايگاه داده است.

با توجه به مطالبي که بيان شد براي پياده سازي پروژه از ابزارهای Visual Studio.NET و۲۰۰۰ SQLServer استفاده کرديم. اين پروژه پياده سازي يک سيستم تحت وب براي پذيرش بيمار در يک مرکز تصوير برداري مي باشد. سيستم موردنظر ما از بخشهاي پذيرش، گروه های تصوير برداري، بيمه و صندوق تشکيل شده است.

مطالب بصورت زير تنظيم شده است :
• فصل اول مرور کوتاهي بر ابعاد گوناگون Visual Studio.NET داريم. اين فصل شامل ۴ قسمت با عناوين NET Framework. ، Visual Studio.NET ، ASP.NET و ADO.NET مي باشد.

• فصل دوم به معرفي ابزارها و برنامه هاي ۲۰۰۰ SQL Server مي پردازيم .
• فصل سوم ، اهداف و نيازمنديهاي سيستم پذيرش مرکز تصويربرداري را شرح مي دهد .
• فصل چهارم به به چگونگي پياده سازي سيستم مي پردازيم. در قسمت اول بانک اطلاعاتي سيستم را بررسي مي کنيم. قسمت دوم مروري گذرا برامکانات فرم ها و بخش هاي گوناگون سيستم خواهيم داشت ، اين قسمت در واقع راهنمايي براي کار با سيستم مي باشد. در نهايت در قسمت آخر بعنوان نمونه بخش پذيرش در سيستم را بطور کامل پياده سازي مي نمائيم.

 

.NET Framework
Visual Studio.NET
ASP.NET
ADO.NET

مروری بر Visual Studio.NET
در اين قسمت مرور کوتاهي بر بخشهای گوناگون Visual Studio.NET داريم. اين فصل شامل ۴ قسمت با عناوين NET Framework. ، محيط Visual Studio.NET ، ASP.NET و ADO.NET مي باشد.

.NET Framework
.NET Framework فن آوري است که در توسعه Asp.NET ضروري مي نمايد و ارائه کننده سرويس هاي مقدماتي سيستم ها يي است که Asp.NETرا مورد پشتيباني قرار مي دهند، نظير ايجاد فرم هاي ويندوز، و فن آوري جديد rich client development که در .NET ارائه شده است . درست همانند بسته اختياري ( Option Pack ) ويندوز NT4 که به همرا ه ويندوز NT4 نصب مي شد و Internet Information Server 4.0 (IIS) و Active Server Page Technologies را به ويندوز NT4 مي افزود، .NET Framework نيز يک بسته add-on ( افزودني ) مي باشد که روي ويندوز XP,2000,NT4.0,98/ME نصب مي شود و سرويس هاي مقدماتي پشتيباني سيستم را به فن آوريهاي .NET مي افزايد .

.NET Framework شامل دو قسمت اصلي است:
 Common Language runtime
 .NET Framework Class Library
در ادامه به شرح هرکدام مي پردازيم.
Common Language runtime

Common Language runtime يا ( به اختصار Runtime ) محيط runtimeي را ايجاد مي کند که در آن محيط کد هاي نوشته شده به زبانهاي .NET اجرا مي گردند. Runtime مديريت اجراي کدهاي .NET را بر عهده دارد، که شامل مديريت بلند مدت حافظه و آبجکت ها مي شود. علاوه بر اين سرويس هاي مديريتي،runtime به توسعه دهندگان امکان اشکال زدايي، رسيدگي به استثنائات و وراثت در ميان چندين زبان را مي دهد .لازمه اجراي اين وظايف اين است که کامپايلرهاي زبان از خصوصيات زبانهاي مشترک يا Common Language Specification (CLS ) ، که نمايانگر زير مجموعه اي از انواع داده پشتيباني شده توسط runtime مي باشد و در تمام زبانهاي مورد استفاده .NET مشترک است، پيروي نمايد .

کامپايلر هر زباني کد هاي نوشته شده توسط برنامه نويسان را به يک زبان ميانجي به نام (MSIL ياMicrosoft Intermediate Language ( IL کامپايل مي کنند. سپس اين IL در زمان نصب به وسيله runtime ، به کد محلي کامپايل مي شود و يا حين اولين اجرا به صورت ( JIL ) Just-In-Time کامپايل مي شود. از کدي که به IL کامپايل مي شود و به وسيله runtime مديريت مي گردد، به عنوان managed Code نام برده مي شود. دليل اين نامگذاري، برعهده گرفتن مسئوليت مديريت اجراي کد توسط runtime است، که شامل معرفي آبجکت ها، اختصاص حافظه و جمع آوري پس مانده آبجکت ها و حافظه مي باشد .

از کامپوننت هاي نوشته شده در Managed Code و اجرا شده توسط runtime به عنوان .NET Managed Assemblies نام برده مي شود و يا به اختصار فقط assemblies خوانده مي شود. Assemble ها واحد هاي اصلي گسترش در دنياي .NET هستند و شباهت زيادي به کامپوننت هاي COM دارند. با اين تفاوت که، در حاليکه کامپوننت هاي COM حاوي يک نوع کتابخانه متناظر براي تعريف چگونگي بکار گيري آنها توسط سرويس گيرنده هستند، يک assembly حاوي يک manifest است که مجموعه اي از Metadataها( فراداده ها) مي باشند که محتويات assembly را تعريف مي کنند. از فوائد ديگر آن، ماهيت خود تعريفي کامپوننت هاي .NET است، به اين معني که براي اينکه بتوانند کار کنند، نيازي به ثبت شدن ( رجيسترشدن ) روي کامپيوتر ندارند .

اين Metadataهمچنين وظيفه تعريف وابستگيها و اطلاعات تفسيري متناظر با يک assembly را بر عهده دارد. اين نه تنها باعث کسب اطمينان از برآورده شدن وابستگي هاي ضروري assemblyها مي شود، بلکه به اين معني است که چندين نسخه از يک assembly مي توانند درکنار هم روي يک کامپيوتر بدون ايجاد اختلال اجرا شوند. اين موضوع گامي بزرگ در تقابل با “DLL Hell” (مکافات DLL ) است، که براي تعداد کثيري از برنامه نويسان آزار دهنده است. کافي است تنها از يک برنامه نويس وب که با بيش از يک نسخه ActiveX Data Objects (ADO) کار کرده باشد، سئوال کنيد. مطمئن باشيد که گوش شما پر خواهد شد از

حکاياتي درباره برنامه هاي کاربردي که با يک نسخه جديد ADO به شکست انجاميده اند. با روي کارآمدن .NET اين مسائل به فراموشي سپرده خواهند شد. ازآنجايي که برنامه کاربردي مورد نظر مي داند براي کدام نسخه از يک assembly طراحي شده است، مي تواند با گرفتن پرس وجو(query) از متاديتاي اسمبلي ، نسخه صحيح را از ميان نسخه هاي مختلف همان اسمبلي بيابد . نظارت CLR در هنگام اجرا شامل مديريت حافظه ، کنترل صحت نوع متغيرها (type safety check) و مسائل ديگر مي گردد. شکل ۱-۱نحوه انجام اين مراحل را نشان مي دهد.

شکل ۱-۱
.NET Framework Class Library
.NET Framework Class Library براي پشتيباني از تلاشهاي به عمل آمده توسط برنامه نويسان و با ارائه کلاسهاي اصلي که برنامه نويسان مي توانند براي ايجاد کلاسهاي فرعي از آنها به ارث برند، طراحي شده است. اين يک مجموعه سلسله مراتبي از کلاسهاي .NET است که برنامه نويسان مي توانند در برنامه ها کاربردي خودشان ازآنها استفاده نمايند. اين کلاسها که به وسيله محفظه هايي به نام namespace سازماندهي مي شوند، هردونوع عملکرد مقدماتي و پيشرفته را که برنامه نويسان مي توانند به آساني براي دومين مرتبه مورد استفاده قرار دهند را فراهم مي نمايند. آنها شامل کلاسهايي از انواع داده مشترک مقدماتي، کلاسهاي فراهم کننده دسترسي به داده و کلاسهايي که چنين سرويس هاي سيستمي مانند طراحي ( که خبر خوبي براي کساني است که از کامپوننت هاي third-party براي ايجاد تصاوير در يک برنامه کاربردي ASP به صورت پويا استفاده مي کنند )، عملکرد شبکه ( شامل DNS و reverse DNS Lookups )، و خيلي چيزهاي ديگر را پشتيباني مي کنند.

کتابخانه همچنين شامل کلاسهايي است که اساس ASP.NET را تشکيل مي دهند، و شامل کلاس Page(بخشي از يک namespace به نامSystem.Web.UI) که تمام صفحات ASP.NET ازآن مشتق مي شوند و کلاسهاي زياد ديگري در يک namespace به نام System.Web و فرزندان آن مي باشند.
هر فضاي نام شامل توابع مرتبط با يک قابليت يا موضوع خاص است. جدول زير تعدادي از فضاهاي نام مهم مورد استفاده را معرفي مي نمايد.
طبقه بندي فضاي نام (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

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

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

در حال حاضر زبانهاي Visual Basic .NET و Visual C# مرسومتر از بقيه زبانها هستند. اين دو زبان قابليت هاي مشابهي را براي ساختن برنامه هاي وب و ويندوز ارائه ميکنند. بيشتر تفاوت هاي اين دو زبان در کلمات کليدي بکار رفته ميباشند.
Visual Studio.NET
ارتقاء IDE
برخي از موارد ارتقايي که در Visual Studio.NET خواهيد يافت، شامل امکانات زير هستند :
 Start Page: اين صفحه پيش فرض است که هر دفعه با آغاز Visual Studio.NET نمايش داده مي شود و به شما امکان مي دهد که اولويت هاي خود را در مورد IDE اعمال کنيد ، به پروژه هاي موجود و پروژه هاي اخير دسترسي يابيد و پروژه هاي جديد را ايحاد نماييد.
 Multilanguage IDE : برخلاف Visual Studio 6.0 ، که از IDE هاي متفاوتي براي هر زباني استفاده مي کرد (با وجود اينکه Visual Inter Dev و Visual J++ از يک IDE اشتراکي استفاده مي کردند)، درVisual Studio.NET ، تمام زبانها از يک IDE استفاده مي کنند . معني آن اين است که امکانات استانداردي چون Find ,Replace , debugging و غيره ، در زبانهاي مختلف به يک شکل کار مي کنند. اين خود به تنهايي يک مورد مؤثر و بزرگ است.
 Command Windows: ترکيبي از پنجره فوري Visual Basic و يک خط فرمان است. پنجره فرمان به شما اجازه اجراي فرامين Visual Studio يا عبارت کد نويسي شده را ، با توجه به مد پنجره مي دهد. شکل ۲-۱يک پنجره فرمان را که به مد فوري (immediate mode) سوئيچ شده و از فرمان immed استفاده مي کند ، نشان مي دهد. پنجره فرمان داراي دو mode (حالت) است.
• حالت فرمان(Command Mode): به شما امکان اجراي فرامين Visual Studio را بدون استفاده از سيستم منو يا اجراي فرامين که در هر منويي ظاهر نمي شود را مي دهد .
• حالت فوري (Immediate Mode ): که در اشکال زدايي (debugging ) به کار مي رود به شما امکان ارزشيابي عبارات، بررسي مقدار متغيرها، اجراي ساختارهاي برنامه ها و توابع و غيره را مي دهد.

شکل ۲-۱
 Tabbed documents: براي تسهيل مديريت چندين فايل در حال ويرايشي که به صورت همزمان طراحي شده اند به کار مي رود. واسط کاربر [ Tabbed documents ]به شما امکان مي دهد تا تمامي فايل هايي را که به طور همزمان ويرايش مي کنيد ببينيد . اين امر باعث تسهيل سوئيچ به جلو و عقب کردن بين پنجره هاي د ر حال ويرايش، که باز هستند مي شود. اگرچه شما هنوز مي توانيد Visual Studio.NET را براي استفاده از متد قديمي مورد استفاده توسط Visual Studio 6 تنظيم نماييد ، تنها کافي است گزينه Optionsرا از منوي Tools انتخاب کنيد ، گزينه General را در پوشه Environment انتخاب نماييد، از Tabbed Documents به MDI environment سوئيچ نماييد و سپس بر روي دگمه OK کليک کنيد. براي تأثيراين تغييرات،لازم است Visual Studio.NET را راه اندازي مجدد کنيد.
 ويرايشگر HTML بهبود يافته : ويرايشگر HTML برنامه Visual Studio.NET همانند Visual InterDev پيش از خود، دو نماي طراحي و نماي HTML (منبع) را فراهم مي نمايد. Visual Studio.NET با پنجره Quick View ارائه شده توسط Visual InterDev فرق زيادي کرده است. در عوض، صفحات را در يک پنجره مرورگر الحاقي، پيش نمايش مي دهد که نماي واقعي تري از چگونگي نمايش صفحه ارائه مي شود. ويرايشگر بهبود يافته،همچنين از طريق خصوصيت targetSchema و با مشخص کردن طرح HTMLي که مي نويسد، حمايت مي شود. تنظيم کردن targetSchema تعيين مي کند که کدام عناصر از طريق امکانات تکميلي ساختار ويرايشگر در دسترس قرار خواهند گرفت و به IDE اجازه مي دهد تا شما را در مقابل دستور زبان ناصحيح موجود در متن targetSchema مورد انتخابتان، پشتيباني نمايد .
امکانات جديد
علاوه برارتقاء IDE امکانات کاملاً جديد زيادي در Visual Studio.NET IDE وجود دارند .
 ويرايشگر XML : اين ويژگي به شما امکان مي دهد داده (.xml) XML و فايل هاي Schema (.xsd) را در منبع داده، يا نماهاي Schema بسته به نوع فايل XMLي که در حال ويرايش آن هستيد، ويرايش کنيد .
 مستنداتي که بطور خودکار توليد شده اند : از امکانات بسيار جالبي که فعلاً تنها در C# موجود است، اين است که به شما امکان مي دهد تا مستنداتي ازتوضيحات و با استفاده از يک جداکنندهُ توضيح خاص(///) و دستور زبان در کد C# خود ايجاد نماييد. Visual Studioهمچنين مي تواند مستندات HTML را براي پروژه هاو راه حلها، بدون توجه به زبان مورد استفاده پروژه توليد کند.
 راهنماي پويا: از امکاناتي که راهنماي حساس به متن هنگامي که با IDE کار مي کنيد فراهم مي کند، اين است که در حالي که فايل ها، کنترل ها و کدها را به پروژه خود اضافه مي کنيد، موضوعات مورد نظررا توصيه مي کند. شکل ۳-۱پنجره راهنماي پويايي را نشان مي دهد که هنگام ويرايش عنصر <html> از يک فرم وب ظاهرمي شود .

شکل ۳-۱: پنجره راهنماي پويا هنگام ويرايش عنصر <html> از يک فرم وب
 پشتيباني از نصب کننده ويندوز : Visual Studio اکنون از اين تکنولوژي بهبود يافته، براي برنامه هاي کاربردي ويندوز حمايت مي کند که شامل پايين آوردن نياز هاي زمان نصب، درصورت ايجاد مشکلات نصب مي شود. حتي مي توانيد بسته هاي نرم افزاري را براي برنامه هاي کاربردي وبي به کار ببريد که به شما اجازه نصب و اجراي برنامه هاي کاربردي ASP.NET را روي ماشينهايي مي دهند که .NET Framework را به صورت نصب شده ندارند. اين بسته نرم افزاري ، تمامي فايل هاي ضروري زمان اجرا را براي شما نصب خواهد کرد .

پنجره ها
درحال کار Visual Studio.NET، با پنجره هاي گوناگوني در IDE مواجه خواهيد شد که براي اهداف متعددي به کار مي روند. برخي جديد هستند، مانند پنجره راهنماي پويا که در قسمت قبلي توضيح داديم، در حالي که برخي براي کاربران نسخه هاي پيشين Visual Studio آشنا خواهند بود. در ادامه نظري بر رايجترين پنجره هاي مورد استفاده خواهيم داشت .
 Designer /Soruce Editor: شکل ۴-۱، پنجره ويرايشگر منبع / طراح را در حالت ويرايش HTML نشان مي دهد. اينجاست که شما اکثر وقت خود را در محيط Visual Studio ، درآن خواهيد گذراند. در اين پنجره تقريباً تمام ويرايشگرهاي طراح و سورس کد که در Visual Studio استفاده مي گردند، گردآوري شده اند، که شامل فرم هاي وب XML Schema و طراحان HTML و همچنين ويرايشگرهاي سورس کد يکساني مي شوند که XML و HTML , SQL , Cascading Style Sheets (CSS) و تمام زبانهاي .NET را ارائه مي دهند. ويرايشگر امکانات قدرتمندي را براي هر زبان ارائه مي دهد. از امکانات جديد مي توان از ويرايشگرهاي HTML و CSS نام برد ، که کاملاً جالب توجه هستند و داراي حسگر هوشمند براي تکميل عبارات ، هم براي HTML و هم براي CSS هستند وکنترل بهتري بر چگونگي (و انجام شدن يا نشدن ) تغييرات ايجاد شده توسط ويرايشگر بر روي قالب HTML و اسناد CSS دارد. براي تغيير تنظيمات قالب بندي، گزينه Option را از منوي Tools انتخاب کنيد ، پوشه Text Editor را انتخاب کنيد. HTML (يا CSS ) را انتخاب کنيد و گزينه Format را انتخاب نماييد .

شکل ۴-۱: پنجره Designer /Soruce Editor را در حالت ويرايش HTML
 Solution Explorer: پنجره Solution Explorer براي کساني که با Visual InterDev 6 کار کرده اند آشنا است. از ابزارهاي اوليه اي است که براي مديريت فايل هاي پروژه و منابع، شامل افزودن، حذف کردن، بازکردن، نامگذاري مجدد و انتقال فايل ها و همچنين قرار دادن يک عنصر يا پروژه Start-up، انتقال بين نمادهاي کد و طراحي براي يک فايل و ديدن اطلاعات وضعيت(براي مثال وضعيت کنترل سورس کد) روي فايل هاي شما به کارمي رود. شکل ۵-۱ Solution Explorer را نشان مي دهد و بسياري از عناصر را معرفي مي کند.

شکل ۵-۱: پنجره Solution Explorer
 Class view: پنجره Class view که در شکل ۶-۱ نشان داده شده، حاوي ليستي از تمامي کلاسها و متدها، خصوصيت ها و رابطه هاي کاربر پياده سازي شده در آن فايل ها مي باشد( که در ماژول هاي .vb يا .cs وجود دارند).

شکل ۶-۱: پنجره Class view
 Server Explorer: Server Explorer که در شکل ۷-۱ نشان داده شده، از امکانات جديد Visual Studio.NET است که به شما امکان مي دهد هم منابع ماشين محلي و هم منابع سرويس دهنده هاي راه دور را ببينيد. که شامل ارتباط هاي داده اي پيکربندي شده،event log ها، صفهاي پيام و شمارنده هاي کارآيي(عملکرد) هستند.Server Explorer همچنين به شما اجازه مي دهد منابع را به درون فرم هاي وب يا اجزاء .NET کشيده و رها کنيد، تا برخي از مؤثرترين (کارآمدترين) برنامه سازي هاي طرف سرويس دهنده تا اين زمان را فراهم کنيد.

شکل ۷-۱:پنجره Server Explorer
 Properties: پنجره Properties ، فوراً توسط اشخاصي که با هر نوع ابزار برنامه نويسي Visual Studio کار کرده اند قابل تشخيص است و دسترسي به Propertyهاي اشيايي که در حال انتخاب در ويرايشگر يا طراح هستند را فراهم مي کند. شکل ۸-۱ پنجره Properties را که در حال نمايش Properties براي يک کنترل سرويس دهنده Label در ASP.NET است را نشان مي دهد. در نظر داشته باشيد که پنجره Properties به شما امکان بستن يا گسترش پنجرهُ را براي ديدن گروههايي که مشتاق هستيد را مي دهد.همچنين مي توانيد گروهها را با کليک کردن دگمه الفبايي که درست زير منوي کشويي انتخاب اشياء قرار گرفته، ببينيد.

شکل ۸-۱: پنجره Properties براي يک کنترل Label

 جعبه ابزار Visual Studio.NET : جعبه ابزار Visual Studio.NET ، عنصر ديگري است که بسيار شبيه به محيط Visual InterDev طراحي شده است و دسترسي به انواع گوناگون کنترل ها، کامپوننت ها و عناصر HTML را فراهم مي کند. مي توانيد آيتم هاي جعبه ابزار (لزوماً ، تگ هاي HTML يا عناصر متني بکار رفته براي پياده سازي کنترل ها يا کامپوننت ها) را به فرم هاي وب يا کامپوننت ها يا به وسيله دوبار کليک کردن بر روي نام آيتم در جعبه ابزار ( که در آن حالت، آيتم در محل فعلي مکان نما وارد مي شود ) يا به وسيله کشيدن و رها کردن (به شما امکان قرار دادن آيتم ها در جاي مورد علاقه تان را مي دهد )اضافه کنيد . در نظر داشته باشيد که برخي از آيتم ها هنگاميکه در يک فرم وب بکار مي روند، داراي يک نمايش ظاهري نيستند ( در فرم وب به صورت مرئي ظاهر نمي شوند ) .اين آيتم ها معمولاً در ناحيه پنجره مانند جداگانه اي در زير پنجره Designer نمايش داده مي شوند. شکل ۹-۱ جعبه ابزار را نشان مي دهد که در حال نمايش کنترل هاي فرم هاي وب است .

شکل ۹-۱: جعبه ابزار Visual Studio.NET
نکته
مي توانيد آيتم ها يا دسته بنديها ( برگه هم ناميده مي شوند ) را به جعبه ابزار اضافه کنيد. براي افزودن يک برگه، به سادگي روي جعبه ابزار کليک راست کنيد، گزينه Add Tab را انتخاب کنيد و برگه را نام گذاري نماييد. براي اضافه کردن آيتم هاي خودتان، اطمينان حاصل کنيد که برگه دلخواه شما انتخاب شده است، آيتم مورد دلخواه را در Designer انتخاب کنيد (يا Text دلخواه را در ويرايشگر Code انتخاب کنيد) ، وآن را درون جعبه ابزار بکشيد.اگر خواستيد مي توانيد با کليک راست روي آيتم جديد و انتخاب Rename نام توضيحي براي آن انتخاب کنيد .
 Document Outline : پنجره Document Outline ، که در شکل ۱۰-۱ به نمايش درآمده، طرح اسناد فرم هاي وب را در نماي طراحي نمايش مي دهد. همچنين دستيابي به طرح نماي اسکريپت را که نمايش دهنده آبجکت هاي سرويس گيرنده و رويدادهايي است که مي توانند به صورت اسکريپت درآيند را فرا هم مي کند و مي تواند براي وارد کردن اداره کننده هاي رويداد Javascript براي اين رويدادها مورد استفاده قرار مي گيرند.

شکل ۱۰-۱
 Task List : ابزاري است که بي اهميت تلقي شده است واغلب تحت Visual InterDev مورد استفاده قرار مي گيرد . پنجره Task List به برنامه نويسان اين امکان را مي دهد تا وظايف را تا هنگام تکميل ، در وضعيت فعلي ايجاد، مرتب و رديابي کنند . Task List همچنين شامل وظايفي است که بطور خودکار بوسيله Visual Studio براي کمک به برنامه نويسان در يافتن و تصحيح خطاهاي ساختاري توليد نشده اند. وظايف مي توانند برحسب نيازهاي برنامه نويسان گروه بندي و اولويت بندي شوند . گروهها شامل وظايف توضيحي ( که با نشانه هاي توضيحي نظير UPGRADE_TODO , TODO و غيره نشان داده شده اند) مي باشند، وظايف کاربران، خطاهاي ساختاري، ميانبرها (با راست کليک برروي يک خط از کد در ويرايشگر و انتخاب ميانبر Add Task List ايجاد شده اند و وظايف Intellisense (حسگر هاي هوشمند)که وقتي حسگر هوشمند، خطايي را در کد شما ميبيند ، نمايش داده مي شود . شکل ۱۱-۱ يک Tasklist را با يک User task و Shortcut task نشان مي دهد.

شکل ۱۱-۱: يک Tasklist با يک User task و Shortcut task
 Output: پنجره Output ، معرف حضور برنامه نويساني که با ابزارهاي Visual C++ و Visual j++ شرکت مايکروسافت کار کرده اند، خواهد بود. يکي از اهداف اوليه پنجره Output نمايش پيامهاي مربوط به ساخت پروژه است ( ساخت يا Build، فرآيند کامپايل کردن تمام فايل هاي کدي است که يک پروژه را تشکيل مي دهند). ازآنجايي که برنامه هاي کاربردي وب ASP.NET نيازمند ساخت، پيش از ظهور تغييرات به عمل آمده در کد هستند،از اين پنجره ها خيلي خواهيد ديد.اگر خطا ها ياهشدارهايي در بين ساخت پيش آمده باشند، حتماً در اين پنجره به نمايش در خواهند آمد .
نوارهاي ابزار
براي انجام کارها در Visual Studio.NET ، احتمالاً ترکيبي از نوارهاي ابزار IDEو منوها را استفاده خواهيد کرد. در اين بخش بر متداولترين نوارهاي ابزاري که مورد استفاده قرار گرفته اند و در بخش بعدي بر رايجترين منوهاي استفاده شده نگاهي داريم . شما مي توانيد ليست کاملي از نوارهاي ابزار در دسترس را با کليک راست کردن روي هر نوار ابزار ببينيد (يا ناحيه خالي نوار ابزار ). همانند ماهيت سفارشي Visual Studio.NET IDE تمامي نوارهاي ابزار مي توانند به وسيله اضافه کردن، حذف کردن يا چيدن دوباره دگمه ها، انتقال نوارهاي ابزار و نمايش دادن و پنهان کردن نوارهاي ابزار به صورت سفارشي درآيند.
نکته
با انعطاف پذيري که نوارهاي ابزار در Visual Studio.NET دارند، در پايان کار به سادگي مي توانيد نوارهاي ابزار را به شکل اوليه شان ، همانگونه که پس از نصب Visual Basic بود درآوريد .براي برخي اين ممکن است خبر خوبي باشد، اما اگر بخواهيد نوارهاي ابزار را به پيکر بندي اصلي شان باز گردانيد، بر روي دگمه Toolbar Option ،که در قسمت آخر راست هر نوار ابزار وجود دارد کليک کنيد،دگمه هاي Add يا Remove راکليک کنيد، بر روي منوي item براي نوار ابزار کليک کنيد و در آخر Reset Toolbar راکليک کنيد .
 Standard : نوار ابزار Standard ، که در شکل ۱۲-۱ نشان داده شده است، حاوي دگمه هايي براي فرامين فايل ها وپروژه هاي متداول است، که شامل باز کردن فايل ها و پروژه هاي جديد و دستيابي به پنجره هاي گوناگون در IDE است.

به نام خدا
مقدمه
درمورد علل شکل گيري Visual Studio.NET بطور خلاصه مي توان گفت با اينکه مايکروسافت مي دانست با ابزارهاي قبلي شرکت مي توان برنامه هاي اينترنتي نوشت ولي براي قبضه کردن بازار احتياج به تکنولوژي جديدي داشت . مايکروسافت از سال ۱۹۹۸ که ويژوال استوديو ۶ را به بازار وارد کرد در پي حل اين مشکلات بود تا در سال ۲۰۰۰ ، NET. را در کنفرانس برنامه نويسان حرفه اي PDC به جهان معرفي کرد. از آن روز تا به حال مايکروسافت حدود ۸۰ % از توانش را براي تکميل NET. مصرف کرده است . در همين راه پروتکلهاي جديدي مانند SOAP يا Simple Object Access Protocol را ايجاد کرد . همچنين نسل جديدي از برنامه نويسي به عنوان Web Service را تهيه کرده است. از مهمترين دلائل استفاده از دات نت مي توانيم به موارد زير اشاره نماييم.
طراحي برنامه هاي اينترنتي بر سبک برنامه هاي Win32 GUI: همانطور که مي دانيد برنامه نويسي براي Win32 GUI از قدرت خوبي برخوردار است ، در NET. برنامه هاي اينترنتي نيز از همين قدرت برخوردارند.
داشتن رابط گرافيکي خوب اينترنتي: به علت تغييرات اساسي که در برنامه در اين سيستم داده شده برنامه اينترنتي قابليت گرافيکي در حد برنامه هاي Win32 GUI دارند .
انتقال ساده به سيستم هاي ديگر: در NET. براحتي مي توان برنامه ها را با يک کپي ساده به کامپيوتر هاي ديگر انتقال داد .
پشتيباني از زبانهاي مختلف: در NET. به زبانهاي برنامه نويسي مايکروسافت مثل ويژوال بيسيک ، سي شارپ و يا ++C محدود نيستيم . به طوري که در حال حاضر نسخه هاي Cobol.NET و Pascal.NET در حال ساخته شدن است . اما شرکت مايکروسافت زبان ويژوال بيسيک را به عنوان زبان اصلي برگزيده است . اين مساله ريشه در تاريخ مايکروسافت دارد !
Platform هاي آينده: هم اکنون NET. براي ويندوز نوشته شده است ولي در آينده نزديک نسخه هاي Unix و Linux و همچنين براي Mobile و PDA نيز ارائه خواهد شد. اين امر اين امکان را مي دهد که برنامه اي که براي ويندوز در NET. نوشته ايد در تمامي سيستم عامل ها و دستگاه هاي بالا قابل اجرا باشد.
SQL Server 2000 موتور پايگاه داده ارائه شده توسط مايکروسافت است و ادامه ويرايش ۷٫۰ اين محصول مي باشد. مايکروسافت سرمايه گذاري عظيمي را صرف پشتيباني و بازاريابي SQL Server 7.0 نمود و نتيجه آن ارائه SQL Server 2000 است. اين محصول پرکاربردترين موتور پايگاه داده در صنعت کامپيوتر براي محيط هاي ويندوز NT/2000 است و ۶۸ درصد از پايگاه داده را بنا به اطلاعات وب سايت مايکروسافت به خود تخصيص داده است. البته انتظار مي رود اين روند ادامه يابد و سهم بيشتري از اين بازار در اختيار مايکروسافت قرار گيرد.
SQL Server 2000 به عنوان يک سرويس در NT Workstation ، سرويس دهنده ويندوز NT يا هر ويرايشي از ويندوز ۲۰۰۰ پياده سازي شده است. در صورت نصب بر روي ويندوز ۹۸ يا ME به عنوان يک برنامه کاربردي که به سيستم وارد شده است اجرا مي شود.کليه برنامه هاي کمکي نظير Enterprise Manager مانند برنامه هاي معمولي سرويس گيرنده/ سرويس دهنده کار مي کنند و به شما اجازه مي دهند پايگاه داده SQL Server را تقريبا از هر محلي کنترل کنيد.
SQL Server نوعي از پايگاه داده به نام پايگاه داده رابطه اي را بکار مي برد. در پايگاه هاي داده رابطه اي، داده ها در قالب جداول سازماندهي مي شوند. جداول داده هاي مربوط به يک موضوع واحد را گروه بندي مي کنند و حاوي سطرها و ستونهاي اطلاعات هستند. جداول توسط موتور پايگاه داده در هنگام درخواست به يکديگر مرتبط مي شوند.
در SQL Server 2000 يک پايگاه داده لزوماً به يک فايل مجزا بسته نمي شود وبيشتر يک مفهوم منطقي مبتني بر مجموعه اي از اشياء مرتبط است. براي مثال يک پايگاه داده در SQL Server شامل نه تنها داده هاي خام بلکه شامل ساختار پايگاه داده ، ايندکس ها،ايمني پايگاه داده و احتمالاً ساير اشياء نظير ديدها يا روالهاي ذخيره شده خاص پايگاه داده است.
با توجه به مطالبي که بيان شد براي پياده سازي پروژه از ابزارهای Visual Studio.NET و۲۰۰۰ SQLServer استفاده کرديم. اين پروژه پياده سازي يک سيستم تحت وب براي پذيرش بيمار در يک مرکز تصوير برداري مي باشد. سيستم موردنظر ما از بخشهاي پذيرش، گروه های تصوير برداري، بيمه و صندوق تشکيل شده است.
مطالب بصورت زير تنظيم شده است :
• فصل اول مرور کوتاهي بر ابعاد گوناگون Visual Studio.NET داريم. اين فصل شامل ۴ قسمت با عناوين NET Framework. ، Visual Studio.NET ، ASP.NET و ADO.NET مي باشد.
• فصل دوم به معرفي ابزارها و برنامه هاي ۲۰۰۰ SQL Server مي پردازيم .
• فصل سوم ، اهداف و نيازمنديهاي سيستم پذيرش مرکز تصويربرداري را شرح مي دهد .
• فصل چهارم به به چگونگي پياده سازي سيستم مي پردازيم. در قسمت اول بانک اطلاعاتي سيستم را بررسي مي کنيم. قسمت دوم مروري گذرا برامکانات فرم ها و بخش هاي گوناگون سيستم خواهيم داشت ، اين قسمت در واقع راهنمايي براي کار با سيستم مي باشد. در نهايت در قسمت آخر بعنوان نمونه بخش پذيرش در سيستم را بطور کامل پياده سازي مي نمائيم.

.NET Framework
Visual Studio.NET
ASP.NET
ADO.NET

مروری بر Visual Studio.NET
در اين قسمت مرور کوتاهي بر بخشهای گوناگون Visual Studio.NET داريم. اين فصل شامل ۴ قسمت با عناوين NET Framework. ، محيط Visual Studio.NET ، ASP.NET و ADO.NET مي باشد.

.NET Framework
.NET Framework فن آوري است که در توسعه Asp.NET ضروري مي نمايد و ارائه کننده سرويس هاي مقدماتي سيستم ها يي است که Asp.NETرا مورد پشتيباني قرار مي دهند، نظير ايجاد فرم هاي ويندوز، و فن آوري جديد rich client development که در .NET ارائه شده است . درست همانند بسته اختياري ( Option Pack ) ويندوز NT4 که به همرا ه ويندوز NT4 نصب مي شد و Internet Information Server 4.0 (IIS) و Active Server Page Technologies را به ويندوز NT4 مي افزود، .NET Framework نيز يک بسته add-on ( افزودني ) مي باشد که روي ويندوز XP,2000,NT4.0,98/ME نصب مي شود و سرويس هاي مقدماتي پشتيباني سيستم را به فن آوريهاي .NET مي افزايد .
.NET Framework شامل دو قسمت اصلي است:
 Common Language runtime
 .NET Framework Class Library
در ادامه به شرح هرکدام مي پردازيم.
Common Language runtime
Common Language runtime يا ( به اختصار Runtime ) محيط runtimeي را ايجاد مي کند که در آن محيط کد هاي نوشته شده به زبانهاي .NET اجرا مي گردند. Runtime مديريت اجراي کدهاي .NET را بر عهده دارد، که شامل مديريت بلند مدت حافظه و آبجکت ها مي شود. علاوه بر اين سرويس هاي مديريتي،runtime به توسعه دهندگان امکان اشکال زدايي، رسيدگي به استثنائات و وراثت در ميان چندين زبان را مي دهد .لازمه اجراي اين وظايف اين است که کامپايلرهاي زبان از خصوصيات زبانهاي مشترک يا Common Language Specification (CLS ) ، که نمايانگر زير مجموعه اي از انواع داده پشتيباني شده توسط runtime مي باشد و در تمام زبانهاي مورد استفاده .NET مشترک است، پيروي نمايد .
کامپايلر هر زباني کد هاي نوشته شده توسط برنامه نويسان را به يک زبان ميانجي به نام (MSIL ياMicrosoft Intermediate Language ( IL کامپايل مي کنند. سپس اين IL در زمان نصب به وسيله runtime ، به کد محلي کامپايل مي شود و يا حين اولين اجرا به صورت ( JIL ) Just-In-Time کامپايل مي شود. از کدي که به IL کامپايل مي شود و به وسيله runtime مديريت مي گردد، به عنوان managed Code نام برده مي شود. دليل اين نامگذاري، برعهده گرفتن مسئوليت مديريت اجراي کد توسط runtime است، که شامل معرفي آبجکت ها، اختصاص حافظه و جمع آوري پس مانده آبجکت ها و حافظه مي باشد .
از کامپوننت هاي نوشته شده در Managed Code و اجرا شده توسط runtime به عنوان .NET Managed Assemblies نام برده مي شود و يا به اختصار فقط assemblies خوانده مي شود. Assemble ها واحد هاي اصلي گسترش در دنياي .NET هستند و شباهت زيادي به کامپوننت هاي COM دارند. با اين تفاوت که، در حاليکه کامپوننت هاي COM حاوي يک نوع کتابخانه متناظر براي تعريف چگونگي بکار گيري آنها توسط سرويس گيرنده هستند، يک assembly حاوي يک manifest است که مجموعه اي از Metadataها( فراداده ها) مي باشند که محتويات assembly را تعريف مي کنند. از فوائد ديگر آن، ماهيت خود تعريفي کامپوننت هاي .NET است، به اين معني که براي اينکه بتوانند کار کنند، نيازي به ثبت شدن ( رجيسترشدن ) روي کامپيوتر ندارند .
اين Metadataهمچنين وظيفه تعريف وابستگيها و اطلاعات تفسيري متناظر با يک assembly را بر عهده دارد. اين نه تنها باعث کسب اطمينان از برآورده شدن وابستگي هاي ضروري assemblyها مي شود، بلکه به اين معني است که چندين نسخه از يک assembly مي توانند درکنار هم روي يک کامپيوتر بدون ايجاد اختلال اجرا شوند. اين موضوع گامي بزرگ در تقابل با “DLL Hell” (مکافات DLL ) است، که براي تعداد کثيري از برنامه نويسان آزار دهنده است. کافي است تنها از يک برنامه نويس وب که با بيش از يک نسخه ActiveX Data Objects (ADO) کار کرده باشد، سئوال کنيد. مطمئن باشيد که گوش شما پر خواهد شد از حکاياتي درباره برنامه هاي کاربردي که با يک نسخه جديد ADO به شکست انجاميده اند. با روي کارآمدن .NET اين مسائل به فراموشي سپرده خواهند شد. ازآنجايي که برنامه کاربردي مورد نظر مي داند براي کدام نسخه از يک assembly طراحي شده است، مي تواند با گرفتن پرس وجو(query) از متاديتاي اسمبلي ، نسخه صحيح را از ميان نسخه هاي مختلف همان اسمبلي بيابد . نظارت CLR در هنگام اجرا شامل مديريت حافظه ، کنترل صحت نوع متغيرها (type safety check) و مسائل ديگر مي گردد. شکل ۱-۱نحوه انجام اين مراحل را نشان مي دهد.

شکل ۱-۱
.NET Framework Class Library
.NET Framework Class Library براي پشتيباني از تلاشهاي به عمل آمده توسط برنامه نويسان و با ارائه کلاسهاي اصلي که برنامه نويسان مي توانند براي ايجاد کلاسهاي فرعي از آنها به ارث برند، طراحي شده است. اين يک مجموعه سلسله مراتبي از کلاسهاي .NET است که برنامه نويسان مي توانند در برنامه ها کاربردي خودشان ازآنها استفاده نمايند. اين کلاسها که به وسيله محفظه هايي به نام namespace سازماندهي مي شوند، هردونوع عملکرد مقدماتي و پيشرفته را که برنامه نويسان مي توانند به آساني براي دومين مرتبه مورد استفاده قرار دهند را فراهم مي نمايند. آنها شامل کلاسهايي از انواع داده مشترک مقدماتي، کلاسهاي فراهم کننده دسترسي به داده و کلاسهايي که چنين سرويس هاي سيستمي مانند طراحي ( که خبر خوبي براي کساني است که از کامپوننت هاي third-party براي ايجاد تصاوير در يک برنامه کاربردي ASP به صورت پويا استفاده مي کنند )، عملکرد شبکه ( شامل DNS و reverse DNS Lookups )، و خيلي چيزهاي ديگر را پشتيباني مي کنند.
کتابخانه همچنين شامل کلاسهايي است که اساس ASP.NET را تشکيل مي دهند، و شامل کلاس Page(بخشي از يک namespace به نامSystem.Web.UI) که تمام صفحات ASP.NET ازآن مشتق مي شوند و کلاسهاي زياد ديگري در يک namespace به نام System.Web و فرزندان آن مي باشند.
هر فضاي نام شامل توابع مرتبط با يک قابليت يا موضوع خاص است. جدول زير تعدادي از فضاهاي نام مهم مورد استفاده را معرفي مي نمايد.
طبقه بندي فضاي نام (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

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

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

در حال حاضر زبانهاي Visual Basic .NET و Visual C# مرسومتر از بقيه زبانها هستند. اين دو زبان قابليت هاي مشابهي را براي ساختن برنامه هاي وب و ويندوز ارائه ميکنند. بيشتر تفاوت هاي اين دو زبان در کلمات کليدي بکار رفته ميباشند.
Visual Studio.NET
ارتقاء IDE
برخي از موارد ارتقايي که در Visual Studio.NET خواهيد يافت، شامل امکانات زير هستند :
 Start Page: اين صفحه پيش فرض است که هر دفعه با آغاز Visual Studio.NET نمايش داده مي شود و به شما امکان مي دهد که اولويت هاي خود را در مورد IDE اعمال کنيد ، به پروژه هاي موجود و پروژه هاي اخير دسترسي يابيد و پروژه هاي جديد را ايحاد نماييد.
 Multilanguage IDE : برخلاف Visual Studio 6.0 ، که از IDE هاي متفاوتي براي هر زباني استفاده مي کرد (با وجود اينکه Visual Inter Dev و Visual J++ از يک IDE اشتراکي استفاده مي کردند)، درVisual Studio.NET ، تمام زبانها از يک IDE استفاده مي کنند . معني آن اين است که امکانات استانداردي چون Find ,Replace , debugging و غيره ، در زبانهاي مختلف به يک شکل کار مي کنند. اين خود به تنهايي يک مورد مؤثر و بزرگ است.
 Command Windows: ترکيبي از پنجره فوري Visual Basic و يک خط فرمان است. پنجره فرمان به شما اجازه اجراي فرامين Visual Studio يا عبارت کد نويسي شده را ، با توجه به مد پنجره مي دهد. شکل ۲-۱يک پنجره فرمان را که به مد فوري (immediate mode) سوئيچ شده و از فرمان immed استفاده مي کند ، نشان مي دهد. پنجره فرمان داراي دو mode (حالت) است.
• حالت فرمان(Command Mode): به شما امکان اجراي فرامين Visual Studio را بدون استفاده از سيستم منو يا اجراي فرامين که در هر منويي ظاهر نمي شود را مي دهد .
• حالت فوري (Immediate Mode ): که در اشکال زدايي (debugging ) به کار مي رود به شما امکان ارزشيابي عبارات، بررسي مقدار متغيرها، اجراي ساختارهاي برنامه ها و توابع و غيره را مي دهد.

شکل ۲-۱
 Tabbed documents: براي تسهيل مديريت چندين فايل در حال ويرايشي که به صورت همزمان طراحي شده اند به کار مي رود. واسط کاربر [ Tabbed documents ]به شما امکان مي دهد تا تمامي فايل هايي را که به طور همزمان ويرايش مي کنيد ببينيد . اين امر باعث تسهيل سوئيچ به جلو و عقب کردن بين پنجره هاي د ر حال ويرايش، که باز هستند مي شود. اگرچه شما هنوز مي توانيد Visual Studio.NET را براي استفاده از متد قديمي مورد استفاده توسط Visual Studio 6 تنظيم نماييد ، تنها کافي است گزينه Optionsرا از منوي Tools انتخاب کنيد ، گزينه General را در پوشه Environment انتخاب نماييد، از Tabbed Documents به MDI environment سوئيچ نماييد و سپس بر روي دگمه OK کليک کنيد. براي تأثيراين تغييرات،لازم است Visual Studio.NET را راه اندازي مجدد کنيد.
 ويرايشگر HTML بهبود يافته : ويرايشگر HTML برنامه Visual Studio.NET همانند Visual InterDev پيش از خود، دو نماي طراحي و نماي HTML (منبع) را فراهم مي نمايد. Visual Studio.NET با پنجره Quick View ارائه شده توسط Visual InterDev فرق زيادي کرده است. در عوض، صفحات را در يک پنجره مرورگر الحاقي، پيش نمايش مي دهد که نماي واقعي تري از چگونگي نمايش صفحه ارائه مي شود. ويرايشگر بهبود يافته،همچنين از طريق خصوصيت targetSchema و با مشخص کردن طرح HTMLي که مي نويسد، حمايت مي شود. تنظيم کردن targetSchema تعيين مي کند که کدام عناصر از طريق امکانات تکميلي ساختار ويرايشگر در دسترس قرار خواهند گرفت و به IDE اجازه مي دهد تا شما را در مقابل دستور زبان ناصحيح موجود در متن targetSchema مورد انتخابتان، پشتيباني نمايد .
امکانات جديد
علاوه برارتقاء IDE امکانات کاملاً جديد زيادي در Visual Studio.NET IDE وجود دارند .
 ويرايشگر XML : اين ويژگي به شما امکان مي دهد داده (.xml) XML و فايل هاي Schema (.xsd) را در منبع داده، يا نماهاي Schema بسته به نوع فايل XMLي که در حال ويرايش آن هستيد، ويرايش کنيد .
 مستنداتي که بطور خودکار توليد شده اند : از امکانات بسيار جالبي که فعلاً تنها در C# موجود است، اين است که به شما امکان مي دهد تا مستنداتي ازتوضيحات و با استفاده از يک جداکنندهُ توضيح خاص(///) و دستور زبان در کد C# خود ايجاد نماييد. Visual Studioهمچنين مي تواند مستندات HTML را براي پروژه هاو راه حلها، بدون توجه به زبان مورد استفاده پروژه توليد کند.
 راهنماي پويا: از امکاناتي که راهنماي حساس به متن هنگامي که با IDE کار مي کنيد فراهم مي کند، اين است که در حالي که فايل ها، کنترل ها و کدها را به پروژه خود اضافه مي کنيد، موضوعات مورد نظررا توصيه مي کند. شکل ۳-۱پنجره راهنماي پويايي را نشان مي دهد که هنگام ويرايش عنصر <html> از يک فرم وب ظاهرمي شود .

شکل ۳-۱: پنجره راهنماي پويا هنگام ويرايش عنصر <html> از يک فرم وب
 پشتيباني از نصب کننده ويندوز : Visual Studio اکنون از اين تکنولوژي بهبود يافته، براي برنامه هاي کاربردي ويندوز حمايت مي کند که شامل پايين آوردن نياز هاي زمان نصب، درصورت ايجاد مشکلات نصب مي شود. حتي مي توانيد بسته هاي نرم افزاري را براي برنامه هاي کاربردي وبي به کار ببريد که به شما اجازه نصب و اجراي برنامه هاي کاربردي ASP.NET را روي ماشينهايي مي دهند که .NET Framework را به صورت نصب شده ندارند. اين بسته نرم افزاري ، تمامي فايل هاي ضروري زمان اجرا را براي شما نصب خواهد کرد .

پنجره ها
درحال کار Visual Studio.NET، با پنجره هاي گوناگوني در IDE مواجه خواهيد شد که براي اهداف متعددي به کار مي روند. برخي جديد هستند، مانند پنجره راهنماي پويا که در قسمت قبلي توضيح داديم، در حالي که برخي براي کاربران نسخه هاي پيشين Visual Studio آشنا خواهند بود. در ادامه نظري بر رايجترين پنجره هاي مورد استفاده خواهيم داشت .
 Designer /Soruce Editor: شکل ۴-۱، پنجره ويرايشگر منبع / طراح را در حالت ويرايش HTML نشان مي دهد. اينجاست که شما اکثر وقت خود را در محيط Visual Studio ، درآن خواهيد گذراند. در اين پنجره تقريباً تمام ويرايشگرهاي طراح و سورس کد که در Visual Studio استفاده مي گردند، گردآوري شده اند، که شامل فرم هاي وب XML Schema و طراحان HTML و همچنين ويرايشگرهاي سورس کد يکساني مي شوند که XML و HTML , SQL , Cascading Style Sheets (CSS) و تمام زبانهاي .NET را ارائه مي دهند. ويرايشگر امکانات قدرتمندي را براي هر زبان ارائه مي دهد. از امکانات جديد مي توان از ويرايشگرهاي HTML و CSS نام برد ، که کاملاً جالب توجه هستند و داراي حسگر هوشمند براي تکميل عبارات ، هم براي HTML و هم براي CSS هستند وکنترل بهتري بر چگونگي (و انجام شدن يا نشدن ) تغييرات ايجاد شده توسط ويرايشگر بر روي قالب HTML و اسناد CSS دارد. براي تغيير تنظيمات قالب بندي، گزينه Option را از منوي Tools انتخاب کنيد ، پوشه Text Editor را انتخاب کنيد. HTML (يا CSS ) را انتخاب کنيد و گزينه Format را انتخاب نماييد .

شکل ۴-۱: پنجره Designer /Soruce Editor را در حالت ويرايش HTML
 Solution Explorer: پنجره Solution Explorer براي کساني که با Visual InterDev 6 کار کرده اند آشنا است. از ابزارهاي اوليه اي است که براي مديريت فايل هاي پروژه و منابع، شامل افزودن، حذف کردن، بازکردن، نامگذاري مجدد و انتقال فايل ها و همچنين قرار دادن يک عنصر يا پروژه Start-up، انتقال بين نمادهاي کد و طراحي براي يک فايل و ديدن اطلاعات وضعيت(براي مثال وضعيت کنترل سورس کد) روي فايل هاي شما به کارمي رود. شکل ۵-۱ Solution Explorer را نشان مي دهد و بسياري از عناصر را معرفي مي کند.

شکل ۵-۱: پنجره Solution Explorer
 Class view: پنجره Class view که در شکل ۶-۱ نشان داده شده، حاوي ليستي از تمامي کلاسها و متدها، خصوصيت ها و رابطه هاي کاربر پياده سازي شده در آن فايل ها مي باشد( که در ماژول هاي .vb يا .cs وجود دارند).

شکل ۶-۱: پنجره Class view
 Server Explorer: Server Explorer که در شکل ۷-۱ نشان داده شده، از امکانات جديد Visual Studio.NET است که به شما امکان مي دهد هم منابع ماشين محلي و هم منابع سرويس دهنده هاي راه دور را ببينيد. که شامل ارتباط هاي داده اي پيکربندي شده،event log ها، صفهاي پيام و شمارنده هاي کارآيي(عملکرد) هستند.Server Explorer همچنين به شما اجازه مي دهد منابع را به درون فرم هاي وب يا اجزاء .NET کشيده و رها کنيد، تا برخي از مؤثرترين (کارآمدترين) برنامه سازي هاي طرف سرويس دهنده تا اين زمان را فراهم کنيد.

شکل ۷-۱:پنجره Server Explorer
 Properties: پنجره Properties ، فوراً توسط اشخاصي که با هر نوع ابزار برنامه نويسي Visual Studio کار کرده اند قابل تشخيص است و دسترسي به Propertyهاي اشيايي که در حال انتخاب در ويرايشگر يا طراح هستند را فراهم مي کند. شکل ۸-۱ پنجره Properties را که در حال نمايش Properties براي يک کنترل سرويس دهنده Label در ASP.NET است را نشان مي دهد. در نظر داشته باشيد که پنجره Properties به شما امکان بستن يا گسترش پنجرهُ را براي ديدن گروههايي که مشتاق هستيد را مي دهد.همچنين مي توانيد گروهها را با کليک کردن دگمه الفبايي که درست زير منوي کشويي انتخاب اشياء قرار گرفته، ببينيد.

شکل ۸-۱: پنجره Properties براي يک کنترل Label

 جعبه ابزار Visual Studio.NET : جعبه ابزار Visual Studio.NET ، عنصر ديگري است که بسيار شبيه به محيط Visual InterDev طراحي شده است و دسترسي به انواع گوناگون کنترل ها، کامپوننت ها و عناصر HTML را فراهم مي کند. مي توانيد آيتم هاي جعبه ابزار (لزوماً ، تگ هاي HTML يا عناصر متني بکار رفته براي پياده سازي کنترل ها يا کامپوننت ها) را به فرم هاي وب يا کامپوننت ها يا به وسيله دوبار کليک کردن بر روي نام آيتم در جعبه ابزار ( که در آن حالت، آيتم در محل فعلي مکان نما وارد مي شود ) يا به وسيله کشيدن و رها کردن (به شما امکان قرار دادن آيتم ها در جاي مورد علاقه تان را مي دهد )اضافه کنيد . در نظر داشته باشيد که برخي از آيتم ها هنگاميکه در يک فرم وب بکار مي روند، داراي يک نمايش ظاهري نيستند ( در فرم وب به صورت مرئي ظاهر نمي شوند ) .اين آيتم ها معمولاً در ناحيه پنجره مانند جداگانه اي در زير پنجره Designer نمايش داده مي شوند. شکل ۹-۱ جعبه ابزار را نشان مي دهد که در حال نمايش کنترل هاي فرم هاي وب است .

شکل ۹-۱: جعبه ابزار Visual Studio.NET
نکته
مي توانيد آيتم ها يا دسته بنديها ( برگه هم ناميده مي شوند ) را به جعبه ابزار اضافه کنيد. براي افزودن يک برگه، به سادگي روي جعبه ابزار کليک راست کنيد، گزينه Add Tab را انتخاب کنيد و برگه را نام گذاري نماييد. براي اضافه کردن آيتم هاي خودتان، اطمينان حاصل کنيد که برگه دلخواه شما انتخاب شده است، آيتم مورد دلخواه را در Designer انتخاب کنيد (يا Text دلخواه را در ويرايشگر Code انتخاب کنيد) ، وآن را درون جعبه ابزار بکشيد.اگر خواستيد مي توانيد با کليک راست روي آيتم جديد و انتخاب Rename نام توضيحي براي آن انتخاب کنيد .
 Document Outline : پنجره Document Outline ، که در شکل ۱۰-۱ به نمايش درآمده، طرح اسناد فرم هاي وب را در نماي طراحي نمايش مي دهد. همچنين دستيابي به طرح نماي اسکريپت را که نمايش دهنده آبجکت هاي سرويس گيرنده و رويدادهايي است که مي توانند به صورت اسکريپت درآيند را فرا هم مي کند و مي تواند براي وارد کردن اداره کننده هاي رويداد Javascript براي اين رويدادها مورد استفاده قرار مي گيرند.

شکل ۱۰-۱
 Task List : ابزاري است که بي اهميت تلقي شده است واغلب تحت Visual InterDev مورد استفاده قرار مي گيرد . پنجره Task List به برنامه نويسان اين امکان را مي دهد تا وظايف را تا هنگام تکميل ، در وضعيت فعلي ايجاد، مرتب و رديابي کنند . Task List همچنين شامل وظايفي است که بطور خودکار بوسيله Visual Studio براي کمک به برنامه نويسان در يافتن و تصحيح خطاهاي ساختاري توليد نشده اند. وظايف مي توانند برحسب نيازهاي برنامه نويسان گروه بندي و اولويت بندي شوند . گروهها شامل وظايف توضيحي ( که با نشانه هاي توضيحي نظير UPGRADE_TODO , TODO و غيره نشان داده شده اند) مي باشند، وظايف کاربران، خطاهاي ساختاري، ميانبرها (با راست کليک برروي يک خط از کد در ويرايشگر و انتخاب ميانبر Add Task List ايجاد شده اند و وظايف Intellisense (حسگر هاي هوشمند)که وقتي حسگر هوشمند، خطايي را در کد شما ميبيند ، نمايش داده مي شود . شکل ۱۱-۱ يک Tasklist را با يک User task و Shortcut task نشان مي دهد.

شکل ۱۱-۱: يک Tasklist با يک User task و Shortcut task
 Output: پنجره Output ، معرف حضور برنامه نويساني که با ابزارهاي Visual C++ و Visual j++ شرکت مايکروسافت کار کرده اند، خواهد بود. يکي از اهداف اوليه پنجره Output نمايش پيامهاي مربوط به ساخت پروژه است ( ساخت يا Build، فرآيند کامپايل کردن تمام فايل هاي کدي است که يک پروژه را تشکيل مي دهند). ازآنجايي که برنامه هاي کاربردي وب ASP.NET نيازمند ساخت، پيش از ظهور تغييرات به عمل آمده در کد هستند،از اين پنجره ها خيلي خواهيد ديد.اگر خطا ها ياهشدارهايي در بين ساخت پيش آمده باشند، حتماً در اين پنجره به نمايش در خواهند آمد .
نوارهاي ابزار
براي انجام کارها در Visual Studio.NET ، احتمالاً ترکيبي از نوارهاي ابزار IDEو منوها را استفاده خواهيد کرد. در اين بخش بر متداولترين نوارهاي ابزاري که مورد استفاده قرار گرفته اند و در بخش بعدي بر رايجترين منوهاي استفاده شده نگاهي داريم . شما مي توانيد ليست کاملي از نوارهاي ابزار در دسترس را با کليک راست کردن روي هر نوار ابزار ببينيد (يا ناحيه خالي نوار ابزار ). همانند ماهيت سفارشي Visual Studio.NET IDE تمامي نوارهاي ابزار مي توانند به وسيله اضافه کردن، حذف کردن يا چيدن دوباره دگمه ها، انتقال نوارهاي ابزار و نمايش دادن و پنهان کردن نوارهاي ابزار به صورت سفارشي درآيند.
نکته
با انعطاف پذيري که نوارهاي ابزار در Visual Studio.NET دارند، در پايان کار به سادگي مي توانيد نوارهاي ابزار را به شکل اوليه شان ، همانگونه که پس از نصب Visual Basic بود درآوريد .براي برخي اين ممکن است خبر خوبي باشد، اما اگر بخواهيد نوارهاي ابزار را به پيکر بندي اصلي شان باز گردانيد، بر روي دگمه Toolbar Option ،که در قسمت آخر راست هر نوار ابزار وجود دارد کليک کنيد،دگمه هاي Add يا Remove راکليک کنيد، بر روي منوي item براي نوار ابزار کليک کنيد و در آخر Reset Toolbar راکليک کنيد .
 Standard : نوار ابزار Standard ، که در شکل ۱۲-۱ نشان داده شده است، حاوي دگمه هايي براي فرامين فايل ها وپروژه هاي متداول است، که شامل باز کردن فايل ها و پروژه هاي جديد و دستيابي به پنجره هاي گوناگون در IDE است.