NET پيشرفته ترين زيرساختي است كه تا كنون براي توسعه وب ساخته شده است. ساختار جديد آن است كه بر اساس تكنولوژي جديد Microsoft موسوم به NET . شكل گرفته است .
آشنايي با MICROSOFT . NET
. NET واژه اي است كه مفهوم تعدادي از تكنولوژي هاي جديد M icrosoft را تحت پوشش قرارمي دهد. در مجموع ، اين تكنولوژي پراهمـيت ترين ، عـظيم ترين و اسـاسي ترين تغييراتي هستند كه از زمان انتقال از محيط ۱۶ بيتي به محيط ۳۲ بيتي ،‌در زير ساخت توسعة برنامه ها توسط M icrosoft به وجود آمده اند .
Microsoft . NET شامل سه گروه اصلي مي باشد:
• چارچوب NET .
• . NET Enterprise Servers
• ابزارها وزبان هاي جديد سازگار با NAT .
چارچوب NET
چارچوب . NETيك تكنولوژي ضروري براي ASP . NET به شمار مي رود . اين چارچوب خدمات و سرويس هايي را كه از ASP . NET پشتيباني مي كنند ارائه مي دهد . به علاوه ، تكنولوژي جديد ديگري موسوم به Windows Forms Development ( توسعة برنامه هاي كاربردي با استفاده از فرم هاي ويندوز ) را ارائه مي دهد كه براي ساختن برنامه هاي سرويس گيرنده بسيار قدرتمند مي باشد . همانظور كه Windows NT 4.0 Option pack به عنوان يك افزودني براي سيستم عامل Windows NT محسوب مي شود و تكنولوژي هاي IIS 4 .0 وASP را به اين سيستم عامل اضافه مي كرد ، چارچوب NAT . نيـز يك افزودني براي سـيستم عـامل هاي ۲۰۰۰ Windows ، Windows 98/ME , Windows NT مي باشد كه با اضافه كردن سرويس هاي اساسي سيستم ، امكان پشتيباني از تكنولوژي NET . را براي اين سيستم عاملها فراهم مي آورد.اين چارچوب در خانوادة سيستم عامل هاي جديد Windows ، از جمله NET Server . Windows گنجانده خواهد شد .

(CLR) Common Language Runtime
CLR محـيطي بـراي اجـراي كـدهاي نوشته شده به وسيلة زبان هاي سازگار با چارچوب NET . ارائه مي دهد. runtime مديريت اجراي كدهاي NET . را به عهده دارد؛ اعم از مديريت مدت زمان زندگي اشياء و مديريت حافظه . علاوه بر اين خدمات ، runtime به برنامه نويسان يا به عبارتي توسعه دهندگان امكان مي دهد كه عمليات اشكال زدايي،مهار كردن استثناء ها و وراثت ميان كلاس ها رادربين زبانهاي مختلف سازگار با NET به راحتي انجام دهند .

انجام اين عمليات مستلزم آن است كه كامپايلرهاي زبانهاي مختلف ازCommon Language pecification يا بـه اخـتصار CLS پيـروي كننـد . CLS مـجموعـة قوانيـن و نوع هاي داده اي را تـعريف مي كنـد كه بيـن تمام زبان هاي سازگار با NET. مشترك مي باشند . هر يك از كامپايلرها ، كد نوشته شده توسط برنامه نويسان را به يك زبان مياني موسوم به Microsoft Intermediate Languageيا به اختصار IL يا MSIL كامپايل مي كند.سپس اين كد مياني درزمان نصب برنامه يا در هنگام اولين اجرا توسط runtime به زبان ماشين تبـديل مي شـود . روش كـامپايل كردن كـد در هنگـام اوليـن اجرا را JIT مي گويند . كدي كه به IL تبديل شده و مديريت آن توسط runtime صورت مي گيرد، Managed Code (كد اداره شده ) ناميده مي شود. علت اين نامگذاري اين است كه مديريت اجراي اين كد، اعم از ساختن اشياء ، تخصيص حافظه و حذف اشياء بلا استفاده از حافظه توسط runtime انجام مي شود .

