مروري بر ASP.NET
در اين فصل، ابتدا به ابزارهاي قديمي ساخت صفحات وب خواهيم پرداخت و سپس امتيازات ASP.NET را بر مي شماريم.
اشاره اي به ابزارهاي زير خواهيم داشت:
۱- زبان علامت دار آبر متن HTML
2- واسط دروازه مشترک CGI
3- واسطه برنامه نويسي کاربردي سرور اينترنت ISAPI
4- صفحات سرور فعال ASP

گرچه اين ابزارها براي نوشتن برنامه هاي تحت وب قابل قبول هستند، ولي ASP.NET قابليت هايي دارد که ساخت صفحات وب پويا را اسان مي سازد.
اولين ابزار ساخت صفحات وب، HTML بود. در اين زبان در طي زمان تغييرات زيادي ايجاد شده است. اين زبان يک زبان علامت دار است، يعني شيوه ارائه متن و گرافيک را توصيف مي کند. چون هنوز هم از اين زبان استفاده مي شود و آشنايي با آن براي طراحان صفحات وب يک الزام است، آن را در فصل بعد به طور مختصر بحث خواهيم کرد.

HTML براي صفحاتي با محتويات ايستا که به ندرتتغير مي کنند و براي هر بيننده سفارشي نمي شوند، بسيار مناسب است دراوايل دهه ۱۹۹۰ استفاده اشتراکي از اسناد دشوار بود، به طوري که قالب اسناد ايجاد شده در واژه پردازهاي مختلف، با هم سازگار نبودند. اسنادي که در يک برنامه ايجاد مي شدند، توسط کاربران برنامه هاي ديگر قابل استفاده نبودند. البته ، کد اسکي تواند با صرف هزينه اي محتويات واقعي را از سيستمي به سيستم ديگر حمل کند.

HTML اين امکان را فراهم کرد که کاربران بتوانند اسناد ايجاد شده در واژه پردازهاي مختلف و حتي در کامپيوتر هاي متفاوت را ببينند. اين کاربران ممکن است در راه دور واقع باشند. امروزه يکي از کاربردهاي متداول HTML انتشار اسناد در اينترنت يااينترانت محلي است تا کاربران مختلف از آن ها استفاده کنند.

HTML از قرارداد HTML استفاده مي کند. امتياز اين قرارداد اين است که به پهناي باند اندکي نياز دارد. امروزه مي توان با مودم کابلي سريع در وب کارکرد، اما سالها بود که از مودم ۲۸٫۸ يا ۵۶KBPS استفاده مي شده است. گرچه امروز از پهناي باند بشتري استفاده مي شود ولي با مودم هاي سرعت پايين نيز مي توان به اسناد HTML دست يافت.

 

ساخت صفحات پويا
همانطور که گفته شد HTML براي ساخت صفحات ايستا بسيار مناسب است. صفحات ايستا آن هايي هستند که براي هر بيننده (کاربر) سفارشي نمي شوند. به تدريج مشخص شده که HTTP مي تواند براي محتويات پويا به کار رود. منظور از محتويات پويا آيکن هاي متحرک نيست که در اغلب صفحات وب ديده مي شوند.بلکه محتويات پويا براي هر بيننده در هر بار ديدن صفحه، سفارشي مي شود محتويات ارتباط دو طرفه را ممکن مي سازد.

با استفاده از فرمهايي که در صفحات وب وجود دارد. کاربر مي تواند محتوات سفارشي را درخواست کند. دقت داشته باشيد که استفاده از فرمهايي که در صفحات وب وجود دارد کاربر ميتواند محتويات سفارشي را درخواست کند. دقت داشته باشيد که استفاده اززبان هاي اسکريپتي مثل JAVA Script و VBScript براي ساخت صفحات کاملا پويا وب کافي نيستند.

توجه به صفحات پويا منجر به ابزارهاي ديگري براي ساخت صفحات وب شده است به طور که قراردادن اسناد HTML در يک پوشه از کامپيوتر و خواندن آن کافي نبود. روش هاي مختلفي براي ارائه محتويات پويا وجود دارد. در ادامه تکنيک هاي مختلف را براي ايجادمحتويات پويا بحث مي کنيم. هر تکنيک مزايا و معايب خاص خودش را دارد.

 

واسط دروازه مشترک CGI
راه حل اوليه براي ارائه محتويات پوياي وب مشخصات CGI بود. برنامه هاي CGI برنامه هايي اجرايي هستند که مي توانند در سرور وب اجرا شوند و براي ايجاد محتويات پويا به کار مي روند. برنامه هاي CGI به زبان هايي مثل C,PERL,C++ نوشته مي شوند.
مزاياي CGI برنامه CGI تقريبا هر کاري را که در ذهن شما خطور م

