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

از ASP کلاسیک تا ASP.NET ـ بخش اول


از ASP کلاسیک تا ASP.NET ـ بخش اول
پیاده سازی نرم افزار تحت وب دارای سابقه ای چندین ساله بوده و تا کنون دستخوش تحولات متعددی گردیده است . تمامی تحولات بوجود آمده ، ریشه در سیر صعودی نیازها و مطرح شدن انتظارات جدید از اینترنت و مهمترین سرویس آن یعنی وب دارد. اگر سال ۱۹۹۶ میلادی را نقطه عطفی در زمینه طراحی و پیا ده سازی نرم افزارهای تحت وب بدانیم ، قطعا" می بایست به نقش تکنولوژی های متفا وت که امکا ن خلق آثار نرم افزاری بر روی بستر وب را فراهم نموده اند ، مرور مجددی داشت .
تکنولوژی ASP یکی از پیشکسوتا ن در این زمینه می با شد. با عرضه تکنولوژی فوق و استقبا ل برنامه نویسان بیشماری در سطح دنیا، ASP بسرعت جایگا ه و مکانی رفیع را پیدا نمود. تکنولوژی فوق ، طی سالیان متما دی توانست به خیل عظیم نیازها بدرستی و بخوبی پاسخ دهد. ASP آن روز، که امروزه با نام ASP کلاسیک از آن یا د می گردد ، گرچه کا مل ترین تکنولوژی در زمینه آفرینش آثا ر نرم افزار تحت وب نیست ، ولی قطعا" یکی از بهترین گزینه ها در این زمینه می با شد. . ماحصل تما می تلاش های انجام گرفته شده طی سا لیان قبل ، انقلابی عظیم در زمینه بکارگیری نرم افزار های تحت وب از زاویه استفاده کننده بود. با توجه به رشد تصاعدی خواسته ها و مطرح شدن نوع خاصی از انتظارات ، نیاز به یک تکنولوژی قدرتمند تر بهمراه زیر ساخت ها و چارچوپ های مناسب ، طی سالیان اخیر بشدت احساس می گردید. بر همین اساس شرکت ما کروسافت پروژه معروف دات نت را مطرح نمود. یکی از اهداف اساسی و مهم در پروژه فوق ، ارائه یک مدل و ساختا ر جدید برنامه نویسی تحت وب است . مدل فوق ، بستر مناسب برای گفتما ن برنامه ها بر روی بستر وب را ایجاد خواهد کرد ، چیزی که از آن بعنوان انقلابی دیگر در عرصه برنامه نویسی تحت وب نام برده می شود. در این مقاله قصد پرداختن به شاخص ها ، ویژگی ها و شا ه کلیدهای مطرح در دات نت را نداریم . هدف پرداختن به مواردی است که از منظر برنامه نویسان ASP حائز اهمیت است . عرضه و معرفی ASP.NET بهمراه برخی دیگر از تکنولوژی ها در دات نت، کا نون توجه برنامه نویسان ASP قرار گرفته است . تمامی برنامه نویسا ن وب که تا کنون بکمک ASP آثا ر خود را خلق می کردند ، با نگا هی عمیق و کنجکا وانه بدنبال ASP.NET هستند. برنامه نویسان، در مرحله اول تما یل دارند که با دستا وردها و امکا نات ASP.NET آشنا شده و قادر به استفاده از پتانسیل های ارائه شده در کوتا هترین زمان ممکن و با روشی کاملا" علمی باشند. در مرحله دوم می بایست تکلیف میلیون ها صفحاتی را که توسط ASP کلاسیک ایجاد شده و تاکنون نیز به ارائه خدمات و مسئولیت های محوله ادامه می دهند ، روشن گردد.
در این مقاله سعی خواهد شد که با ارائه یک مدل علمی و عملیاتی ، منا سبترین روش ها بمنظور گذر از ASP کلاسیک و رسیدن به ASP.NET ، ارائه و بررسی گردد. با مطالعه مقاله فوق از یکسو با برخی امکانات و ویژگی های ASP.NET آشنا شده و از سوی دیگر نحوه گذر از ASP کلاسیک و پرداختن به ASP.NET نیز تبین خواهد شد.
اهم مطالبی که در این مقاله به آنها پرداخته خواهد شد بشرح ذیل می باشند:
ضرورت های حرکت به سمت ASP.NET . در ابتدا به این پرسش مهم پاسخ داده خواهد شد که چرا می بایست بسمت دانت نت حرکت نمود؟
معرفی اولیه ASP.NET . در این بخش به تشریح برخی از ویژگی های مهم دانت نت اشا ره خواهد شد .
تغییرات کلیدی و اساسی بین ASP و ASP.NET. در این بخش به بررسی برخی از تفاوت های مهم موجود بین دو تکنولوژی فوق اشا ره خواهد شد.
نحوه حرکت از ASP بسمت ASP.NET . در این بخش نحوه تبدیل برنامه های نوشته شده ASP توسط VBScript تشریح می گردد .
نحوه حرکت نرم افزارهائی که از عناصر COM استفاده می نمایند. در این بخش نحوه تبدیل و استفاده از عناصر Com بهمراه ASP.NET تشریح خواهد شد.
نحوه حرکت نرم افزارهائی که از بانک های اطلاعاتی استفاده می نمایند. در این بخش نحوه تبدیل و استفاده از با نک های اطلاعاتی در ASP.NET تشریح خواهد شد.
نحوه حرکت بصورت عملی . نحوه عملی ترکیب کدهای نوشته شده ASP کلاسیک وASP.NET تشریح خواهد شد.
پاسخ به برخی سوالات متداول در خصوص سازگاری بین ASP و ASP.NET
● ضرورت های حرکت به سمت ASP.NET
بمنظور پا سخ به سوال فوق در ابتدا می بایست مشخص نمود که تکتولوژی فوق چه خدمات و امکاناتی را ارائه می دهد :
▪ افزایش قا بلیت های توسعه و اعتماد . .با استفاده از دات نت قابلیت اعتما د و توسعه به شدت افزایش خواهد یافت .امروزه استفاده از تکنولوژی فوق در مزارع وب و باغ های وب ضرورت داشته و این نوع برنامه ها می بایست همه روز و بصورت شبانه روزی خدمات خود را بصورت بهنگا م ارائه نمایند.
▪ افزایش حداقل دو تا سه برابر کارائی . با استفاده از تکنولوژی دات نت و صرفا" با تبدیل برنا مه های نوشته شده با ASP به دات نت کارائی برنامه ها به میزان دو تا سه برابر افزایش خواهد یافت
▪ دارای ماهیتی کاملا" سازگار با مرورگرها . دات نت کاملا" سازگار با انواع مرورگرها بوده و ضرورتی به نوشتن کدهای اختصاصی بمنظور مشاهده در یک مرورگر خاص وجود نخواهد داشت .
▪ دارای کنترل های سرویس دهنده مورد حمایت ویژوال دات نت و امکانات مربوط به پیکربندی . ASP.NET دارای مجموعه ای وسیع از کنترل های سرویس دهنده می باشد که با توجه به حما یت ویژوال دات نت از تکنولوژی فوق ، زمینه بکارگیری آسان آنها فراهم خواهد شد. در ضمن دات نت دارای امکا نا ت گسترده در زمینه پیکربندی اتوما تیک نیز می باشد.
▪ بکارگیری آسان کدها . صفحا ت و عنا صر طراحی شده بکا رگیری صفحات و حتی عناصر را تسهیل خواهد بخشید . نظیر دستور معروف کپی
▪ اشکال زذائی بهتر و ردیابی سا ده خطاء . با استفاده از دات نت می توان از امکانا ت گسترده مربوط به اشکال زدائی و ردیابی خطا در برنامه که آرزوی هر برنامه نویس است ، بسادگی استفاده کرد.
▪ جداسازی محتویات از کدها . با استفاده از مدل جداسا زی کدها از محتویات ، می توان صفحاتی را داشت که کدهای مربوط به عملیات مورد نظر در صفحه را بدرستی کنترل و هدایت نما یند .
▪ استفاده از خصایص و ویژگی های جدید Cashing . بمنظور افزایش کارائی برنامه ها در دات نت ، می توان از ویژگی های جدید سیستم Cashing استفاده نمود.
▪ توسعه بهینه خصلت های مربوط به مدیریت وضعیت برنامه . امکان مدیریت و کنترل وضعیت یک برنامه با استفاده از امکانات پیش بینی شده در دات نت بسهولت انجام خواهد شد
▪ امکان اجرای صفحات ASP و ASP.NET در کنار هم . همچنان امکان استفاده از برنامه های سنتیASP در کنار دانت نت نیز وجود خواهد داشت .
▪ و بسیاری دیگر از ویژگی هائی که در این مقاله فرصت پرداختن به آنها وجود ندارد .
● قبل از حرکت
قبل از حرکت بسمت ASP.NET می با یست با موارد موجود در این زمینه آگاهی لازم را کسب نمود. برای حرکت بسمت ASP.NET مدل آموزشی خا صی ، می با یست دنبال گردد.در ابتدا لازم است نسبت به ASP.NET شناخت مناسبی پیدا گردد . در ادامه با برخی تغییرات کلیدی بوجود آمده می بایست آشنا گردید. در این راستا لازم است که با برخی کدهای رایج بمنظور اعمال تغییرات نیز آشنا گردیم .
بخش دوم : معرفی اولیه ASP.NET
بمنظور حرکت بسمت ASP.NET می با یست شناخت اولیه ای در رابطه با دات نت وجود داشته با شد. دات نت چیست ؟
▪ یک چارچوب جدید برای برنامه نویسی تحت وب است .
▪ ASP.NET یک مدل از خانه تکانی ASP کلاسیک است .
▪ ASP.NET بعنوان عضوی از پلات فورم دات نت مطرح می گردد.
▪ ASP.NET ترجمه شده و بمراتب سرعت بالاتری را بدنبال خواهد داشت .
▪ ASP.NET از یک مدل متکی بر رویداد پیروی می نماید.
▪ با استفاده از ASP.NET می توان با یک سرعت قابل قبول اقدام به طراحی برنامه های تحت وب و سرویس های وب نمود.
▪ با استفاده از ASP.NET می توان خالق برنامه ها ئی گردید که بر روی هر نوع دستگا ه و یا مرورگری اجراء خواهند شد.
▪ یکی از ملزوما ت اساسی و اجباری برای استفاده از ASP.NET داشتن یکی از نسخه های ویندوز ۲۰۰۰ برای میزبا نی و پیاده سا زی برنامه های متکی بر ASP.NET است .
● معماری ASP.NET
در این بخش نگاهی سریع به ساختا ر و معماری بکا رگرفته شده در ASP.NET خواهیم داشت . طراحان و ایجاد کنند گا ن تکنولوژی فوق ، نهایت سعی خود را نموده که محصول فوق ماژولار و قابل توسعه باشد. مثلا" در صورتیکه علاقه ای به داشتن مدیریت Session در صفحات ASP.NET نداشته باشیم ،می توان آن را با روتین های مدیریتی خود جایگزین نمود . (عملیانی که در ASP کلاسیک امکان تحقق آن وجود نداشت) . یکی دیگر از اهداف طراحان تکنولوژی فوق استقلال اجراء و عدم وابستگی به IIS است . بدین منظور آیتمی با نام HTTP زمان اجراء ، ایجاد شده است .HTTP زمان اجراء ، یک زیرساخت اسا سی بمنظور پردازش سطح پایین HTTP را ایجاد خواهد کرد. امکان فوق جایگزینی مناسب و منطقی برای فیلترهای ISAPI و انشعا با ت مربوطه بوده و بگونه ای طراحی شده است که توانائی افزودن ، حذف و یا جایگزین نمودن عناصر اساسی ASP.NET را دارا باشد. زمانیکه درخواستی به بخش Http زمان اجراء ارسال می گردد ،درخواست فوق از بین تعداد زیا دی از ماژول های Http عبور داده خواهد شد.ماژول های فوق قبل و بعد از اجرای Handler اجراء خواهند شد.این ماژول ها ، امکان تفسیر و نها یتا" اجراء را فراهم می نما یند . متدهای خاصی بهمراه ما ژول های Http توسط رویدادها و فایل های Global.asax یکسان سازی خواهند شد. چندین متد ماژولار می توانند به هر یک از رویدادهای در سطح برنامه ها ، سینک گردنند. مثلا" ماژول های Windows Authentication و Passport Authentication هر دو به متدی با نام OnEnter با استفاده از رویدادی با نام AuthenticateRequest سینک خواهند شد.در خواست مورد نظر بین هر ماژول حرکت و در نهایت توسط HTTP handler پردازش خواهد شد. هندلرها ، بمنظور پردازش درخواست های منفرد استفاده می گرددند. هندلرها امکان پردازش URLs و یا گروه ها ئی از ضمائم URL را بهمراه یک برنامه فراهم خواهند کرد. برخلاف ماژول ها ، فقط یک هندلر بمنظور پردازش یک درخواست استفاده می گردد. پس از اینکه هندلر عملیات مربوط به درخواست را به اتمام رساند ، درخواست مسیر خود را بصورت وارونه طی نموده و به ماژول برگردانده تا به حیات آن خاتمه داده شود. در زمان حیات یک درخواست ، یک شی با نام HTTP Context object مسئولیت کپسوله نمودن تمامی اطلاعات مرتبط با شی را برعهده خواهد داشت .
● نحوه پردازش درخواست های مبتنی بر ASP.NET
زمانیکه درخواستی برای یک صفحه aspx واصل می گردد ، درخواست فوق به handler مربوطه داده خواهد شد. در صورتیکه اولین مرتبه ای است که صفحه درخواست می گردد ، صفحه مورد نظر ترجمه و با کلاس مربوط به کدهای استفا ده شده ترکیب خواهد شد.( کلاس CodeBehind چیزی را تولید خواهد نمود که کلاس صفحه نامیده می شود) در حقیقت کلاس ایجاد شده بصورت Dll بوده و در یک فهرست موقت ذخیره خواهد گردید. (Cashed) در ادامه کلاس فوق ، اجراء و تمامی منطق مورد نیا ز بمنظور اجرای تگ های مورد نظر Html تولید و ماحصل عملیات برای متقاضی ارسال خواهد شد. زمانیکه مجددا" صفحه فوق درخواست گردد ، یک نمونه از کلاس فوق که قبلا" Cashe شده است ، ایجاد و مجددا" تگ های Html تولید و پاسخ مربوطه برای متقاصی ارسال خواهد شد. در این مرحله برخی از عملیات نظیر پارسینگ ، ترجمه و ... حذف و قطعا" زمان پاسخ گوئی به درخواست مورد نظر کاهش پیدا خواهد کرد.
● چرخه حیات یک صفحه ASP.NET
یکی از تفاوت های اساسی صفحات ASP با ASP.NET ، روشی است که صفحه پردازش می گردد. در مدل ASP.NET پردازش صفحه متکی بر رویداد است . رویداد Page_Init اولین رویدادی است که فعال خواهد شد.روتین پاسخگو در مقابل رویداد فوق ، مسئولیت مقداردهی متغیرها و سایر کنترل های استفاده شده در صفحه را برعهده خواهد داشت . در رویداد فوق تمامی کدهای مربوط به مقدار دهی اولیه مستقر خواهند شد. در ادامه رویداد Page_Load فعال خواهد گردید. در این لحظه تمامی کنترل ها و صفحات فعال خواهند گردید.رویداد فوق یکی از پرکاربردترین رویداد های استفاده شده است. کنترل ها در ASP.NET دارای رویدادهای مربوط به خود می باشند.مثلا" یک کنترل Text Box ، می تواند دارای رویداد Change و یا رویداد Click باشد. پس از فعال شدن رویداد Page_Load تمامی رویدادهای Change مربوط به کنترل ها در ابتدا پردازش و در ادامه رویداد Click پردازش خواهد شد. قبل از ارائه نمودن صفحه ، رویداد Page_PreRender فعال و در ادامه صفحه مورد نظر ، پس ازفعال شدن رویدادpage_unload از حافظه خارج خواهد شد. در زمان استفاده از ASP.NET بدفعات از رویدادهای فوق استفاده خواهد شد.
● مدل های برنامه نویسی ASP.NET
برای برنامه نویسی صفحات ASP.NET ، می بایست از یکی از دو مدل تک صفحه ای و یا دو صفحه ای استفاده کرد .
در مدل تک نسخه ای صرفا" یک فایل با انشعاب aspx را خواهیم داشت ( مشابه ASP کلاسیک ) که در آن تگ های Html ، تگ های مربوط به کنترل ها و خود صفحه قرار خواهند گرفت . ( در زمانیکه قصد سوئیچ نمودن از مدل ASP کلاسیک را داشته باشیم مدل فوق بسیار موثر و سریع خواهد بود) در مدل دو صفحه ای که با نام Code-Behind نیز نامیده می شود ، از دو صفحه با عملکردهای کاملا" متفاوت استفاده می گردد. در اولین صفحه که با انشعاب aspx خواهد بود تگ های Html و تگ های مربوط به کنترل ها قرار خواهند گرفت .در فایل دوم صرفا" کدهای مربوطه قرار خواهند گرفت . انشعاب فایل فوق با توجه به زبان استفاده شده ( VB.NET,C# C) بصورت : aspx.vb و یا aspx.cs خواهد بود. مدل فوق توسط ابزار پیاده سازی ویژوال استودیو مورد استفاده قرار می گیرد. در مدل فوق بصورت واقعی عملیات مربوط به تفکیک کد و محتویات انجام خواهد شد.
● معرفی برخی از ویژگی های مهم ASP.NET
در این بخش لازم است که به برخی از ویژگی های اساسی ASP.NET اشاره گردد. ASP.NET دا رای امکانات گسترده برای عموم علاقه مندان به برنامه نویسی وب است .اگر شما در صف پیاده کنندگان نرم افزار قرار دارید ، مشاهده خواهید کرد که ASP.NET عموما" با ASP کلاسیک ، سازگار است . در این راستا می توان از امکانات وسیع ویژوال استودیو استفاده نمود. با استفاده از ASP.NET می توان مجموعه ای از کنترل های سرویس دهنده را بخدمت گرفت .استفاده از کلاس های پا یه کتا بخانه ای از دیگر مواردی است که با استفاده از آن می توان تعداد خطوط مورد نظر برنامه نویسی بمنظور انجام یک فعالیت را کاهش داد. بر نامه نویسان پس از انتخا ب زبان دلخواه قا در به نوشتن کدهای مورد نیا ز خوا هند بود .در صورتیکه علاقه مند به نوشتن کدهای مورد نظر خود بکمک زبان کوبال نیز باشید ، این امر امکا ن پذیر خواهد بود. تاکنون بیش از بیست زبان برنامه نویسی متفاوت توسط پلات فورم دات نت حمایت شده و تعدادی دیگر در راه می با شند . شما همچنین می توانید اینترفیس API۳۲ ویندوز را مستقیما" و از طریق صفحات aspx فرا خوانده و از پتانسیل های آن استفاده نمائید.تمامی زبانهای دات نت نظیر VB.NET از یک ساختار ساختیافته بمنظور برخورد با خطا ء استفاده می نمایند. اشکال زدائی و ردیابی خطا ها از دیگر موارد قابل توجه و تامل در ASP.NET است . در این راستا می توان اقدام به اشکال زدائی صفحات ASP نمود( مشابه اشکال زدائی فرمها در ویژوال بیسیک )
ASP.NET بمنظور افزایش کارائی ( اعتمادپذیری و توسعه با وزن دلخواه ) طراحی شده است . در دنیای دات نت هر چیزی ترجمه خواهد شد. کدهای ترجمه شده سرعت را به ارمغان خواهند آورد. بمنظورافزایش کارائی از سیستم Cashe API استفاده می گردد. ASP.NET قادر به تشخیص و برخورد مناسب با تمامی حوادثی خواهد بود که در زمان اجرای یک برنامه ممکن است بوجود آید.( از بین رفتن پردازه ها ، بروز بن بست در سیستم ، بروز مشکل در حافظه ، نمونه هائی در این راستا می باشند ) در چنین مواردی پردازه جدیدی ایجا د و مسئولیت حذف پردازه قبلی با مشکل مواجه شده ، به آن سپرده خواهد گردید.تمامی درخواست های معطل مانده ، قبل از اینکه به عمر پردازه فوق خاتمه داده شود ، توسط پردازه پردازش خواهند شد . در این وضعیت تمامی درخواست های جدید واصل شده ، به پردازه جدید داده خواهند شد.نکته جالب در این راستا تنظیم و پیکربندی تمامی پارامترهای ذیربط ، توسط برنامه نویس است .
یکی از مهمترین اهداف دات نت ، بکارگیری آسان برنامه ها پس از آماده سازی است . ASP.NET از تکنیک معروف Xcopy ( تکثیر فولدر مربوطه بهمراه زیر مجموعه های آن ) استفاده می نماید.در زمان استفاده از ASP.NET ضرورتی به استفاده از ریجستری بمنظور تنظیم پارامترهای ذیربط نخواهد بود .در این راستا می توان تمامی تنظیمات دلخواه را در فایل ها ئی از نوع XML ذخیره و بهمراه کدهای نوشته شده بر روی کامپیوتر مورد نظر، تکثیر کرد. با استفاده از امکانات ASP.NET و همراهی Mobile Internet Toolkit ، می توان نرم افزارهای وب خود را بمنظور اجراء بر روی دستگاههائی نظیر : تلفن های سلولی ، PDA و .. آماده کرد . ASP.NET دارای امکانات مناسب برای پیاده سازی سرویس های متکی بر وب ، کنترل های بیشتر از بعد مسا ئل امنیتی و انعطاف پذیری بشتر در مدیریت Session است .
منبع : انجمن علمی دانشگاه شیخ بهایی