مؤلفه هايي كه با كد IL نوشته مي شوند و توسط runtime اجرا مي گردند ، Assemblies .Net Managed يا به اختصاراسـمبلي نامـيده مي شـوند اسمـبلي ها كوچـكترين واحد دسته بندي اشياء دردنياي NET. مي باشندوبسيار شبيه مؤلفه هاي COM هستند.تفاوت آنها در اين است كه يك مؤلفة COM براي تعيين چگونگي استفاده ازاشياء دروني اش ،يك Type Library به مشتريان خود ارائه مي دهد،در حالي كه يك اسمبلي براي اين منظور يك مانيفست دارد.مانيفست فهرستي است كه محتويات آن اسمبلي را مشخص مي كند . اين ويژگي مؤلف هاي NET . علاوه بر مزاياي ديگري كه بعداً به آنها اشاره خواهد شد . بيانگر اين مطلب است كه يك اسمبلي نيازي به ثبت در رجيستري كامپيوتر ندارد و خودش شامل اطلاعاتي است كه محتويات و چگونگي استفاده از آن را مشخص مي سازند .

اطلاعات موجود درمانفيست ، وابسـتگي ها و شمارة نسخه آن اسمبلي را نيز معين مي‌كند. اين اطلاعات به شما كمك مي‌كند كه به راحتي تمام اسمبلي هاي مورد نياز براي استفاده از يك اسمبلي را شناسايي كنيد.به علاوه،‌اين امكان وجود دارد كه چندين نسخة مختلف ازيك اسمبلي بر روي يك كامپيوتر و بدون ايجاد تداخل با يكديگر كار كنند.اين ويژگي گام مهمي براي حل يكي از مشكلات فايل هاي DLL مي باشد كه به DLL HELL معروف است و يكي از بدترين مصيبت هاي هر برنامه نويس مي باشد .كافي است از كسي كه با چند نسخة مختلف ADO كار كرده است دراين مورد مشورت كنيد! با وجود NET . اين مشكل به دست فراموشي سپرده خواهد شد . با توجه به اين كه يك برنامة كاربردي مي داند براي استفاده از كدام نسخة يك اسمبلي طراحي شده است ،با مراجعه به مانفيست به راحتي مي تواند نسخة مورد نظر را از ميان چند نسخة موجود انتخاب كند.
مطالب گفتني در مورد runtime بسيار زياد است و فعلا از آنها صرف نظر مي كنيم .

كتابخانة چارچوب NET .
كتابخانه چارچوب NET. مجموعه اي از كلاس هاي پايه است كه برنامه نويسان مي توانند به طور مستقيم ازآنها استفاده كنند و يا از روي آنها كلاس هاي جديدي بسازند . كلاس هاي موجود در اين مجموعه به صورت سلسله مراتبي طراحي شده اند. اين كلاس ها كه بسته به نوع و موارد كاربرد آنها در گروه هاي مختلفي موسوم به فضاي نامي طبقه بـندي شده اند، توانايي هاي اساسي وپيشرفته اي دارندكه شما به راحتي مي توانيد آنها رابه خدمت بگيريد.به عنوان مثال،براي هر يك از نوع هاي داده اي پايه يك كلاس درايـن كتابخانه وجـود دارد.همچنين كلاس هايي براي دسترسي به داده هاي موجود درپايـگاه داده ، كلاس هـايي بـراي انجـام كارهاي گرافيكي و ترسيمي و … نيز در اين كتابخانه موجود مي باشند .

به علاوه ، اين كتابخانه شامل كلاس هايي است كه ساختار ASP . NET را شكل مي دهند از جمله Page كه در فضـاي نـامي System. Web.UI قـرار دارد و تـمام صـفحات ASP . NET از آن مشتق مي شوند كلاس هاي ديگري كه در فضاي نامي System. Web و فضاهاي نامي دروني آن قرار دارند .

