میهن داکیومنت بزرگترین مرجع و مرکز دانلود پایان نامه (متن کامل فرمت ورد) فروش پایان نامه - خرید پایان نامه (کاردانی ، کارشناسی)همه رشته ها
حقوق اقتصاد مدیریت روانشناسی ریاضی تربیت بدنی کامپیوتر نرم افزار و سخت افزار عمران معماری برق صنایع غذایی علوم اجتماعی هنر علوم سیاسی فیزیک مکانیک حسابداری

تبلیغات کلیکی - افزایش رتبه گوگل

اگهی رایگان

مقاله آشنايي با دات نت (.NET)


کد محصول : 10001033 نوع فایل : word تعداد صفحات : 113 صفحه قیمت محصول : 10000 تومان تعداد بازدید 945

فهرست مطالب و صفحات نخست


آشنايي  با دات نت (.NET)

 مقدمه:
وب يکي از مهمترين و در عين حال جوانترين سرويس اينترنت است، که در مدت زماني کوتاه توانسته است در کانون توجه تمامي استفاده کنندگان اينترنت قرار بگيرد و منشاء تحولات عمده‌اي در حيات بشريت باشد. در گذشته از وب صرفاً به منظور عرضه اطلاعات استفاده مي‌گرديد و کاربران از آن به عنوان کتابخانه‌ الکترونيکي بزرگ در جهت يافتن اطلاعات مورد نياز خود استفاده مي‌کردند. نرم افزار و دنياي برنامه نويسي يکي از عرصه‌هايي است که بدون شک بيشترين تأثير را از اينترنت پذيرا بوده است. شرکت‌هاي عظيم نرم افزاري با لحاظ نمودن جايگاه برجسته اينترنت، اقدام به ارائه تکنولوژي‌ها و معماري‌هاي متفاوتي در جهت طراحي و پياده سازي برنامه‌هاي کامپيوتري با بهره‌گير از اينترنت نموده‌اند. يکي از تکنولوژي‌هاي طراحي شده در اين زمينه تکنولوژي ASP.NET مي‌باشد. در اين پروژه سعي شده است که شناختي کافي در زمينه ASP.NET (.NET ، ASP و ASP.NET‌ و ... ) بدست آمده باشد.
 
1- آشنايي با دات نت (.NET)
چرا به دات نت احتياج داريم؟
«آشنايي با دات نت و بررسي مشكلاتي كه حل آنها سبب تولد دات نت گرديد».
 به طور معمول نسل‌هاي جديد زبان هاي برنامه نويسي به اين دليل متولد مي شوند كه زبانهاي قديمي تر داراي امكانات محدود بودند و يا قدرت استفاده از تكنولوژي‌هاي فعلي را به صورت مطلوب و ساده ندارند. مهمترين نيازي كه به عنوان آخرين تكنولوژي وجود دارد، برنامه نويسي در محيط اينترنت است. اينترنت در مدت تقريبا 8 سال جاي خود را به عنوان يكي از مهمترين وسايل ارتباطي براي كارهاي روزمره و تجارت باز كرده است. سيستمهاي برنامه نويسي قديمي تر امكان برنامه نويسي براي اينترنت را فراهم كرده بودند اما هر كدام داراي اشكالات بزرگي هستند، براي مثال تكنولوژي Com اولين بار در ويندوز به كار گرفته شد. در سال 1970 نيز سيستم‌هايي براي Unix نوشته شده بودند، جاوا نيز در اصل براي ابزارهاي الكترونيكي بود و نه براي اينترنت.
سپس براي اولين بار يك سيستم جامع براي برنامه نويسي تحت اينترنت ايجاد شد. اين سيستم‌که .NET، نام داشت، از مراحل سطح پايين كه به زبان ماشين مي‌باشد تا بالاترين سطح كه برنامه نويسي ويژوال آن مي باشد، براي استفاده در اينترنت طراحي شده است البته NET فقط براي اينترنت نيست و با استفاده از آن مي توان برنامه هاي كامل تحت Client نيز ايجاد كرد، اما بزرگترين مزيت آن در برابر سيستم‌هاي ديگر امكانات اينترنت آن است. براي اين كه از مزاياي استفاده از NET را بهتر متوجه بشويم بهتر است در ابتدا معايب سيستم هاي پيشين را ذكر كنيم.
شركت مايكروسافت تا قبل از سال 1995 به برنامه نويسي در محيط هاي Client و server پرداخت، اما از ان سال به بعد توجه بيشتري به مساله برنامه نويسي در اينترنت كرد.
مايكروسافت com و +com را ايجاد كرد و آن ها را در ويژوال استوديوي 6 به كار گرفت. در سال 1999 حدود 50 درصد از بزرگترين سايتهاي تجارت الكترونيكي از محصولات مايكروسافت استفاده مي كردند. اما هنوز هم مشكلاتي زيادي در سيستم‌هاي مايكروسافت وجود داشت كه يكي از آنها دشواري نوشتن برنامه در اينترنت با محصولات مايكروسافت بود. شركت مايكروسافت براي راحتي كار برنامه نويس‌ها ASP يا Active server page را ايجاد كرد. با اين كه اين قدم بزرگ بود و كارها را بسيار ساده كرد ولي هنوز از برنامه نويسي شي گرا پشتيباني نمي كرد. همچنين در ويژوال استوديوي 6 قسمتي براي Internet Application ايجاد شده بود و در آن امكان ساختن web class وجود داشت ولي هيچ وقت به عنوان يك ابزار كارآمد براي برنامه نويسي وب در نظر گرفته نشد.
 
مدل برنامه نويسي DNA
مايكروسافت يك مدل برنامه نويسي به نام Distributed internet Application دارد كه برپايه برنامه نويسي n-tier و com بنا نهاده شده است. مدل DNA از سه بخش اساسي تشكيل شده است:
1-بخش اول به نام Presentation tire معروف است. در اين بخش رابط تصويري كاربر وجود دارد و خود نيز به دو نوع Internet Browser و will 32 GUI تقسيم مي‌شود كه هر كدام مشكلات خاص خود را دارند. در مدلي كه از win 32 GUI يا همان نرم افزارهاي معمولي استفاده مي‌شود دو مشكل بزرگ وجود داشت: دشواري بروز رساني نرم افزار و ديگري DllHell كه در ادامه توضيح داده خواهد شد. در نوع دوم مشكلاتي از اين قبيل نبود. امكانات برنامه نويسي كافي در محيط مرورگر، نبود رابط قوي كاربر، نبودن مرورگرهاي يكسان و … وجود دارد. همچنين هميشه يك اتصال به اينترنت يا اينترانت لازم است. در اين نوع از برنامه نويسي مي توان از Java Appletها يا Activex استفاده كرد ولي مرورگر بايد امكان استفاده از آن را داشته باشد، مخصوصا هنگام استفاده از Activex كه بايد فقط از IE استفاده كرد.
2-بخش دوم كه Middle tier نام دارد، مكاني است كه اطلاعات و قوانين تجاري در آن وجود دارد، منظور از قوانين، متدها و اجزائي هستند كه اعمال كاربران را كنترل مي كنند. مهمترين و آسان ترين زبان براي نوشتن اين اجزا از DNA ويژوال بيسيك است. برنامه نويسي كه بخواهد در اين رده برنامه بنويسد بايد آشنايي كاملي با com و پروتكل هاي رايج داشته، همچنين بايد مهارت كافي در استفاده از ADO و ADSL داشته باشد.
مشخص كه يك اشتباه در اين لايه باعث بروز خطا و نقص در كل سيستم مي‌شود.
3-بخش سوم يا Data tier مكاني است كه اطلاعات سازمان در آن ذخيره مي‌شود معمولا در اين قسمت از بانكهاي اطلاعاتي پيشرفته رابطه‌اي مانند SQL server و Oracle استفاده مي كنند.