ي کند، انجام مي دهد با استفاده ازبرنامه CGI مي توان به بانک اطلاعاتي دست يافت. فايل ها را خواند با رجيستري کارکرد و غيره.
کساني که تجربه برنامه نويسي دارند و تا حدي با HTML آشنا هستند، به راحتي مي توانند برنامه هاي CGI رابنويسند.
معايب CGI وقت برنامه CGIارجا شد و خاتمه يافت مي توان آن را همانند برنامه هاي ديگر اصلاح يا حذف کرد. اما، اين مسئله عيب عمده CGI است. وقتي برنامه CGI اجرا مي گردد، به حافظه بار مي شود و پس از پايان اجرا از حافظه حذف مي شود. ايجادو تخريب فرآيندها مستلزم سربارهايي است. ايجاد فرايند در مقايسه باخواندن يک فايل HTML بسيار پيچيده است. ايجاد و تخريب فرآيند در هر برنامه CGI استفاده کنند. ۱۰۰ نمونه از آن برنامه در حافظه وجود خواهد داشت. به اين ترتيب منابع سرور وب سريعا مصرف مي شود و مسئله هاي مقياس پذيري به وجود مي آيد. اين مسئله ها در وب سايتهاي بزرگ وتجارت الکترونيک جدي تر مي شوند.

 

واسطه برنامه نويسي سرور اينترنت ISAPI
براي حل مسئله هاي مقياس پذيري و کارايي در CGI راه حل ISAPI توسط شرکت ميکروسافت ارائه شد. ISAPI به جاي استفاده از فايلهاي اجرايي از کتابخانه پيوند پويا استفاده مي کند. استفاده از DLL به جاي فايل هاي اجرايي امتيازات کارايي و مقياس پذيري ويژه اي دارد.
DLL هاي ISAPI دو نوع اند: بسط هاي ISAPI و فيلتر هاي ISAPI بسط هاي ISAPI در URL صفحه وب ذکر مي شوند و ممکن است داراي پارامتر باشند تا وظايف مختلفي را انجام دهند. بسط هاي ISAPI معمولا براي پردازش درخواست هاي مشتريان وتوليد خروجي به صورت HTML به کار مي روند و عملکرد آنهاخيلي شبيه به CGI است.

فيلترهاي ISAPI عملي را انجام مي دهند که توسط برنامه هاي CGI انجام نمي شود فيلترهاي ISAPI صريحا فراخواني نمي شوند بلکه سرور آنها را در اثر وقوع رويدادي فراخواني مي کند.
مزاياي ISAPI : روش ISAPI بسياري از ضعف هاي برنامه هاي CGI را برطرف مي کند. برخلاف برنامه هاي CGI که در هر درخواست ايجاد وتخريب مي شوند کد بسط ISAPI در طول عمر سرور فقط يک دفعه بار مي شود برنامه هاي کاربردي ISAPI در فضاي فرآيند IIS اجرا مي شوند و به اين ترتيب بسط ISAPI ارتباط بهتري با IIS دارد. در نسخه هاي جديد IISسرپرست سيستم بر فضاي حافظه اي که در اختيار برنامه است کنترل بيشتري دارد. برنامه هاي کاربردي جديد ياتوزيعي، در فرآيندي جدا از خود سرور IIS اجرا مي شوند.اجرا ش

دن در فضاي فرايند فعلي و ماندن در حافظه از نظر کارايي و قابليت مقياس پذير زيادي دارد.
برنامه کاربردي ISAPI همانند CGI مي تواند با ارسال پارامترهايي به URL وظيفه هاي گوناگوني را انجام دهد، اما شيوه ارسال پارامتره کمي متفاوت است.
معايب ISAPI مشکلات ISAPI به ايجاد آن مربوط مي شود ايجاد کننده ISAPI علاوه بر HTML حداقل بايد با C++ و MFC آشنا باشد. ممکن است افرادي با MFC و افراد ديگري با۱ آشنا باشند ولي جمع کردن ان ها در ايجاد ISAPI کافي نيست. ايجاد کنندگان MFC بيشتر در مورد برنامه هاي کاربردي ويندوز کار مي کنند که نياز به آگاهي از HTML ندارند.

مشکل ديگر توليد برنامه هاي کاربردي ISAPI پس از يافتن پرسنل مناسب، هنگام تست DLL رخ مي دهد. ذکر کردن DLL ها در URL مشکلات خاص خودش رادارد. علاوه بر مسئله جايگزيني DLL مربوط به ISAPI در سرور در اشکال زدايي DLL نيز مشکلاتي به وجود مي آيد. به خصوص برنامه نويسان MFC و به طور کلي برنامه نويسان ويرژوال C++ غير ممکن نيست، ولي ساده هم نيست.

صفحات سرور فعال ASP
علت بررسي فناوري هاي قبل از ASP.NET به جزئيات پياده سازه ASP.NET و فناوري قبل از آن يعني ASP بستگي دارد. درک ASP مستلزم درک ISAPI و درک ASP.NET مستلزم درک ASP است.
وقتي ISS2.0 به عنوان بخشي از ويندوز NT4 مطرح شد ميکروسافت، فناوري جديدي را به نام DENALI ارائه داد.اين فناوري در دوره فعال بودن شرکت ميکروسافت ايجاد شد و به همين دليل نام آن صفحات سرور فعال ASP انتخاب گرديد. چندين نسخه از ASP عرضه شد مثل ASP2.IIS4 در ويندوز NT,ASP3,IIS5 در ويندوز ۲۰۰۰٫