وراثت
وراثت يكي از مفاهيم اصلي چارچوب NET . است و به شما امكان مي دهد كه از كد درون كلاس هاي موجود استفاده كنيد . يك كلاس مي تواند ويژگي ها و متدهايي داشته باشد كه كلاس هاي ديگر آنها را به كار مي برند .كلاس هايي كه با استفاده از تكنيك وراثت از يك كلاس پاية خاص ساخته مي شوند و به عبارتي از آن مشتق مي شوند، تمام كد موجود دركلاس پايه را به ارث مي برند.به اين ترتيب . نيازي به نوشتن مجدد كد نيست.به علاوه ،‌نكته مهم ديگري كه بايد متذكر شويم اين است كه يك برنامه نويس مي تواند بـا مشتق كردن يك كلاس جديد از يك كلاس پايه ، يك يا چند متد موجود در كلاس پايه را در كلاس بازنويسي كند وبه اين ترتيب عملكرد متد يامتدهاي مزبور را دركلاس جديد به شيوه دلخواه خود تعريف كند .

Enterprise Servers .
نسل جديد سرويس دهنده ها موسوم به NET Enterprise Servers اولين گام در تحول زيرساخت توسعة برنامه ها محسوب مي شود . اگر چه اين سرويس دهنده ها به طور صريح از runtime و كتابخانة چارچوب NET . بهره نمي برند ، ولي پايه واساس محكمي براي ساختن برنامه هاي كاربردي حرفه اي و سطح بالا ارائه مي دهند.
سرويس دهنده هاي جديد برنامه هاي ASP عبارتند از :‌
• SQL Server 2000
• Exchange 2000 Server
• Commerce Server2000
• Host Integration Server 2000
• BizTalk Server 2000
• Internet Security and Acceleration Server 2000
• Application Center 2000
اين محصولات در كنارهم بيشتر كارآيي برنامه هاي كاربردي تجاري سطح بالا را ارائه مي دهند .

Visual Studio . NET
شايد بيشتر برنامه نويسان براي توسعة سريعتر و ساده تر ،‌بخواهند در محيط Visual Studio.NET كار كنند . Visual Studio.NET يك محيط توسعة يكپارچه براي تمام زبان هاي .NET فراهم آورده و اين در تاريخ بي سابقه بوده است . به اين ترتيب ، برنامه نويسان Visual Basic ، Visual C++ و C # همگي از همين IDE استفاده مي كنند.به علاوه ، اشكال زدايي ومهار كردن استثناءها در بين برنامه هايي كه با زبان هاي مختلف نوشته شده اند ، همگي در همين محيط امكان پذير مي باشد .
Visual Studio.NET چندين ويژگي جديد قدرتمند دارد كه در اين جا به بعضي از آنها اشاره مي كنيم :
• يك مدل برنامه نويسي منفرد و يكپارچه براي تمام زبان هاي سازگار با NET . و برنامه هاي كاربردي مبتني بر وب و ويندوز.
• دسترسي آسان و سريع به امكانات سرويس دهنده با استفاده از پنجره Server Explorer .
• راهنماي ديناميكي .
• يك مدل قدرتمند براي سفارشي كردن و توسعة IDE .
• پشتيباني قوي از XML .

Visual Basic . NET
همانطوركه قبلا گفته شد،برنامه نويسانASP .NET ديگرمجبورنيستند ازيك نسخة ضعيف Visual Basic مثل VBScript استفاده كنند . حالا مي توانند از تمام قدرت زبان Visual Basic بهره ببرند و بايد بدانيد كه قدرت اين زبان نيز افزايش يافته و اگر بخواهيم به بعضي از اين امكانات جديد اشاره كنيم مي توانيم از وراثت ، مـهار كردن استـثناء ها به صـورت سـاختار يافته و پشتيباني از برنامه نويسي Multithread ياد كنيم .
Visual Basic .NET زباني است كه مديريت اجراي كدهاي نوشته شده با آن به عهدة runtime مي باشد . از اين رو ،‌آن را به عنوان يك Managed Language (زبان اداره شده ) مي شناسيم .