محدوديت‌هاي Com
همان طور كه ديديد مهمترين قسمت در DNA همان Com است كه در جاي جاي آن استفاده مي شود. كه در اين جا برخي معايب com را ذكر مي كنيم:
DLL Hell: اگر كوچكترين تغييري در يك com ايجاد شود، ديگر برنامه‌هايي كه از ورژن قبلي استفاده مي كردند قادر به فعال ساختن نسخه جديد نيستند. هنگامي كه در ويندوز، يك com نصب شود برايش در رجيستر يك GUID ثبت مي‌شود كه اطلاعات آن com را در خود ذخيره مي كند. اگر يك برنامه از نسخه اول يك com استفاده كند و بعد از مدتي شما تغييراتي در نسخه اول بدهيد و بخواهيد آن را دوباره در سيستم نصب كنيد ويندوز به شما پيغام خطا مي‌دهد چون ورژن آن تكرار است، اگر هم آن را به ورژن دوم ارتقاء دهيد. نرم افزار قبلي هنوز به دنبال نسخه اول مي‌گردد، اين امر باعث مي‌شود كه شما مجبور شويد يكبار ديگر كل برنامه را كامپايل كرده و در كامپيوترتان نصب كنيد.
كمبود در وراثت: در نسخه هاي Com كه در حال حاضر هستند چيزي به نام وراثتي كه در C++ وجود دارد نمي‌باشد، بلكه وراثت تنها در واسط يك Com مي‌باشد، استفاده از آن هم چندان كمكي به برنامه نويسي نمي‌كند. حل اين مشكلات باعث تولد .NET گرديد.

دات نت براي شروع
از زمان معرفي دات نت توسط مايكروسافت در تابستان 2000، تعداد زيادي از علاقمندان به دنياي گسترده كامپيوتر خصوصا طراحي و پياده سازي نرم افزار، همواره به اين سئوال مواجه بودند كه دات نت چيست و استفاده از آن چه دستاوردهايي را براي استفاده كنندگان به دنبال خواهد داشت؟ دات نت، پلات فرم مايكروسافت براي سرويس هاي وب Xml است.
به منظور شناخت تمامي ابعاد دات نت لازم است به موارد زير توجه گردد:
•    دات نت پلات فرمي جديد به منظور پياده سازي و به كارگيري برنامه‌هاي مديريت يافته،  شي‌گرا و پيشرفته است.
•    به منظور پياده سازي برنامه هاي دات نت مي توان از زبان هاي برنامه نويسي متفاوتي استفاده كرد (كد توليد شده توسط كامپايلر، Runtim دات نت خواهد بود).
•    دات نت، كتابخانه كلاس گسترده اي را ارائه مي‌نمايد.
•    دات نت، روشي جديد به منظور پياده سازي برنامه تحت ويندوز (Desktop Application) را با استفاده از كلاس هاي فرم ويندوز، ارائه مي نمايد.
•    دات نت، امكان تشريح خودكار عناصر نرم افزاري را ارائه و حمايت مي‌نمايد.
•    دات نت، امكاناتي نظير:  ارتباط بين زبان‌ها، عناصر مستقل از زبان برنامه نويسي با قابليت استفاده مجدد و توارث در بين زبانها را ارائه مي‌نمايد.
•    دات نت، روش جديدي براي پياده سازي برنامه هاي مبتني بر مرورگر (برنامه‌هاي وب) را با استفاده از كلاس‌هاي ASP. NET ارائه مي‌نمايد.
•    كلاس‌هاي ADO.NET مربوط به دات نت، يك معماري جديد غير متصل براي دستيابي به داده از طريق اينترنت را ارائه مي نمايند.
•    دات نت، امكان ايجاد سرويس هاي وب XML مستقل از پلات فرم را با استفاده از استانداردهايي نظير : SOAP و WSDL ارائه مي نمايد.
•    دات نت، يك معماري جديد براي پياده سازي و به كارگيري اشياء راه دور را ارائه مي نمايد.
•    دات نت، تكنولوژي هاي متعددي از ويندوز را حمايت مي نمايد.
پياده سازي در دات نت
براي پياده كنندگان نرم افزار تحت ويندوز، دات نت امكانات متعددي را از ويژوال C++ تا ويژوال بيسيك ارائه مي‌نمايد. دات نت، مستقل از نوع زبان برنامه نويسي بوده و در اين راستا كامپايلرهاي متعددي براي چنين زبان طراحي و پياده سازي شده و تمهيدات لازم در خصوص طراحي و پياده سازي كامپايلرهاي ديگر نيز انجام شده است. در حال حاضر از  زبانهاي Jscript و Visual Basic.NET و C# و Eiffel و Python و Per1 و CoBol و .NET و APL ميتوان استفاده كرد. دات نت از زبانهاي فوق مستقيما حمايت نمي‌نمايد. در حقيقت دات نت صرفا قادر به درك يك زبان بيشتر نيست. زبان فوق IL (Microsoft Intermediate Language) ناميده مي‌شود.

پلات فرم مستقل از زبان
از كامپايلر اختصاصي هر زبان، به منظور ترجمه كدهاي نوشته شده به IL، استفاده مي‌گردد. خروجي فرآيند ترجمه، شامل IL و متاديتا است. IL، را مي توان به منزله يك زبان اسمبلي براي يك پردازنده مجازي Stack – based دات نت تصور نمود. از اين زاويه عملكرد IL مشابه كدهاي P در نسخه‌هاي اوليه ويژوال بيسيك و يا بايت كدهاي منتشر شده توسط يك كامپايلر جاوا، است. IL، براي يك زبان خاص طراحي نشده است. به عبارتي IL، نوع‌هاي متداول به اشتراك گذاشته شده را كه توسط تمامي زبان‌هاي دات نت، استفاده مي‌گردد، را پردازش مي‌نمايد. نوع سيستم فوق (Common Type System) CTS ناميده مي‌شود. يك نوع دات نت، چيزي به مراتب بيشتر از يك نوع داده است. نوع هاي دات نت،‌عموما توسط كلاس هايي شامل كد و اعضا داده تعريف مي‌گردند. در زمان اجراء (Common Language Runtime) C LR مسئوليت استقرار يك برنامه دات نت در حافظه و اجراي آن را بر عهده خواهد داشت. به منظور نيل به هدف فوق، CLR از تكنيكي به نام (Just-In-Time) JIT به منظور ترجمه IL به كد مختص و وابسته به يك ماشين استفاده مي‌نمايد. كد دات نت، همواره ترجمه و هرگز تفسير نمي گردد، بنابراين دات نت از يك ماشين مجازي به منظور اجرا برنامه استفاده نكرده و در مقابل كد IL براي هر متد براساس كامپايلر JIT در اولين فراخواني ترجمه خواهد شد. در مرتبه بعد كه يك متد صدا زده مي‌شود، كد ترجمه شده توسط JIT، اجرا خواهد شد.
 
CoBol
Soarce    Eiffel
Source    VB.NET
Source    C#
Source
           
CoBol
Compiler    Eiffel
Compiler    VB.NET
Compiler    C#
Compiler

       
IL+Meta Data    IL+Meta Data    IL+Meta Data    IL+Meta Data

JIT compiler
CLR

Native code (Managed)

ماحصل فرآيند ترجمه، توليد يك فايل اجرايي ويندوز با فرمت (Executable Portable) PE است. در رابطه با فايل فوق ذكر دو نكته ضروري است:
اول اين كه ، CLR از زبان استفاده شده براي توليد برنامه و يا عنصر مورد نظر آگاهي نداشته و صرفا به كدهاي IL توجه خواهد داشت.
ثانيا، در تئوري استفاده از كامپايلر JIT تمام عمليات مورد نياز به منظور استفاده از پتانسيل‌هاي دات نت است.
 
