وب یکی از مهمترین و در عین حال جوانترین سرویس اینترنت است، که در مدت زمانی کوتاه توانسته است در کانون توجه تمامی استفاده کنندگان اینترنت قرار بگیرد و منشاء تحولات عمدهای در حیات بشریت باشد.
در گذشته از وب صرفاً به منظور عرضه اطلاعات استفاده میگردید و کاربران از آن به عنوان کتابخانه الکترونیکی بزرگ در جهت یافتن اطلاعات مورد نیاز خود استفاده میکردند.
نرم افزار و دنیای برنامه نویسی یکی از عرصههایی است که بدون شک بیشترین تأثیر را از اینترنت پذیرا بوده است.
شرکتهای عظیم نرم افزاری با لحاظ نمودن جایگاه برجسته اینترنت، اقدام به ارائه تکنولوژیها و معماریهای متفاوتی در جهت طراحی و پیاده سازی برنامههای کامپیوتری با بهرهگیر از اینترنت نمودهاند.
یکی از تکنولوژیهای طراحی شده در این زمینه تکنولوژی 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، اجرا خواهد شد.
JIT compiler CLR Native code (Managed) ماحصل فرآیند ترجمه، تولید یک فایل اجرایی ویندوز با فرمت (Executable Portable) PE است.
در رابطه با فایل فوق ذکر دو نکته ضروری است: اول این که ، CLR از زبان استفاده شده برای تولید برنامه و یا عنصر مورد نظر آگاهی نداشته و صرفا به کدهای IL توجه خواهد داشت.
ثانیا، در تئوری استفاده از کامپایلر JIT تمام عملیات مورد نیاز به منظور استفاده از پتانسیلهای دات نت است.
دات نت و کد مدیریت یافته (اداره شده) نحوه اجرائ برنامه های دات نت تابع مدلی است که در شکل قبل، نشان داده شده است.
کد تولید شده که مقصد آن CLR فریمورک دات نت باشد را برنامه های مدیریت یافته (applications managed) میگویند.
در مقابل، برنامههای ویندوز غیر از دات نت با نام برنامه های غیر مدیریت یافته (applications unmanaged) از آنان یاد میگردد.
CLR، علاوه بر این که امکان ترجمه کدهای IL را به کد مختص یک ماشین فراهم مینماید، عملیات مدیریتی لازم در خصوص برنامهها را نیز انجام خواهد داد.
استقرار یک برنامه در حافظه، بررسی صحت کد، حفاظت برنامهها از یکدیگر، تاکید بر مسائل امنیتی، ارائه سرویسهای اشکال زدایی، نمونههایی از خدمات ارائه شده توسط CLR میباشند.
مدیریت کد توسط CLR، یک لایه اضافه را ارائه و باعث جدا سازی برنامهها از سیستم عامل میگردد.
در گذشته سرویس های ارائه شده توسط لایه فوق در خود برنامه و با استفاده از امکانات ارائه شده سیستم عامل ارائه میگردید.
متادیتا و ضرورت انتشار و همراهی آن با کد IL یکی از جنبههای کلیدی دات نت است.
برای افرادی که با Com و CORBA آشنایی دارند، متادیتا به منزله شکل خاصی از یک (Language Interface Definition) IDL بوده که به صورت اتوماتیک توسط کامپایلر زبان مربوطه تولید میگردد.
متادیتا مسئول تشریح نوعها، شامل فیلدهای مربوطه، خصلتها، امضاء (تایید) متد بوده و عملیات حمایتی لازم را در این خصوص ارائه می نماید.
با تولید اتوماتیک این داده در زمان ترجمه، عناصر دات نت به صورت خود تشریح شده و نیازمند سایر اطلاعات مورد نیاز برای استفاده از عناصر دات نت نوشته شده با زبان های برنامه نویسی متفاوت به منظور ارتباط بین آنها وجود نخواهد داشت.
پلات فرم در مقابل زبان برنامه نویسی IL، یک زبان اسمبلی عمومی در مقایسه با زبان های اسمبلی نظیر 8080 و یا 6809 نیست.
IL، شامل مجموعه ای از دستورالعملها و یک بردار از ویژگیهایی است که به منظور حمایت از عملیات ضروری و خصایص تعداد زیادی از برنامههای پیشرفته و شیگرا طراحی شده است.
تاکید دات نت بر بودن به عنوان یک سیستم شی متداول در مقابل یک زبان برنامه نویسی خاص است.
CLR، مستقیما ویژگی های زیادی را که عموما به عنوان خصایص مربوط به زبان های برنامه نویسی مطرح میگردد، حمایت می نماید.
این موضوع شامل یک سیستم نوع زبانهای طبیعی برای حمایت از کلاسها، توارث، نسبت دهی پویا، مدیریت حافظه، جمع آوری زائدههای حافظه، بررسی و برخورد با موارد غیر قابل پیش بینی و سایر موارد مرتبط است.
به منظور تسهیل در ارتباط بین زبانها، دات نت مشخصه استانداردی را برای زبانها، تعیین نموده است.
(Common Language Specification): CLS استاندارد فوق، مجموعه قوانین لازم در ارتباط با امکاناتی نظیر: نوعهای اساسی، محدودههای بردار، نوعهای مرجع، اعضاء، خصلتها، رویدادها و سایر موارد دیگر را تعریف مینماید.
عناصر و کتابخانههایی که استانداردهای فوق را رعایت و به آنها پایبند باشند به عنوان یک زبان سازگار با CLS شناخته خواهند شد.
توارث در بین زبان ها، چالش خاصی را در زمان فراخوانی کد سازگار با CLS ایجاد نخواهد کرد.
در این راستا می توان، یک کلاس پایه را با استفاده از ویژوال بیسیک دات نت ایجاد کرد که از یک کلاس C# ، مشتق شده باشد.
ویژگی فوق (ارتباط بین زبانها)، یکی از مهمترین پتانسیلهای دات نت محسوب میگردد.
معرفی کتابخانه کلاس فریمورک دات نت در اوایلی که ویندوز پیاده سازی گردیده بود، برنامه ها عموما با زبان c کد و از طریق توابع API مبتنی بر c با سیستم عامل مرتبط و از خدمات مربوطه استفاده مینمودند.
این موضوع در حقیقت بدین علت است که بخش عمده ای از ویندوز خود با زبان c نوشته شده است.
پس از طی سالیانی، رویکرد فوق بر روی استفاده از اینترفیسهای مبتنی بر Com انعطاف پذیر، تمرکز و امکان استفاده از آنان (فراخوانی) توسط برنامههای مبتنی بر c و سایر برنامههای نوشته شده توسط زبان های اسکریپت، فراهم گردید.
دات نت ، رویکردهای فوق را با یک کتابخانه کلاس فریمورک مستقل از زبان جایگزین نموده است.
در فریمورک دات نت، هر چیز به منزله یک شی در نظر گرفته میشود.
از یک بردار ساده در C# و یا ویژوال بیسیک دات نت (System.
Arrag) گرفته تا یک دایرکتوری مربوط به سیستم فایل (System.
Io.Directory) و یا جمع کننده اطلاعات زائد در حافظه (system.Gc).
همان گونه که قبلا اشاره گردید، کلاسهای فریمورک دات نت براساس عملکرد و منطق مربوطه گروهبندی و در مجموعهای از namespace ها سازماندهی شدهاند.
در این راستا بیش از یکصد namespace به همراه دات نت ارائه شده است.
که برخی از آنها شامل دهها کلاس میباشند.
ذکر تمامی name space ها به همراه کلاسهای موجود در آنان، کار مشکلی بوده و امکان آن از حوصله این بحث خارج است.
برنامه نویسی کلاسهای فریمورک دات نت NameSpace، روش مناسبی به منظور تقسیم منطقی گروههایی از کلاسهای مرتبط با یکدیگر است.
کلاس ها خود به صورت فیزیکی در فایلهای DLL قرار گرفته و به همراه فریمورک دات نت، ارائه شده اند.
فایلهای DLL در دایرکتوری فوق قرار دارند: C:\WINNT\Microsoft.NET\Frame work\ در صورتی که یک برنامه از کلاسهای موجود در سایر DLLها، استفاده نماید، میبایست در زمان ترجمه، برنامه به DLL مربوطه مراجعه نماید.
یک DLL ممکن است شامل کلاسهایی از چنین namespace متفاوت بوده در حالی که کلاسهایی از namespaceهای مشابه ممکن است، به صورت فیزیکی در بین چندین فایل DLL توزیع شده باشند.
شکل فوق نحوه استقرار فریمورک به همراه مدل پیاده سازی دات نت را نشان می دهد.
متادیتا از کتابخانه کلاس فریمورک دات نت به سمت کامپایلر C# حرکت مینماید.
کامپایلر از متادیتا به منظور ترجمه مراجعات به نوعها در زمان ترجمه، استفاده خواهد کرد.
همانگونه که در شکل فوق مشاهده میگردد، CLR عملیات Pulling را در رابطه با IL و متادیتا برای هم برنامه و هم کلاسهای فریمورک استفاده شده، انجام خواهد داد.
جایگاه ASP و ADO در دات نت این تکنولوژی ها (ASP و ADO) به عنوان کتابخانه کلاس پیاده سازی شدهاند.
مثلا System.
Data و System.
Data.
Sqlclient و System.Data.Sqltypes انواع متفاوتی از namespaceهای موجود بوده و به عنوان بخشی از زیر سیستم جدید ADO.NET مطرح میباشند.
در مقابل System.web و System.web.UI و چندنین namespace دیگر بخشی از زیر سیستم جدید ASP.NET را تشکیل می دهند.
در روشی مشابه، فریمورک دات نت، امکانات لازم در خصوص طراحی و پیاده سازی رابط کاربر برنامههای ویندوز را از طریق کلاسهای فرم ویندوز System.windows.forms، ارائه می نماید.
دات نت، امکانات مناسب و یکپارچهای را به منظور پیاده سازی برنامه های مبتنی بر وب ویندوز ارائه و فصل جدیدی را در عرصه طراحی و پیاده سازی نرم افزار خصوصا برنامههای توزیع شده، ایجاد نموده است.
مبانی دات نت اینترفیس های کاربر و برنامه در بالاترین لایه، دات نت روشهایی را به منظور تفسیر و مدیریت رابطهای کاربر فرم های ویندوز، فرمهای وب، برنامه های کنسول و اینترفیس مورد نیاز عناصر از راه دور (سرویس های وب) ارائه مینماید.
اینترفیسهای کاربر: فرم های ویندوز فرم های ویندوز (به آنان winforms هم میگویند) روشی پیشرفته و یکپارچه به منظور ایجاد برنامههای Desktop استاندارد سی و دو بیتی را ارائه مینمایند.
تمامی زبانهای سازگار با دات نت، قادر به استفاده از پتانسیل فرمهای ویندوز در مقابل روشهایی که در حال حاضر استفاده مینمایند، خواهد بود.
فرمهای ویندوز، مجموعهای قدرتمند ویکپارچه ازکنترلها و توابع عملیاتی را برای تمامی زبان ها ارائه و به عنوان بخشی از کلاسهای فریمورک در name space با نام system winforms، ارائه شده است.
بدین ترتیب امکان استفاده از فرمهای ویندوز توسط تمامی زبانهای مبتنی بر دات نت وجود خواهد داشت.
اینترفیس کاربر : فرم های وب فرمهای وب، یکی از بخشهای مهم ASP.NET محسوب و رابط کاربر مبتنی بر یک مرورگر وب را ارائه مینمایند.
فرمهای وب، نسل جدیدی از پیاده سازی اینترفیسهای مبتنی بر وب را ارائه مینمایند.
فرمهای وب شامل دو بخش مجزا میباشند: یک تمپلیت که شامل اطلاعات لی اوت مبتنی بر HTML برای تمامی عناصر رابط کاربر و بخش دوم که شامل تمامی منطق لازم برای ارتباط با رابط کاربر است.
بدین ترتیب، اطلاعات مربوط به کنترلها به همراه خصایص و لیاوت مربوطه در یک بخش و کدهای مربوطه در بخش دیگر مستقر خواهند شد.
کدهای نوشته شده رفتار کنترلها را نظارت و در صورت بروز یک رویداد، روتینهای مربوطه فعال خواهند شد.
فرمهای وب دارای امکانات متعددی میباشند.
کنترلهای موجود بر روی فرمهای وب بر روی سرویس دهنده اجراء ولی حضور آنان به منزله سرویس گیرنده خواهد بود.
بدین ترتیب امکانات و شرایط مطلوبی برای ایجاد اینترفیسهای قدرتمند فراهم که شباهت زیادی به اینترفیسهای win32 استفاده شده در برنامه های Desktop خواهند داشت.
اینترفیسهای وب، دارای هوشمندی لازم به منظور ارتباط با مرورگرهای متفاوت میباشند.
امکان استفاده از فرم های وب، برای تمامی زبانهای سازگار با دات نت وجود خواهد داشت.
این بدان معنی است که میتوان کدهای لازم برای ارتباط با بخش ویژوال یک فرم را با استفاده از هر یک از زبانهای حمایت شده نوشت.
بدین ترتیب، امکان طراحی و پیاده سازی اینترفیسهای وب انعطاف پذیری فراهم که میتوان از آنان در مجموعه گستردهای از زبانها، استفاده به عمل آورد.
کنترلهای سرویس دهنده پیاده کنندگان ویژوال بیسیک با ایده کنترلها، آشنایی لازم را دارند.
کنترلها، عناصر رابط کاربر با قابلیت استفاده مجددی میباشند که به منظور ایجاد یک فرم از آنان استفاده میگردد.
این نوع کنترلها در فرمهای وب، کنترلهای سمت سرویس دهنده، نامیده میشود.
کنترلهای سمت سرویس دهنده، در حقیقت یک پروکسی را بر روی سرویس دهنده برای یک عنصر رابط کاربر که بر روی یک فرم وب و یا یک صفحه ASP است، ایجاد مینمایند.
کنترلهای سمت سرویس دهنده، با منطق محلی در صورت ضرورت ارتباط و در ادامه هوشمندانه رابط کاربر خود را به عنوان HTML تفسیر و در صورت ضرورت خروجی مورد نظر را برای هر صفحه حاوی کنترلهای سمت سرویس دهنده، ارسال مینمایند.
یکی از مهمترین ویژگی های مهم و در عین حال جالب کنترلهای سمت سرویس دهنده، توانایی آنان در ارتباط با مدیریت وضعیت خود است.
به منظور مدیریت وضعیت یک صفحه، ضرورتی به نوشتن کدهای خاصی در ASP.NET وجود نخواهد داشت.
اینترفیس کاربر : برنامههای کنسول با این که مایکروسافت بر نوشتن برنامههای مبتنی بر کاراکتر، تاکید خاصی نمینماید، ولی به همراه فریمورک دات نت امکانات لازم به منظور طراحی و پیاده سازی این نوع برنامهها پیش بینی شده است (اینترفیس لازم).
همانند فرمهای وب و ویندوز، اینترفیس کنسول برای تمامی زبانهای سازگار با دات نت در دسترس خواهد بود.
نوشتن برنامه های مبتنی بر کاراکتر در نسخه قبلی ویژوال بیسیک، دارای چالشهای خاص خود بود.
با استفاده از پتانسیلهای ارائه شده همراه دات نت میتوان برنامه های کنسول واقعی را پیاده سازی نمود.
اینترفیس های برنامه : سرویس های وب طراحی و پیاده سازی برنامههای کامپیوتر، به سمت نسل جدیدی از برنامههای غیر متمرکز در حال تغییر و تحول است.
در سالیان گذشته، اغلب برنامهها سرویسهای اساسی و مورد نیاز خود را از طریق سیستم عامل مربوطه، دریافت میکردند (نظیر سیستم فایل).
در ادامه، قابلیت استفاده از توان و پتانسیل موجود در هر نرم افزار برای سایر نرم افزارها فراهم و بدین ترتیب امکان بهره گیری و ارتباط با عناصر نوشته شده فراهم گردید.
تمامی تلاشهای انجام شده بر این واقعیت استوار بود که با به کارگیری پتانسیلهای ارائه شده، توان عملیاتی یک نرم افزار افزایش یابد و کمتر به نیاز فوق به صورت بنیادی و ریشهای نگاه میگردید.
در این رابطه میبایست فونداسیون لازم به منظور ارتباط بین برنامهها فراهم و تمامی برنامهها با اتکاء به زیرساخت ایجاد شده از خدمات یکدیگر در جهت ارائه بهینه خدمات خود استفاده نمایند.
سرویسهای وب، رویکرد جدیدی در این زمینه میباشند.
در سرویس وب، قابلیتهای نرم افزار به عنوان یک سرویس عرضه میشود.
با استفاده از سرویس های وب، طراحان و پیاده کنندگان میتوانند با ترکیب و به کارگیری منابع محلی و از راه دور، یک سیستم توزیعی و پیوسته را ایجاد نمایند.
در دات نت، سرویس های وب به عنوان بخشی از ASP.NET پیاده سازی میگردند.
(ASP.NET، مسئول ارائه تمامی اینترفیس های وب است).
بدین ترتیب امکان گفتگوی برنامهها با یکدیگر و از طریق وب فراهم میگردد.
(استفاده از SOAP) سرویسهای وب، گزینهای مناسب برای جایگزین شدن با برخی از پکیجهای نرم افزاری خواهند بود.
اهمیت XML در دات نت اکثر پتانسیل های ارائه شده به منظور ارتباط بین هر یک از اجزاء دات نت، با استفاده از Xml میسر می گردد.
مثلا سرویس های وب، کاملا وابسته به Xml برای ارتباط با اشیاء از راه دور می باشند.
ADO.NET ارتباط تنگاتنگی با Xml برای ارائه راه دور داده دارد.
با استفاده از Xml در حوزه های متفاوتی از دات نت، امکان ارتباط و یکپارچگی بین عناصر مورد نظر چندین برابر میگردد.
Xml در دات نت دارای جایگاهی خاص و مهم بوده و می توان آن را به منزله پتانسیلی در نظر گرفت که تمامی عناصر مورد نظر را به یکدیگر مرتبط مینماید.
اهداف دات نت 1-طراحی برنامه های اینترنتی بر سبک برنامه های : Win32GUI همان طور که اشاره شد برنامه نویسی برای win32GUI از قدرت خوبی برخوردار است، در NET.
برنامههای اینترنتی نیز از همین قدرت برخوردارند.
2-داشتن رابط گرافیکی خوب اینترنتی: به علت تغییرات اساسی که در برنامه این سیستم داده شده برنامه اینترنتی قابلیت گرافیکی در حد برنامه های win32GUI دارند.
3-انتقال ساده به سیستمهای دیگر: در .NET به راحتی میتوان برنامهها را با یک کپی ساده به کامپیوترهای دیگر انتقال داد.
4-پشتیبانی از زبانهای مختلف: در .NET به زبان های برنامه نویسی مایکروسافت مثل ویژوال بیسیک، سیشاپ (C#) و یا ++C محدود نیستیم به طوری که در حال حاضر نسخههای cobol.NET و Pascal.NET در حال ساخته شدن است.
اما شرکت مایکروسافت زبان ویژوال بیسک را به عنوان زبان اصلی برگزیده است.
این مساله ریشه در تاریخ مایکروسافت دارد.
5-Plat formهای آینده: هم اکنون NET.
برای ویندوز نوشته شده است ولی در آینده نزدیک نسخههای Unix و Linux و همچنین برای Mobile و PDA نیز ارائه خواهد شد.
این امر این امکان را میدهد که برنامهای که برای ویندوز در .NET نوشتهاید در تمامی سیستم عاملها و دستگاههای بالا قابل اجرا باشد.
6-ساختار .NET: مهمترین ویژگی در .NET frame work این است که تمام لایههای برنامه نویسی را در بالای سیستم عامل در بر میگیرد.
که این شامل تمامی تکنولوژیهای موجود که از طرف مایکروسافت یا شرکتهای دیگر ارائه شده است، میشود در NET.
تمام اعمال تخصیص حافظه و سازماندهی فایل بر عهده.NET frame work است و همین اصل باعث میشود که بتوان برنامههایی نوشت که به سیستم عامل متکی نباشد.
7-CLR زیر ساختار .NET: قلب .NET framwork.
همان CLR یا (common language Runtime) میباشد.
CLR، مسئول اجرای فایلها، فراخوانی آنها به حافظه و کامپایل کردن آنها به زبان MSIL یا (Microsoft Intermediate) است.
بعدا کدهای IL در هنگام اجرا، به وسیله برنامه کامپایلر Just-in-time به زبان ماشین تبدیل میشود.
این بدین معنی است که در NET.
دو مرحله برای کامپایل شدن وجود دارد: اولین مرحله وقتی است که برنامه به هر زبان .NET باشد به IL کامپایل میشود که این کد کامپایل شده به IL قابلیت پخش در تمام .NET Frame work را دارد و بستگی به سیستم عامل ندارد.
مرحله دوم زمان اجرا است که کامپایلر Just-in-time کد IL را به زبان آن ماشینی که برنامه در آن میخواهد اجرا شود کامپایل میکند.
CLR عهده دار برنامه نویسی شیگرا در سطح زبانهای .NET است.
8-کلاسهای پایه در .NET Framework: این لایه شامل تمامی کلاسها و آبجکتهایی است که معمولا مورد نیاز برنامه نویسان میباشد.
از جمله ADO.NET که نسل جدید ADO است، Xml که قسمت زیادی از .NET از این تکنولوژی استفاده میکند.
مروری بر ساختار برنامههای NET هر برنامهای که بر مبنای NET.
تعریف می شود از سه قسمت مهم و اصلی تشکیل شده است: اسمبلی ها (Assemblies) ، ماژول ها (Modules) ، تایپها (Type).
اسمبلیها اصلی ترین جزء برای انتقال برنامههای NET.
هستند.
ماژولها فایلهایی هستند که اسمبلی از روی آنها ساخته میشوند و تایپها، واحدهای پایه برای تعریف داده ها، Property ها و توابع هستند.
مفاهیم اولیه برنامه نویسی در دات نت دات نت محیطی جدید به منظور طراحی، پیاده سازی و اجرای برنامههای کامپیوتری را در اختیار طراحان و پیاده کنندگان نرم افزار قرار میدهد.
با استفاده از پلات فرم فوق، میتوان به سرعت اقدام به پیاده سازی نرم افزار نمود.
برنامه های تولید شده امکان استفاده از پتانسیلهای محیط CLR را خواهند داشت.
نوشتن یک برنامه در فریمورک دات نت تمامی زبانهای حمایت شده در دات نت، از سیستم نوع یکسان، کتابخانه کلاس فریمورک مشابه و CLR استفاده خواهند کرد.
بدین ترتیب، تمامی برنامههای نوشته شده با یکی از زبان های حمایت شده، خصایص مشابهی را به اشتراک میگذارند.
شاید مهمترین تفاوت قابل توجه در رابطه با زبانهای برنامه نویسی حمایت شده در دات نت، به گرامر هر یک از آنها بر گردد.
برای نوشتن یک برنامه ساده در دات نت، مراحل زیر را دنبال مینماییم: فاز اول: ایجاد برنامه فاز دوم: ترجمه و ایجاد یک فایل اجرایی در ادامه امکان اجرای برنامه فراهم میگردد.
استفاده از Namespace مراجعه به Namespaceهای مورد نیاز در یک برنامه روشی مناسبتر جهت مراجعه به کلاسها و استفاده از آنان میباشد.
با استفاده از Namespace، ضرورتی به توصیف تمامی مراجعات به کتابخانه کلاس، وجود نخواهد داشت.
تعریف name space و کلاس VB.NET، امکانات حمایتی لازم در خصوص ایجاد NameSpace های خاص و کلاسهای مربوط به آن را ارائه مینماید.
برخی از ویژگیهای Name Space 1-namespace می تواند درون سایر name space ها، مستقر گردند.
2-یک namespace می تواند در چندین فایل تعریف گردد.
3-یک فایل حاوی کد مبداء میتواند چندین namespace را تعریف نماید.
نقاط ورود در دات نت هر برنامه اجرائی میبایست شامل یک نقطه ورود خارجی باشد.
مکان فوق، محلی را که برنامه اجرای خود را از آن جا آغاز مینماید.
نقطه ورود، میبایست به عنوان یک متد عمومی که main نامیده میشود، در نظر گرفته میشود.
در یک کلاس، متد فوق میبایست به صورت اشتراکی تعریف گردد.
ترجمه و اجراء یک برنامه فریمورک دات نت اکثر جنبههای برنامه نویس در دات نت برای تمامی زبانهای سازگار، یکسان است.
هر کمپایلر حمایت شده باعث تولید کدهای خود تشریح MSIL میگردد.
تمامی کدهای مدیریت یافته با استفاده از CLR اجراء خواهند شد.
CLR امکان یکپارچگی بین برنامهها، مدیریت اتوماتیک حافظه، برخورد یکدست با موارد خاص و استثناء، امنیت پیشرفته و در نهایت یک مدل برنامه نویسی ساده و همگن را ارائه مینماید.
در فریمورک دات نت، CLR زیر ساخت لازم برای یک محیط اجراء مدیریت یافته را فراهم مینماید.
در زمان پیاده سازی یک برنامه در فریمورک دات نت، برنامه مورد نظر می تواند با استفاده از هر یک از زبان های سازگار با CLR، نوشته گردد.
کمپایلر استفاده شده، کدها را به مقصد CLR ، ترجمه مینماید.
پس از فرایند ترجمه کد نوشته شده، یک ماژول مدیریت یافته ایجاد خواهد شد.
ماژول فوق در فایلی که (Portable Executable)PE، نامیده میشود، قرار گرفته و شامل اطلاعات زیر خواهد بود: (MicroSoft Intermediate Language) MSIL : کمپایلر کد نوشته شده را به MSIL ترجمه مینماید.
کد فوق، مجموعهای از دستورالعملهای مستقل از نوع پردازنده بوده و در ادامه با توجه به نوع پردازشگر به کدهای مختص ماشین تبدیل میگردند.
2-Type MetaData : اطلاعات فوق، نوعها، اعضا و سایر مراجع استفاده شده توسط CLR در زمان اجرا را به طور کامل تشریح خواهد کرد.
3-مجموعه ای از سایر منابع: منابع فوق، شامل موارد متعددی نظیر فایلهای JPG و یا BMP میباشند.
کمپایلر یک ماژول اجرایی را تولید که یک اسمبلی خواهد بود.
اسمبلیها بخش ضروری و اساسی برنامه نویسی در فریمورک دات نت بوده و CLR از آن به عنوان واحدهای پایه و به منظور اشتراک، به کارگیری امنیت و ورژنهای متفاوت، استفاده مینماید.
CLR دات نت، صرفا کدهای MSIL را که در یک اسمبلی موجود میباشند، اجرا خواهد کرد.
کد اجرایی در زمان اجرای یک برنامه مدیریت یافته، لود در سیستم عامل، CLR را در حافظه مستقر و در ادامه زمینه اجرای کد MSIL، ماژولهای مدیریت یافته، فراهم میگردد.
CLR میبایست در ابتدا دستورالعملهای MSIL را به کد مختص ماشین و با توجه به نوع پردازنده، تبدیل نماید.