ديگر مجبور نيستند همانند ۶ Visual Basic با استفاده از دستور Set object = Nothing رفرنس به اشيا را از بين ببريد . يكي از ويژگي هاي چارچوب Garbage Collector , . NET يارفتگر حافظه مي باشد كه حافظة مي باشد كه حافظة اشغال شده توسط اشيا را در هنگامي كه هيچ رفرنسي به آنها وجود ندارد آزار مي سازد .
ويژگي جديدVisual Basic .NET بسيارزيادمي باشند ولي كساني كه قبلاً با VBScript و ۶ Visual Basic كاركرده باشد، به راحتي مي توانند ازآنها استفاده كنند و به اين منظور كافي است با مدل برنامه نويسي NET . آشنا شوند .
C#
زبان C# كه يكي از اعضاي جديد خانوادة Visual Studio مي باشد از زبان C نشأت گرفته است . C# شباهت زيادي به C++ دارد ولي بسيارساده تراست وبه راحتي قابل استفاده مي باشد. اگر چه يادگيري آن به راحتي Visual Basic نيست ، ولي از C++ خيلي ساده تر است و تقريباً تمام قدرت زبان C++ را نيز دارا مي باشد . همچنين مانند C++ شما را مجبور نمي كد كه مديريت حافظه را به عهد بگيربد چون C# مانند Visual Basic .NET يك زبان اداره شده است ، تمام امور مربوط به مديريت حافظه توسط runtime صـورت مـي گيرد . ايـن يكـي از مـزاياي مـهم ايـن زبـان است ؛ چون مديريت حافظه يكي از مشكل ترين مسائل برنامه نويسي با C،C++ و يا Java آشنايي داشته باشند به سرعت مي توانند C# را ياد گرفته و فعاليت خود را با اين زبان ادامه دهند .

ديگر زبان هاي سازگار با NET .
علاوه بر Visual Basic .NET و C# ، زبان هاي Jscript . NET ، Visual C++ و Managed Extensions for Visual C++ نيز به همراه Visual Studio.NET ارائه شده است . منظور از Managed Extensions for Visual C++ دستورات و كليد واژه هايي است كه توسط Microsoft به زبان C++ اضافه شده اند و به شما امكان مي دهند كه با استفاده C++ نيز در محيط NET . برنامه بنويسيد .
به علاوه،‌معماريVisual Studio.NET به گونه اي طراحي شده است كه براي جذب زبان هاي ديگر قدرت فراواني دارد.اين قدربه توسعه دهندگان زبان هاي جديدي كه براي كاركردن در چارچوبNET . ساخته مي شوند و يا زبان هايي كه از قبل موجود بوده اند و براي سازگاري با NET . به روز در مي آيند امكان مي دهد كه محصول خود را در محيط Visual Studio بگنجانند .
ليست زبان هاي ديگري كه قرار است در آينده به Visual Studio.NET اضافه شوند درزير آمده است :
• APL
• COBL
• Pascal
• Eiffel
• Haskell
• ML
• Oberon
• Perl
• Python
• Scheme
• Smalltalk
• و بسياري ديگر ( در زمان نوشتن اين كتاب ، تعداد آنها به ۱۷ عدد مي رسيد)

معماري ASP . NET
بسياري از چيزهايي كه در ASP . NET وجود دارند براي برنامه نويساني كه قبلاً با ASP كلاسيك كار كرده اند آشنا مي باشد . اشياء Request و Response كه بسيار پركاربرد بودند . هنوز هم وجود دارند همـچنـين اشــياءApplication ، Session و Server نـيـز بــا چـنـد ويـژگـي و مـتد جـديد كماكان قابل استفاده مي باشند . شمـا هـنوز هـم مي تـوانيـد بـراي مـشخص كـردن اسـكريپت هاي server – side از ‹ “SERVER ” = SCRIPT RUNAT › و يا ‹ % , % › استفاده كنيد . در حقيقت ، به همان روشي كه قبلاً يك صفحة ASP مي ساختيد مي توانيد يك صفحة ASP . NET نيز بسازيد ولي هنگامي كه با مدل جديد برنامه نويسيASP . NET آشناشويد ديگر هيچگاه برنامه هاي ASP خود را مانند قبل نخواهيد نوشت .