دات نت و كد مديريت يافته (اداره شده)
نحوه اجرائ برنامه هاي دات نت تابع مدلي است كه در شكل قبل، نشان داده شده است. كد توليد شده كه مقصد آن CLR فريمورك دات نت باشد را برنامه هاي مديريت يافته (applications managed) مي‌گويند. در مقابل، برنامه‌هاي ويندوز غير از دات نت با نام برنامه هاي غير مديريت يافته (applications unmanaged) از آنان ياد مي‌گردد. CLR، علاوه بر اين كه امكان ترجمه كدهاي IL را به كد مختص يك ماشين فراهم مي‌نمايد، عمليات مديريتي لازم در خصوص برنامه‌ها را نيز انجام خواهد داد. استقرار يك برنامه در حافظه، بررسي صحت كد، حفاظت برنامه‌ها از يكديگر، تاكيد بر مسائل امنيتي، ارائه سرويس‌هاي اشكال زدايي، نمونه‌هايي از خدمات ارائه شده توسط CLR مي‌باشند. مديريت كد توسط CLR، يك لايه اضافه را ارائه و باعث جدا سازي برنامه‌ها از سيستم عامل مي‌گردد. در گذشته سرويس هاي ارائه شده توسط لايه فوق در خود برنامه و با استفاده از امكانات ارائه شده سيستم عامل ارائه مي‌گرديد.
متاديتا و ضرورت انتشار و همراهي آن با كد IL يكي از جنبه‌هاي كليدي دات نت است. براي افرادي كه با Com و CORBA آشنايي دارند، متاديتا به منزله شكل خاصي از يك (Language Interface Definition) IDL بوده كه به صورت اتوماتيك توسط كامپايلر زبان مربوطه توليد مي‌گردد. متاديتا مسئول تشريح نوع‌ها، شامل فيلدهاي مربوطه، خصلت‌ها، امضاء (تاييد) متد بوده و عمليات حمايتي لازم را در اين خصوص ارائه مي نمايد. با توليد اتوماتيك اين داده در زمان ترجمه، عناصر دات نت به صورت خود تشريح شده و نيازمند ساير اطلاعات مورد نياز براي استفاده از عناصر دات نت نوشته شده با زبان هاي برنامه نويسي متفاوت به منظور ارتباط بين آنها وجود نخواهد داشت.

پلات فرم در مقابل زبان برنامه نويسي
IL، يك زبان اسمبلي عمومي در مقايسه با زبان هاي اسمبلي نظير 8080 و يا 6809 نيست. IL، شامل مجموعه اي از دستورالعمل‌ها و يك بردار از ويژگي‌هايي است كه به منظور حمايت از عمليات ضروري و خصايص تعداد زيادي از برنامه‌هاي پيشرفته و شي‌گرا طراحي شده است. تاكيد دات نت بر بودن به عنوان يك سيستم شي متداول در مقابل يك زبان برنامه نويسي خاص است. CLR، مستقيما ويژگي هاي زيادي را كه عموما به عنوان خصايص مربوط به زبان هاي برنامه نويسي مطرح مي‌گردد، حمايت مي نمايد. اين موضوع شامل يك سيستم نوع زبان‌هاي طبيعي براي حمايت از كلاس‌ها، توارث، نسبت دهي پويا، مديريت حافظه، جمع آوري زائده‌هاي حافظه، بررسي و برخورد با موارد غير قابل پيش بيني و ساير موارد مرتبط است.
به منظور تسهيل در ارتباط بين زبان‌ها، دات نت مشخصه استانداردي را براي زبان‌ها، تعيين نموده است. (Common Language Specification): CLS
استاندارد فوق، مجموعه قوانين لازم در ارتباط با امكاناتي نظير: نوع‌هاي اساسي، محدوده‌هاي بردار، نوع‌هاي مرجع، اعضاء، خصلت‌ها، رويدادها و ساير موارد ديگر را تعريف مي‌نمايد. عناصر و كتابخانه‌هايي كه استانداردهاي فوق را رعايت و به آنها پايبند باشند به عنوان يك زبان سازگار با CLS شناخته خواهند شد.
توارث در بين زبان ها، چالش  خاصي را در زمان فراخواني كد سازگار با CLS ايجاد نخواهد كرد. در اين راستا مي توان، يك كلاس پايه را با استفاده از ويژوال بيسيك دات نت ايجاد كرد كه از يك كلاس C# ، مشتق شده باشد. ويژگي فوق (ارتباط بين زبانها)، يكي از مهمترين پتانسيل‌هاي دات نت محسوب مي‌گردد.

معرفي كتابخانه كلاس فريمورك دات نت
در اوايلي كه ويندوز پياده سازي گرديده بود، برنامه ها عموما با زبان c كد و از طريق توابع API مبتني بر c با سيستم عامل مرتبط و از خدمات مربوطه استفاده مي‌نمودند. اين موضوع در حقيقت بدين علت است كه بخش عمده اي از ويندوز خود با زبان c نوشته شده است. پس از طي سالياني، رويكرد فوق بر روي استفاده از اينترفيس‌هاي مبتني بر Com انعطاف پذير، تمركز و امكان استفاده از آنان (فراخواني) توسط برنامه‌هاي مبتني بر c و ساير برنامه‌هاي نوشته شده توسط زبان هاي اسكريپت، فراهم گرديد.
دات نت ، رويكرد‌هاي فوق را با يك كتابخانه كلاس فريمورك مستقل از زبان جايگزين نموده است. در فريمورك دات نت، هر چيز به منزله يك شي در نظر گرفته مي‌شود. از يك بردار ساده در C# و يا ويژوال بيسيك دات نت (System. Arrag) گرفته تا يك دايركتوري مربوط به سيستم فايل (System. Io.Directory) و يا جمع كننده اطلاعات زائد در حافظه (system.Gc). همان گونه كه قبلا اشاره گرديد، كلاسهاي فريمورك دات نت براساس عملكرد و منطق مربوطه گروهبندي و در مجموعه‌اي از namespace ها سازماندهي شده‌اند. در اين راستا بيش از يكصد namespace به همراه دات نت ارائه شده است. كه برخي از آنها شامل ده‌ها كلاس مي‌باشند. ذكر تمامي name space ها به همراه كلاسهاي موجود در آنان، كار مشكلي بوده و امكان آن از حوصله اين بحث خارج است.

برنامه نويسي كلاسهاي فريمورك دات نت
NameSpace، روش مناسبي به منظور تقسيم منطقي گروههايي از كلاسهاي مرتبط با يكديگر است. كلاس ها خود به صورت فيزيكي در فايلهاي DLL قرار گرفته و به همراه فريمورك دات نت، ارائه شده اند. فايل‌هاي DLL در دايركتوري فوق قرار دارند:
C:\WINNT\Microsoft.NET\Frame work\<.NET Version>
در صورتي كه يك برنامه از كلاسهاي موجود در ساير DLLها، استفاده نمايد، مي‌بايست در زمان ترجمه، برنامه به DLL مربوطه مراجعه نمايد. يك DLL ممكن است شامل كلاسهايي از چنين namespace متفاوت بوده در حالي كه كلاسهايي از namespaceهاي مشابه ممكن است، به صورت فيزيكي در بين چندين فايل DLL توزيع شده باشند.
شكل فوق نحوه استقرار فريمورك به همراه مدل پياده سازي دات نت را نشان مي دهد.

C#source   

C#compiler               Meta Data
                         Compile Time
                          Run Time    II+Meta Data   
Frame work class library

CLR              IL+Meta Data
       
    Mannaged Native Code   

