یکشنبه, ۳۰ اردیبهشت, ۱۴۰۳ / 19 May, 2024
مجله ویستا

تفاوت ASP NET و ASP کلاسیک


تفاوت ASP NET و ASP کلاسیک

شرکت مایکروسافت در حال ایجاد یک زیر ساخت سطح پایین Low Level برای ویندوز است این زیر ساخت جدید , بعنوان حد واسط بین عملیات سطح پایین ویندوز و برنامه های کاربران , قرار گرفته و ایفای وظیفه مدیریت اجرای کدها خواهد کرد

● معرفی ASP.NET و بررسی تفاوت های موجود با ASP کلاسیک

آیا ASP.NET نسخه جدیدی از ASP کلاسیک است ؟ در پاسخ به سوال فوق می بایست با صراحت اعلان نمود که ASP.NET بعنوان یک نسخه اصلاح شده و یا تکمیلی نسبت به آخرین نسخه ASP کلاسیک یعنی ASP ۳.۰ نبوده و در حقیقت ASP.NET یک الگوی جدید برای پیاده سازی برنامه ها تحت وب خصوصا" اسکریپت هائی که بر روی سرویس دهنده اجراء می گردند ، می باشد . در این مقاله سعی خواهد شد که به بررسی مهمترین تفاوت های موجود بین ASP.NET و ASP کلاسیک پرداخته و در این رهگذر نگاهی نیز بر اصول اولیه و اساسی برای ایجاد این نوع صفحات داشته باشیم .

● NET Common Language Runtime

شرکت مایکروسافت در حال ایجاد یک زیر ساخت سطح پایین (Low-Level) برای ویندوز است . این زیر ساخت جدید ، بعنوان حد واسط بین عملیات سطح پایین ویندوز و برنامه های کاربران ، قرار گرفته و ایفای وظیفه ( مدیریت اجرای کدها ) خواهد کرد . زیرساخت فوق CLR نامیده شده است .CLR مسئول ایجاد یک سطح خاص از کپسوله سازی بین پیاده کنندگان نرم افزار و سیستم عامل بوده و طبیعتا" باعث تسهیل در ایجاد برنامه های تحت ویندوز خواهد شد. در این راستا پیاده کنندگان نگران انجام عملیات سطح پایینی نظیر : مدیریت حافظه ،مدیریت اشاره گرها ،تفاوت بین زبانهای برنامه نویسی و سایر عملیات رایج دردسر آفرین ! نخواهند بود. CLR یک محیط زمان اجراء بصورت Object-Oriented است . هر نوع داده در CLR بصورت یک شی بوده که در کنار خود مجموعه ای از متدها و خصایص را خواهد داشت . CLR امکان دستیابی به مجموعه ای حیاتی از سرویس ها و خدمات ارائه شده توسط سیستم عامل نظیر : امنیت ، تعیین اعتبار ،دستیابی به سیستم فایل ، دسترسی به اطلاعات شبکه ای و سایر عملیات مورد نیاز را فراهم می نماید.

▪ نکته

کدهائی که با استفاده از امکانات ارائه شده CLR نوشته می شوند را Managed code وکدهائی که از زیر ساخت فوق استفاده نمی نمایند را Unmanaged Code می گویند.

● مقدمه ای بر ASP.NET

تفاوت بین ASP.NET با ASP کلاسیک از دو زاویه اصلی قابل مطالعه است:

▪ بعد اول :

ASP.NET امکانات بمراتب بیشتری را از بعد برنامه نویسی نسبت به ASP کلاسیک ارائه نموده است . مایکروسافت در این زمینه از نقطه نظرات و پیشنهادات افرادیکه با ASP کار کرده اند استفاده و سعی نموده است که با بررسی دقیق این نوع خواسته ها ،امکان افزودن قابلیت های جدید برنامه نویسی در ASP.NET را محقق نماید

▪ بعد دوم :

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

● اصلاحات ساختاری در برنامه نویسی صفحات ASP.NET