همچنين مجبور نيستيد تمام برنامه هاي ASP قبلي خود را يكباره ارتقاء دهيد. ASP . NET به گونه اي طراحـي شـده كـه مـي تواند در كنار ASP كلاسيك كار كند . بنابراين هنگامي كه بر روي اولي برنامة ASP . NET خود كار مي كنيد ، برنامه هاي ASP قبلي شما نيز مي توانند به كار خود ادامه دهند .

ويژگي هاي جديد
موضوعات جديد ASP . NET بسيار زياد هستند و براي يادگيري تمام آنها به زمان زيادي نياز است .ولي هنگامي كه آن را ياد بگيريد ، قدرت ابتكار و سازندگي شما نسبت به زماني كه با ASP كلاسيك كارمي كرديد بسيار بيشتر خواهد شد.بياييد به ليست ويژگي هاي جديد ASP . NET نگاهي بياندازيم.
• Web forms : ايـن مـدل جـديد برنامه نويسي ASP . NET است . اين ويژگي ، قدرت ASP را بـا سهولت استفاده از Visual Basic تركيب مي كند . شما مي توانيد كنترل ها را از جعبه ابزار بكشيد و روي فـرم رهـا كنيد و سـپس كد مورد نظر خود را در تابع پاسخ گوي يكي از رويدادهاي آن كنترل بنويسيد.( به عنوان مثال،‌اگر يك كنترل Command Button روي فرم قرار دهيد و سپس روي آن دوبار – كليك كنيد ، Visual Studio تابع پاسخ گوي رويداد Click اين دكمه را برايتان مي نويسد . حالا كافي است كدمورد نظر خود را درون اين تابع تايپ كنيد – مترجم )

• Server Controls :اين يكي ازمؤلفهاي بزرگ مدل برنامه نويسيWeb Formsمي باشد.اين مؤلفه به كنترل هايي اشاره مي كند كه تقريباًهريك ازآنها به يكي ازالمان هايHTML مربوط مي شود(‌البته چند كنترل اضافي ديگر وجود دارد كه بعدابا آنها آشنا خواهيد شد ) وقدرت برنامه نويسي – Side Server را تا حـد زيـادي افـزايـش مي دهـند. ايـن كـنترل ها بر روي كامپيوتر سرويس دهنده كار مي كنند و مي توانند خروجي HTML توليد كنند . خروجي اين كنترل ها براي برنامه هاي مرورگر سطح بالا مثل Internet Explorer 5.x يا بالاتر و يا مرورگرهاي سازگار با HTML 3.2 قابل شناسايي مي باشد .

• Web Services : ايـن يكي از بخش هاي كليدي ASP . NET است . و به برنامه نويسان امكان مي دهد كه سرويس هاي مورد نظر خود را به صورت برنامه اي و از طريق اينترنت (يا اينترنت محلي)دراختيار برنامه نويسان ديگر قرار دهند.اين ويژگي براساس استاندارد S OAP كار مي كند .
Caching : ASP . NET شامل يك موتور قوي براي نگهداري و پنهان سازي صفحات است كه به برنامه نويسان امكان مي دهد بار پردازشي موجود بر روي سرويس دهندة وب و سرويس دهندة اطلاعات را كاهش دهند وبه اين ترتيب عملكرد برنامة كاربردي خود را بهبود بخشند.