متاديتا از كتابخانه كلاس فريمورك دات نت به سمت كامپايلر 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، ارائه مي نمايد. دات نت، امكانات مناسب و يكپارچه‌اي را به منظور پياده سازي برنامه هاي مبتني بر وب ويندوز ارائه و فصل جديدي را در عرصه طراحي و پياده سازي نرم افزار خصوصا برنامه‌هاي توزيع شده، ايجاد نموده است.

مباني دات نت
اينترفيس هاي كاربر و برنامه
در بالاترين لايه، دات نت روشهايي را به منظور تفسير و مديريت رابط‌هاي كاربر فرم هاي ويندوز، فرم‌هاي وب، برنامه هاي كنسول و اينترفيس مورد نياز عناصر از راه دور (سرويس هاي وب) ارائه مي‌نمايد.

اينترفيس‌هاي كاربر: فرم هاي ويندوز
فرم هاي ويندوز (به آنان winforms هم مي‌گويند) روشي پيشرفته و يكپارچه به منظور ايجاد برنامه‌هاي Desktop استاندارد سي و دو بيتي را ارائه مي‌نمايند. تمامي زبان‌هاي سازگار با دات نت، قادر به استفاده از پتانسيل فرمهاي ويندوز در مقابل روشهايي كه در حال حاضر استفاده مي‌نمايند، خواهد بود. فرمهاي ويندوز، مجموعه‌اي قدرتمند و‌يكپارچه از‌كنترل‌ها و توابع عملياتي را براي تمامي زبان ها ارائه و به عنوان بخشي از كلاسهاي فريمورك در name space با نام system winforms، ارائه شده است. بدين ترتيب امكان استفاده از فرم‌هاي ويندوز توسط تمامي زبانهاي مبتني بر دات نت وجود خواهد داشت.

اينترفيس كاربر : فرم هاي وب
فرمهاي وب، يكي از بخشهاي مهم ASP.NET محسوب و رابط كاربر مبتني بر يك مرورگر وب را ارائه مي‌نمايند. فرم‌هاي وب، نسل جديدي از پياده سازي اينترفيس‌هاي مبتني بر وب را ارائه مي‌نمايند. فرم‌هاي وب شامل دو بخش مجزا مي‌باشند: يك تمپليت كه شامل اطلاعات لي اوت مبتني بر HTML براي تمامي عناصر رابط كاربر و بخش دوم كه شامل تمامي منطق لازم براي ارتباط با رابط كاربر است. بدين ترتيب، اطلاعات مربوط به كنترل‌ها به همراه خصايص و لي‌اوت مربوطه در يك بخش و كدهاي مربوطه در بخش ديگر مستقر خواهند شد. كدهاي نوشته شده رفتار كنترلها را نظارت و در صورت بروز يك رويداد، روتين‌هاي مربوطه فعال خواهند شد.
فرمهاي وب داراي امكانات متعددي مي‌باشند. كنترل‌‌هاي موجود بر روي فرم‌هاي وب بر روي سرويس دهنده اجراء ولي حضور آنان به منزله سرويس گيرنده خواهد بود. بدين ترتيب امكانات و شرايط مطلوبي براي ايجاد اينترفيس‌هاي قدرتمند فراهم كه شباهت زيادي به اينترفيس‌هاي win32 استفاده شده در برنامه هاي Desktop خواهند داشت. اينترفيس‌هاي وب، داراي هوشمندي لازم به منظور ارتباط با مرورگرهاي متفاوت مي‌باشند. امكان استفاده از فرم هاي وب، براي تمامي زبانهاي سازگار با دات نت وجود خواهد داشت. اين بدان معني است كه مي‌توان كدهاي لازم براي ارتباط با بخش ويژوال يك فرم را با استفاده از هر يك از زبانهاي حمايت شده نوشت. بدين ترتيب، امكان طراحي و پياده سازي اينترفيس‌هاي وب انعطاف پذيري فراهم كه مي‌توان از آنان در مجموعه گسترده‌اي از زبان‌ها، استفاده به عمل آورد.

كنترل‌هاي سرويس دهنده
پياده كنندگان ويژوال بيسيك با ايده كنترل‌ها، آشنايي لازم را دارند. كنترل‌ها، عناصر رابط كاربر با قابليت استفاده مجددي مي‌باشند كه به منظور ايجاد يك فرم از آنان استفاده مي‌گردد. اين نوع كنترلها در فرم‌هاي وب، كنترل‌هاي سمت سرويس دهنده، ناميده مي‌شود. كنترلهاي سمت سرويس دهنده، در حقيقت يك پروكسي را بر روي سرويس دهنده براي يك عنصر رابط كاربر كه بر روي يك فرم وب و يا يك صفحه ASP است، ايجاد مي‌نمايند. كنترلهاي سمت سرويس دهنده، با منطق محلي در صورت ضرورت ارتباط و در ادامه هوشمندانه رابط كاربر خود را به عنوان HTML تفسير و در صورت ضرورت خروجي مورد نظر را براي هر صفحه حاوي كنترلهاي سمت سرويس دهنده، ارسال مي‌نمايند.
يكي از مهمترين ويژگي هاي مهم و در عين حال جالب كنترلهاي سمت سرويس دهنده، توانايي آنان در ارتباط با مديريت وضعيت خود است. به منظور مديريت وضعيت يك صفحه، ضرورتي به نوشتن كدهاي خاصي در ASP.NET وجود نخواهد داشت.

اينترفيس كاربر : برنامه‌هاي كنسول
با اين كه مايكروسافت بر نوشتن برنامه‌هاي مبتني بر كاراكتر، تاكيد خاصي نمي‌نمايد، ولي به همراه فريمورك دات نت امكانات لازم به منظور طراحي و پياده سازي اين نوع برنامه‌ها پيش بيني شده است (اينترفيس لازم). همانند فرم‌هاي وب و ويندوز، اينترفيس كنسول براي تمامي زبان‌هاي سازگار با دات نت در دسترس خواهد بود. نوشتن برنامه هاي مبتني بر كاراكتر در نسخه قبلي ويژوال بيسيك، داراي چالشهاي خاص خود بود. با استفاده از پتانسيل‌هاي ارائه شده همراه دات نت مي‌توان برنامه هاي كنسول واقعي را پياده سازي نمود.
اينترفيس هاي برنامه : سرويس هاي وب
طراحي و پياده سازي برنامه‌هاي كامپيوتر، به سمت نسل جديدي از برنامه‌هاي غير متمركز در حال تغيير و تحول است. در ساليان گذشته، اغلب برنامه‌ها سرويس‌هاي اساسي و مورد نياز خود را از طريق سيستم عامل مربوطه، دريافت مي‌كردند (نظير سيستم فايل). در ادامه، قابليت استفاده از توان و پتانسيل موجود در هر نرم افزار براي ساير نرم افزارها فراهم و بدين ترتيب امكان بهره گيري و ارتباط با عناصر نوشته شده فراهم گرديد. تمامي تلاشهاي انجام شده بر اين واقعيت استوار بود كه با به كارگيري پتانسيل‌هاي ارائه شده، توان عملياتي يك نرم افزار افزايش يابد و كمتر به نياز فوق به صورت بنيادي و ريشه‌اي نگاه مي‌گرديد. در اين رابطه مي‌بايست فونداسيون لازم به منظور ارتباط بين برنامه‌ها فراهم و تمامي برنامه‌‌ها با اتكاء به زيرساخت ايجاد شده از خدمات يكديگر در جهت ارائه بهينه خدمات خود استفاده نمايند. سرويسهاي وب، رويكرد جديدي در اين زمينه مي‌باشند. در سرويس وب، قابليت‌هاي نرم افزار به عنوان يك سرويس عرضه مي‌شود. با استفاده از سرويس هاي وب، طراحان و پياده كنندگان مي‌توانند با تركيب و به كارگيري منابع محلي و از راه دور، يك سيستم توزيعي و پيوسته را ايجاد نمايند. در دات نت، سرويس هاي وب به عنوان بخشي از ASP.NET پياده سازي مي‌گردند. (ASP.NET، مسئول ارائه تمامي اينترفيس هاي وب است). بدين ترتيب امكان گفتگوي برنامه‌ها با يكديگر و از طريق وب فراهم مي‌گردد. (استفاده از SOAP) سرويس‌هاي وب، گزينه‌اي مناسب براي جايگزين شدن با برخي از پكيج‌هاي نرم افزاري خواهند بود.

