توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : همه چيز در مورد انتقال از asp به asp.net
از ASP کلاسيک تا ASP.NET ( بخش اول )
پيا ده سا زی نرم افزار تحت وب دارای سا بقه ای چندين سا له بوده و تا کنون دستخوش تحولات متعددی گرديده است . تما می تحولات بوجود آمده ، ريشه در سير صعودی نيا زها ومطرح شدن انتظا رات جديد از اينترنت و مهمترين سرويس آن يعنی وب دارد. اگر سال 1996 ميلادی را نقطه عطفی در زمينه طراحی و پيا ده سازی نرم افزارهای تحت وب بدانيم ، قطعا" می بايست به نقش تکنولوژی های متفا وت که امکا ن خلق آثار نرم افزاری بر روی بستر وب را فراهم نموده اند ، مرور مجددی داشت .
تکنولوژی 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 داشتن يکی از نسخه های ويندوز 2000 برای ميزبا نی و پياده سا زی برنامه های متکی بر 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 می توان مجموعه ای از کنترل های سرويس دهنده را بخدمت گرفت .استفاده از کلاس های پا يه کتا بخانه ای از ديگر مواردی است که با استفاده از آن می توان تعداد خطوط مورد نظر برنامه نويسی بمنظور انجام يک فعاليت را کاهش داد. بر نامه نويسان پس از انتخا ب زبان دلخواه قا در به نوشتن کدهای مورد نيا ز خوا هند بود .در صورتيکه علاقه مند به نوشتن کدهای مورد نظر خود بکمک زبان کوبال نيز باشيد ، اين امر امکا ن پذير خواهد بود. تاکنون بيش از بيست زبان برنامه نويسی متفاوت توسط پلات فورم دات نت حمايت شده و تعدادی ديگر در راه می با شند . شما همچنين می توانيد اينترفيس API32 ويندوز را مستقيما" و از طريق صفحات 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 است .
بخش نهم
تغييرات عمده در ASP.NET
يکی از اهداف اوليه و مهم ASP.NET سازگاری کامل آن با ASP کلاسيک است . دستيابی به هدف فوق بصورت کامل و در مرحله عمل غير ممکن بنظر می آيد . زمانيکه اين محصول ارائه گرديد ، صرفا" يک تفاوت اساسی مربوط به يکی از اشياء مهم ( شی Request) ، در آن مشهود بود . در ASP کلاسيک ، Querystring و مجموعه Form مربوط به شی Request ، برداری از نوع رشته را برمی گردانند . اما در ASP.NET آنها يک مجموعه شامل نام / مقدار را برمی گردانند. در اغلب حالات تعييرات اعمال شده بگونه ای بوده که از اشياء موجود استفاده و امکانات آنها افزايش يا بد .يکی ديگر از موارد قابل تامل ، احتياط در بکارگيری Response.write است . زمانيکه امکان فوق بهمراه تگ های Server-Side استفاده می گردد، نتايج در بالای صفحه و قبل از تگ HTML نمايش داده خواهند شد. بمنظور استفاده درست از امکان فوق و نمايش نتايج دلخواه در مکان مورد نظر، می بايست Response.write از طريق تگ های Server-side و يا از طريق توابع مورد نظر ، فراخوانده گردد.در اين راستا می توان از کنترل های سرويس دهنده نظير : Labels و يا PlaceHolder استفاده کرد . هر يک از اشياء اساسی نظير : Request , Response , Server, Session و ... دارای تعداد زيادی خصلت و متد جديد شده و در عين حال تعداد ديگر شی اضافه گرديده است .مثلا" شی Cashe باعث پياده سازی سيستم Cashe برای يک نرم افزار متکی بر وب می گردد و يا شی ديگر، اطلاعات کاربری که در حال استفاده از برنامه است ، در خود نگهداری می نمايد . و يا شی Trace که می توان اطلاعات مربوط به رديابی را بکمک آن در خروجی نمايش داد، نمونه هائی از اشياء جديد می با شند .
بخش دهم
تغييرات ساختاری
در زمان کوچ از ASP کلاسيک بسمت ASP.NET ، می بايست به تغييرات ساختاری بوجود آمده نيز دقت گردد. برخلاف صفحات ASP کلاسيک ، در ASP.NET در هر صفحه صرفا" می توان از يک زبان استفاده کرد . ويژگی فوق يکی از مشهودترين تغييرات بوجود آمده در ساختار است . بنابراين نمی توان در يک صفحه چندين زبان را بخدمت گرفت . استثنا" می توان از کنترل های کاربر که توسط يک زبان نوشته شده اند، در صفحاتی که با زبان ديگر نوشته شده اند ، استفاده کرد . قانون فوق صرفا" محدود به کدهای نوشته شده ای است که می بايست بر روی سرويس دهنده اجراء گردنند و استفاده از اسکريپت ها بر روی سرويس گيرنده نظير آنچيزی است که تاکنون استفاده شده است .
تغيير ديگر: يک صفحه aspx می تواند دارای صرفا" يک تگ فرم Server-side بوده وپس از ارسال می بايست به صفحه يکسانی ارسال گردد. البته در اين راستا همچنان می توان از تگ های Client-Side Form نيز استفاده نمود . در چنين وضعيتی می توان آنها را برای ساير صفحات موجود ديگر نيز ارسال کرد .جدول زير امکا نا تی را که می توان بهمراه صفحات aspx استفاده کرد ، نشان می دهد .
بخش یازدهم
يک صفحه ممکن است دارای دايرکتيو باشد.. دايرکتيوها شامل خصلت های خاصی برای صفحات ، نظير زبان مورد استفاده در صفحه و يا اسمبلی هائيکه می بايست به صفحه Import گردنند، باشد .
<%@ Directive %>
از تگ های کنترلی Server-Side نيز می توان استفاده نمود.
<tag runat=server>
تعاريف کنترل شده وب ، که دارای خصلت Runat server می باشند.
<script runat=server>
عبارات نسبت دهی داده . عبارات فوق امکان بازيابی داده را از منابع داده ئی تعريف شده فراهم می نمايند.
<%# %>
نظير اسکريپت های توضيحی Client-Side می توان از توضيحات Server-Side استفاده نمود.
<%-- --%>
می توان از Server-Side Includes و render Blocks نيز استفاده نمود.
<!-- #include --> <%= %> , <% %>
تغييرات بوجود آمده در کدهای بلاکی . در ASP کلاسيک محدوديتی از بعد محل و زمان تعريف موارد نظر وجود نداشت . اما در ASP.NET ضوابطی بدين منظور وضع شده است . نمی توان توابع را درون تگ های <% %> تعريف نمود .بنابراين می بايست مطمئن گرديد که تمامی توابع و متغيرهای مورد نظر درون بلاک <SCRIPT> تعريف شده اند.
<Script runat="server" language="vb">
dim gVar as String ?Page level variable
private sub MySubRoutine()
Label1.Text = gVar
End Sub
</Script >
در ASP کلاسيک می توان از دايرکتيوهائی بمنظور مشخص نمودن زبان ، وضعيت Session State ، کد پيج و ... استفاده کرد . در صفحات aspx می توان از دايرکتيوهای جديدی بمنظور مشخص نمودن خصلت ها برای صفحه ، کنترل ها اسمبلی ها و ... استفاده نمود. در ASP کلاسيک می بايست دايرکتيوها را در ابتدای صفحه قرار داد .در ASP.NET می توان دايرکتيوها را در هر محل که مورد نظر است و به هر تعداد که ضرورت وجود دارد ، استفاده کرد. مثال فوق دايرکتيوی را نشان می دهد که زبان مورد نظر و نوع محتويات صفحه را مشخص می نمايد.
کد:
<%@ Page Language="VB" ContentType="text/xml" %>
بخش چهاردهم
تغييرات اضافی در رابطه با پيکربندی
يکی از نکات قابل تامل ASP کلاسيک ، ذخيره سازی تمامی تنظيمات مربوط به پيکربندی در ريجستری و يا متابيس های IIS است . ويژگی فوق در زمان بکارگيری يک برنامه ، باعث بروز مشکلاتی می گردد . در ASP.NET مدل فوق استفاده نشده و از مجموعه ای فايل های پيکربندی Xml استفاده می گردد. تنظيمات مربوط به يک برنامه ASP.NET ، در فايل های پيکربندی خاصی از نوع Xml ذخيره می گردنند. تمامی تنظيمات مربوطه با يک فرمت قابل خواندن در فايل های Xml ذخيره خواهند شد. دو نوع عمده از فايل های پيکربندی وجود دارد :
- فايل Machine.Config شامل تنظيمات عمومی و گسترده در رابطه با ماشين است . بنابراين در صورتيکه قصد اعمال تغييراتی را داشته باشيم که می بايست بر روی تمامی برنامه های تحت وب تاثير گذار باشد ، می توان از فايل فوق جهت نيل به خواسته های خود استفاده کرد .
- فايل Web.Config فايل فوق ، تمامی تنظيمات موجود در فايل Machine.Config را به ارث برده و در عين حال شامل ساير نتظيمات در رابطه با يک پروژه و درسطح برنامه است . مثلا" در صورتيکه بخواهيم مدل Session state را برای برنامه جاری مشخص و يا از برخی داده های خاص برای برنامه استفاده کرد ، می توان از فايل فوق استفاده نمود. دات نت از طريق اينترفيس های مربوطه امکان دستيابی به اين نوع فايل ها را بسادگی فراهم می نمايد.
بخش پانزدهم
تغييرات بوجود آمده در مديريت Session
در بخش قبل اشاره گرديد که می توان تنظيمات مربوط به مديريت Session را در فايل web.Config ذخيره کرد . در ASP.NET چه امکانات جديدتری بمنظور مديريت Session ايجاد شده است ؟ در ASP کلاسيک صزفا" می توانستيم از شی پيش فرض Session استفاده نمائيم حتی اگر آن را دوست نداشته باشيم ولی مجبور بوديم با آن زندگی نمائيم . در ASP.NET از مکانيزمهای جديدی بمنظور مديريت Session استفاده می گردد. در اين راستا می توان از InProc Session استفاده ، که دارای عملکردی مشابه شی Session در ASP کلاسيک است . با اينکه امکان فوق گزينه مظلوبی بنظر می آيد ولی همچنان مسئله Load-Balancing را برطرف نمی نمايد . در ASP کلاسيک همواره دارای مسائلی از بابت حصول اطمينان از بابت اتصال يک کاربر به سرويس دهندگان يکسانی بمنظور پشتيبانی از داده های مربوط به Session هستيم . در ASP.NET برای برطرف نمودن مسائلی اينچنين از StateServer استفاده می گردد. در اين حالت داده مربوط به Session کاربر مورد نظر در يک State Service ذخيره و قابل اجراء بر روی هر ماشين است . بنابراين می توان گفت که داده های Session متمرکز شده است . در صورتيکه StateServer با مشکل (Crashe) مواجه گردد تکليف چيست ؟ در اين حالت تمامی داده های Session از بين خواهند رفت . بمنظور حل مشکلاتی از اين نوع ، استفاده از SQLServer Session توصيه می گردد. در اين حالت داده های مربوط به Session در SQL Server ذخيره و بصورت اتوماتيک برای شما مديريت خواهند شد. در صورتيکه علاقه مند به استفاده از Session State نباشيد ، می توان آن را غير فعال نمود. در اين راستا می توان حتی مکانيزمهای تدوين شده توسط خود را نيز با آن جايگزين نمود. در صورتيکه قصد تغيير و پيکربندی session State را داشته باشيد ، می توان نقطه نظرات خود را در بخش <SessionState> مربوط به فايل Web.Config نرم افزار مورد نظر ، اعمال کرد. در رابطه با بکارگيری و ذخيره اشياء در Session state موارد متعددی وجود دارد که می بايست مورد توجه قرار گيرد. مثلا" می توان عناصر COM را صرفا" زمانی در اشياء Session state ذخيره نمود که از InProc استفاده شده است . ( عناصر فوق قابليت سريال سازی خود را ندارند) . در اين زمينه نيز می توان عناصر مديريت يافته را در هر نوع مدلی از Session State ذخيره نمود مشروط به اينکه آنها اينترفيس ISerializable را پياده سازی نموده باشند.
بخش شانزدهم
تغييرات بوجود آمده از بعد امنيتی
يکی ديگر از تغييرات اساسی در ASP.NET نسبت به ASP کلاسيک مقوله امنيت است . از آنجائيکه ASP.NET مستقل از IIS است آن بخش از مسائل مرتبط با امنيت ، مشابه ASP کلاسيک است . ASP.NET يک مدل جديد و انعطاف پذير در رابطه با امنيت ارائه نموده که بر اساس تنظيمات تعريف شده در بخش های امنيتی (Security) فايل های پيکربندی مشخص شده است . در اين راستا امکانات و گزينه های متعددی بمنظور تشخيص هويت ( اعتبار سنجی ) در رابطه با برنامه تحت وب مبتنی بر دات نت وجود دارد. مثلا" می توان از روش های اعتبار سنجی حمايت شده توسط IIS استفاده و يا می توان تصميم به استفاده از کدهای جديد بمنظور اعتبار سنجی گرفت . عموما" از چهار مدل اعتبار سنجی استفاده می گردد.اعتبار سنجی فوق بعد از اعتبار سنجی IIS صورت می پذيرد .
- Windows Authentication . اعتبارسنجی ويندوز ، بعنوان پيش فرض در نظر گرفته خواهد شد. روش فوق زمانيکه از اعتبارستجی های IIS نظير : Digest,Certificates ، استفاده می گردد ، توصيه شده است .
- Form Authentication اعتبارسنجی مبتنی بر فرم ها را بعنوان اعتبار سنجی پيش فرض برای برنامه در نظر خواهد گرفت .
- Passport Authentication. اعتبار سنجی پاسپورت را بعنوان اعتبار سنجی پيش فرض برای برنامه در نظر خواهد گرفت .
- None صرفا" کاربران گمنام (Anonymouse) قادر به استفاده از برنامه خواهند بود. در اين راستا ممکن است عمليات اعتبارسنجی توسط برنامه ها اعمال گردد.
پس از اعتبار سنجی کاربر، می بايست به کاربران مجوزهای لازم جهت دستيابی از برنامه تحت وب داده شود. مجوزهای مربوطه امکان کنترل دستيابی به منابع را فراهم خواهند نمود. در اين راستا از دو امکان File Authorization و URL Authorization می توان استفاده بعمل آورد . مجوز فايل ، بصورت اتوماتيک اعمال خواهد شد. در صورتيکه کاربر متقاضی ، دارای حق دستيابی به يک فايل و يا منبع خاص را نداشته باشد، دستيابی به صورت خودکار انکار خواهد گرديد. مجوز مبتنی بر URL امکان اعمال محدوديت به برنامه و يا آدرس های URL خاصی را فراهم می نمايد.با استفاده از ويژگی فوق می توان مجوز استفاده و يا عدم استفاده از يک برنامه به ازای کاربران را تامين نمود.
بخش هفدهم
گذر از VbScript و حرکت بسمت VB.NET
در بخش های قبل ، به برخی از تغييرات اساسی بوجود آمده در ASP.NET نسبت به ASP کلاسيک اشاره گرديد.در ASP کلاسيک برای نوشتن اسکريپت هائی که بر روی سرويس دهنده اجراء می شدند از Vbscript استفاده می گرديد ، در همين راستا تعداد اندکی از برنامه نويسان نيز از Jscript استفاده می کردند. در اين بخش به بررسی برخی از روش های گذر از Vbscript و استفاده از VB.NET اشاره شده و در ادامه تغييرات بوجود آمده بين VB 6.0 و VB.NET بررسی خواهد شد. در دات نت از زبانهای اسکريپت خبری نبوده و بالطبع استفاده از VBscript توصيه نشده است. در دات نت از VB استفاده و کدهای نوشته شده ترجمه خواهند شد. بمنظور گذز از ASP کلاسيک و سوئيچ نمودن بر روی ASP.NET ، در ابتدا می بايست انشعاب صفحات ASPنوشته شده را به aspx تبديل نمود. پس از تبديل انشعاب فايل های ASP کلاسيک ، صفحات جديد با انشعاب aspx توسط ASP.NET پردازش خواهند شد. دومين مرحله تبديل کدهای نوشته شده و موجود Vbscript به VB است . ممکن است ، اين سوال مطرح گردد که تفاوت های اساسی بين VBscript و VB چيست ؟ پاسخ به سوال فوق بسادگی ميسر نمی باشد ، چراکه در اين زمينه تغييرات عمده ای ايجاد شده است . . اولين تغيير اساسی ، پيش فرض قرار داده شدن Option Explicit است . بنابراين می بايست تمامی متغيرهای استفاده شده را با صراحت تعريف کرد. يکی ديگر از تغييرات ، عدم وجود نوع Variant است . در اين راستا می توان از نوع Object استفاده نمود. نوع فوق دارای عملکردی متفاوت نسبت به Variant است . در اين زمينه توصيه می گردد که نوع تمامی متغيرها دقيقا" مشخص شده و ملاحظات مربوط به تبديل نوع ها لحاظ و رعايت گردد. يکی ديگر از تفاوت های اساسی ، مربوط به نحوه فراخوانی توابع و متدها ئی است که پارامترهائی را بعنوان ورودی اخذ می نمايند. در اين راستا می بايست در زمان استفاده از پارامتر از پرانتز استفاده نمود. در صورتيکه متد و يا تابعی فاقد پارامتر باشد ضرورتی به استفاده از پرانتز وجود نخواهد داشت . در VB 6.0 آرگومانهائی که به يک تابع پاس داده می شوند بصورت پيش فرض از نوع مرجع می باشند (By Ref.) در صورتيکه در VB آرگومانهائی پاس داده شده از نوع مقدار (By Value) می باشند. در VB.NET ايندکس بردارها از صفر شروع می گردد.
در VB.NET استفاده از Set و Let مجاز نبوده و بنابراين لازم است که موارد فوق حذف گردد . مثلا" دستور : Set Object1=Object2 به Object1=Object2 تبديل خواهد شد.
بخش هجدهم
در VB.NET خصلت های پيش فرض وجود نداشته و می بايست با صراحت خصايص مربوط به اشياء را مشخص کرد . مثلا" دستور : Mystring as string=TextBox1 به MyString as string=TextBox.Text تبديل خواهد شد. در عبارت دوم از خصلت .Text استفاده شده است . نوع صحيح به سی و دو بيت و نوع Long به شصت و چهار بيت تبديل شده اند. در VB.NET از روش های ساختيافته تری بمنظور برخورد با خطاهای احتمالی استفاده می گردد. در اين راستا ضمن اينکه می توان کماکن از عبارت OnError استفاده کرد ، ولی مناسب تر است که از "Try-Catch Block" استفاده گردد. در VB.NET می بايست با صراحت نوع داده ها را تبديل نمود وگرنه با خطاء مواجه خواهيم شد. در اين راستا می بايست از توابع Cstr,Ctype بمنظور تبديل يک نوع صحيح به نوع رشته ای برای نوشتن پاسخ رشته ای استفاده نمود.
Response.Write ("Count=" & CStr(MyCount))
Response.Write("Count=" & CType(MyCount, String))
بخش نوزدهم
درVBScript ، بمنظور الحاق ( اتصال ) دو رشته ، الزامی جهت استفاده از فضا های خالی بين & و متفيرهای رشته ای وجود ندارد . (x = str1&str2) ولی در VB.NET می بايست حتما" از فضای خالی در اين راستا استفاده گردد. (x = str1 & str2) . گرامر عبارات Property نيز تغيير يافته است . در اين راستا Property Get ، Property Let و Prpoerty Set با يکديگر ترکيب و به يکی تبديل شده اند. GET و SET درون عبارت Property استفاده می گردند.
Public Property MyCount as Integer
Get
MyCount = InternalValue
End Get
Set
InternalValue = value
End Set
End Property
بخش بیستم
برنامه های ASPکلاسيک که از عناصر COM استفاده می نمايند.
تمامی برنامه نويسان ASP ، تاکنون در برنامه های خود از عناصر COM استفاده کرده اند . در مورد اين نوع برنامه ها چه تدابيری انديشيده شده است ؟ اغلب برنامه نويسان از اشياء متعدد COM که با اهداف خاصی طراحی شده و يا خود آنها را طراحی و پياده سازی نموده اند ، استفاده می نمايند. آيا ضرورتی به بازنويسی مجدد کدها وجود خواهد داشت ؟ در دات نت ، عناصر COM وجود نداشته و از يک پل ارتباطی بمنظور ارتباط آنها بايکديگر استفاده می گردد. COM Iterop رسالت فوق را برعهده دارد. در ابتدا لازم است مطالبی در رابطه با COM Interop عنوان شده ودر ادامه به بررسی تغييرات مبتنی بر COM در ASP.NET پرداخته گردد. COM Interop روشی را جهت فراخوانی عناصر از طريق ASP.NET فراهم می آورد. امکان فوق ، می تواند بمنزله يک خبر خوب برای برنامه نويسان ASP تلقی گردد. در اين راستا لازم است که از صفت ASPCOMPAT استفاده گردد. اگر قصد استفاده از عناصر موجود STA و يا VB را در ASP.NET داشته باشيم، می بايست از ASPCOMPAT استفاده گردد. در صورتيکه اشياء COM مورد نظر از اشياء ذاتی ASP استفاده می نمايند ، نيز می بايست از ASPCOMPACT استفاده گردد . ASP بصورت اساسی از MTA thread pool به جای STA استفاده می نمايد. بنابراين صفحاتی که از عناصر STA استفاده می نمايند ممکن است عملکرد مثبت و يا حتی منفی را داشته باشند. وضعيت فوق ارتباط مستقيم با ماهيت و رفتار عناصر COM بستگی خواهد داشت . بخاطر داشته باشيد که استفاده از ASPCOMPACT در زمان استفاده از سرويس های وب مجاز نخواهد بود.
بخش بیست و یکم
برنامه هائی که از بانک های اطلاعاتی استفاده می نمايند
تمامی برنامه نويسان ASP از بانک های اطلاعاتی در صفحات ASP خود استفاده می نمايند. در زمينه سوئيچ نمودن از ASP کلاسيک به ASP.NET سوالات متعددی در رابطه با وضعيت بانک های اطلاعاتی مطرح می گردد. چه نوع تغييراتی در کدهای مربوطه می بايست داده شود ؟ چه تغييرات عمده ای در زمينه دستيابی به بانک های اطلاعاتی در ASP کلاسيک نسبت به ASP.NET بوجود آمده است ؟ يکی از اخبار خوب در اين زمينه ، امکان استفاده از ADO در ASP.NET از طريق بخدمت گرفتن COM Interop است ، گرچه شرکت ماکروسافت راهکار فوق را توصيه نمی نمايد. بدلايل متعدد توصيه می گردد که از ADO.NET استفاده گردد. ADO.NET روشی مبتنی بر دات نت بمنظور دستيابی به داده ها در منابع داده ئی است . ADO و ADO.NET دارای تفاوت های متعددی با هم بوده و نمی توان ادعا نمود که ADO.NET کاملا" با ADO سازگار است . ADO.NET دارای سه شی اساسی است : DataSet ,DataReader و DataAdapter . شی DataSet را می توان با وضعيت RecordSet در ADO مقايسه نمود. DataSet مسدوليت ذخيره سازی داده ها در يک حافظه سريع غير متصل (Disconnected Cashe) را بر عهده دارد. ساختار DataSet مشابه يک بانک اطلاعاتی رابطه ای است . از DataReader بمنظور بازيابی داده ها از بانک اطلاعاتی بصورت فقط خواندنی و فقط بسمت جلو ( اشاره گر مربوطه ) استفاده می گردد. DataAdapter مجموعه ای از دستورات و ارتباطات به بانک اطلاعاتی را ارائه داده که از آنها بمنظور پر نمودن Dataset و بهنگام سازی داده ها در منابع داده ئی استفاده می گردد. در ADO.NET از دو Data Provider از قبل تعريف شده استفاده می گردد : SQLClient و OLEDB . در صورتيکه از سرويس دهنده SQL استفاده می گردد ، می بايست از SQLClient که بسيار سريع است ، استفاده گردد. ويژوال استوديو دات نت دارای امکانات متعدد طراحی بمنظور دستيابی به بانک های اطلاعاتی و استفاده از اشياء ADO.NET است . در اين راستا می توان اشيائی نظير: DataAdapter و DataSet را براحتی در يک فرم وب قرار داده و با پيکربندی مناسب آنها ، بسادگی زمينه بازيابی داده ها فراهم خواهد شد.
برنامه نويسان ASP ، می بايست در رابطه با تبديل کدهای نوشته شده ADO در صفحات خود و تبديل آنها به ADO.NET اتخاذ تصميم نمايند. در صورت امکان توصيه می گردد که تمامی کدهای ADO به ADO.NET تبديل شوند. در صورتيکه تحقق توصيه فوق بدلايلی غير ممکن بنظر می آيد ، می توان از يک لايه اضافی ديگر COM Interop استفاده نمود که قطعا" باعث کاهش کارائی سيستم نيز خواهد شد.
بخش بیست و سوم
استراتژهای عمومی گذر از ASP کلاسيک به ASP.NET
تبديل يک برنامه نوشته شده با ASP کلاسيک به ASP.NET کار ساده ای خواهد بود، ولی در صورتيکه برنامه پيچيده و بزرگ باشد فرآيند تبديل ، خود بمنزله يک پروژه بزرگ خواهد بود. در اين راستا لازم است که از برخی راهکارهای خاص استفاده گردد. قبل از تبديل ، می بايست بخش هائی از برنامه را که حتما" مشمول تبديلات خواهند شد ، مشخص نمود. با توجه به اين موضوع که می توان همچنان از فايل های ASP کلاسيک در کنار ASP.NET نيز استفاده کرد ، بنابراين ضرورتی نخواهد داشت که عمليات تبديل را يکباره انجام داد. نگهداری سايت موجود بمنظور ارائه خدمات مربوطه در حين فرآيند تبديل بسيار حائز اهميت بوده و نبايد بخاطر بدست آوردن يک چيز موارد ديگری را از دست داد. عدم حضور کوتاه مدت در عرصه رقابت ، ممکن است تاوان بس سنگينی را بدنبال داشته باشد که جبران نمودن آن در صورت امکان زمان و منابع متعددی را طلب نمايد. در سناريوی Multi-tier ، می توان از رويکردهای افقی و يا عمودی بمنظور اعمال تغييرات لازم استفاده نمود. در رويکرد افقی ، تمامی يک Tier به يکباره تبديل خواهد شد. مثلا" می توان تمامی عناصر COM موجود در Middle Tire را به عناصر دات نت ويا سرويس های وب تبديل نمود. در اين راستا صفحات ASP موجود در لايه Presentation آگاهی لازم را در خصوص تغييرات بوجود آمده نخواهند داشت . در ادامه می توان تمام لايه Presentation را به ASP.NET تبديل نمود. در برخی موارد تبديل تمامی يک Tier امکان پذير نخواهد بود در چنين مواردی می توان از رويکرد عمودی استفاده نمود. در رويکرد فوق بخش های مربوطه ای که می بايست تبديل گردند ، در هر Tier شناسائی می گردند . دامنه رويکرد فوق ممکن است صفحات و يا عناصر را شامل شده و عمليات تبديل آنها می بايست تواما" صورت پذيرد.
در رابطه با کدهای ADO موجود در صفحات ASP کلاسيک نيز می بايست سياست خود را مشخص نمود. در صورتيکه سرعت در دستيابی به منابع داده ئی يک فاکتور تعيين کننده است لازم است که تمامی کدها بکمک ADO.NET بازنويسی گردنند.
بخش بیست و چهارم
چگونه صفحات ASP کلاسيک و ASP.NET را می توان در کنار يکديگر استفاده نمود؟
اولا" انشعاب فايل ها در ASP کلاسيک asp و در ASP.NET بصورت . aspxاست . ثانيا" هر يک از صفحات فوق دارای تنظيمات مختص بخود و بر اساس روش های خاصی می باشند. تنظيمات ASP کلاسيک در ريجستری ذخيره شده در صورتيکه تنظيمات ASP.NET در فايل های مبتنی بر Xml ذخيره می گردد.
آيا برنامه های ASP کلاسيک و ASP.NET می توانند از داده های Session و Application بصورت اشتراکی استفاده نمايند؟
امکان به اشتراک گذاشتن داده های اشاره شده بين صفحات ASP کلاسيک و ASP.NET وجود ندارد.
فايل معادل Global.asa در ASP.NET چيست ؟
در ASP.NET از فايل Global.asax استفاده می گردد.
آيا می توان عناصر دات نت را در ASP کلاسيک و عناصر COM را در ASP.NET استفاده نمود؟
بله . در اين راستا می توان در صفحات ASP کلاسيک از CCW بمنظور فراخوانی عناصر دات نت استفاده نمود. برای استفاده از عناصر COM در صفحات ASP.NET می توان از RCW استفاده کرد .
وضعيت مجوز Anonymous در ASP.NET به چه صورت است ؟
چون ASP.NET مستقل از IIS است ، بنابراين امکان فوق همچنان در ASP کلاسيک و ASP.NET قابل استفاده خواهد بود. مجوز فوق بصورت IUSER_machinename وجود خواهد داشت .
آيا لازم است کدهای متفاوتی بمنظور اجراء بر روی مرورگرهای متفاوت نوشته گردد؟
خير . ASP.NET خروجی خود را بر اساس HTML 3.2توليده کرده که مورد حمايت تمامی مرورگرها است .
آيا می توان همچنان از ADO بهمراه ASP.NET استفاده نمود ؟
با استفاده از Interop اين امر ميسر خواهد شد. بخاطر داشته باشيم که ADO.NET بهمراه ASP.NET توصيه می گردد.
وضعيت فايل های Include به چه صورت است ؟
از فايل های فوق کماکان می توان استفاده نمود ولی توصيه می گردد اين نوع فايل ها به کتابخانه ای از کلاس ها و يا کنترل های کاربر تبد يل شوند.
آيا می توان صفحات ASP کلاسيک را از طريق صفحات ASP.NET فراخواند و يا بالعکس ؟
بلی . در اين راستا می بايست حتما" از Response.Redirect استفاده نمود. Server.Transfer و Server.Execute سازگار نبوده و در صورت استفاده از آنان بمنظور فراخوانی صفحات ديگر می بايست آنها را جايگزين Response.Redirect نمود.
آيا امکان اجرای دو برنامه که يکی بر اساس aspکلاسيک نوشته شده و ديگری بر اساس asp.net نوشته شده اند بر روی يک سرويس دهنده بدون وجود هيچگونه ريسکی وجود دارد؟
در اين راستا هيچگونه ريسکی وجود نخواهد داشت . دو برنامه کاملا" از يکديگر متمايز بوده و هيچگونه اينترفيس و يا ارتباطی با يکديگر ندارند.
آيا فراگيری asp.net بدون هيچگونه زمينه ای امکان پذير بوده و يا می بايست دارای آشنائی لازم با html و asp بود ؟
آشنائی با html قطعا" مفيد بوده و می توان مستقيما" اقدام به فراگيری asp.net نمود. در اين راستا الزامی وجود ندارد که حتما" می بايست در ابتدا asp کلاسيک را فراگرفت .
آيا برای تبديل صفحات ASP کلاسيک به ASP.NET نرم افزارهائی ( مترجم های خاص) وجود دارد؟
متاسفانه تاکنون نرم افزاری از اين نوع ارائه نشده است .
منظور از استفاده از يک زبان در هر صفحه چيست ؟
در هر صفحه از دايرکتيوهای خاصی بمنظور معرفی زبان استفاده شده در صفحه استفاده می شود. بکمک دايرکتيوهای فوق مشخص خواهد شد که زبان استفاده شده مثلا" VB و يا C# است. پس از مشخص نمودن زبان مورد نظر، تمامی کدهای نوشته شده در صفحه می بايست بر اساس زبان فوق باشند. در ASP کلاسيک امکان استفاده از VBscript و يا Jscript در يک صفحه بصورت همزمان وجود داشت .در ASP.NET با توجه به اين واقعيت که صفحات ترجمه ( کمپايل ) می گردنند، نمی توان از ترکيبی از زبانها در يک صفحه استفاده نمود. در اين راستا می بايست به اين نکنه نيز اشاره گردد که وضعيت کنترل های کاربر تا اندازه ای متفاوت است. مثلا" می توان از يک کنترل کاربر که با استفاده از C# نوشته شده است در پروژه ای که از VB استفاده می کند ، نيز استفاده نمود. کنترل های کاربر يک استثناء بوده و می توان آنها را با هر زبان نوشت و آنها را توسط هر زبان استفاده نمود.
آيا دليلی وجود دارد که صفحات ASP.NET خود را در دو فايل مستقل (aspx و Code Behind) قرار دهيم ؟ اگر هر دو امکان فوق را در يک فايل قرار داده و صفحه aspx را ايجاد نمائيم آيا به مشکل خاصی برخورد خواهيم کرد:
فرض کنيد که بخواهيم صفحات ASP.NET خود را بکمک ويژوال استوديو ايجاد نمائيم . ويژوال استوديو دات نت از مدل Code-Behind حمايت می نمايد، بنابراين می توانيم در چنين مواردی از تمامی مزايای محيط ويژوال استوديو دات نت استفاده نمائيم . اگر از زاويه و منظر کارآئی به مسئله فوق نگاهی داشته باشيم درخواهيم يافت که تفاوت هائی در اين زمينه وجود ندارد. در عمل زمانيکه صفحات aspx و Code Behind را ترکيب و در يک فايل استفاده نمائيم سهولت بيشتری را خواهيم داشت . موضوع فوق خصوصا" زمانيکه قصد تبديل صفحات ASP کلاسيک به ASP.NET را داشته باشيم ملموس و قابل تامل تر است .
آيا برای پياده سازی صفحات ASP.NET نرم افزار جديد WebMatrix توصيه می گردد؟
نرم افزار( ابزار) Web Matrix رايگان بوده و توسط گروه ASP.NET پياده سازی شده است . نرم افزار فوق امکان پياده سازی صفحات ASP.NET را بخوبی فراهم می نمايد، ولی با مسئله پياده سازی صفحات بصورت يک پروژه نگاه نمی کند. برنامه فوق در رابطه با ايجاد و يا ويرايش يک صفحه بسيا ر قدرتمند عمل می نمايد ، ولی نمی توان با استفاده از آن پروژه ای به مسئله پياده سازی صفحات نگاه نمود( برخلاف ويژوال استوديو دات نت ) . علاوه بر موارد فوق، می بايست به اين نکته نيز اشاره گردد که نرم افزار فوق بعنوان محصول رسمی شرکت مايکروسافت نبوده و صرفا" توسط گروه ASP.NET حمايت می گردد. بنابراين با توجه به نوع انتظارات و خواسته های موجود می توان از نرم افزار Web Matrix و ويژوال استوديو دات نت در جايگاه بهينه خود استفاده نمود.
منبع : srco.ir
learning1
08-21-2014, 11:25 PM
فیلم آموزش ASP.Net به زبان فارسی از مقدماتی تا پیشرفته را از لینکهای زیر دانلود کنید
http://pnu-club.com/imported/2014/08/120.gif قسمت اول (http://cld.persiangig.com/download/uTUNnQWZeb/j1_ASP.Net_Banke-maghalat.ir.rar/dl)
http://pnu-club.com/imported/2014/08/120.gif قسمت دوم
(http://cld.persiangig.com/download/DOFKay4V8G/j2_ASP.Net_Banke-maghalat.ir.rar/dl)
http://pnu-club.com/imported/2014/08/120.gif قسمت سوم (http://cld.persiangig.com/download/gKg2eYubFE/j3_ASP.Net_Banke-maghalat.ir.rar/dl)
Powered by vBulletin™ Version 4.2.2 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.