بهبود پيكر بندي :‌ ASP . NET براي ذخيره كردن اطلاعات پيكر بندي برنامه هاي كاربردي مبتني بر وب ازيك روش جديد استفاده مي كند . به جاي ايـن كـه IIS ايـن اطـلاعات را در يك پايگاه داده ( كه دسترسي به آن بسيار مشكل است)ذخيره كند، براي نگهداري اطلاعات پيكر بندي از فايل هاي XML استفاده مي شود كه خواندن آنها براي انسان و ماشين امكان پذير مي باشد .

بهبودمديريت وضعيت: اگرقبلاًيك برنامة كاربردي ASPكلاسيك محدوديتهايي وجوددارد.ASP . NET براين محدوديت ها غلبه كرده است وامكان توزيع اطلاعات وضعيت درميان چندين سرويس دهندة وب رافراهم آورده است ، اطلاعات وضعيت را در يك پـايگاه دادة SQL Serverذخيره مي كند و بدون استفاده از Cookie ها مديريت وضعيت را به عهده مي گيرد .
• امنـيت : بي شك امروزه يكي از مهمترين مسائل در توسعة برنامه هاي كاربردي مبتني بر وب، حفـظ امنيت اطلاعات مي باشد ، مدل امنيتي موجود در ASP . NET تا حد زيادي بهتر شده است ؛ از جمله جلوگيري از دسترسي به كد برنامه و روش هاي جديدي كه براي شناسايي كاربران پيش بيني شده است .

”. NET“Notepad
در واقع نام اين برنامـه ”. NET“Notepad نـيست، ولـي چـون بعضي ها از روي علاقه Notepad Visual مي نامند ، با تحولات جديد و ارائة چارچوب NET . توسط Microsoft بد نيست آن را ”. NET“Notepad .
يكي از مزاياي بزرگ Notepad قيمت آن مي باشد كه رايگان است . حتي لازم نيست آن را از اينترنت Download كنيد . براي شروع كاربا ASP .NET به وسيله Notepad فقط كافي است NET Framework. SDK (يا ASP .NET runtime redistrbutable package) را نصب كنيد .
پس از اين كه اين SDK را نصب كرديد ، ساختن يك صفحه ASP .NET به سادگي ساختن يك صفحه HTML با Notepad و ذخيره كردن آن با پسوند .aspx است . به عنوان مثال ، كد HTML زير را كه براي يك صفحة ASP .NET ساده نوشته شده است در نظر بگيريد :
< html>
< head>
< titlel> first Asp . NET Page ! < / title>
</ head>
< body>
< p> Hello world ! </p>
< body>
</ html>
اگر شما يك فايل متن در Notepad بسازيد اين كد را درون آن تايپ نماييد و آن را با پسوند .aspx در يك دايركتوري مجازي معتبر ذخيره كنيد . يك صفحه ASP .NET كاملا صحيح خواهيد داشت . البته اين كد كار زيادي انجام نمي دهد . در ادامه آ را بهتر خواهيم كرد . ولي ابتدا اجازه ديد براي تست كردن صفحات ASP و ASP .NET يك Virtual Directory در IIS بسازيم .

ويراستارهاي ديگر
شايد Notepad رايج ترين ويراستار متن دردنياي ويندوز باشد ولي بدون شك اولين و آخرين ويراستار نيـست . عـلاوه بر Notepad ، بسياري ويـراستارهاي ديگر نيز هستند كه ويژگي هاي خاص برنامه هاي قدرتمند را ارائه مي دهند . بضي از اين ويژگي ها عبارتند از:‌
استفاده از رنگ براي نشان دادن كليد واژه هاي مختلف موجود در زبان برنامه نويسي .
كامل كردن گزاره يا عبارت در هنگام تايپ ، بر اساس آنچه كه بيش از آن تايپ شده است .
براي برنامه نويساني كه مي خواهند از چگونگي ساخته شدن برنامة ويراستار خود مطلع باشد ، بعضي از برنامه هاي ويراستار به همراه كد اصلي آنها به فروش مي رسند .