اهميت XML در دات نت
اكثر پتانسيل هاي ارائه شده به منظور ارتباط بين هر يك از اجزاء دات نت، با استفاده از Xml ميسر مي گردد. مثلا سرويس هاي وب، كاملا وابسته به Xml براي ارتباط با اشياء از راه دور مي باشند. ADO.NET ارتباط تنگاتنگي با Xml براي ارائه راه دور داده دارد. با استفاده از Xml در حوزه هاي متفاوتي از دات نت، امكان ارتباط و يكپارچگي بين عناصر مورد نظر چندين برابر مي‌گردد. Xml در دات نت داراي جايگاهي خاص و مهم بوده و مي توان آن را به منزله پتانسيلي در نظر گرفت كه تمامي عناصر مورد نظر را به يكديگر مرتبط مي‌نمايد.

اهداف دات نت
1-طراحي برنامه هاي اينترنتي بر سبك برنامه هاي : Win32GUI همان طور كه اشاره شد برنامه نويسي براي win32GUI از قدرت خوبي برخوردار است، در NET. برنامه‌هاي اينترنتي نيز از همين قدرت برخوردارند.
2-داشتن رابط گرافيكي خوب اينترنتي: به علت تغييرات اساسي كه در برنامه اين سيستم داده شده برنامه اينترنتي قابليت گرافيكي در حد برنامه هاي win32GUI دارند.
3-انتقال ساده به سيستم‌هاي ديگر: در .NET به راحتي مي‌توان برنامه‌ها را با يك كپي ساده به كامپيوترهاي ديگر انتقال داد.
4-پشتيباني از زبانهاي مختلف: در .NET به زبان هاي برنامه نويسي مايكروسافت مثل ويژوال بيسيك، سي‌شاپ (C#) و يا ++C محدود نيستيم به طوري كه در حال حاضر نسخه‌هاي cobol.NET و Pascal.NET در حال ساخته شدن است. اما شركت مايكروسافت زبان ويژوال بيسك را به عنوان زبان اصلي برگزيده است. اين مساله ريشه در تاريخ مايكروسافت دارد.
5-Plat formهاي آينده: هم اكنون NET. براي ويندوز نوشته شده است ولي در آينده نزديك نسخه‌هاي Unix و Linux و همچنين براي Mobile و PDA نيز ارائه خواهد شد. اين امر اين امكان را مي‌دهد كه برنامه‌اي كه براي ويندوز در .NET نوشته‌ايد در تمامي سيستم عاملها و دستگاههاي بالا قابل اجرا باشد.
6-ساختار .NET: مهمترين ويژگي در .NET frame work  اين است كه تمام لايه‌هاي برنامه نويسي را در بالاي سيستم عامل در بر مي‌گيرد. كه اين شامل تمامي تكنولوژي‌هاي موجود كه از طرف مايكروسافت يا شركت‌هاي ديگر ارائه شده است، مي‌شود در NET. تمام اعمال تخصيص حافظه و سازماندهي فايل بر عهده.NET frame work است و همين اصل باعث مي‌شود كه بتوان برنامه‌هايي نوشت كه به سيستم عامل متكي نباشد.
7-CLR زير ساختار .NET: قلب .NET framwork. همان CLR يا (common language Runtime) مي‌باشد. CLR، مسئول اجراي فايلها، فراخواني آنها به حافظه و كامپايل كردن آنها به زبان MSIL يا (Microsoft Intermediate) است.
بعدا كدهاي IL در هنگام اجرا، به وسيله برنامه كامپايلر Just-in-time به زبان ماشين تبديل مي‌شود. اين بدين معني است كه در NET. دو مرحله براي كامپايل شدن وجود دارد: اولين مرحله وقتي است كه برنامه به هر زبان .NET باشد به IL كامپايل مي‌شود كه اين كد كامپايل شده به IL قابليت پخش در تمام .NET Frame work را دارد و بستگي به سيستم عامل ندارد. مرحله دوم زمان اجرا است كه كامپايلر
 Just-in-time كد IL را به زبان آن ماشيني كه برنامه در آن مي‌خواهد اجرا شود كامپايل مي‌كند. CLR عهده دار برنامه نويسي شي‌گرا در سطح زبانهاي .NET است.
8-كلاسهاي پايه در .NET Framework: اين لايه شامل تمامي كلاس‌ها و آبجكت‌هايي است كه معمولا مورد نياز برنامه نويسان مي‌باشد. از جمله ADO.NET كه نسل جديد ADO است، Xml كه قسمت زيادي از .NET از اين تكنولوژي استفاده مي‌كند.
 
مروري بر ساختار برنامه‌هاي NET
هر برنامه‌اي كه بر مبناي NET. تعريف مي شود از سه قسمت مهم و اصلي تشكيل شده است: اسمبلي ها (Assemblies) ، ماژول ها  (Modules) ، تايپ‌ها (Type). اسمبلي‌ها اصلي ترين جزء براي انتقال برنامه‌هاي NET. هستند. ماژول‌ها فايل‌هايي هستند كه اسمبلي از روي آنها ساخته مي‌شوند و تايپ‌ها، واحدهاي پايه براي تعريف داده ها، Property ها و توابع هستند.

مفاهيم اوليه برنامه نويسي در دات نت
دات نت محيطي جديد به منظور طراحي، پياده سازي و اجراي برنامه‌هاي كامپيوتري را در اختيار طراحان و پياده كنندگان نرم افزار قرار مي‌دهد. با استفاده از پلات فرم فوق، مي‌توان به سرعت اقدام به پياده سازي نرم افزار نمود. برنامه هاي توليد شده امكان استفاده از پتانسيل‌هاي محيط CLR را خواهند داشت.

نوشتن يك برنامه در فريمورك دات نت
تمامي زبانهاي حمايت شده در دات نت، از سيستم نوع يكسان، كتابخانه كلاس فريمورك مشابه و CLR استفاده خواهند كرد. بدين ترتيب، تمامي برنامه‌هاي نوشته شده با يكي از زبان هاي حمايت شده،‌ خصايص مشابهي را به اشتراك مي‌گذارند. شايد مهمترين تفاوت قابل توجه در رابطه با زبانهاي برنامه نويسي حمايت شده در دات نت، به گرامر هر يك از آنها بر گردد.
براي نوشتن يك برنامه ساده در دات نت، مراحل زير را دنبال مي‌نماييم:
فاز اول: ايجاد برنامه
فاز دوم: ترجمه و ايجاد يك فايل اجرايي
در ادامه امكان اجراي برنامه فراهم مي‌گردد.

استفاده از Namespace
مراجعه به Namespaceهاي مورد نياز در يك برنامه روشي مناسبتر جهت مراجعه به كلاسها و استفاده از آنان مي‌‌باشد. با استفاده از Namespace، ضرورتي به توصيف تمامي مراجعات به كتابخانه كلاس، وجود نخواهد داشت.
 
تعريف name space و كلاس
VB.NET، امكانات حمايتي لازم در خصوص ايجاد NameSpace هاي خاص و كلاسهاي مربوط به آن را ارائه مي‌نمايد.

برخي از ويژگي‌هاي Name Space
1-namespace مي تواند درون ساير name space ها، مستقر گردند.
2-يك namespace مي تواند در چندين فايل تعريف گردد.
3-يك فايل حاوي كد مبداء مي‌تواند چندين namespace را تعريف نمايد.

نقاط ورود در دات نت
هر برنامه اجرائي مي‌بايست شامل يك نقطه ورود خارجي باشد. مكان فوق، محلي را كه برنامه اجراي خود را از آن جا آغاز مي‌‌نمايد. نقطه ورود، مي‌بايست به عنوان يک متد عمومي كه main ناميده مي‌شود، در نظر گرفته مي‌شود. در يك كلاس، متد فوق مي‌بايست به صورت اشتراكي تعريف گردد.

ترجمه و اجراء يك برنامه فريمورك دات نت
اكثر جنبه‌هاي برنامه نويس در دات نت براي تمامي زبانهاي سازگار، يكسان است. هر كمپايلر حمايت شده باعث توليد كدهاي خود تشريح MSIL مي‌گردد. تمامي كدهاي مديريت يافته با استفاده از CLR اجراء خواهند شد. CLR امكان يكپارچگي بين برنامه‌ها، مديريت اتوماتيك حافظه، برخورد يكدست با موارد خاص و استثناء، امنيت پيشرفته و در نهايت يك مدل برنامه نويسي ساده و همگن را ارائه مي‌نمايد.
در فريمورك دات نت، CLR زير ساخت لازم براي يك محيط اجراء مديريت يافته را فراهم مي‌نمايد. در زمان پياده سازي يك برنامه در فريمورك دات نت، برنامه مورد نظر مي تواند با استفاده از هر يك از زبان هاي سازگار با CLR، نوشته گردد. كمپايلر استفاده شده، كدها را به مقصد CLR ، ترجمه مي‌نمايد. پس از فرايند ترجمه كد نوشته شده، يك ماژول مديريت يافته ايجاد خواهد شد. ماژول فوق در فايلي كه (Portable Executable)PE، ناميده مي‌شود، قرار گرفته و شامل اطلاعات زير خواهد بود:
2-    (MicroSoft Intermediate Language) MSIL :
كمپايلر كد نوشته شده را به MSIL ترجمه مي‌نمايد. كد فوق، مجموعه‌اي از دستورالعملهاي مستقل از نوع پردازنده بوده و در ادامه با توجه به نوع پردازشگر به کدهاي مختص ماشين تبديل مي‌گردند.
2-Type MetaData :
اطلاعات فوق، نوع‌ها، اعضا و ساير مراجع استفاده شده توسط CLR در زمان اجرا را به طور كامل تشريح خواهد كرد.
3-مجموعه اي از ساير منابع: منابع فوق،‌ شامل موارد متعددي نظير فايلهاي JPG و يا BMP مي‌باشند.
كمپايلر يك ماژول اجرايي را توليد كه يك اسمبلي خواهد بود. اسمبلي‌ها بخش ضروري و اساسي برنامه نويسي در فريمورك دات نت بوده و CLR از آن به عنوان واحدهاي پايه و به منظور اشتراك، به كارگيري امنيت و ورژن‌هاي متفاوت، استفاده مي‌نمايد. CLR دات نت، صرفا كدهاي MSIL را كه در يك اسمبلي موجود مي‌‌باشند، اجرا خواهد كرد.

كد اجرايي
در زمان اجراي يك برنامه مديريت يافته، لود در سيستم عامل، CLR را در حافظه مستقر و در ادامه زمينه اجراي كد MSIL، ماژول‌هاي مديريت يافته، فراهم مي‌گردد. CLR مي‌بايست در ابتدا دستورالعمل‌هاي MSIL را به كد مختص ماشين و با توجه به نوع پردازنده، تبديل نمايد.
CLR، تمام كدهاي MSIL را به دستور العمل‌هاي مستقل از پردازنده در زمان لود، ترجمه نخواهد كرد. در مقابل CLR در زمان فراخواني هر يك از توابع، دستورالعمل‌هاي مربوطه را به كد مختص پردازنده تبديل خواهد كرد. MSIL، صرفا در زمان مورد نياز، ترجمه خواهد شد. عناصر CLR كه مسئوليت انجام عمليات فوق را بر عهده دارند، كمپايلر (Just in time) JIT ناميده مي‌شود. ترجمه JIT، باعث صرفه جويي حاظه و زمان در حين مقدار دهي اوليه برنامه مي‌گردد.

Application Domain
با ارائه سرويس اين اطمينان به وجود خواهد آمد كه يك برنامه در حال اجراء قادر به تاثير منفي بر ساير برنامه هاي غير مرتبط، نخواهد بود. ويژگي فوق، يك واحد ايمن و چند كاره پردازش را ارائه نموده و CLR براساس آن قادر به ايزولاسيون (تمايز) بين برنامه‌ها خواهد بود. حوزه‌هاي برنامه، عموما توسط ميزبانان زمان اجراء كه مسئوليت فعال نمودن CLR قبل از اجراي برنامه‌ها را بر عهده دارند، فراهم مي‌گردد.

متاديتا
هر كمپايلر كه مقصد آن CLR است، نيازمند توزيع (انتشار) كامل متاديتا در هر يك از ماژولهاي مديريت يافته است. متاديتا مجموعه‌اي از جدول داده بوده كه به صورت كامل هر يك از عناصر تعريف شده در يك ماژول را تشريح مي‌نمايد. اطلاعات فوق، شامل نوع داده، اعضاء به همراه تعاريف مربوطه، پياده سازي و مراجعه به ساير نوع‌ها و اعضا باشد. متاديتا، تماس اطلاعات مورد نياز براي ارتباط عناصر نرم افزاري توليد شده را در اختيار CLR قرار خواهد داد.
امكان تفكيك متاديتا از كد MSIL وجود نخواهد داشت. با توجه به اين كه متاديتا مستقل از زبان برنامه نويسي خاص بوده و در يك محل مركزي نظير رجيستري ويندوز ذخيره نمي‌شوند، امكان تشريح اتوماتيك برنامه‌هاي دات نت، فراهم مي‌گردد.
متاديتا داراي كاربردهاي متعددي است كه مهمترين آنها عبارتند از:
1-امكان يابي و لود كلاس ها
2-تاكيد امنيت

MSIL
MSIL مايكروسافت‌كه‌دربرخي‌حالات Managed code ناميده مي‌شود، دستورالعملهايي مي‌باشند كمپايلر آنها را در زمان ترجمه كد اوليه، توليد مي‌نمايد. صرفنظر از سازماندهي منطقي آنان، اكثر اسمبلي‌ها، شامل كدهايي با فرمت MSIL مي‌باشند. MSIL يك زبان ماشين مستقل از پردازنده بوده كه توسط مايكروسافت و مشاوره با ساير توليد كنندگان كمپايلر، ايجاد شده است. MSIL يك زبان به مراتب سطح بالاتر نسبت به اكثر زبانهاي ماشين است. MSIL شامل دستورالعمل‌‌هاي لازم براي عمليات متداولي نظير: دستوراتي براي ايجاد، مقدار دهي و صدا زدن متدهاي مربوط به يك شي (اشياء)، دستورات لازم براي عمليات منطقي جاري، Control Flow، DMA، Exception handling مي باشد. قبل از اين كه كد MSIL، قادر به اجرا گردد، مي‌بايست به كد مختص يك پردازنده خاص توسط يك كمپايلر JIT، تبديل گردد. CLR، يك كمپايلر JIT با معاري خاص براي هر نوع معماري پردازنده ارائه مي‌نمايد. كمپايلرهاي JIT مبتني بر يك معماري خاص،‌ امكان نوشتن كد مديريت يافته را فراهم تا در ادامه به كمك آن امكان ترجمه و توليد كد وابسته به يك معماري خاص فراهم و در نهايت زمينه اجراء كد نوشته شده، فراهم گردد.

اسمبلي‌ها
يكي ديگر از عملياتي كه CLR، انجام مي‌دهد  لود و اجراي برنامه هاي دات نت است. برنامه هاي دات نت به عنوان اسمبلي به كار گرفته مي‌شوند. اسمبلي شامل يك و يا چندين فايل EXE و يا DLL به همراه اطلاعات متاديتا است. متاديتا مربوط به تمام اسمبلي در مانيفست اسمبلي ذخيره مي‌گردد. CLR، از اسمبلي به عنوان واحدهاي عملياتي جهت اشتراك و استفاده مجدد استفاده مي‌نمايد. يك اسمبلي، واحد به كارگيري كلاس است. هر اسمبلي شامل تمامي فايل‌هاي فيزيكي است كه واحد اجرايي (عملياتي) را تشكيل خواهد داد. از لحاظ مفهومي، اسمبلي، روشي را به منظور مشاهده مجموعه‌اي از فايل‌ها به عنوان يك موجوديت،‌ فراهم مي‌نمايد.

مانيفست اسمبلي (Assembly Manifest)
يك اسمبلي شامل بلاكي از داده‌ها است كه مانيفست، ناميده مي‌شود. مانيفست، ‌جدولي است كه هر entry آن نام يك فايل بوده و به عنوان بخشي از اسمبلي در نظر گرفته خواهد شد. مانيفست شامل متاديتائي است كه به منظور مشخص نمودن ملزومات ورژن، يكسان سازي امنيت و ساير اطلاعات مورد نيازي است كه از آنان به منظور تعريف حوزه اسمبلي و مراجع لازم به منظور دستيابي و استفاده از منابع‌ها و كلاس‌ها، استفاده مي‌گردد. تمامي برنامه ها كه توسط CLR اجرا مي‌گردند، مي‌بايست تركيبي از يك و يا چندين اسمبلي باشد. تمام فايلهايي كه يك اسمبلي را ايجاد مي‌نمايند در مانيفست اسمبلي ليست مي‌گردند. مانيفست، قادر به ذخيره شدن در يك و يا چندين فايل است:
1-اسمبلي‌هاي تك فايل (Single – file). اگر اسمبلي صرفا داراي يك فايل مرتبط باشد، مانيفست همراه و مرتبط با فايل PE، خواهد بود.
2-اسمبلي‌هاي چند فايل (Multi-file)، اگر اسمبلي داراي بيش از يك فايل مرتبط باشد، مانيفست مي‌تواند به صورت يك فايل stand alone‌ بوده و يا در يكي از فايل‌هاي PE در اسمبلي مستقر گردد.

ابزارهاي C LR
CLR، در رابطه با تست و اشكال زدائي کد MSIL دو ابزار را ارائه مي‌نمايد:
1-اسمبلر MSIL: اسمبلر MSIL (فايل Ilasm.exe) کد MSIL را به عنوان ورودي اخذ و يك فايل PE شامل نمايش باينري کد MSIL به همراه متاديتا مورد نياز را توليد مي‌نمايد. گرامر استفاده به صورت فوق است:
I Lasm [options] filename [options]
2-برنامه Disassembler MSIL: با استفاده از برنامه فوق (فايل Ildasm.exe) مي‌توان بررسي لازم در خصوص متاديتا و كد disassembled هر يك از ماژول هاي مديريت يافته را انجام داد.

استفاده از برنامه Ildasm.exe
برنامه ILDASM،‌ قادر به نمايش متاديتا و دستور العمل هاي MSIL مرتبط با كد دات نت است. ابزار فوق به منظور اشكال زدايي و افزايش شناخت شما نسبت به زير ساخت دات نت بسيار مفيد است.

دستيابي به داده‌ها در دات نت
دستيابي به بانكهاي اطلاعاتي يكي از بخش‌هاي مهم در اغلب برنامه‌هاي كامپيوتري است. فريمورك دات نت، يك تكنولوژي جديد با نام ADO.NET را به منظور مديريت بانكهاي اطلاعاتي ارائه نموده است. در طي ساليان اخير، ماكروسافت تكنولوژيهاي متعددي را به منظور دستيابي به بانكهاي اطلاعاتي ارائه و در اختيار سيستم هاي نرم افزاري قرار داده است.
مروري بر تكنولوژي هاي ارائه شده توسط ماكروسافت به منظور دستيابي به بانكهاي اطلاعاتي ماكروسافت طي ساليان اخير مجموعه اي از تكنولوژي‌هاي لازم به منظور دستيابي به بانكهاي اطلاعاتي را ارائه نموده است: ADO، RDO ،DAO ،OLED و ODBC نمونه‌هايي در اين زمينه مي‌باشند. هدف اصلي تمامي تكنولوژي‌هاي فوق، ارائه يك مجموعه از اينترفيس‌هاي برنامه نويسي، به منظور استفاده در طيف گسترده‌اي از سرويس گيرندگان براي ارتباط با منابع داده متفاوت است. منابع داده، ممكن است از نوع رابطه‌اي و يا غير رابطه‌اي باشند.

تكنولوژي ODBC
تكنولوژي (Open Data Base Connectivity) ODBC اولين تلاش ماكروسافت در جهت ارائه امكانات لازم در خصوص دستيابي به منابع داده است. اين تكنولوژي، يك اينترفيس مبتني بر c، در رابطه با بانكهاي اطلاعاتي رابطه‌اي را در اختيار پياده كنندگان برنامه‌هاي كامپيوتري قرار داد. شكل زير معماري كلي ODBC را نشان مي‌دهد:
برنامه
مدير درايورها
درايورها

منبع داده        منبع داده

با استفاده از معماري فوق، برنامه ها قادر به ارتباط با بانكهاي اطلاعاتي رابطه‌اي متفاوت با استفاده از يك اينترفيس مشابه‌ مي‌باشند.
ODBC علي رغم نيل به موفقيت هايي بزرگ، داراي دو محدوديت اساسي است:
1-اين مورد به محدوديت اين تكنولوژي به منظور دستيابي به بانكهاي اطلاعاتي رابطه‌اي، بر مي‌گردد. برخي درايورهاي ODBC به منظور حمايت ODBC جهت ارتباط با داده‌هاي غير رابطه‌اي، بازنويسي شده‌اند. اين رويكرد وظايف اضافه‌اي را به درايور مربوطه تحميل خواهد كرد. كدهاي مورد نظر براي حمايت از بانكهاي اطلاعاتي غير رابطه‌اي مي‌بايست در هر يك از درايورهاي مربوطه، تكرار گردند.
2-اين محدوديت به ماهيت اينترفيس نوشته شده برمي‌گردد. (يك اينترفيس مبتني بر c). برنامه نويسان كه با توجه به علاقه و توانايي خود از يك زبان برنامه نويسي خاص استفاده مي‌نمايند، لازم است در ابتدا با اينترفيس C، ارتباط برقرار نموده و در ادامه امكان فراخواني و استفاده از ODBC، براي آنان فراهم خواهد شد.

تكنولوژي OLEDB
ماكروسافت در ادامه، استراتژي خود را بهبود و آن را براساس
 (Component Object Madel) COM استوار نمود. بدين ترتيب امكان ايجاد اينترفيس‌هاي مستقل از زبان و براساس يك استاندارد باينري فراهم گرديد. مهمترين دستاورد تكنولوژي فوق (راه حلهاي ارائه شده براساس تكنولوژي com)، وجود انعطاف لازم از ديدگاه برنامه‌هاي سرويس گيرنده است. مجموعه اينترفيس هاي com ماكروسافت، OLEDB  ناميده گرديد. يكي از ويژگي هاي مهم تكنولوژي فوق، عدم طراحي آن به منظور استفاده در بانكهاي اطلاعاتي رابطه‌اي است. OLEDB، خود اكثر عمليات و پتانسيلهاي لازم نظير cursor engine و Relational query engine، را ارائه و ضرورتي به تكرار كد آنان در Providerهاي متعدد، وجود نخواهد داشت. مهمترين دستاورد تكنولوژي فوق، ايجاد يك اينترفيس مبتني بر com براي سرويس گيرندگان است. اين تكنولوژي لايه‌اي اضافه بين سرويس گيرنده و بانك‌هاي اطلاعاتي ايجاد مي‌نمايد.

تكنولوژي DAO
(Data Access Object) DAO يك مدل شي گرا به منظور دستيابي اسان به داده‌ها براي ارتباط با بانكهاي اطلاعاتي اكسس از طريق Jet ehgine است. اين مدل داراي دو مزيت مهم است:
1-DOA نسبت به مدلهاي پيشين مسطح تر بوده و استفاده از آن آسان است.
2-DOA براساس OLEDB طراحي شده و به برنامه نويسان امكان دستيابي به منابع داده متنوعي را خواهد داد.
مهمترين دستاورد اين تكنولوژي، انعطاف مناسب آن از ديدگاه برنامه نويسان براي انتخاب يك اينترفيس، به منظور ارتباط با يك منبع داده است.

تكنولوژي ADO
ADO به عنوان يك خانواده از كلاسهاي مبتني بر com كه اينترفيس دوگانه را حمايت مي‌نمايند، ارائه شده است. ADO در لايه مياني يك برنامه مبتني بر وب مستقر و به خوبي با لايه داده مرتبط مي‌گردد. بر خلاف تكنولوژي‌هايي نظير DAO، كه از يك ساختار سلسله مراتبي خاص استفاده مي‌نمايد، ساختار سلسله مراتبي استفاده شده در ADO، مسطح تر بوده و در اين رابطه سخت گيري خاصي اعمال نشده است. مهمترين دستاورد اين تكنولوژي، ارائه يك مدل برنامه نويسي ساده براي استفاده كنندگان است. مدل اشيا ADO، شامل اشياء انفرادي و مجموعه‌اي از اشياء است.

ADO. NET
به همراه كتابخانه كلاس فريمورك دات نت، ماكروسافت مجموعه اي از كلاسها را به منظور دستيابي به داده‌ها و با عنوان ADO.NET ، ارائه نموده است. شايد اين سئوال مطرح گردد كه چرا ماكروسافت يك تكنولوژي جديد به منظور دستيابي به داده‌ها ارائه كرده است؟
در پاسخ بايد گفت كه آنها مجبور به انجام اين كار بوده‌اند. OLEDB و ADO براساس عناصر com مي باشند. با توجه به اين كه دات نت يك زير ساخت جديد اشياء را ارائه كرده است. لازم است كه در اين رابطه كلاسهاي دستيابي به داده‌ها، نيز مبتني بر دات نت باشند. به منظور تسهيل در برنامه نويسي مدل غير متصل،‌ADO.NET كلاس جديدي با نام Dataset را ارائه كه قادر به نگهداري داده‌هاي بازيابي شده از يك منبع داده در حافظه، است. Data set قادر به نگهداري تعداد زيادي از جداول به همراه محدوديت ها و ارتباطات بين جداول، مي باشند. بدين ترتيب Data set، تصويري مناسب از يك بانك اطلاعاتي ساكن در حافظه، را ترسيم خواهد كرد. (بحث ADO.NET به طور كاملتر در ادامه گفته خواهد شد).

چند زباني در دات نت
يكي از برتري هاي .NET نسبت به رقيب اين است كه شما مي‌توانيد از چندين زبان برنامه نويسي در يك برنامه استفاده نماييد. چند زبانه بودن NET. به اين معني است كه ما مي‌توانيم قسمت‌هاي مختلف يك برنامه را به زبان هاي مختلف بنويسيم و آن‌ها بدون هيچ مشكلي در كنار هم كار كنند. در NET. به دليل استفاده زبانها از كتابخانه كلاس NET. تفاوت آنها فقط در نحوه نوشتاري دستورات مي‌باشد. مثلا زبان سي‌شاپ (C#) هيچ برتري خاصي نسبت به VB.NET ندارد و انتخاب بين يكي از اين زبانها به سليقه و علاقه برنامه نويس بستگي دارد.

آشنايي با ASP (ASP کلاسيک)
معرفي اوليه تكنولوژي ASP
شركت مايكروسافت در سال 1996 تكنولوژي (Active Server Page) ASP را معرفي نمود. تكنولوژي فوق اولين بار به همراه سرويس دهنده اطلاعاتي اينترنت
 (IIS: Internet Information Server) IIS نسخه 3.0 ارائه گرديد با به كارگيري تكنولوژي فوق امكان طراحي و پياده سازي نرم افزارهاي بزرگ و بانك هاي اطلاعاتي به همراه صفحات وب فراهم مي‌شود. هسته اوليه ASP، زبان vb script است. صفحات ASP به كمك كدهاي نوشته شده توسط زبان فوق ايجاد مي‌گردنند. Vbscript به عنوان زبان استاندارد براي پياده سازي صفحات ASP در نظر گرفته شده است ولي مي‌توان از زبان هاي Perl و Jscript در اين راستا نيز استفاده نمود. ASP بر روي سرويس دهنده اجرا مي‌گردد. بديهي است در اين حالت عملكرد صفحات وب مستقل از توانايي‌هاي مرورگرها خواهد بود.

ASP چه كارهايي مي تواند انجام دهد؟
تقريبا همه چيز ! توانايي هاي تكنولوژي فوق نامحدود است. مثلا: دستيابي و جستجو در بانكهاي اطلاعاتي متفاوت مستقل از بانك، شخصي نمودن صفحات وب، نمايش صفحات متفاوت براي مرورگرهاي متفاوت، حفاظت رمز عبور، بازيهاي كامپيوتري، پردازش فرمها و … نمونه‌هايي از توانايي هاي بيشمار تكنولوژي فوق مي‌باشند.
اجراي ASP روي كامپيوتر خودتان
شما مي توانيد ASP را روي كامپيوتر خود و بدون احتياج به يك سرور بيروني نيز اجرا كنيد. براي اين منظور شما بايد يكي از برنامه‌هاي PWS يا IIS را روي كامپيوتر خود نصب كنيد. بدين ترتيب كه:
جهت استفاده كامل از توانايي هاي ASP، مي‌بايست سيستم عامل ويندوز NT4.0 را به همراه IIS4.0 استفاده نمود. (نسخه IIS4.0 در زمان نصب ويندوز NT و پس از نصب NT4.0 Option Pack بر روي سيستم نصب مي‌گردد).
از ويندوز server 2000 به همراه IIS5.0 نيز مي‌توان در اين زمينه استفاده كرد. جهت استفاده از ASP بر روي كامپيوترهايي كه بر روي آنها ويندوز 98 و يا 95 نصب گرديده است مي‌توان سرويس دهنده شخصي وب، (Personal Web  Server) PWS را بر روي كامپيوتر نصب نمود. (جهت نصب PWS كافي است از CD ويندوز 98 و يا 95 استفاده و در شاخه Add-ons/PWS برنامه Setup را اجرا نمود).
 


منابع :


www.Microsoft.com

www.MSDN.com

www.MSDN.net

www.Srco.ir

www.quickstart.com

www.ASP.NET

www.iranasp.NET

www.w35chools.com

 

طراحی سایت : سایت سازان