داتنت محدود به نوع خاصی از برنامهها نیست، از این چارچوب میتوان برای تولید برنامههای تحت ویندوز، تحت وب، سرویسهای مبتنی بر وب و ... استفاده کرد.
دات نت محدود به نوع خاصی از برنامهها نیست، از این چارچوب میتوان برای تولید برنامههای تحت ویندوز، تحت وب، سرویسهای مبتنی بر وب و ... استفاده کرد. یکی دیگر از ویژگیهای داتنت، دارار بودن کتابخانهای بزرگ و جامع از کلاسها و توابع است که همانطور که گفتیم، تمام زبانهای تحت داتنت میتوانند از توابع و کلاسهای موجود در آن، استفاده کنند.
در شمارههای قبل، به معرفی یک IDE متنباز به نام لازاروس پرداختیم که در واقع، جایگزینی برای دلفی در لینوکس محسوب میشد. اما از آنجا که تکنولوژی .NET، بحث روز علم برنامهنویسی است، تلاشهای زیادی نیز از سوی حامیان دنیای اپنسورس برای پیادهسازی این تکنولوژی در سیستمعامل لینوکس انجام شده است. در این مقاله، به بررسی پروژه Mono یا به عبارت دیگر، همان داتنت تحت لینوکس خواهیم پرداخت.
ابتدا لازم است تا کمی با ویژگیهای چارچوب داتنت و مزیتهای آن آشنا شویم. اما داتنت چیست؟ شاید داتنت یکی از گیجکنندهترین علائم تجاری مایکروسافت باشد، بنا به تعریف خود مایکروسافت، داتنت گردایهای از تکنولوژیهایی است که اتصال به اطلاعات، اشخاص، تجهیزات و قطعات را از طریق نرمافزار فراهم میآورد.
اما این تعریفی نیست که بیشتر کاربران از .Net دارند. آنچه معمولا به داتنت اطلاق میشود، برنامهنویسی در چارچوب یا FrameWork داتنت است. یکی از بزرگترین مزیتهای چارچوب داتنت، مسئله مستقل از زبان بودن آن است. برنامههای کاربردی در چارچوب داتنت، میتوانند به هر زبانی که از این frameWork پشتیبانی میکند، نوشته شوند.
این امر، به واسطه وجود یک زبان میانی (IL) فراهم شده است. در هنگام برنامهنویسی خارج از چارچوب داتنت، کد نوشته شده مستقیما به کد قابل فهم برای CPU کامپایل میشود، اما در داتنت، برنامه به هر زبانی که نوشته شده باشد، در مرحله اول، به این زبان میانی ترجمه میگردد (که در بین تمام زبانهای این چارچوب مشترک است).
نتیجه وجود زبان میانی این است که امکان برقراری ارتباط بین زبانهای مختلف برنامهنویسی فراهم میشود. هر زبان در چارچوب دات نت، دارای یک کامپایلر خاص است، و به کمک این کامپایلر میتواند با برنامههایی که در سایر زبانهای تحت .Net نوشته شدهاند، ارتباط برقرار کند. چراکه در مرحله اول، برنامه به هر زبانی که نوشته شده باشد به این زبان میانی ترجمه میشود.
داتنت محدود به نوع خاصی از برنامهها نیست، از این چارچوب میتوان برای تولید برنامههای تحت ویندوز، تحت وب، سرویس های مبتنی بر وب و ... استفاده کرد. یکی دیگر از ویژگیهای داتنت، دارار بودن کتابخانهای بزرگ و جامع از کلاسها و توابع است که همانطور که گفتیم، تمام زبانهای تحت داتنت میتوانند از توابع و کلاسهای موجود در آن، استفاده کنند.
از مزیتهای دیگر این چارچوب، میتوان به مسئله مدیریت حافظه اشاره کرد. در برنامهنویسی خارج از چارچوب داتنت، این مدیریت میبایست توسط برنامهنویس انجام شود و ممکن است با یک اشتباه کوچک از سوی برنامهنویس، حافظه زیادی به هدر برود و برنامه با مشکل کمبود حافظه مواجه شود. در FrameWork داتنت، سیستمی به نام GC، در فاصلههای زمانی غیر ثابت به بررسی حافظه میپردازد و دادههایی را که دیگر استفاده نمیشوند از حافظه سیستم حذف میکند و نیز به کاربر اطمینان میدهد که با پایان برنامه، حافظه اختصاص داده شده به آن، به طور کامل بازیابی میشود.
از دیگر ویژگیهای برنامهنویسی تحت داتنت، میتوان به عدم دسترسی مستقیم به سختافزار و حذف اشارهگرها و ... اشاره کرد که توضیح کامل این مسائل، از حوصله این بحث خارج است. بسیاری معتقدند که ایده داتنت، ابتدا در کمپانی Borland مطرح شد و سر انجام سر از مایکروسافت درآورد! اما آنچه مسلم است، این است که مایکروسافت با معرفی این تکنولوژی، انقلابی را در عرصه برنامهنویسی در ویندوز پدید آورد.
البته مهمترین کمبود داتنت همین مسئله بود؛ این که فقط به یک سیستمعامل تعلق داشت، هرچند مستقل از معماری پردازگر بود. مشکلی که در حال حاضر توسط پروژه Mono در حال مرتفع شدن است. مونو تنها پروژهای نیست که قصد دارد داتنت را برای سایر سیستمعاملها پیادهسازی کند، اما در حال حاضر میتوان به عنوان کاملترین و امیدوارکنندهترین پروژه از آن نام برد.