به عنوان یک نسخه اصلاح شده و یا تکمیلی نسبت به آخرین نسخه asp کلاسیک یعنی asp 3.0 نبوده و در حقیقت asp.net یک الگوی جدید برای پیاده سازی برنامه های تحت وب به خصوص اسکریپت هایی که روی سرویس دهنده اجرای می شوند، است. در این جا سعی خواهیم کرد که به بررسی مهمترین تفاوت های موجود بین asp.net وasp کلاسیک پرداخته و در این رهگذر نگاهی نیز بر اصول اولیه و اساسی برای ایجاد این نوع صفحات داشته باشیم .
.net common Language Runtime
شرکت مایکروسافت در حال ایجاد یک زیر ساخت سطح پایین (low-level) برای ویندوز است . این زیر ساخت جدید ، به عنوان حد واسط بین عملیات سطح پایین ویندوز و برنامه های کاربران ، قرار گرفته و ایفای وظیفه (مدیریت اجرای کدها) خواهد کرد. زیرساخت فوق CLR نامیده شده است.clr مسئول ایجاد یک سطح خاص از کپسوله سازی بین پیاده کنندگان نرم افزار و سیستم عامل بوده و طبیعتا باعث تسهیل در ایجاد برنامه های تحت ویندوز خواهد شد. در این راستا پیاده کنندگان نگران انجام عملیات سطح پایینی نظیر: مدیریت حافظه، مدیریت اشاره گرها ،تفاوت بین زبان های برنامه نویسی و سایر عملیات رایج دردسر آفرین نخواهند بود. CLR یک محیط زمان اجرا به صورت object-oriented است. هر نوع داده در CLR به صورت یک شی بوده که در کنار خود مجموعه ای از متدها و خصایص را خواهد داشت. CLR امکان دستیابی به مجموعه ای حیاتی از سرویس ها و خدمات ارائه شده توسط سیستم عامل نظیر: امنیت، تعیین اعتبار، دستیابی به سیستم فایل، دسترسی به اطلاعات شبکه ای و سایر عملیات مورد نیاز را فراهم می کند.
مقدمه ای بر asp.net
تفاوت بین asp.net با asp کلاسیک از دو زاویه اصلی قابل بررسی است؛ بعد اول: asp.net امکانات به مراتب بیشتری را از بعد برنامه نویسی نسبت به asp کلاسیک ارائه کرده است. مایکروسافت در این زمینه از نقطه نظرات و پیشنهادات افرادی که با asp کار کرده اند استفاده و سعی کرده است که با بررسی دقیق این نوع خواسته ها، امکان افزودن قابلیت های جدید برنامه نویسی در asp.net را محقق کند.
بعد دوم: asp.net تغییراتی را در رابطه با اصول برنامه نویسی برای ایجاد صفحات وب پویا ایجاد کرده است. برای ایجاد و نوشتن صفحاتasp.net نیازمند کسب تجارب بیشتر و جدیدتری نسبت به آنچه قبلا در رابطه با asp کلاسیک فراگرفته شده است، خواهد بود.
اصلاحات ساختاری در برنامه نویسی صفحات
asp.net
asp.net نسبت به asp از کارآیی به مراتب بالاتر و محسوس تری برخوردار است. صفحات asp.net ترجمه می شوند. در گذشته ما شاهد تفسیر اسکریپت های نوشته شده به همراه asp بودیم که همین موضوع تاثیر زیادی را از بعد سرعت و کارآیی به دنبال داشت. صفحات asp.net حرف به حرف توسط کامپایلرهای وابسته به CLR ترجمه خواهند شد. (کامپایلرهای ارائه شده به همراه ویژوال استودیو نظیر VB,vc++,c# نمونه هایی از این نوع کامپایلرها است.)
Caching ،یکی از مهمترین عوامل تاثیرگذار بر کارآیی یک وب سایت ،نحوه دستیابی به داده ها است. مثلا یک صفحه وب که محتویات یک جدول موجود در بانک اطلاعاتی را نمایش می دهد، اکثر زمان خود را صرف ایجاد ارتباط با بانک اطلاعاتی، درخواست و بازیابی اطلاعات می کند. برای بهبود کارآیی برنامه های تحت وب که هر یک به نوعی با بانک اطلاعاتی مرتبط هستند و پس از انجام فعل و انفعالاتی اطلاعاتی را نمایش می دهند، asp.net از یک ماژول Data-Caching در کنار خود استفاده می کند. ماژول فوق این امکان را فراهم خواهد آورد که مشخص کنیم چه نوع اطلاعاتی را باید روی صفحه cache و تا چه زمانی و تحت چه شرایطی باید cache تخلیه شده و مجددا درخواست برای بازیابی اطلاعات از بانک اطلاعاتی را داشته باشیم. در چنین شرایطی در صورتیکه این اطمینان وجود دارد که بانک اطلاعاتی به ندرت بهنگام سازی می شود، می توان صفحه ای را ایجاد کرد که نتایج مربوط به بازیابی اطلاعات از بانک اطلاعاتی را به مدت 24 ساعت cache کند. شرکت مایکروسافت به همراهasp .net نسخه جدیدی از ado با نام ado+ را ارائه کرده است ado+ با داده ها به صورت شی گرا، چندبعدی و به مراتب ساده تر از ado برخورد می کند. در ado تمامی داده ها به صورت دو بعد سطر و ستون نمایش داده می شوند. در چنین حالتی اگر یک سطر و یا ستون خاص در یک recordset خود شامل یک recordset باشد، چه اتفاقی خواهد افتاد؟ انجام عملیات فوق در ado بسیار مشکل است. (صرفا انجام عملیات فوق از طریق Data shaping انجام می گیرد) در ado+ ایجاد recordset های چند بعدی به سادگی انجام گرفته و تحقق عملیات متفاوتی نظیر به هنگام سازی و حذف recordset های مربوطه کار مشکلی نخواهد بود. در ado هر یک از recordset ها به صورت یک صفحه (بورد) دو بعدی و غیر انعطاف پذیر از اطلاعات هستند. در ado+ هر یک از recordset ها به صورت یک قطره کاملا انعطاف پذیر و شکل پذیر از اطلاعات خواهد بود.
در زمان ایجاد صفحات asp کلاسیک و در مواردی که نیاز به جمع آوری اطلاعات از کاربر و انجام پردازش های مربوطه روی داده ها است، اغلب پیاده کنندگان صفحات post-back FORMS از ترفندهای متعددی استفاده می کنند. در asp کلاسیک تمامی متدهای لازم برای اخذ اطلاعات از کاربران از طریق کنترل های پیش فرض html که اصطلاحاserver controls نام دارد، انجام می شود.
در asp.net کنترل های سرویس دهنده جایگزین شده اند. کنترل های فوق را می توان در صفحات ASP .net از طریق نوشتن کدهای ساده ای ایجاد کرد کنترل سرویس دهنده Text Box توسط تگ asp:TextBox ایجاد می شود. تگ فوق به asp. net خواهد گفت که شما به یک Text Box نیاز دارید. این کنترل سرویس دهنده هوشمندانه html های لازم و مورد نیاز برای عرضه کردن یک Text Box استاندارد را ارائه خواهد کرد.توجه داشته باشید که کنترل سرویس دهنده Text Box به صورت html های معمولی عرضه شده است.
همچنین فیلد مخفی _viewstate برای نگهداری وضعیت فرم با توجه به داده های کاربر ایجاد می شود. در این جا، ما به دنبال تشریح جزئیات نحوه کار کنترل های سرویس دهنده و نحوه پشتیبانی از آخرین وضعیت یک فرم نبوده و صرفا باید به این نکته توجه کرد که کنترل های سرویس دهنده تگ های html را برای سرویس گیرنده ارسال و همانند صفحات ASP کلاسیک ،هر مرورگر استاندارد وب قادر به نمایش صفحات asp.net خواهد بود. این چند تفاوت تنها گوشه ای از برتری asp.net نسبت به asp را بیان می کند.