فريم ورک دات نت چيست؟!
فريم ورک دات نت از دو قسمت اصلی تشکيل شده است:
۱) CLR (چیزی که کدها رو اجرا می کند)
۲) یک مجموعه سلسله مراتبی از Class Libraryها (توابع PHP و کتابخانه های PEAR رو یکم گسترش بدین و اونها رو تحت یک ساختار سلسله مراتبی تر و تمیز سازماندهی کنید میشه Class Library دات نت) از جمله این Class Libraryها می توان به ADO.NET (یک سیستم دسترسی به داده) و Windows Forms که کلاسهایی برای ساخت اپلیکیشنهای ویندوز است اشاره کرد.
CLR می تواند کدهایی را که به زبانهای مورد پذیرش دات نت نوشته می شوند، اجرا کند؛ در ضمن این کدها، تحت هر سیستم عاملی که نسخه ای از CLR را در اختیار داشته باشد، قابل اجراست. به عبارت دیگر، یه چیزی تو مایه های جاوا؛ با این تفاوت که لازم نیست کدها به زبان جاوا نوشته شوند و برنامه نویس در انتخاب زبان مختار است. Cool اِ نه؟! 
يک مثال: «The Web Forms Framework»
ASP.NET يه جور سيستم Templating داره که اصطلاحا Web Forms ناميده ميشه. اين مورد رو من اول از همه ذکر ميکنم، چون يکی از ويژگيهايی هست که در وهله اول باعث علاقه من به دات نت شد و تا اونجایی که من اطلاع دارم، مشابه PHP اون وجود نداره. برای مثال به کد HTML زير دقت کنيد:
<select id="ColorSelect" runat="server">
<option>SkyBlue</option>
<option>LightGreen</option>
<option>Gainsboro</option>
<option>LemonChiffon</option>
</select>
<span id="Span1" runat="server">Some text.</span>
همونطور که می بينيد، کد بالا يه تکه کد HTML معمولی هست که فقط يه مشخصه (Attribute) به تگهای <span> و <select> اضافه شده است.("runat="server) حالا اگه بخواهيم گزينه يا Option ای به اين جعبه انتخاب(Select Box) اضافه کنيم، در هنگام کدنويسی ASP.NET، کد زير رو می نويسيم.(بدین صورت میشه کاملا اون رو از کد HTML مجزا کرد.)
ColorSelect.Items.Add('AzureBlue');
و برای دستکاری تگ <span> هم می نويسيم:
Span1.Style["background-color"] = "red";
Span1.InnerHTML = "Changed text!";
و نهايتا خروجی سيستم، کدی هست که ۱۰۰ درصد با XHTML همخوانی دارد.
<select id="ColorSelect">
<option>SkyBlue</option>
<option>LightGreen</option>
<option>Gainsboro</option>
<option>LemonChiffon</option>
<option>AzureBlue</option>
</select>
<span style="background-color: red;">Changed text!</span>
علاوه بر جذابيتی که اين ويژگی دارد، شما بعنوان يک توسعه دهنده، همکاری لذت بخش تری با يک HTML/Designer که چيزی از برنامه نويسی نمی داند، خواهيد داشت. اين تنها نمونه کوچکی از قابليتهايی است که فريم ورک Web forms در اختيار ما قرار می دهد، اگر مايليد تا نمونه های ديگری را مشاهده کنيد، کافيست به GotDotNet سری بزنيد.
گفتيم که فريم ورک دات نت از زبانهای برنامه نويسی متعددی پشتيبانی می کند، به اين معنا که در حال حاضر(شاید هم آینده نزدیک) می توانيد برنامه های کاربردی دات نت را به زبانهای سی پلاس پلاس، سی شارپ، ويژوال بيسيک دات نت، جی اسکريپت دات نت، پايثان(Python)، پرل، جاوا(جی شارپ)، کوبول، ايفل و دلفی بنويسيد. شايد هم بزودی بتوانيد به زبان PHP هم در فريم ورک دات نت، کد بنويسيد! نکته جذاب ديگه، امکان ميکس کردن کدها هست. مثلا می تونيد يک آبجکت در #C از کلاسی نمونه گيری کنيد که با ++C يا VB.NET نوشته شده است. ببینيد اين چقدر زمان توسعه را کوتاهتر ميکنه. در زمينه محيط توسعه، مايکروسافت با انتشار Web Matrix که ابزار رايگانی برای توسعه اپليکيشنهای دات نت هست، برخی از محيط های توسعه ای که برای PHP نوشته شده است را ناکام گذارده است. اين ابزار دارای يک سرويس دهنده وب توکار به انضمام FTP، واسط مديريت بانک اطلاعاتی و ... است. فقط اين نيست! مايکروسافت با عرضه MSDE که ويرايش رايگانی از MS SQL server است، گامی ديگر در جهت عمومی سازی برداشته است. اين ابزار دقيقا تمام امکانات MS SQL server 2000 را دارا می باشد و هر اپليکيشنی که با MSDE نوشته شود، بخوبی با MS SQL Server هم کار می کند. مايکروسافت Visual Studio .NET هم برای حرفه ای ها عرضه کرده است که خصوصيات ديوانه کننده ای دارد:
» توليد خودکار گزارشها و نمودارها از بانک اطلاعاتی
» اشکالزدايی خط به خط کدها با امکان مشاهده تاثيرات و فرآيندهای اجرا
» انتساب مقدار موقتی به يک متغير در هنگام اجرا به منظور بررسی شرايط مختلف
» امکان مشاهده مقدار یک متغیر در هنگام ديباگينگ(اشکالزدایی) با گذراندن ماوس بر روی آن
ASP.NET بخشی از خود دات نت هست و اين چيزی هست که به سادگی ناديده گرفته می شود. اگر شما نحوه نوشتن برنامه های کاربردی دات نت را بدانيد، نحوه نوشتن برنامه های معمولی رو هم می دانيد و با صرف وقت بيشتری روی Windows Forms classes بجای Web Forms، حتی برنامه های کاربردی ويندوز را توسعه دهيد. در اين حوزه، PHP هم تا حدی حرفی برای گفتن دارد. PHP-GTK را می توان فريم ورکی برای توسعه Desktop App به زبان PHP دانست، اما هنوز به بلوغ دات نت نرسيده است و حالا حالا ها برای مقايسه با دات نت زمان می خواهد!
در حال حاضر، دات نت بسیار وابسته به پلت فرم ویندوز است و این خیلی بد هست، زیرا یکی از بزرگترین مزیت های PHP مستقل از محیط عملیاتی بودن یا بقولی Cross-Platform بودن اون هست. اما دات نت کاران اميد دارند که اين مسئله در سالهای آينده حل شود. چند وقت پيش، مايکروسافت Rotor را عرضه کرد که يک پياده سازی Shared Source ای از CLR و Class Library های ويژه غير ويندوزی برای ويندوز و BSD Unix بود که حاوی کدمنبع برای هر دوتای آنها بود. اولين باری که من اين رو شنيدم، باور نکردم، چون از مايکروسافت اين کارها دور از انتظار هست. اما هزینه Rotor آنقدرها هم کم نيست و در واقع از جنبه های بسياری مشابه همتاهای تجاری خود است.
علاوه بر این دات نت، دارای Platform Abstraction Layer قدرتمندی است که کار حمل به ساير سيستم های عامل را امری ممکن می سازد. همچنين، CLI و #C توسط ECMA استاندارد می شوند و پروژه Mono هم با پشتوانه Ximian در حال کار بر روی پياده سازی کد باز دات نت هستند. تمام اين شواهد حاکی از آن است که دات نت بالاخره مرز پلت فرمی را در هم می شکند. اما خوب دير و زود و سوخت و سوز هم داره!!
اما شما به حرفهای من تکيه نکنيد، خودتون طعم هر دو رو بچشيد، ببينيد کدوم بيشتر نيازهای شما رو برطرف ميکنه. من که خودم در حال حاضر برای توسعه وب بی برو و برگرد PHP رو توصيه می کنم هر چی باشه نام سايت هم گواه بر اين ادعاست. بنا به دلايلی که در آينده ذکر ميکنم، من PHP را دوست می دارم چنانکه او مرا دوست خواهد داشت.
|