ASP نوع متفاوتي از محيط توسعه است. اولا يک محيط اسکريپتي است. صفحه را به راحتي ويرايش مي کنيد ان را در پوشه مناسبي قرار مي دهيد و مجوزها مناسبي به آنها اختصاص مي دهيد. اين صفحات توسط مرورگر فراخواني مي شوند. ثانيا کد ASP مي تواند با HTML ترکيب شود.
کد ASP معمولا در ويژوال بيسيک نسخه اسکريپتي نوشته مي شود ولي از JSCRIPT نيز مي توان استفاده کرد.

مزاياي ASP : فناوري ASP به سرعت مورد توجه قرار گرفت. زيرا کار دشوار ساخت صحافت پويا را به راحتي انجام داد. ايجاد برنامه هاي کارردي CGI و ISAPI چندان دشوار نبود ولي استفاده از ASP بسيار آسان است.
به طور پيش فرض ASP از VBSCRIPT استفاده مي کند. ميليون ها نفر با VBSCRIPT آشنايي دارند که از طريق ASP مي توانند وارد دنياي اينترنت شوند. به همين دليل ASP راه مناسبي براي ساخت صفحات وب است.

علاوه بر اين از طريق ADO امکان دستيابي آسان به بانک اطلاعاتي را فراهم مي سازد. براي ساخت محتويات پويا بايدآن محتويات رااز جايي دريافت کرد که ASO اين امکان را فراهم مي کند. توجه داشته باشيد که ADO يک واسط نرم افرازي است که مي تواند با سيستم هاي مديريت بانک اطلاعاتي مثل اکس و SQL SERCVER ارتباط برقرار کند.

مدل برنامه نويسي ASP اجازه نوشتن کد واجرا را مي دهد و نيازي به دنبال کردن مراحل کامپايل و نصب نيست. همان طور که خواهيد ديد، ASP.NET نيز از همين روش استفاده مي کند.
معايب ASP فناوري ASP قدرتمندي براي توليد برنامه هاي بزرگ وب است. وب سايتهايي مثل WWW.MICROSOFT.COM و بسياري از سايت هاي بزرگ و کوچک ديگر با موفقيت از ASP استفاده کردند.
اولين چيزي که در مورد ASP مطرح است سربار ناشي از تفسير کد VBSCRIPT يا JSCRIPT در هر درخواست است.
در اغلب سايتهاي متوسط ASP بيشتر گلوگاه ها ناشي از دستيابي به بانک اطلاعاتي و به هنگام سازي آن است تا موتور اسکريپتي ASP نسخه هاي بعدي ASP در ارائه سرويس به صفحات کارآمدتر شدند.
ASP محيط برنامه نويسي قابل اعتماد قدرتمند و کاملا مقياس پذيري را براي بانک اطلاعاتي فراهم نمي کند. انواع در VBSCRIPT فاقد نوع هستند. وقتي مقداري درمتغيري قرار مي گيرد، نوع آن تعيين مي شود، ولي اين نوع دائمي نيست و قابل تغيير است. به اين ترتيب احتمال بروز خطا بيشتر مي شود.
مسئله ديگر توانايي ترکيب HTML و اسکريپت است. به اين ترتيب کدهاي اسکريپت در داخل HTML پراکنده مي شود. چون با هر اجراي اسکريپت بايد تعويض بستر صورت گيرد، کارايي آسيب مي بيند.

ASP.NET
وقتي ASP3 به همراه ويندوز ۲۰۰۰ ارائه شد روشن شد که اينده توليد نرم افزار به آينده وب گره خورد است. پس از ان شرکت ميکروسافت نسخه جديد ASP را به نام ASP.NET ارائه کرد که سهولت کد نويسي ASP را دارد به طوري که برنامه رامي نويسيد در پوشه اي قرار مي دهيد، امتياز دستيابي براي آن تعيين مي کنيد و به راحتي قابل اجرا است. ASP.NET نوآوري هايي دارد که منجر به تفکيک هسته برنامه کاربردي از نمايش آن مي شود.

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

زبان مشترک زمان اجرا CLR زبان مشترک زمان اجرا، مجموعه اي از سرويس ها را براي تمام زبانهاي ASP.NET فراهم مي سازد. به عبارت ديگر مجموعه اي از انواع مشترک را براي بسياري از زبان ها تهيه مي کند.
زبانهاي کامپايلري ASP.NET با استفاده از زبانهاي کامپايلري کارايي پيشرفته اي را ارائه مي کند. زبان هاي کامپايلري به برنامه نويس اجاه مي دهند تا صحت برنامه را از نظر نحوي بررسي کند. ASP چنين امکاني را فراهم نمي کند لذا ساده ترين خطاي نحوي نيز تا اولين اجرا مشخص نمي شوند.

زبان هاي جديد ويژوال بيسيک نت نسخه کاملا جديدياز ويژوال بيسيک است که نحو آن زيباتر مي باشد. C# که C شارپ تلفظ مي شود. زبان جديدي از که مشابه با C++ و فاقد ويژگي هاي ناآمن C++ است.