وب یکی از مهمترین و در عین حال جوانترین سرویس اینترنت است، که در مدت زمانی کوتاه توانسته است در کانون توجه تمامی استفاده کنندگان اینترنت قرار بگیرد و منشاء تحولات عمدهای در حیات بشریت باشد. در گذشته از وب صرفاً به منظور عرضه اطلاعات استفاده میگردید و کاربران از آن به عنوان کتابخانه الکترونیکی بزرگ در جهت یافتن اطلاعات مورد نیاز خود استفاده میکردند. نرم افزار و دنیای برنامه نویسی یکی از عرصههایی است که بدون شک بیشترین تأثیر را از اینترنت پذیرا بوده است. شرکتهای عظیم نرم افزاری با لحاظ نمودن جایگاه برجسته اینترنت، اقدام به ارائه تکنولوژیها و معماریهای متفاوتی در جهت طراحی و پیاده سازی برنامههای کامپیوتری با بهرهگیر از اینترنت نمودهاند. یکی از تکنولوژیهای طراحی شده در این زمینه تکنولوژی ASP.NET میباشد. در این پروژه سعی شده است که شناختی کافی در زمینه ASP.NET (.NET ، ASP و ASP.NET و ... ) بدست آمده باشد.
1- آشنایی با دات نت (.NET)
چرا به دات نت احتیاج داریم؟
«آشنایی با دات نت و بررسی مشکلاتی که حل آنها سبب تولد دات نت گردید».
به طور معمول نسلهای جدید زبان های برنامه نویسی به این دلیل متولد می شوند که زبانهای قدیمی تر دارای امکانات محدود بودند و یا قدرت استفاده از تکنولوژیهای فعلی را به صورت مطلوب و ساده ندارند. مهمترین نیازی که به عنوان آخرین تکنولوژی وجود دارد، برنامه نویسی در محیط اینترنت است. اینترنت در مدت تقریبا 8 سال جای خود را به عنوان یکی از مهمترین وسایل ارتباطی برای کارهای روزمره و تجارت باز کرده است. سیستمهای برنامه نویسی قدیمی تر امکان برنامه نویسی برای اینترنت را فراهم کرده بودند اما هر کدام دارای اشکالات بزرگی هستند، برای مثال تکنولوژی Com اولین بار در ویندوز به کار گرفته شد. در سال 1970 نیز سیستمهایی برای Unix نوشته شده بودند، جاوا نیز در اصل برای ابزارهای الکترونیکی بود و نه برای اینترنت.
سپس برای اولین بار یک سیستم جامع برای برنامه نویسی تحت اینترنت ایجاد شد. این سیستمکه .NET، نام داشت، از مراحل سطح پایین که به زبان ماشین میباشد تا بالاترین سطح که برنامه نویسی ویژوال آن می باشد، برای استفاده در اینترنت طراحی شده است البته NET فقط برای اینترنت نیست و با استفاده از آن می توان برنامه های کامل تحت Client نیز ایجاد کرد، اما بزرگترین مزیت آن در برابر سیستمهای دیگر امکانات اینترنت آن است. برای این که از مزایای استفاده از NET را بهتر متوجه بشویم بهتر است در ابتدا معایب سیستم های پیشین را ذکر کنیم.
شرکت مایکروسافت تا قبل از سال 1995 به برنامه نویسی در محیط های Client و server پرداخت، اما از ان سال به بعد توجه بیشتری به مساله برنامه نویسی در اینترنت کرد.
مایکروسافت com و +com را ایجاد کرد و آن ها را در ویژوال استودیوی 6 به کار گرفت. در سال 1999 حدود 50 درصد از بزرگترین سایتهای تجارت الکترونیکی از محصولات مایکروسافت استفاده می کردند. اما هنوز هم مشکلاتی زیادی در سیستمهای مایکروسافت وجود داشت که یکی از آنها دشواری نوشتن برنامه در اینترنت با محصولات مایکروسافت بود. شرکت مایکروسافت برای راحتی کار برنامه نویسها ASP یا Active server page را ایجاد کرد. با این که این قدم بزرگ بود و کارها را بسیار ساده کرد ولی هنوز از برنامه نویسی شی گرا پشتیبانی نمی کرد. همچنین در ویژوال استودیوی 6 قسمتی برای Internet Application ایجاد شده بود و در آن امکان ساختن web class وجود داشت ولی هیچ وقت به عنوان یک ابزار کارآمد برای برنامه نویسی وب در نظر گرفته نشد.
مدل برنامه نویسی DNA
مایکروسافت یک مدل برنامه نویسی به نام Distributed internet Application دارد که برپایه برنامه نویسی n-tier و com بنا نهاده شده است. مدل DNA از سه بخش اساسی تشکیل شده است:
1-بخش اول به نام Presentation tire معروف است. در این بخش رابط تصویری کاربر وجود دارد و خود نیز به دو نوع Internet Browser و will 32 GUI تقسیم میشود که هر کدام مشکلات خاص خود را دارند. در مدلی که از win 32 GUI یا همان نرم افزارهای معمولی استفاده میشود دو مشکل بزرگ وجود داشت: دشواری بروز رسانی نرم افزار و دیگری DllHell که در ادامه توضیح داده خواهد شد. در نوع دوم مشکلاتی از این قبیل نبود. امکانات برنامه نویسی کافی در محیط مرورگر، نبود رابط قوی کاربر، نبودن مرورگرهای یکسان و … وجود دارد. همچنین همیشه یک اتصال به اینترنت یا اینترانت لازم است. در این نوع از برنامه نویسی می توان از Java Appletها یا Activex استفاده کرد ولی مرورگر باید امکان استفاده از آن را داشته باشد، مخصوصا هنگام استفاده از Activex که باید فقط از IE استفاده کرد.
2-بخش دوم که Middle tier نام دارد، مکانی است که اطلاعات و قوانین تجاری در آن وجود دارد، منظور از قوانین، متدها و اجزائی هستند که اعمال کاربران را کنترل می کنند. مهمترین و آسان ترین زبان برای نوشتن این اجزا از DNA ویژوال بیسیک است. برنامه نویسی که بخواهد در این رده برنامه بنویسد باید آشنایی کاملی با com و پروتکل های رایج داشته، همچنین باید مهارت کافی در استفاده از ADO و ADSL داشته باشد.
مشخص که یک اشتباه در این لایه باعث بروز خطا و نقص در کل سیستم میشود.
3-بخش سوم یا Data tier مکانی است که اطلاعات سازمان در آن ذخیره میشود معمولا در این قسمت از بانکهای اطلاعاتی پیشرفته رابطهای مانند SQL server و Oracle استفاده می کنند.
محدودیتهای Com
همان طور که دیدید مهمترین قسمت در DNA همان Com است که در جای جای آن استفاده می شود. که در این جا برخی معایب com را ذکر می کنیم:
DLL Hell: اگر کوچکترین تغییری در یک com ایجاد شود، دیگر برنامههایی که از ورژن قبلی استفاده می کردند قادر به فعال ساختن نسخه جدید نیستند. هنگامی که در ویندوز، یک com نصب شود برایش در رجیستر یک GUID ثبت میشود که اطلاعات آن com را در خود ذخیره می کند. اگر یک برنامه از نسخه اول یک com استفاده کند و بعد از مدتی شما تغییراتی در نسخه اول بدهید و بخواهید آن را دوباره در سیستم نصب کنید ویندوز به شما پیغام خطا میدهد چون ورژن آن تکرار است، اگر هم آن را به ورژن دوم ارتقاء دهید. نرم افزار قبلی هنوز به دنبال نسخه اول میگردد، این امر باعث میشود که شما مجبور شوید یکبار دیگر کل برنامه را کامپایل کرده و در کامپیوترتان نصب کنید.
کمبود در وراثت: در نسخه های Com که در حال حاضر هستند چیزی به نام وراثتی که در C++ وجود دارد نمیباشد، بلکه وراثت تنها در واسط یک Com میباشد، استفاده از آن هم چندان کمکی به برنامه نویسی نمیکند. حل این مشکلات باعث تولد .NET گردید.
دات نت برای شروع
از زمان معرفی دات نت توسط مایکروسافت در تابستان 2000، تعداد زیادی از علاقمندان به دنیای گسترده کامپیوتر خصوصا طراحی و پیاده سازی نرم افزار، همواره به این سئوال مواجه بودند که دات نت چیست و استفاده از آن چه دستاوردهایی را برای استفاده کنندگان به دنبال خواهد داشت؟ دات نت، پلات فرم مایکروسافت برای سرویس های وب Xml است.
به منظور شناخت تمامی ابعاد دات نت لازم است به موارد زیر توجه گردد:
• دات نت پلات فرمی جدید به منظور پیاده سازی و به کارگیری برنامههای مدیریت یافته، شیگرا و پیشرفته است.
• به منظور پیاده سازی برنامه های دات نت می توان از زبان های برنامه نویسی متفاوتی استفاده کرد (کد تولید شده توسط کامپایلر، Runtim دات نت خواهد بود).
• دات نت، کتابخانه کلاس گسترده ای را ارائه مینماید.
• دات نت، روشی جدید به منظور پیاده سازی برنامه تحت ویندوز (Desktop Application) را با استفاده از کلاس های فرم ویندوز، ارائه می نماید.
• دات نت، امکان تشریح خودکار عناصر نرم افزاری را ارائه و حمایت مینماید.
• دات نت، امکاناتی نظیر: ارتباط بین زبانها، عناصر مستقل از زبان برنامه نویسی با قابلیت استفاده مجدد و توارث در بین زبانها را ارائه مینماید.
• دات نت، روش جدیدی برای پیاده سازی برنامه های مبتنی بر مرورگر (برنامههای وب) را با استفاده از کلاسهای ASP. NET ارائه مینماید.
• کلاسهای ADO.NET مربوط به دات نت، یک معماری جدید غیر متصل برای دستیابی به داده از طریق اینترنت را ارائه می نمایند.
• دات نت، امکان ایجاد سرویس های وب XML مستقل از پلات فرم را با استفاده از استانداردهایی نظیر : SOAP و WSDL ارائه می نماید.
• دات نت، یک معماری جدید برای پیاده سازی و به کارگیری اشیاء راه دور را ارائه می نماید.
• دات نت، تکنولوژی های متعددی از ویندوز را حمایت می نماید.
پیاده سازی در دات نت
برای پیاده کنندگان نرم افزار تحت ویندوز، دات نت امکانات متعددی را از ویژوال C++ تا ویژوال بیسیک ارائه مینماید. دات نت، مستقل از نوع زبان برنامه نویسی بوده و در این راستا کامپایلرهای متعددی برای چنین زبان طراحی و پیاده سازی شده و تمهیدات لازم در خصوص طراحی و پیاده سازی کامپایلرهای دیگر نیز انجام شده است. در حال حاضر از زبانهای Jscript و Visual Basic.NET و C# و Eiffel و Python و Per1 و CoBol و .NET و APL میتوان استفاده کرد. دات نت از زبانهای فوق مستقیما حمایت نمینماید. در حقیقت دات نت صرفا قادر به درک یک زبان بیشتر نیست. زبان فوق IL (Microsoft Intermediate Language) نامیده میشود.
پلات فرم مستقل از زبان
از کامپایلر اختصاصی هر زبان، به منظور ترجمه کدهای نوشته شده به IL، استفاده میگردد. خروجی فرآیند ترجمه، شامل IL و متادیتا است. IL، را می توان به منزله یک زبان اسمبلی برای یک پردازنده مجازی Stack – based دات نت تصور نمود. از این زاویه عملکرد IL مشابه کدهای P در نسخههای اولیه ویژوال بیسیک و یا بایت کدهای منتشر شده توسط یک کامپایلر جاوا، است. IL، برای یک زبان خاص طراحی نشده است. به عبارتی IL، نوعهای متداول به اشتراک گذاشته شده را که توسط تمامی زبانهای دات نت، استفاده میگردد، را پردازش مینماید. نوع سیستم فوق (Common Type System) CTS نامیده میشود. یک نوع دات نت، چیزی به مراتب بیشتر از یک نوع داده است. نوع های دات نت،عموما توسط کلاس هایی شامل کد و اعضا داده تعریف میگردند. در زمان اجراء (Common Language Runtime) C LR مسئولیت استقرار یک برنامه دات نت در حافظه و اجرای آن را بر عهده خواهد داشت. به منظور نیل به هدف فوق، CLR از تکنیکی به نام (Just-In-Time) JIT به منظور ترجمه IL به کد مختص و وابسته به یک ماشین استفاده مینماید. کد دات نت، همواره ترجمه و هرگز تفسیر نمی گردد، بنابراین دات نت از یک ماشین مجازی به منظور اجرا برنامه استفاده نکرده و در مقابل کد IL برای هر متد براساس کامپایلر JIT در اولین فراخوانی ترجمه خواهد شد. در مرتبه بعد که یک متد صدا زده میشود، کد ترجمه شده توسط JIT، اجرا خواهد شد.