با ظهورASP.NET شاهد تحول در زمينه روشهای مرسوم اسکريپت نويسی به سوی برنامه نويسیکاملا حرفه ای هستيم. بدون ترديد نمی توان پذيرش گسترده .NETاز سوی جامعه توليد کنندگان نرم افزار را انکار نمود. و اين خود ثابت می کند که .NETدارای چارچوب قدرتمند برنامه نويسی می باشد.
حداقل چيزی که در مورد .NET می توان گفت اينست که .NET روشی نرم افزاری است که به هرکسی قابليت کد نويسی به هر زبانی را می دهد که با چارچوب آن مطابقت داشته باشد.
۱ ) تاريخچه ASPپيشينه ASP به سال ۱۹۹۵وشرايط ويژه ای باز می گردد که در آن شرکت مايکروسافت دريافتبه علت عدم شمول اينترنت در برنامه های خود از تحولی بنيادين در اين صنعت باز مانده است.تا آن زمان اين شرکت به دنبال تهيه وتوليد ابزار و پروتکل های اختصاصی خود برای شبکه مايکروسافت بود ولی ناگهان با نياز به استراتژی اينترنت مواجه گرديد.
مايکروسافت توانست خود را از شرايطی که از بقيه عقب افتاده بود به شرايطی تقريبا” مقتدرانه نزديک کند وبا کمک مرورگر وب Internet Explorer کنترل شديدی برروی بازار مرورگر وب بدست آورده وسرور اطلاعات اينترنت Internet information server (IIS)را در ۱۰۰شرکت نصب نمود.
منشأ ASP
اگر به اواسط دهه نود باز گرديم می بينيم که در آن زمان انتخاب زيادی برای ابزارهای توليد وب در اختيار برنامه نويسان وب وجود نداشت که می خواستند سايت وب خود را به مکانی مناسب برای تجارت تبديل کنند. اين گزينه ها در سيستم عامل و برنامه های برنامه نويسی سمت سرور و ابزارهای توليد روميزی برای توليد راه حلها در دسترس بودند. در پايان برنامه نويس بايد برنامه های Common Graphic Interface (CGI) را به کار می برد. در اين برنامه ها از زبانهای کامپايل شدهای چون دلفی و ويژوال بيسيک يا زبانهای اسکريپت نويسی تفسير شده ای مثل پرل يا رکس و اسکريپت های لايه سيستم عامل مانند UNIX استفاده می گرديد.
در اوايل سال ۱۹۹۶مايکروسافت اولين تلاش خود را برای بهبود وضعيت موجود انجام داد. بدين منظورفن آوری رابط برنامه نويسی کاربردی سرور اينترنت Internet Server Application Programming Interface (ISAPI) را به عنوان بخشی از سرور اطلاعات اينترنت در نظر گرفت. ISAPI حاصل توسعه Win32 API ويندوز می باشد.
اين فن آوری به عنوان روشی برای توليد نرم افزار سرور وب تهيه گرديده بود. در واقع هدف از توليد
اين نرم افزار افزايش پنج برابر کارايی سيستم بوده است. با افزايش کارايی فوری تاثيرات جانبی حاصل می شود که موجب افزايش پيچيدگی برنامه نويسی برای برنامه نويس می گردد. بروز اين مسأله به علت ضعف برنامه نويسان نبود بلکه برای عملکرد درست برنامه های ISAPIبه دانش برنامه نويسی دقيقتر نياز بود. در همين حال مايکرو سافت برنامه نويسان را به سوی پذيرش فن آوری اتصال پايگاه داده اينترنت Internet Database Connector(IDC) تشويق می کرد.
تمامی برنامه نويسان وب مهارتهای برنامه نويسی لازم برای نوشتن نرم افزارهای ISAPI را نداشتندو چون ISAPI به کامپايل برنامه ها نيازمند بود مراحل زيادی در توليد سايت وجود داشت که سبب کندی روند برنامه نويسی می گرديد.
برنامه های ويژوال بيسيک در صورت به کارگيری CGI بسيار ضعيف عمل کرده و تمام منابع را در اختيار خواهند گرفت. زبانهای ديگر از جمله پرل برای آغاز يک برنامه خط دستور جداگانه و به منظور تفسير اجرای اسکريپتهای درخواست شده به سرور وب نياز دارند که اين امر موجب افزايش زمان بارگذاری صفحه و کاهش کارايی سرور خواهد شد.
CGI خود تمام منابع را در اختيار می گيرد چون درخواست هر صفحه سرورهای وب را وادار می کند تا فرايندهای جديد را متوقف نموده و از طريق اين فرايند ها ارتباط را برقرار نمايند.اين امر موجب اتلاف وقت و مصرف حافظه با ارزش RAMمی گردد. مشکل ديگری که فراروی تيم برنلمه نويسی در اواسط دهه نود وجود داشت اين مسأله بود که سايت در واقع ترکيبی از HTML و منطق است. آنها به روشی برای ادغام کد برنامه نويسان با قسمت طراحی صفحه بدون ايجاد آشفتگی نياز داشتند.
ايجاد قابليت محاوره ای که بتواند از سوی پايگاه داده حمايت شود نيز چالش ديگری فراروی برنامه نويسان بود.
تقاضا برای سايتهای وب پيچيده آغاز شده بود و برنامه نويسان به منظور رفع تقاضا به روشی قابل مديريت نياز داشتند ولی ابزارهای موجود سهولتی برای انجام اين کار ايجاد نمی کردند.
آنچه که لازم بود فن اوری ساده ای مبتنی بر متن و دارای اسکريپت همانند پرل بود که برنامه نويسان بتوانند صفحات خود را بدون نياز به کامپايل و با کمک ابزار ساده ای مانند Notepad ايجاد کنند.اين روشبايد در عين حفظ کارايي به حداقل منابع نياز داشته باشد.اين روش برای اينکه بتواند با استقبال مواجه شود می بايست زبانی را اجرا نمايد که به راحتی بتوان آن را آموخت و برای بسياری از توليد کنندگان آشنا باشد.
در همين زمان بود که مايکروسافت تکنولوژی صفحات فعال سرور ) (ASP را ارائه نمود.
نياز به مدل جديد ASP
واضح بود که مايکروسافت به تغييری اصولی برای رساندن ASPبه سطح استاندارد برنامه نويسی قدرتمند و صنعتی نياز داشت. صفحات فعال سرور فن آوری مبتنی بر اصول COMاست . فنآوری COM و ActiveX بخش مهمی از قدرت ASP را فراهم می کنند ولی محدوديت هايی نيز برای آن خواهند داشت.
مايکروسافت بايد تلاش زيادی در جهت بررسی COM و يافتن روشهای بهبود آن انجام می داد و اين تغييرات می بايست بر روی ASP نيز تأثير بگذارند. در همان زمان مايکروسافت دريافت که زمينه کاری برنامه نويسان تغيير يافته است و بر اساس استاندارد های جديد که هر لحظه عرضه می شوند به ويژه در نرم افزارهای توزيع يافته و اشتراک اطلاعات همچون Simple Object Access Protocol (SOAP) و XML_PRCکه در آنها از XMLاستفاده گرديده تجديد می شود.
خدمات وب متداول گرديد جاوا در همه جا ديده می شد و XML محبوبيت زيادی در ميان توليد کنندگان يافته بود. نسخه جديدی از ASP برای رفع اين نيازها کفايت نمی کرد . اگر تغييرات فقط به قصد شکست دادن حريف نبودند و می توانستند در مقابل اين چالشهای سخت مقاومت نمايند, آنگاه بسيار دور از دسترس به نظر می رسيدند.
Windows DNA و ASP که بر پايه فن آوری های Win32 API و COM اوايل دهه نود بودند نمی توانستند معماری فنی و منطقی برای نرم افزارهای توزيع يافته جديد فراهم نمايند در حالی که شرکت SUNبا استفاده از Java 2 Enterprise Edition (J2EE) مجموعه ای از فن آوری هايی را در اختيار داشت که برنامه نويسان می توانستند با دنبال نمودن آن پروژه های کوچک را همراه با Standard Edition آغاز نموده و
آنها را برای Enterprise JavaBeans کاملأ تغيير اندازه دهند.
در دنيای امروز تنها رقابت برای مرورگرهای مختلف ديده نمي شود بلکه رقابت در بخشهايي چون کانالهای توزيع , روشهای اجرا در کامپيوتر ها و…وشايد برای تبديل صفحات وب به نرم افزارها و خدمات وب يک بار مصرف نيز وجود دارند. بدون ترديد در حالی که مايکرو سافت در حال بررسی پيرامون فن آوری های مخصوص خود می باشد,بايد رقابت را نيز در نظر بگيرد.همانطور که مايکروسافت چارچوب کاری .NET را عرضه نمود,زبان جديدی را نيز برای قرن بيست و يکم تحت عنوان C#‎‎‎‎‎‎‎.NETمعرفی کرد و روشی کاملأ جديد برای ساخت نرم افزارها و وب فراهم ساخته و برای هر چيز موجود شامل ويژوال بيسيک و ويژوال ++C و صفحات فعال سرور جايگزين قرار داده اند.
در جولای ۲۰۰۰ .NET اولين اعلان عمومی خود را منتشر نموده و زبان جديد خود C#‎‎‎‎‎‎‎ را در معرض نمايش قرار داده و نويد ارائه عملکرد بهتر و انعطاف پذيری بالاتر را نسبت به گذشته و پشتيبانی از انواع مختلف استاندارد های اينترنت را داد.
مروری بر اصول محيطی ASP.NETمايکروسافت با ارائه ASP و زبانهای قديمی تر خود به صورت .NET در قرن بيست و يکم قدم مهمی برداشته است. ASP.NET که از VB.NET بهره می برد اکنون به برنامه ای کاملأ کار آزموده و شی گرا برای توليد نرم افزارهای وب تبديل شده و بهبود های زيادی را موجب گرديده است. ولی زبانهايي که از گذشته به ارث رسيده اند نمی توانند به اندازه .NET ابتکار عملی جامع داشته باشند به همين علت مايکروسافت زبان جديدی تحت عنوان C#‎‎‎‎‎‎‎برای چارچوب .NET تهيه نمود.
C#‎‎‎‎‎‎‎ درعين اينکه برای برنامه نويسان C دارای امکانات آشنايي می باشد ولی جديد است دارای برخی خصايصRAD نيز بوده و به همين علت مورد توجه برنامه نويسان ويژوال بيسيک نيز می باشد.بعضی می گويند که C#‎‎‎‎‎‎‎زبان ارائه شده از سوی مايکروسافت برای رقابت با Java می باشد.
بعضی از نکات کليدی در موردASP.NET عبارتند از :
 ASP.NET بخشی کليدی از Microsoft.NET يا برنامه ای جديد برای توليد نرم افزار می باشد.
 .NET در واقع يک معماری کاربردی برای جايگزينی مدل ويندوزDNA و همچنين مجموعه ای از خدمات, ابزارها, نرم افزارها و سرورها بر پايه چاچوب کاری.NET و زبان اجرای مشترک می باشد.
 ASP.NET به جای اينکه جايگزين ASP4 يا نسخه ارتقاء يافته تدريجی آن باشد از پايه بازنويسی شده است.
 ASP.NET می تواند از هر آنچه که توسط .NET ارائه می شود از جمله پشتيباني از تعداد بيست يا بيشتر زبان ( ازC#‎‎‎‎‎‎‎ گرفته تاPerl.NET ) و مجموعه کامل کتابخانه های نرم افزاری چارچوب کاری.NET بهره ببرد.
 نرم افزارهای وب نوشته شده درASP.NET سريع, کارآمد, قابل مديريت, مقياس پذير و انعطاف پذير هستند و درک و کد نويسی آن ها نيز بسيار ساده می باشد.
 تمامی اجزاء و نرم افزارهای وب کامپايل می شوند . اشياء .NET همگی به زبانهای يکسانی نوشته شده و همه آنها عملکرد يکسانی دارند در نتيجه به دلايل اجرايي نيازی به ترک محيط ASP وجود ندارد.
 نياز کمتری برای استفاده از اجزای ثالث وجود دارد با نوشتن فقط چند خط کد می توان ارتباط ميانASP.NET وXML را برقرار نموده و يا شرايطی ايجاد نمود که ASP.NET به عنوان نوعی از خدمات وب عمل کرده يا از آن استفاده نمايد فايلها را منتقل کند يا صفحه سايتي را از راه دور پاک نمايد يا تصويری بر روی آن ايجاد کند.
استفاده از انعطاف پذيری ASP.NET با استفاده از ASP.NET امکان انتخاب زبانها را خواهيم داشت. تمامی زبانهای.NET به کتابخانه های کلاس اصلی يکسان, انواع يکسانی از سيستمها, قابليتهای مساوی از نظر جهت يابی و ارث بری اشياء و قابليت عملکرد کامل با اجزاء COM موجود, دسترسی دارند.
 ما می توانيم از آگاهی و کد نويسی يکسانی برای هر کاری از توليد وب تا ايجاد اجزاء يا سيستمهای بزرگ استفاده نماييم. برنامه نويسان هيچ نگرانی بابت اختلافهای موجود ميانAPI ها و تبديل انواع متغير ها يا حتی نصب و راه اندازی نخواهند داشت.
 در ASP.NET تمامی استانداردهای مهم امروزی مانندSOAP وXML به علاوهADO.NET و کتابخانه های کلاس اصلی ترکيب شده اند و پياده سازی آن ها نسبت به ساير فن آوری ها حتی جاوا بسيار ساده تر خواهد بود.
 يک برنامه نويس ASP.NET فقط به کامپيوتری که دارایNotepad و قابليت FTPميباشد برای نوشتن کدASP نياز دارد ولي امروزه با استفاده از ابزار خط دستور چارچوب کاری.NET و پيکربندی های مبتنی برXML برنامه ها اين عمل دقيقتر انجام مي شود.
 مايکروسافت امکانات بسيار قدرتمند کلاسهای کتابخانه چون توابع قابل استفاده در شبکه برای عملکرد با پروتکل کنترل مخابره پروتکل اينترنت(TCP/IP ) و سيستم نام حوزه ( DNS ) و خدمات وب و داده XML و به تصوير کشيدن تصاوير گرافيکی را در چارچوب کاری .NET در نظر گرفته است.
 در گذشته منظور از محدوديتهای اسکريپت نويسي ASP اجزاء بود که بنا به دلايل مربوط به عملکرد و نه دلايل معماری مورد نياز بودند.ASP.NET به عملکرد يکساني دسترسی داشته و از زبانهای يکسانی برای توليد اجزاء استفاده می کند در نتيجه اکنون اجزاء را می توان انتخابی از لحاظ معماری دانست.
 يک برنامه نويس نسبت به تغييرات انجام گرفته در زمينه سيستم عامل وAPI محافظت می شود و از آنجايي که فن آوريهای.NET در رابطه با نحوه پياده سازی کد های ما می باشندبا استفاده ازCommon Type System ديگر نگران پياده سازيهای مختلف يک رشته يا عدد صحيح در زبان مورد استفاده خود نيستيم.
نوشتن برنامه های کاربردی ASP.NETدر نسخه های قبلیASP نصب و راه اندازی نرم افزار به برنامه ريزی دقيقی نياز داشت به خصوص در شرايطی که سيستم بزرگ و پيچيده بود.اين امر به علت وجود عوامل مختلفی چون نياز به انتقال, نصب ,ثبت اجزاء توليد شده, لزوم متوقف ساختن و آغاز سرور وب و تضمين بابت اينکه نسخه درست را در اختيار داريم ديده می شد.
ما مجبور به پيکربندی سرور وب از طريق کنسول مديريت مايکروسافت يا ابزار خط فرمان بوديم که بعضی اوقات ما را مجبور به متوقف ساختن و آغاز دوباره خدمات می کرد. اما با استفاده ازASP.NET تمامی اين موارد ساده شده است . فايل هایASP , اجزاء و گزينه های پيکربندی همگی فايلهايي هستند که آنها را با هم منتقل می کنيم. نيازی به ثبت به اجزاء نيست و ما می توانيم با استفاده از فايلهای متنی در قالبXML تغييرات پيکربندی را مشخص کنيم.ASP.NET از طريق ايجاد قابليت ميزبانی برای نسخه های مختلف يک جزء بر روی يک سيستم وابستگی های نسخه های نرم افزاری را نيز ساده کرده است.
تبديل کد به زبانهای متعددASP.NET و چارچوب کاری.NET ارائه شده از سوی مايکروسافت شامل سه زبان اصلیJScript.NET وC#‎‎‎‎‎‎‎.NET وVB.NET می باشد.
C#‎‎‎‎‎‎‎ همانندJ++ mark 2 توصيف شده است ولی در واقع بسيار فراتر از آن است.C#‎‎‎‎‎‎‎ را در حقيقت بايدC++‎‎‎‎‎‎‎ ای دانست که از ابتدا تهيه شده است.مشکلات کاملا مستند شده اندتنها نکته ای که بايد به آن اشاره نمود اين است که در C++‎‎‎‎‎‎‎ شی گرايي آخرين راه حل انتخابی بوده است در حاليکه در C#‎‎‎‎‎‎‎ اين مسئله به عنوان پايه در نظر گرفته شده است.تمامی عملکردها و پشتيبانی از چارچوب کاری NET. برای همه زبانهای آن فراهم گرديده و علاوه بر اين اشيايي که دريک زبان نوشته می شوند تحت هر زبان ديگری قابل استفاده و توسعه بوده و به ارث می رسند. اين قابليت مفهومی بسيار قدرتمند بوده و نظريه عدم وابستگی زبان را مطرح می کند. اين قابليت از طريق فنآوریCommon Language Runtime قابل دستيابی می باشد.
CLRکد زبان.NET را دريافت نموده و آن را به زبان واسطه ای مايکروسافت ( MSIL ) تبديل می کند. سپس اين زبان واسطه به کد دودويي ويژه دستگاه مقصد کامپايل می شود.
چگونه سرورهای وب فايلهایASP.NET را اجرا می کنند؟
هنگامی که بازديد کننده سايتی آدرس يک صفحه وب را درخواست ميکند مرورگر با سرور وب مشخص شده در آدرسURL تماس برقرار نموده و درخواستی را برای صفحه ای که در درخواستHTTP به صورت فرمول عنوان شده و به سرور وب فرستاده شده می فرستد.سرور وب به محض دريافت درخواست نوع فايل درخواستی را معين نموده و پردازش را به سرور رسيدگی کننده اختصاصی عبور می دهد. فايل هایASP.NET در صورت لزوم به کلاسهای صفحات.NET کامپايل شده و سپس اجرا می شوندو نتايج به مرورگر کلاينت فرستاده خواهد شد.
کامپايل نمودن به اين معنی است که در بارگذاری اول برنامه های ASP.NETبه مدت زمان بيشتری برای نمايش ( در مقايسه با نسخه های قبلی ) نياز می باشد ولی زمانی که کامپايل می شوند نمايش آنها به ميزان قابل توجهی سريعتر انجام می گيرد.
محاوره ميان کلاينت و سروربرنامه هایASP.NET ترکيبی از نشانه گذاری سمت کلاينت و کد و پردازش در سمت سرور می باشند. هنگامی که يک صفحه فرم وبASP.NET بر روی مرورگر وب بازديد کننده ای بارگذاری می شود کد اضافی درون نسخه های قديمیASP قرار می گيرد. اين کد اضافی عملکرد فرم را که شامل رويدادهای سمت کلاينت و سرور, بررسی درستی و قابليت حفظ وضعيت مقدار فرم می گردد را افزايش می دهد سرور, نوع مرورگر بازديدکننده را تعيين نموده و نشانه ای برای مقايسه قابليتهای مرورگر ارسال می کند.
بعضی از محاوره های کلاينت درون مرورگر بازديدکننده انجام می شوددر حاليکه برخی ديگر به اطلاعاتی نياز دارند که بايد برای پردازش به سمت سرور فرستاده شوند.
به محض دريافت پاسخهای فرم مقادير فرم در قابليت جديد از ASP.NET به نام”State Bags” نگهداری شده و به يک عنصر مخفی فرم که شامل”View State” صفحه می باشد خلاصه می گردد. اين قابليت شرايطی را فراهم می کند تا عناصری فرمی که مورد محاوره بازديد کننده قرار گرفته اند همان مقادير را حين ارسال صفحه دارا باشند. همان طور که در شکل ۱ ديده می شود مرورگر می تواند فرم اطلاعاتی را درخواست نموده و با استفاده از دو متدHTTP به نامهایPOST وGET اطلاعات را به سمت سرور ارسال نمايد.
Post Getشکل ۱- چگونگی ارتباط ميان کلاينت و سرورپردازش سمت سرور ASP.NETزمانی که سرور يک درخواست را دريافت می کند با استفاده از اطلاعات مسير مشخص شده صفحه مورد درخواست را می يابد و سيستم مربوطه صفحه را پردازش خواهد کرد.در صورت استفاده ازASP قديمی فعاليت زيادی در اين فرآيند انجام نمی گيرد فقط مقدار معينی مخفی سازی صورت می پذيرد.همانطور که در شکل ۲ ديده می شود با به کارگيریASP.NET اين فرآيند با فعاليت بيشتری همراه بوده ولی تحويل و پردازش آن سريعتر انجام می پذيرد.RequestYesNoشکل ۲- فرآيند تحويل و کامپايل در سمت سرورسرور با به کارگيری يک.dll ويژهASP.NET صفحهASP.NET را پردازش خواهد کرد. ASP.NET نيز همانند نسخه های قديمی دارای مجموعه بزرگی از اشياء می باشد که با اعمال معين پردازش مانند درخواست پايگاه داده ای, سيستم فايل و تهيه پاسخ سروکار دارند.
هنگامی که پاسخ کامل می شود به مرورگر کاربر بازگردانده خواهد شد. پاسخها معمولا به صورت فايلهایHTML هستند و مرورگر به محض رسيدن صفحه آن را به نمايش در می آورد.
يک فايل ASP.NET دارای پسوند .aspx است .معمولا اين فايل حاوی عناصر, HTML کدهای سمت سرور و کدهای سمت کلاينت می باشد.همانطور که در شکل ۳ نشان داده شده است هنگامی که کاربری يک صفحه را درخواست می کند سرور آن را از ديسک بازيابی نموده وسپس آن را به ASPX Engine برای پردازش بيشتر می فرستد. ASPX Engine کدهای سمت سرور را کامپايل نموده و فايل کلاس صفحه را ايجاد می کند.سپس فايل کلاس را معرفی نموده و رهنمود لازم برای ايجاد شی پاسخ را اجرا می کند. در طی اجرای اين مرحله سيستم رهنمود برنامه نويسی ( کد در سمت سرور ) را برای پردازش داده ارسال شده از سوی کاربر دنبال می کند.سرانجام سرور شی پاسخ را به کلاينت می فرستد.اگر بخواهيم مراحل مهم و اصلی پردازش يک درخواست برای صفحه ASPx را نام ببريم می توان مراحل را به صورت زير در نظر گرفت :
• سرور درخواستی برای يک صفحهASPx را دريافت ميکند.
• سرور محل صفحه را در ديسک پيدا می کند.
• سرور صفحه را به ASP.NET Engine می فرستد.
• ASP.NET Engine صفحه را کامپايل نموده و کلاس صفحه را ايجاد می کند.اگر کلاس قبلا بار شده باشد به سادگی ريسمانی به کلاس اجرايي فراهم می کند( به جای ايجاد دوباره کلاس ). در حين کامپايل نمودن ممکن است به کلاسهای ديگر کد مانند کلاسهای موجود تحت کد و کلاسهای جزء نياز داشته باشد.اين کلاسها در اين مرحله اسمبل می شوند.
• ASP.NET کلاس را معرفی نموده و پردازش لازم را انجام داده و شی Response را ايجاد می کند.
• سپس سرور شی Response را به کلاينت می فرستد.
شکل ۳- مراحل اصلی در ارائه يک صفحه ASPXکامپايل و تحويل صفحات ASP.NETاين فرآيند طی مراحل زير انجام می گيرد :
۱٫ IISميانURL مورد درخواست با فايل موجود در ديسک سخت مقايسه ای را انجام می دهد اين مقايسه با ترجمه مسير واقعی به مسيری نسبت به ريشه سايت صورت می پذيرد.
۲٫ هنگامی که فايل به دست آمد پسوند فايل(.aspx ) به فهرستی از انواع معين فايلها مقايسه می شود تا معين گردد که آيا فايل بايد برای بازديد کننده ارسال شود يا برای پردازش فرستاده شود.
۳٫ اگر نسبت به زمانی که فايل آخرين تغييرات را متحمل شده اين اولين بازديد از صفحه می باشد کدASP با استفاده از کامپايلرCommon Language Runtime به زبان اسمبلی کامپايل شده ( بهMSIL ) سپس برای اجرا به کد دودويي ويژه ماشين کامپايل می گردد.
۴٫ کد دوددويي يک.dll از کلاس.NET است که در يک محل موقتی ذخيره می شود.
۵٫ دفعه بعدی که صفحه درخواست می شود سرور بررسی می کند که آيا کد تغيير يافته است يا نه .اگر همان کد قبلی باشد آنگاه مرحله کامپايل حذف شده و کد کلاس کامپايل شده پيشين اجرا می گردد در غير اينصورت کلاس حذف شده و منبع جديد دوباره کامپايل می شود.
۶٫ کد کامپايل شده اجرا گرديده و مقادير درخواستی مانند فيلد های ورودی فرم يا پارامترهای URL تفسير می شوند.
۷٫ اگر برنامه نويس از فرمهای وب استفاده کرده باشد آنگاه سرور می تواند بازديد کننده را شناسايي نموده و صفحاتی را که مطابق نياز بازديد کننده مناسب سازی شده اند منتقل نمايد.
۸٫ نتيجه به مرورگر وب بازديد کننده ارسال می شود.
ساختار يک فرم وب ASP.NETيک فرم وب نوعی فنآوری ASP.NET است که از آن برای ايجاد صفحه وب قابل برنامه نويسی استفاده می کنيم. اين فرم می تواند با استفاده از هر زبان نشانه گذاری اطلاعات را به کاربر نمايش دهد .نمايش در هر مرورگر امکانپذير بوده و برای پياده سازی منطق برنامه از کد روی سرور بهره می برد.در مستندات .NET مايکروسافت مشخصات زير را برای فرمهای وب ارائه نموده است :
 فرم بر اساس Common Language Runtime تهيه شده و در نتيجه محيط اجرايي مديريت شده ای را به همراه ايمنی در تايپ, خواص وراثتی و انطباق پويا فراهم می نمايد .اين فرم را می توان با هر زبانی که رویCLR پشتيبانی می شود, نوشت.
 فرم از ابزار ويرايش MYSIWYG و ابزار توليدVS.NET پشتيبانی می کند
 فرم از مجموعه کاملی از کنترلها پشتيبانی می کند که قابليت لفاف بندی منطق صفحه به اجزايي با توانايي دوباره به کار گيری داده و امکان استفاده ساده از رويدادهای صفحه را فراهم می کند.
 اين فرم قابليت جداسازی ميان کد و محتويات را در صفحه می دهد.
 اين فرم مجموعه ای از خصوصيات مديريت حالت را فراهم می سازد که مانع از مشاهده حالت صفحه ميان درخواستها می گردد.
 يک فرم وب می تواند شامل راهنماييهای لازم, اسکريپتهای سمت سرور, متون استاتيک, کنترلهای وب کنترلهای HTML و بسياری موارد ديگر باشد.
۲ )مقدمه اي بر .NET C#‎‎‎‎‎‎‎
NET. تكنولوژي جديد مايكروسافت براي رفع مشكلات COM و برنامه نويسي تحت اينترنت است. قبل از شروع كار با NET. تصور برنامه نويسان، نسخه اي جديد از زبانهاي موجود مانند VB با ++VC است اما NET. يك محيط برنامه نويسي جديد است كه مي توان گفت شباهتهاي زيادي با محيط هاي قبلي دارد.
اگر چه برنامه هاي VB يا ++VC را مي توان با تغييرات نسبتاً كم به محيط NET. انتقال داد، ولي اگر بخواهيم از توانائيهاي NET. بهره مند شويم، چيزهاي زيادي براي يادگيري و تغييرات زيادي در برنامه ها داريم (خصوصاً برنامه نويسان VB ).
NET. يك مدل شي گرا (Oriented Object) شامل صدها كلاس ارائه داده كه عدم هماهنگي در محيط‌هاي ويندوز را از ديد برنامه نويس مخفي مي كند. براساس نسخه هاي مختلف ويندوز يك كلاس ممكن است براي توابع گرافيكي از GDI ،DirectX و يا Open GL استفاده كند و برنامه نويس نياز به نگراني در مورد اين عدم هماهنگي ندارد.Security در داخل محيط NET. قرار داده شده و برنامه نويس يا حتي مسئول نصب و نگهداري برنامه مي‌تواند اجازه دسترسي به منابع مانند فايلها يا registry را از داخل محيط برنامه و يا خارج آن به يك كاربر داده ياسلب كند (مسئول نصب يا Administrator اين‌كاررا از طريق فايلهاي Config انجام‌مي دهد).
مي توان به NET. به عنوان نسل جديد COM نگاه كرد اما در نحوه عمل آنها كاملاً متفاوت هستند. (لازم به ذكر است كه مايكروسافت استفاده از COM را در محيط NET. پشتيباني مي كند هر چند كه مشكلاتي هم در اين زمينه وجود دارد) در NET. به جاي Component ،‌اسمبلي داريم . هر اسمبلي مي تواند علاوه بر كد. فايلهاي ديگري نظير html ،.gif. و يا حتي يك dll. ديگر را در خود جا دهد . اسمبلي با پسوندexe. يا dll. وجود دارد.
هر اسمبلي مانند COM يك Version دارد ولي در Registry ثبت نمي شود. مايكروسافت تاحدي به روش قديمي خود يعني فايلهاي ini برگشته اما اين بار از فايلهايXML براي ذخيره اطلاعات استفاده كرده. اين فايلها مي توانند اطلاعات را بصورت ساختار يافته ذخيره كنند. مسير و تنظيمات تمام اسمبلي‌هاي يك برنامه در يك فايل Config كه در شاخه اصلي برنامه و در كنار فايل اجرايي اصلي برنامه قرار دارد ذخيره مي شود.
بنابراين شما مي توانيد يك برنامه و تمام اسمبلي هاي آنرا در يك شاخه و زيرشاخه هاي آن داشته باشيد و نسخه ديگر برنامه به همراه اسمبلي هاي آنرا در شاخه ديگر. تنهاكاري كه بايد بكنيد آن است كه مسير اسمبلي ها را در Config فايلها تعيين كنيد و هر دو برنامه بدون هيچ تداخلي اجرا مي شوند !
سوالي كه ممكن است به ذهن برسد اين است كه با استفاده از Registry منبع مشتركي از Componentها داريم و نيازي نيست كه يك نسخه COM را به صورت تكراري داشت. NET. اين مسئله را با مفهوم Shared Assembly حل كرده. مسئله نصب نيز در محيط NET. بسيار ساده شده و همه عمليات نصب با يك Xcopy انجام مي شود.
فايل Config اطلاعات ديگري نظير نحوه نمايش خطاهاي برنامه و يا تنظيمات Security را نيز در خود دارد. NET. مشكل Memory Leaking را با عوض كردن نحوه مديريت object ها حل كرده است وديگر خود يك شيء اطلاعاتي را كه براي زندگي ويااز بين رفتنش احتياج است، ذخيره نمي كند. تمام اشاره گرها تحت كنترل محيط اجرايي Net. وتوسط Garbage Collector آزاد مي شوند. اين كار در زمان پر شدن heap (حافظه اختصاص يافته به object ها) ونبود حافظه لازم براي object هاي جديد انجام مي شود.
سرويسهاي وب در .NET
اين روزها در هر مقاله و متني كه اقدام به معرفي چهارچوب .NET نموده اند ، آنچه بيش از هر چيز به چشم مي خورد سرويسهاي وب مي باشد و هر جا كه به توصيف امكانات جديد .NET پرداخته شده ، امكاني كه بيش از بقيه خودنمايي مي كند و برگ برنده .NET خواهد بود سرويسهاي وب آن است. من هم در پيروي از اين روند ، توضيحاتي در مورد سرويس وب در .NET ارائه مي دهم.
بدون شك با اشياء و برنامه نويسي شيء گرا آشنا هستيد. سرويسهاي وب را مي توانيد مانند اشياء نرم افزاري تصور كنيد كه داراي متدهايي هستند كه مي توان آنها را از هر نقطه بر روي اينترنت ( يا يك اينترانت داخلي ) صدا زد. هر برنامه كاربردي مي تواند بدون در نظر گرفتن عوامل زير متدها را فراخواني كند:
• ماشين و سيستم عاملي كه سرويسهاي وب بر روي آن اجرا مي شوند.
• ماشين و سيستم عاملي كه برنامه فراخوان بر روي آن اجرا مي شوند.
اگر با روش فراخواني از راه دور (RPC) آشنا باشيد مي توانيد سرويسهاي وب را بصورت سكوي جهاني براي فراخواني پروسه ها از هر نقطه اي روي اينترنت در نظر بگيريد.
سرويسهاي وب بسيار انعطاف پذير و در نتيجه محبوب خواهند بود ، زيرا اولاً از پروتكلهاي استانداردي مانند HTTP – كه براي ارسال و دريافت صفحات وب نيز كاربرد دارد – استفاده مي كنند. ثانياً از قالبهاي استاندارد فايل مانند XML جهت نگهداري و ارسال اطلاعات بهره مي برند. اين دو ويژگي عمده همان استاندارد SOAP (Simple Object Access Protocol) را تعريف مي كنند كه استاندارد ارتباطي سرويسهاي وب مي باشد.
توجه کنيد که اين پيچيدگي و نو بودن سرويسهاي وب و SOAP نيست که آنها را اين قدر محبوب ساخته است. اين سرويسها در واقع بسيار ساده هستند. در اين جا بايد خاطر نشان کرد که همين سادگي در وب ،
HTML و XML بود که آنها را به استانداردهاي جهاني شبکه اينترنت تبديل کرد و انتظار مي رود همين اتفاق در مورد براي سرويسهاي وب و SOAP نيز رخ دهد.
نام ويژگي توضيحات
BufferResponse قابل خواندن و نوشتن- مشخص ميکند که پاسخ به اين درخواست بافر شود يا خير
CacheDuration قابل خواندن و نوشتن- مشخص ميکند که پاسخ ،چند ثانيه در Cache نگهداري شود
Description توضيحي در مورد متد وب
EnableSession مشخص ميکند که حالت Session براي متد وب فعال باشد يا خير
MessageName نام منتسب به متد وب در داده هاي ارسالي به و دريافتي از متد (هنگام از Method OverLoading)
TransactionOption پشتيباني از تراکنش براي يک متد وب
با استفاده از قابليتهاي ديگر چهارچوب .NET مي توان عملکردهاي ديگري به سرويس وب خود افزود و يا رفتار آن را تغيير داد. گرچه همه آنها را نمي توان در اينجا توضيح داد ولي يکي از جالبترين خصوصيات. کلاسWebMethodAttribute ميباشد كه در جدول زير مي توان ۶ خصوصيت قابل تغيير براي اين کلاس را مشاهده کنيد
ويژگيهاي عمومي WebMethodAttribute
جهت ارائه توضيحات (Description) براي سرويس وب خود خصوصيت Description را به يك متن با معني براي متد مورد نظر تغيير دهيد. اين متن بعداً به Metadata در سرويس وب شما كه معروف به WSDL(Web Service Description Language) مي باشد اضافه خواهد شد.
يك مشخصه ي ديگر به نام WebServiceAttribute نيز در همين فضاي نامي وجود دارد كه هدف آن كل كلاس مي باشد و Description آن نيز در واقع توضيح كاري است كه كلاس انجام ميدهد.
[WebService(Description=”A simple Currency Converter Web Service.2 Methods”)]
public class CurrConv
{ …

با اعمال اين تغييرات بايد ببينيم كه سرويس وب از بيرون چگونه به نظر مي رسد و اين يعني آزمايش كردن سرويس وب و نوشتن يك برنامه كاربردي كه از آن سرويس استفاده نمايد.
۳ ) مقدمه اي بر C#‎‎‎‎‎‎‎
زبان برنامه نويسي C#‎‎‎‎‎‎‎محصول جديدي از مايكروسافت است كه در حال حاضر به عنوان مدرنترين زبان كامپيوتري شناخته ميشود .اين زبان، اولين زباني است كه براي .Net Platform طراحي شده و بسياري از اجزاي .Net نيز بدين زبان نوشته شده اند .مايكروسافت عنوان مي كند نقشي كه C/C++‎‎‎‎‎‎‎ براي ويندوز ايفا كرد، اين بار C#‎‎‎‎‎‎‎ براي .Net انجام خواهد داد. اين زبان توسط واحد تحقيقات مايكروسافت به مديريت اندرس هلزبرگ (Anders Hejlsberg) طراحي شده است. برنامه نويسان پاسكال، اندرس هلزبرگ دانماركي را هيچ گاه از ياد نخواهند برد. او كه در بورلند ۱۵ سال سابقه درخشان دارد و پاسكال را به زبان قدرتمندي به نام دلفي تبديل كرده است، اين بار در مايكروسافت قدرت تمام زبانهاي برنامه نويسي را در C#‎‎‎‎‎‎‎ جاي داده است.

منبع: 118فایل