اگردردنياي ASP .NET مبتدي هستيد، شايد يكي از اين ويراستارهاي متن براي كار شما مناسب باشد، اين برنامه ويژگي هايي در اختيار شما قرار دارد كه در Notepad پيدا نمي كنيد .

Visual Studio . NET
همانطور كه گفته شد براي ساختن يك برنامة كاربردي ASP .NET مي توان Notepad يا يك ويراستار متن ديگر استفاده نمود .ولي اگر كار شما جدي است ، شايد بخواهيد در محيط Visual Studio. NET كار كنيد . مزاياي Visual Studio. NET نسبت به ويراستارهاي متن ساده عبارتند از :
مديريت قدرتمند فايل هاي پروژه و چندين پروژه به طور همزمان .
همبستگي با Microsoft Visual Source Safe كه براي كنترل كد اصلي برنامه ها بكار مي‌رود .
ابزارهاي گرافيكي براي كار با كنترل ها و سرويس هاي وب و ابزارهاي كار با پايگاه داده .
ارائه سرويس هايي براي آماده سازي و بسته بندي برنامه هاي كاربردي وب .
پشتيباني از چند زبان برنامه نويسي در يك محيط منفرد .

انواع پروژه هاي ASP . NET
برنامه هاي كاربرديASP .NET به دودستة اصلي تقسيم مي شوند كه هريك براي منظوري خاص بكار مي روند. براي برنامه هاي كاربردي مبتني بر وب كه خودشان رابط كاربر يا UI مبتني بر HTML دارند از برنامه هاي كاربردي ASP .NET اسـتفاده مـي شود براي يك برنامة كاربردي كه رابط كاربر نداشته باشد و فقط به صورت برنامـه اي مـورد استفاده قـرار گيرد ، از سـرويـس هـاي وب مبـتني برXML استفاده مي شود.هر دو نوع برنامة كاربردي را مي توان با استفاده از Visual Studio. NET و يا بدون آن ساخت. البته محيطVisual Studio. NET توسعة هر دونوع برنامه را به طور كاملامحسوسي سريعتر و آسانتر مي سـازد .

ASP . NET Web Applications
برنامه هاي كاربردي ASP .NET در ساده ترين توع خـود مانند برنامه هاي كاربردي ASP كلاسيك مي باشد . يك برنامة كاربردي ASP .NET ساده شامل چهار چيز است :‌
يك دايركتوري مجازي در IIS كه براي نگهداري فايل هاي تشكيل دهندة برنامة كاربردي و كنترل دسترسي به فايل ها پيكربندي مي شود .
يك يا چند فايل aspx .
يك فايل Global . asax(مشابه فايل Global . asa درASP كلاسيك) كه باراه اندازي وخاتمة جلسة كاري و برنامة كاربردي سروكار دارد ( اختياري).
يك دايركتوري مجازي در IIS كه براي نگهداري فايل هاي تشكيل دهندة برنامة كاربردي و كنترل دسترسي به فايل ها پيكربندي مي شود .
يك يا چند فايل aspx .
يك فايل Global . asax ( مشابه فايل Global . asa در ASP كلاسيك ) كه با راه اندازي و خاتمة جلسة كاري و برنامة كاربردي سروكار دارد ( اختياري).
يك فايل Web. Config كه براي ذخيره كردن اطلاعات و تنظيمات پيكر بندي برنامه بكار مي رود ( از ويژگي هاي جديد ASP .NET و اختياري ) .
نكتة جالبي كه ممكن است ذكر آن براي كاربران Visual Studio. NET خوشحال كننده باشد اين است كه تمام فايل هاي مزبور به هنگام ساختن يك پروژة Web Application براي شما ساخته مي شوند .

وب فرم هاي ASP . NET
وب فرم ها يكي از قسمت هاي مهم برنامة كاربردي ASP .NET مي باشند به عبارت ساده تر ،آنها صفحاتي هستند كه از كنترل هاي Server دروني ASP .NET استفاده مي كنند . مدل برنامه نويسي با وب فرم ها توسعة برنامه هاي كاربردي مبتني بر وب را تا حد زيادي شبيه توسعة برنامه هاي كاربردي تحت ويندوز كه به وسيلة برنامه نويسان Visual Basic ساخته مي شوند مي سازد . درمحيط Visual Studio. NET وب فرم ها به شما امكان مي دهند