▪ اسکریپت های ترجمه شده ASP.NET . ASP.NET نسبت به ASP از کارآئی بمراتب بالاتر و محسوس تری برخوردار است . صفحات ASP.NET ترجمه می گردنند.در گذشته ما شاهد تفسیر اسکریپت های نوشته شده بهمراه ASP بودیم که همین موضوع تاثیر زیادی را از بعد سرعت و کارائی بدنبال داشت . صفحات ASP.NET حرف به حرف توسط کمپایلرهای وابسته به CLR ترجمه خواهند شد. ( کمپایلرهای ارائه شده بهمراه ویژوال استودیو نظیر VB,VC++,C# نمونه هائی از این نوع کمپایلرها می باشند.)

▪ Caching

یکی از مهمترین عوامل تاثیر گذار بر کارائی یک وب سایت ،نحوه دستیابی به داده ها است . مثلا" یک صفحه وب که محتویات یک جدول موجود در بانک اطلاعاتی را نمایش می دهد ،اکثر زمان خود را صرف ایجاد ارتباط با بانک اطلاعاتی ، درخواست و بازیابی اطلاعات می کند . برای بهبود کارائی برنامه های تحت وب که هر یک بنوعی با بانک اطلاعاتی مرتبط و پس از انجام فعل و انفعالاتی اطلاعاتی را نمایش می دهند ،ASP.NET از یک ماژول Data-Caching در کنار خود استفاده می نماید. ماژول فوق این امکان را فراهم خواهد آورد که مشخص نمائیم چه نوع اطلاعاتی را می بایست بر روی صفحه Cache و تا چه زمانی و تحت چه شرایطی می بایست Cache تخلیه شده ومجددا" درخواست برای بازیابی اطلاعات از بانک اطلاعاتی را داشته باشیم . در چنین شرایطی در صورتیکه این اطمینان وجود دارد که بانک اطلاعاتی بندرت بهنگام سازی می گردد ،می توان صفحه ای را ایجاد نمود که نتایج مربوط به بازیابی اطلاعات از بانک اطلاعاتی را به مدت بیست و چهار ساعت Cache نماید.

▪ عرضه ADO+

شرکت مایکروسافت بهمراه ASP.NET نسخه جدیدی از ADO با نام ADO+ را ارائه نموده است . ADO+ با داده ها بصورت شی گراء ، چندبعدی و بمراتب ساده تر از ADO برخورد می کند. در ADO تمامی داده ها بصورت دو بعد سطر و ستون نمایش داده می شوند. در چنین حالتی اگر یک سطر و یا ستون خاص در یک RecordSet خود شامل یک Recordset باشد ،چه اتفاقی خواهد افتاد؟ انجام عملیات فوق در ADO بسیار مشکل است . ( صرفا" انجام عملیات فوق از طریق Data Shaping انجام می گیرد) در ADO+ ایجاد Recordset های چند بعدی بسادگی انجام گرفته و تحقق عملیات متفاوتی نظیر بهنگام سازی و حذف Recordset های مربوطه کار مشکلی نخواهد بود. در ADO هر یک از RecordSet ها بصورت یک صفحه ( بورد) دو بعدی و غیر انعطاف پذیر از اطلاعات می باشند . در ADO+ هر یک از Recordset ها بصورت یک قطره کاملا" انعطاف پذیر و شکل پذیر از اطلاعات خواهد بود.

▪ Post-Back Forms

در زمان ایجاد صفحات ASP کلاسیک و در مواردیکه نیاز به جمع آوری اطلاعات از کاربر و انجام پردازش های مربوطه بر روی داده ها است ،اغلب پیاده کنندگان این نوع صفحات از ترفندهای متعددی استفاده می کردنند. استفاده از فرم های Post-Back نمونه ئی از ترفندهای مورد اشاره است . این نوع فرم ها با استفاده از تگ <Form??> ایجاد و خصلت ACTION آنها مقدار دهی نشده و یا به همان صفحه ای که شامل فرم است آدرس دهی خواهد شد.در این راستا زمانیکه کاربر اقدام به ارسال فرم می نماید ،صفحه مشابه ASP مجددا" فعال که در آن داده های وارد شده توسط کاربر در فرم مشاهده خواهند شد. برای هندل کردن اینچنین موارد در ASP از دستورات if استفاده شده تا مشخص گردد که آیا فرم Post-back شده است یا خیر ؟ در ASP.NET از دستورات دردسر آفرین If استفاده نمی گردد. پیاده کنندگان می توانند یک صفحه ASP.NET را بهمراه استفاده از یک دکمه کنترل سرویس دهنده ایجاد نمایند. در ادامه می توان با نوشتن یک تابع نحوه برخورد با واقعه فشردن دکمه مربوطه را تبین نمود. در چنین حالتی تمامی عملیات مورد نیاز برای حمایت لجستیک از یک فرم از طریق یک تابع انجام خواهد شد. ( به جای نوشتن چندین If ) .

▪ Server Controls

در ASP کلاسیک تمامی متدها ی لازم برای اخذ اطلاعات از کاربران از طریق کنترل های پیش فرض HTML انجام می شود. مثلا" برای ایجاد یک Text Box و بمنظور اخذ اطلاعات از کاربر می توان از کدهائی مشابه زیر استفاده نمود :

ـ ایجاد یک Text Box

<Form>

<INPUT TYPE = TEXT NAME=MyTextBox>

</Form