یافتن یک راهحل مطمئن و ساده مهاجرت برای برنامههای ویژوال بیسیک
لینوکس در حال پیشرفت در حوزه سازمانی است. در ابتدا این سیستمعامل بعنوان سرور طراحی گردید، اما بیشتر و بیشتر بر روی دسکتاپ تست شد و گسترش یافت. راهحلهای لینوکس برای برنامههای بازدهی تجاری معمولی، شامل Evolution، Mozilla، و OpenOffice، قابل دستیابی هستند و به همراه اغلب توزیعهای لینوکس عرضه گردیدهاند.
این در دسترس بودن سختافزار به صرفه، توزیعهای قابل اعتماد لینوکس، و برنامههای بازدهی تجاری همهمنظوره به سوق دادن لینوکس به سوی دسکتاپ کمک میکند، مگر در وضعیتهایی که برنامههای سازمانی به صورت سفارشی در ویژوال بیسیک توسعه داده شدهاند، و در حال حاضر تنها بر روی ویندوز اجرا میگردند.
از آنجایی که سازمانها عموما همه سیستمهای خود را یکباره به لینوکس مهاجرت نمیدهند، شرکتها بایستی به دنبال راهحلهایی باشند که برنامههای ویژوال بیسیک را به لینوکس منتقل نموده و به علاوه ویندوز را نیز همچنان پشتیبانی نمایند.
آنها همچنین باید توسعهگران خود را قادر به استفاده از یک محیط توسعه آشنا، یک زبان آشنا نمایند و مهمتر از همه، به حفظ سرمایهگذاری یک شرکت در کد فعلیاش یاری رسانند. به علاوه، آنها باید به دنبال به حداقل رساندن مسائل پشتیبانی مرتبط با گسترش باشند.
چه گزینههایی وجود دارند؟
گزینههای عمده برای مهاجرت برنامهها بین پلاتفرمها شامل Mono/.NET، Java، و REALbasic میباشد. در هنگام اتخاذ تصمیم برای انتخاب ابزار جهت انجام مهاجرت یک برنامه عظیم ویژوال بیسیک به لینوکس، شما باید دو مساله مهم را مد نظر قرار دهید: سادگی توسعه، که برای توسعهگران شما یک امر حیاتی است، و سادگی گسترش، که برای کاربران نهایی و کارکنان بخش پشتیبانی از اهمیت بالایی برخوردار است.
چرا .NET و Mono نه؟
هنگامی که مایکروسافت اعلام نمود که نسخه بعدی ویژوال بیسیک VB.NET خواهد بود، توسعهگران ویژوال بیسیک در انتظار ویژوال بیسیک 7 بودند. محیط VB.NET محققا مدرنتر بود، اما بسیار متفاوت از ویژوال بیسیک 6، و در واقع ناسازگار با ویژوال بیسیک 6. برای نخستین بار از زمان ویژوال بیسیک 2، یک ویژوال بیسیک جدید نمیتوانست کد نسخه قبلی را باز، اجرا و کامپایل نماید. توسعهگران، .NET را کندتر و پیچیدهتر یافتند. آنها همچنین دریافتند که زبان .NET بسیار متفاوت از ویژوال بیسیک 6 است.
کاری که .NET انجام داد فراهم نمودن یک زمان اجرای زبان مشترک (CLR) بود که تمامی زبانهای .NET مایکروسافت در حال حاضر از آن استفاده میکنند. به همین دلیل، پروژه کدباز Mono یک پیادهسازی مستقل-از-پلاتفرم از CLR را آغاز نمود. پروژه Mono تلاش خود را بر روی .NET با استفاده از C# متمرکز نمود، از این رو توسعهگران میتوانند پروژههای خود را با استفاده از Mono به لینوکس منتقل سازند. برای استفاده از Mono جهت مهاجرت پروژهها به لینوکس، توسعهگران ویژوال بیسیک بایستی C# و .NET را بیاموزند، تغییرات عمدهای را در کد پروژه ایجاد نمایند، و از CLR استفاده کنند.
برای انجام گسترش، چارچوب برنامه .NET که دارای حجم 20 مگابایت است باید بر روی هر کدام از دسکتاپها نصب باشد تا برنامههای .NET بر روی آنها اجرا گردند. این .NET Framework تلاش مینماید سازگاری با آینده و گذشته را میان نسخهها حفظ نماید. یک تغییر در .NET Framework که امنیت، صحت، یا کارکرد را بهبود میبخشد همچنین میتواند مسائل سازگاری را افزایش دهد. پس از به روزرسانی Framework، این مشکلات سازگاری میتواند باعث گردد نرمافزاری که بر روی .NET کار میکرده از کار بیافتد.
یک مساله دیگر در رابطه با گسترش وجود دارد که آن نیز بایستی مد نظر قرار گیرد. برای آن که .NET و Mono کار کنند، هزاران API ارائه شده از سوی واسطهها باید برای ویندوز و لینوکس استاندارد گردند. به عنوان یک مثال، همگی ما کاملا با استاندارد HTML آشنا هستیم، و ما مفاهیم این استاندارد را هر روز در هنگام استفاده از تکنولوژیهای مرورگر مختلف میبینیم. مرورگرهای مختلف همگی ملزم به پذیرفتن استاندارد HTML هستند، اما شما میتوانید مشاهده کنید که مرورگرها صفحات را به یک صورت رندر نمیکنند، حتی با این وجود که همه آنها استانداردها را پذیرفتهاند. تست و گسترش در دنیای واقعی همواره مستلزم محیطهای استاندارد خواهد بود.
در مورد Java وضعیت به چه شکل است؟
از لحاظ سادگی توسعه، توسعه Java چندان تفاوتی با .NET/Mono نمیکند چرا که شما ناچارید زبان جدیدی را بیاموزید و با Java Virtual Machine های متعدد و ناسازگاریهای ذاتی آنها روبرو شوید. همه این موارد یک لایه از پیچیدگی را به تلاش در جهت مهاجرت میافزاید؛ مهاجرتهای موفق پیچیدگی فرایند را به حداقل میرساند.
از لحاظ سادگی توسعه، Java بر روی سرور موفق بوده است، اما موفقیت محدودی را بر روی دسکتاپ کسب نموده است، زیرا برنامههای Java نیازمند نصب یک ماشین مجازی بر روی هر دسکتاپ هستند. کاربران نهایی یا کارکنان بخش پشتیبانی بایستی سازگاری توزیع لینوکس و JVM را اداره نمایند. اگر آنها ناسازگار باشند، برنامه نمیتواند مورد استفاده قرار گیرد و این امر میتواند به یک کابوس پشتیبانی برای سازمان بدل شود.
توسعه آسان، گسترش آسان
با استفاده از REALbasic محصول شرکت REAL Software، برنامهنویسان ویژوال بیسیک فورا مثمر ثمر واقع میشوند چرا که یک محیط توسعه و زبانی در اختیارشان قرار داده شده که بسیار شبیه محیط آشنای ویژوال بیسیک است. به علاوه، همراه REALbasic یک ابزار کمکی عرضه میگردد که در تبدیل پروژههای ویژوال بیسیک به این محیط آشنا شما را یاری میکند.
به هر حال، بر خلاف Java، REALbasic برنامههای محلی میسازد که ظاهر، حس و رفتار برنامههایی را دارند که انحصارا برای یک پلاتفرم نوشته شدهاند، چه ویندوز (98/NT/Me/2000/XP)، چه لینوکس، و چه Mac OS X.
به علاوه، REALbasic مشکلات گسترش را با ایجاد اجرا شدنیهای خودشمول حل مینماید. هیچ کتابخانه یا چارچوبی برای نصب بر روی پلاتفرمهای مقصد وجود ندارد. این امر نه تنها گسترش و پشتیبانی برنامهها را ساده میکند بلکه دارای مزیت افزوده حذف نیاز به DLL ها (اگر چه آن کاربر را از به کار بردن کنترلهای COM در صورت نیاز برای یک پروژه محروم نمینماید) برای آنهایی که به پشتیبانی ویندوز ادامه میدهند است.
در حال حاضر راهحلهای متعددی وجود دارند که میتوانند به مهاجرت برنامههای ویندوز به لینوکس یاری رسانند. مهم این است که آنهایی را بیابید که برنامههای حیاتی تجاری شما را به لینوکس انتقال دهند، توسعهگران را نیازارند، و مشکلات گسترش را برای کاربران نهایی و کارکنان بخش پشتیبانی شما به حداقل برسانند.