كه با كشيدن و رها كردن كنترل ها بر روي يك صفحه و نوشتن كمي كد براي پاسخ گويي به عمليات كاربر ، رويدادها وغيره برنامه هاي كاربردي قدرتمند و جذاب توليد كنيد . به علاوه ،محيط Visual Studio. NET به شما اجازة مي دهد كه به دو صورت ويژوال ( با استفاده از پنجره طراح فرم ) يا متني ( با استفاده از پنجرة ويراستار كد) با صفحات برنامة خود كار كنيد . كدي كه در وب فرم هاي خود مي نويسيد مي تواند به دو روش نوشته شود : يكي درون خود فايل aspx . ( هـمانطور كـه در ASP كلاسيك عمل مي كرديد ) و يا با استفاده از يك ماژول دربرگيرندة كد كه در پس پرده ساخته مي شود و آن را Code – Behind Module مي نامند . اگر چه مي توانيد براي ساختن يك برنامة كاربردي از هر دو روش به طور همزمان استفاده كنيد ، ولي توصيه مي شود كه براي نوشتن كد برنامه از ماژول ها بهره ببريد.

Code- Behind
Code- Behind يكي از ويژگي هاي جديد ASP .NET است كه به برنامه نويسان و توسعه دهندگان
امكان مي دهد تاكد مربوط UI كه معمولا باHTML نوشته مي شود رااز كدي كه با Visual Studio.  ، cيا هر زبان ديگري براي پاسخ گويي به عمليـات كاربر ، ارزيابي داده ها و … . طراحي و نوشته مي شود به طور كامل جدا سازند . اين تكنيك مزاياي متعددي دارد كه در ذيل به بعضي از آنها اشاره شده است :
جدايي كامل HTML و كد : ويـژگي Code – Behind امـكان مـي دهـد كه طراحان HTML و برنامه نويسان كارهاي خود را به طورمستقل و بدون تداخل انجام دهند .( چيزي در هنگام توسعة برنامه هاي كاربردي ASP كلاسيك به ندرت اتفاق مي افتد )

سهولت استفادة مجدد از كد : با توجه به ايـن كـه كـد برنامه به طور مستقل از HTML نوشته مي شود ، به راحتي مي توان در پروژه هاي ديگر از آن استفاده نمود .
نگهداري ساده تر : جدايي كد از HTML علاوه بر افزايش خوانايي ، نگهداري برنامه را نيز بسيار راحت تر مي سازد .
بسته بندي و انـتشار بـرنامه بدون كد اصلي : شـما مي تـوانيد پـروژه هـايي را كـه از تكنيك Code – Behind استفاده مي كنند كـامپايل نموده و به اين ترتيب از كد برنامة خود محافظت كنيد . اين ويژگي در شرايطي كه بخواهيد براي مشتريان خود برنامه هاي كاربردي توليد كنيد و در عين حال كد اصلي و تكنيك هاي برنامه نويسي خود را محفوظ نگهداريد بسيار مفيد مي باشد .
به هر حال بهتر است كه همواره از تكنيك Code – Behind استفاده كنيد .

ASP . NET XML Web Services
هيچ كس انكار نمي كند كه برنامه هاي كاربردي مبتني بر وب كه با ASP .NET يا حتي ASPكـلاسـيك ساخته مي شوند بسيار مفيد هستند.ولي يكي از چالش هاي موجود،عدم امكان ارائة سرويس هاي مورد نظربدون استفاده از يك رابط كاربريا UI خاص از طريق اينترنت يا اينترانت مي باشد.سرويس هاي وب مبتني بر XML راهكاري است كه Microsoft براي حل اين مشكل ارائه نموده است .