برای اینکه بفهمیم چرا دانت نت به نیازی اساسی برای برنامه نویسی تبدیل شده است: باید بدانیم قبل از دات نت برنامه نویسی چه شرایطی داشته است.
1-2 نگاهی به گذشته
IBM PC که در سال 1981 معرفی شد دارای یک floppy drive بدون دیسک سخت و یک نمایشگر سبز فسفری با 128 کیلو بایت رم بود. این کامپیوتر توسط مجله Time (در حالی که عکسش روی جلد مجله بود) به عنوان مرد سال معرفی شد. این کار بسیار عجیبی بود. زیرا روی جلد این مجله فقط جای عکس رهبران و انسانهای مشهور بوده است.
پیشرفت کامپیوتر بقدری سریع بود که تنها 20 سال بعد, کامپیوتر به چنان دستگاه قدرتمندی تبدیل شد که از اینترنت یا وسایل بی سیم برای ارتباط با دیگر کامپیوتر ها استفاده می کرد. در حال حاضر همان طور که مشاهده می کنید سیستم های کامپیوتری (از جمله خدمات اینترنتی) در تمام ابعاد زندگی انسان نفوذ کرده اند. حتی در ایران که جزو کشورهای در حال توسعه است و سیستم مخابراتی مناسبی ندارد این امر کاملا مشاهده می شود. اگر چه هنوز میزان استفاده ما و نحوه آن با کشورهای صنعتی بسیار متفاوت است. نکته جالب در مورد کامیپوتر این است که این علم در همین جا متوقف نشده است و ما تقریبا هر همپای پیشرفت سخت افزار, یا نرم افزار هستیم.
همپای پیشرفت سخت افزار, نرم افزارها و زبانهای برنامه نویسی هم پیشرفت کردند. بطوری که در اوایل دهه 1980 برنامه نویسان از زبان c برای کارهایشان استفاده می کردند. در آن زمان سیستم عامل ها singli task بودند. یعنی هر برنامه ای که اجرا می شد تمام منابع سیستم عالم را در اختیار میگرفت و تا زمانی که کار آن برنامه تمام نشده بود, برنامه دیگری نمیتوانست اجرا شود. سیستم عامل MS-DOS (که یک سیستم عامل single Task بود) در این زمان ارائه شد. MSDOS به دلیل استفاده از assembler سیستم عامل پر سرعت و کم حجمی بود. API های DPS تنها مجموعه ای از وقفه ها بودند.
در اوایل دهه 80 پایه های API های ویندوز با استفاده از زبان c نوشته شد. این API ها مخفیانه طراحی می شدند تا کسی از نحوه کار آنها با خبر نشود. در آن API ها صدها تابع از نام های طولانی و بعضا مرموز وجود داشت. انتقال به ویندوز برنامه نویسی را دچار تحول اساسی کرد. برنامه نویس ها می بایست برای برنامه های خود طراحی گرافیکی نیز انجام داده و از خواص multi tasking نیز استفاده می کردند. سیستم عامل های multi task بر خلاف single task ها این قابلیت را دارد که چندین برنامه را بطور همزمان اجرا کند. در آن زمان خیلی از برنامه نویسان در برابر استفاده از ویندوز ایستادگی کردند و می گفتند برنامه نویسی در ویندوز کند, زمان گیر و پیچیده است. شاید وقتی قسمت های بعدی این کتاب را ببینید بگویید برنامه نویسی در ویندوز بسیار کار ساده ای است, اما در آن زمان ابزارهای فعلی وجود نداشت, برای یک برنامه ساده های که قرار بود در ویندوز اجرا شود و محیط گرافیکی داشته باشد. باید هزاران خط کد نوشته می شد. البته هم اکنون نیز بعضی از برنامه ها برای کنترل دقیق تر از ابزارهای low level2 ترک استفاده می کنند.
به دلیل این تغییرات و راحتی در استفاده, ویندوز در بسیاری از کامپیوتر های رومیزی به کار گرفته شد. در سال 1991 اولین نسخه ویژوال بیسیک ارائه شد. زبانی ساده کارا برای کسانی که خود را درگیر پیچیدگی های برنامه نویسی c نمی کردند.
ویژوال بیسیک تاریخ جالبی دارد. زبانی که به آرامی رشد کرد و اکنون به یکی از متداول ترین زبانهای دنیا تبدیل شده است. ویژوال بیسیک 3 به ما امکان استفاده از بانک های اطلاعاتی را می داد. ویژوال بیسیک 4 امکان کامپایل کردن برنامه برای سیستم عاملهای 16 بیتی و 32 بیتی را فراهم کرد, همچنین در این نسخه امکان نوشتن com یا dll ایجاد شده بود. در نسخه 15 امکان ساختن Activex control ها محیا شد و درآخر, در نسخه 6 کل برنامه از ابتدا نوشته شد. کامپایلر که از نسخه 5 از حالت مفسری درآمده بود سرعت بیشتری به برنامه ها داد. همچنین امکان ساختن control ها برای وب و interface و inheritance نیز اضافه شد.
دنیای کامپیوتر بار دیگر نیز متحول شد و این بار اینترنت محول اصلی تغییرات است. نیاز ما به اینترنت حتی با سال گذشته قابل مقایسه نیست. امروزه اکثر برنامه ها از اینترنت محور اصلی تغییرات است. نیاز ما به اینترنت حتی با سال گذشته قابل مقایسه نیست. امروزه اکثر برنامه ها از اینترنت استفاده می کنند حتی در استراتژی جدید بعضی شرکت های بزرگ تغییر ایجاد شده و دیگر برنامه ها برای نصب بر روی سی دی ارائه نمی شود و همه چیز web based خواهد بود.
2-2 دنیای NET
تمام این تغییرات دست به دست هم دادند تا نیازهایی را به وجود آورند که در نهایت منتهی به ایجاد دات نت شد. در دات نت کاربران می توانند اطلاعاتشان را در محیط, زمان, مکان یا هر دستگاهی بازیابی کنند چند سال پیش استفاده از تکنولوژی دات نت می توانید برای گوشی تلفن همراه خود برنامه بنویسید. حتی مایکروسافت تلاش می کند پای دانت نت را به دستگاه های خود پرداز (ATM) نیز باز کند. در حال حاضر پروژه های در دست اجراست که برنامه هایی که با دات نت نوشته می شود را بتواند بر روی سیستم عامل های دیگر اجرا کند.
بر اینکه کمی بیشتر با مزایای دات نت آشنا شویم مثالی از یکی از کاربردی ترین امکانات دات نت را ذکر می کنم. فرض کنید برنام تجاری داریم و شرکتی از آن استفاده می کند که دارای چندین دفتر در سراسر کشور است. پس از مدتی مدیر تصمیم می گیرد حقوق گروه خاصی از کارمندان را 0.5 درصد افزایش دهد در مدل قدیمی اعمال چنین تغییری می توانست مشکلاتی به بار آورد, اگر برنامه از DCOM استفاده می کرد مشکل اول پیاده سازی خود DCOM بر روی اینترنت و بستر مخابراتی ایران بود و مشکل دوم بروز رسانی آن. در ویندوز همان طور که می دانید DLL ها نصب و در registry کدی برای آنها نوشته می شود. هر DLL یا COM شماره ای مانند 1.1.2.002 برای مشخص کردن نسخه آن است. اگر نسخه جدید DLL ما که حاوی اطلاعات حقوق است را بدون در نظر گرفتن این نکته نصب می کردیم امکان داشت نسخه جدید DLL ما که حاوی اطلاعات حقوق است را بدون در نظر گرفتن این نکته نصب می کردیم امکان داشت نسخه قبلی و جدید باهم تداخل پیدا کنند و برنامه دیگر کار نکند. در دات نت با استفاده از تکنولوژی به نام وب سرویس این کار به راحتی انجام می شود. کافی است اطلاعات جدید برای استفاده روی سرور قرار گیرد برنامه های دفترهای سراسر کشور یا online از وب سرویس استفاده می کنند یا اطلاعات جدید را از آن گرفته و بصورت offline آنها را به کار می گیرند.
مشکلی که در بالا برای DLL ها به آن اشاره شد DLL Hell نام دارد, این مشکل در دات نت رفع گردیده است. DLL هایی که در دات نت ساخته می شوند احتیاج به نصب شدن ندارند. کافی است فقط آن را کپی کنیم برنامه ما هر مقدار هم بزرگ و پیچیده باشد احتیاج به نصب ندارد. کافی است با دستور xcopy آن را کپی کنیم. هر چند توصیه می شود برای کاربر نهایی (end user) با استفاده از installer یک نسخه آماده نصب بسازیم زیرا برنامه installer می تواند علاوه بر کپی کردن فایلها برنامه ما, روی دستکتاپ Icon ایجاد کند و برنامه را به programs در منوی start اضافه کند. قبل از دات نت اگر ما برنامه ای را uninstall می کردیم امکان داشت DLL هایی را که مربوط به دیگر برنامه ها بود را هم حذف کند واین باعث می شود برنامه های دیگر هم از کار بیافتد. ولی در دات نت هر برنامه می تواند کپی مخصوص خود را داشته باشد در هنگام uninstall شدن فقط فایلهای مربوط به همان برنامه حذف می شود.
3-2 توضیحاتی در مورد NET. Framework
NET. Framework برنامه ای است که به عنوان یک لایه جدید روی سیستم عامل قرار می گیرد, خود دات نت از لایه های مختلفی تشکیل شده است.
قلب دات نت CLR یا common language runtime است. CLR مسئول اجرای برنامه هاست. با استفاده از خصوصیات CLR امکان استفاده از برنامه هایی که در یک زبان برنامه نویسی نوشته می شود در زبان دیگر وجود دارد. در دات نت نوع های داده ها توسط CLR یکسان سازی شده اند تا در هنگام استفاده از آنها در زبان های دیگر مشکل پیش نیاید. البته این هدف باعث شد بعضی از انواع داده الکترونیکی که در ویژوال بیسیک 6 مورد استفاده قرار می گرفت مانند variant در دات نت حذف شود.
همان طور که در شکل 1-1 مشاهده می کنید در بالاترین سطح کامپایلرهای سی شارپ, ویژوال بیسیک C++ و دیگر زبان ها وجود دارد. در قسمت بعدی CLS یا common language specifications قرار گرفته ات. این لایه مسئول بررسی این است که آیا کامپایلر و زبان خصوصیات پایه ای برای CLR یا تبادل اطلاعات با دیگر CLS ها را دارد یا خیر. با این وسیله تضمین می شود که وقتی شرکتهای دیگر زبان یا کامپایلرهای دیگری برا دات نت بنویسند محصول آنها با دیگر محصولات هماهنگ خواهد بود.
Web serveces مسئول ایجاد محیط کاربری تحت وب (uder interface) است. علاوه بر این کنترل ارتباط با وی, پروتکل های آن, امنیت و دیگر مسائل مربوط نیز بر عهده این قسمت می باشد. در دات نت برنامه ای که برای win 32 app winsows rorm نوشته شود: با کمی تغییر می تواند تحت وب و در web forms اجرا شود.
در مقابل web services قسمت interfaces قرار دارد. User interface مسئول برقراری ارتباط در محیط ویندوز با استفاده از winsows forms است.
Xml Data لایه های بعدی هستند. دات نت برای انتقال اطلاعات بر روی وب از xml استفاده می کند.
Bcl یا Basic Class Library مسئول نگهداری کلاسهای اصلی دات نت است هر چیزی در دات نت یک کلاس است و همه کلاس ها از کلاس اصلی system منشعب می شوند (در فصل های آینده مطالب کاملی در این مورد ذکر می کنیم) اطلاعات کامل تر در مورد CLR و ساختارش, Data, Meta, JIT Compiler را به کتاب پیشرفته موکول می کنیم.
3- آشنایی با محیط ویژوال استدیو دات نت
1-3 نصب ویژوال استودیو دات نت
در ایران نسخه های مختلفی از ویژوال استودیو دات نت وجود دارد که بعضی از آنها کامل نیستند. بعضی نسخه ها مثال ها (samples) را ندارند و بعضی دیگر راهنمای MSDN را. لذا در هنگام نصب باید این نکته را در نظر داشته باشید که ممکن است در مراحل نصب بعضی فایلها وجود نداشته باشند و برنامه نصب کننده پیغام های خطای زیادی بدهد. بهتر است در صورت مواجه شدن با چنین حالتی از نصب خارج شده, دوباره آن را شروع کنید, ولی این بار فراموش نکنید که فایلهایی را که وجود نداشتند انتخاب نکنید.