عمومی

مقایسه ی ASP کلاسیک با ASP.NET

در این مقاله به بررسی تفاوتهای زبان ASP کلاسیک با زبان ASP.NET می پردازیم. در ادامه به بررسی نقاط ضعف و قوت این دو زبان متفاوت خواهیم پرداخت.

مقدمه:

ASP و ASP.NET با وجود تشابه نام، خیلی با یکدیگر تفاوت دارند. ASP زبان اسکریپت نویسی است حال آنکه ASP.NET یک الگوی جدید برای پیاده سازی زبان های کامپایل شده (Visual Basic, C#, J#, C++.NET) در چارچوب وب، می باشد. علاوه بر آن، بر خلاف ASP، زبان ASP.NET یک زبان شیء گرا می باشد.

جدا سازی پردازش:

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

ترجمه (Compile) در مقایسه با تفسیر (Interpretation):

هنگامیکه صفحه ی ASP کلاسیک مورد تقاضا واقع می شود، متن آن صفحه به صورت خطی تفسیر می شود. تمام محتوایی که شامل اسکریپت سمت سرور نیست، بدون تغییر در پاسخ ارائه می شود. تمام اسکریپت های سمت سرور در صفحه، ابتدا از طریق مفسر مناسب (Jscript یا VBScript) اجرا می شود، سپس خروجی آن در پاسخ ارائه می شود. بر خلاف ASP، صفحات ASP.NET همیشه به کلاس های NET. که درون کدهای اسمبلی قرار دارد، ترجمه می شوند. این کلاس شامل تمام کدهای سمت سرور و کدهای ایستای HTML می باشد. بنابراین در دفعه ی اولی که صفحه توسط کاربر مورد دسترسی قرار می گیرد به کدهای ماشین کامپایل شده و روی سرور ذخیره می شود. برای دفعات بعدی درخواست همان صفحه، در واقع کاربر از کدهای ماشین کامپایل شده ی متناظر با صفحه ی مذکور سرویس دریافت می نماید. مورد اخیر تمامی نقص های مدل اسکریپت نویسی زبان ASP کلاسیک را در این زمینه حذف می نماید.

[irp posts=”۱۱۴۲۶″ name=”بهینه سازی عملکرد asp.net با استفاده صحیح از Application State و Session State”]

پیامدهای عملکرد:

  • از آنجا که اسکریپت های ASP با سرعت در حال تفسیر شدن می باشند، یک اثر عملکرد وجود دارد. یک بهینه سازی مشترک برای برنامه های کاربردی ASP،  حجم وسیعی از اسکریپت های سمت سرور را جهت بهبود زمان پاسخگویی به اجزاء COM کامپایل شده ی اولیه، انتقال می دهد. از آنجا که تمام اجزاء در زبان ASP.NET به صورت کدهای اسمبلی هستند، بنابراین هیچ افت عملکردی با استفاده از کد سمت سرور وجود ندارد.
  • با استفاده از ASP، درهم آمیختگی بلوکهای ارزیابی سمت سرور با کدهای ایستای HTML، در مقایسه با یک بلوک اسکریپت سمت سرور راندمان کمتری خواهد داشت، چرا که مفسر در دفعات مکرر بایستی فراخوانی شود. برای اجتناب از این مشکل، تعداد زیادی از توسعه دهندگان ASP  با جایگزینی المانهای HTML ایستا با فراخوانی های ()Response.Write، به بلوکهای وسیعی از اسکریپت های سمت سرورمتوسل شده اند. در صورتیکه برای زبان ASP.NET، این مراحل جهت بهبود عملکرد لازم نیست.
  • ASP بلوک های متفاوت اسکریپتی  (که درون صفحه با زبانهای اسکریپتی متفاوت نوشته شده اند) را مجاز می داند. هنگامیکه مورد مذکور ممکن است مفید به نظر برسد، از آنجا که یک صفحه ی بخصوص مستلزم بارگزاری هردو مفسر اسکریپت نویسی جهت پردازش یک تقاضا است، متعاقبا زمان و حافظه ی بیشتری را نسبت به استفاده از تنها یک زبان اسکریپت نویسی در پی دارد. ASP.NET دارای “code-behind” در فایل های aspx. است که تفسیر و کامپایل می شوند. در کد نویسی نوع code-behind، زبان های چندگانه سمت سرور نمی توانند در یک فایل aspx. مورد استفاده قرار بگیرند.

اشکال زدایی:

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

منابع:

سایت مایکروسافت

سایت codeproject

سایت daniweb

ایران هاست

مشخصات مدیر

دیدگاهتان را بنویسید

نوشته های مشابه

دکمه بازگشت به بالا