چطور یک برنامه قابل حمل بسازیم!؟

8 10 2009

در این مطلب قصد ندارم از دید یک کاربر معمولی به نرم افزارهای پرتابل نگاه کنم. همانطور که از تیتر مطلب پیداست، میخواهم از دید یک برنامه نویس، نحوه نوشتن یک برنامه قابل حمل را جدا از زبان و محیط برنامه نویسی و البته برای پلت فرم ویندوز مورد بررسی قرار دهم. در آخر نیز به بررسی قابل حمل بودن برنامه های نوشته شده در پلت فرم دات نت و زبان برنامه نویسی دلفی خواهم پرداخت.

یک برنامه قابل حمل یا Portable Application(=پرتابل) برنامه ای است که به صورت مستقل و بدون نیاز به نصب در یک سیستم عامل اجرا شود و به درستی کار کند. معمولاٌ از این برنامه ها در حافظه های قابل حمل مانند CD و USB flash drive استفاده می شود. این روزها کاربران بسیاری با این برنامه ها آشنایی دارند و همیشه یکی دو جین از این نرم افزارها را روی کول دیسک خودشان به همراه دارند.

واژه “برنامه قابل حمل” نباید با “قابلیت حمل برنامه” اشتباه گرفته شود. منظور از “قابلیت حمل برنامه” یا Software Portability این است که سورس کد یک برنامه را بتوان برای پلت فرم های مختلف کامپیوتری کامپایل و بر روی آن ها اجرا کرد. برنامه های قابل حمل معمولاٌ برای تنها یک پلت فرم خاص ایجاد می شوند و در برخی مواقع حتی نیاز به پیش نیازهایی برای اجرا در همان پلت فرم دارند.

برنامه های قابل حمل برای این طراحی شده اند که :

  • بدون نیاز به نصب روی سیستم عامل، اجرا شوند
  • هیچ ردپایی از خود در سیستم عاملی که اجرا می شوند، باقی نگذارند
  • داده ها و تنظیماتشان را در کنار خودشان (حافظه قابل حمل) نگهداری کنند

پس شما برای اینکه یک برنامه قابل حمل بسازید باید شرط های زیر را رعایت کنید :

1- یک فایل اجرایی از برنامه بسازید که در یک سیستم عامل خاص بدون نیاز به نصب فایل هایی خاص، اجرا شود و کار اصلی خودش را انجام دهد

برای این کار شما باید مطمئن شوید که برنامه شما برای اجرا به هیچ فایلی وابسته نیست، یا اگر وابسته است، از نوع فایل های ActiveX و DLLهای COM نیست! به این علت که این نوع فایل ها باید در سیستم عامل ویندوز کاربر ثبت شوند و معمولاٌ دردسر های زیادی با خود به همراه دارند. اگر فایل اجرایی برنامه شما به فایل های معمولی متنی یا نوع دار (مثلاً باینری) وابسته است، برای اجرا روی سیستم های مختلف مشکلی نخواهد داشت. در مورد وابستگی برنامه شما به یک دیتابیس هم باید به نوع فایل دیتابیس خود توجه کنید. دیتابیس های SQL Server را که به هیچ وجه منطقی نیست در برنامه های قابل حمل استفاده کنید، چون این نوع دیتابیس در برنامه های چندکاربره و تحت شبکه استفاده می شود. دیتابیس های Microsoft Access هم به علت وابستگی به یکسری فایل خاص ممکن است برنامه شما را برای اجرا با مشکل مواجه کند. بهترین انتخاب برای دیتابیس در یک برنامه قابل حمل SQLite خواهد بود. SQLite یک دیتابیس توکار است که هم سبک است و هم ساده و البته رایگان.

2- برنامه شما هیچ تغییری در سیستم عامل کاربر یا فایل های سیستمی آن ندهد

معمولاً کاربران برنامه های قابل حمل را روی حافظه فلش خود ذخیره می کنند تا به راحتی بتوانند آن ها را روی کامپیوترهای مختلف اجرا کنند و به مقصود خود برسند. در واقع برنامه های قابل حمل نقش مهمان ناخوانده را برای یک سیستم عامل دارند. بدون اینکه نصب شوند و یا خود را معرفی کنند، اجرا می شوند و کار خودشان را انجام می دهند. به همین علت یک برنامه قابل حمل نباید تغییری ناخواسته در سیستم عامل کاربر ایجاد کند، زیرا ممکن است این اولین و آخرین باری باشد که در این سیستم عامل اجرا می شود. به طور مثال یک برنامه قابل حمل به هیچ وجه نباید رجستری ویندوز را تغییر دهد.

البته در این مورد یک حالت خاص داریم، زمانی که برنامه قابل حمل برای تغییر قسمتی از سیستم عامل ساخته شده، مثلاً یک نرم افزار Registry Tweak یا یک برنامه برای حذف فایل های اضافی از روی سیستم عامل، که می توانید در این گونه موارد این شرط را رعایت نکنید و البته که کاربر از هدف اجرای نرم افزار شما آگاه است.

3- تنظیمات و داده های احتمالی برنامه را در کنار خود برنامه ذخیره کنید

تنظیمات یک برنامه قابل حمل نیز باید قابل حمل باشد! این جمله بدین معنی است که اگر کاربر در یک سیستم عامل تنظیمات برنامه را تغییر داد، دفعه بعد و در یک سیستم عامل دیگر برنامه را با تنظیمات جدیدش (که در سیستم عامل قبلی تغییر داده) اجرا کند. پس نباید تنظیمات برنامه را در هارد دیسک های یک کامپیوتر ذخیره کرد (مگر اینکه برنامه از روی هارد دیسک اجرا شود)، بلکه باید در کنار برنامه (معمولاٌ فلش دیسک) ذخیره نمود. یادتان باشد که با توجه به قانون دوم، شما نباید تنظیمات برنامه خود را در رجیستری ویندوز ذخیره کنید. در این حالت بهترین راه ذخیره سازی تنظیمات در فایل های متنی با ساختار INI در کنار فایل اجرایی برنامه شماست.

csharpportable

نوشتن برنامه قابل حمل در پلت فرم دات نت

اکثر برنامه های نوشته شده با زبان های دات نتی پرتابل هستند! شاید بگویید که وابستگی به دات نت فریم ورک، پرتابل بودن نرم افزارهای نوشته شده در دات نت را نقض می کند. اما این تفکر شما اشتباه است. تمام نرم افزارهای پرتابل یک پیش نیاز دارند، آن هم پلت فرم اجراست. به طور مثال یک برنامه پرتابل فقط روی ویندوز اکس پی اجرا می شود. این پرتابل بودن این برنامه را نقض نمی کند، فقط پیش نیاز اجرا که همان پلت فرم است را مشخص می کند. در مورد دات نت نیز همینطور است. دات نت یک پلت فرم است که برنامه های نوشته شده توسط این فریم ورک برای اجرا به آن نیاز دارند. این به هیچ وجه پرتابل بودن برنامه های دات نت را نقض نمی کند.

پس در حالت عادی تمام نرم افزارهای تحت دات نت قابل حمل هستند. اگر یکی از شرط های بالا را نقض کنید، آن وقت برنامه دات نت خود را غیر قابل حمل کرده اید!

نوشتن برنامه قابل حمل در دلفی

در حالت عادی، برنامه های نوشته شده به این زبان، شرط اول را دارند. یعنی به فایل خاصی برای اجرا وابسته نیستند. کامپایلر دلفی کد Native تولید می کند، و به همین علت فایل اجرایی آن روی هر ویندوزی و بدون احتیاج به نصب اجرا می شود. مگر اینکه خود شما با وابسته کردن فایل اجرایی برنامه خود به کامپوننت خاصی، این شرط را نقض کنید. در دلفی شما فقط کافیست که دو شرط آخر را رعایت کنید تا یک برنامه پرتابل عالی ساخته باشید.

farasun.wordpress.com

مشترک فید فراسان شوید!





آیا دلفی 2009 می تواند دلفی 7 دیگری باشد!؟

10 10 2008

شرکت Embarcadero Technologies که چندي پيش CodeGear را از شرکت بورلند خريده بود به تازگي نسخه اي جديد از دلفي و C++ Builder را براي توسعه نرم افزارهاي تحت ويندوز عرضه نموده است. Embarcadero نسخه 2009 دلفي را “بزرگترين نسخه دلفي در طول سال هاي گذشته” مي داند و انتظار دارد تا اين نسخه از دلفي توليد نرم افزارهاي کاربردي را راحت تر و لذت بخش تر از گذشته کند. دلفي از نسخه 3 تا 7، به عنوان يکي از کاراترين و قدرتمندترين محيط هاي برنامه نويسي و توليد نرم افزار در پلت فرم ويندوز يکه تاز بازار اين بخش بود. حتي شرکت مايکروسافت در مقابل بورلند کم آورده بود و از ايده هاي اين شرکت در محصولات خود از جمله ويژوال بيسيک از ايده هاي اين شرکت استفاده مي کرد. تا قبل از ايجاد تکنولوژي دات نت توسط مايکروسافت، اين شرکت بازار توليد نرم افزار براي ويندوز را به بورلند واگذار کرده بود. نسخه 7 دلفي اوج قدرت و محبوبيت دلفي بود که در آن زمان و سال هاي بعد از آن محصولات نرم افزاري بسيار زيادي با استفاده از آن توليد شد به طوري که خاطره لذت بخش برنامه نويسي در محيط دلفي 7 به اين زودي ها از ذهن برنامه نويسان پاک نخواهد شد.

Embarcadero Technologies صاحب فعلي شرکت CodeGear برنامه هاي زيادي براي دلفي و C++ Builder دارد. به گفته خودشان قرار است نسخه 2009 دلفي خاطره نسخه 7 آن را تکرار کند و حتي بيشتر از آن به موفقيت برسد. دلفي اين بار بر خلاف نسخه هاي قبل که تمايل به سياست هاي مايکروسافت داشت و به پلت فرم دات نت توجه خاصي داشت، راه قبلي خود را در پيش گرفته است و اين بار بخشي از بازار نرم افزار را که “توليد بسته هاي نرم افزاري، نرم افزارهاي کاربردي، سرويس گيرنده/سرويس دهنده و بانک اطلاعاتي” است را هدف قرار داده است که البته اين محصولات بخش مهم و بزرگي از بازار و نياز نرم افزار را تشکيل مي دهند. هر چند که با دلفي 2009 تقريباً هر نرم افزاري را که فکر کنيد مي توانيد توليد نمایید.

توسعه دهندگان با دلفی 2009 دیگر نگران جهانی کردن نرم افزار خود نخواهند بود. دلفی 2009 به صورت توکار از یونیکد پشتیبانی می کند. این بدین معنی است که برنامه نویسان دیگر نباید نگران زبان استفاده شده در برنامه خود باشند. شاید خاطرتان باشد که بسیاری از برنامه های دلفی 7، پس از اجرا شدن در سیستم های دیگر کاراکترها را به صورت ؟ نمایش می دانند. این به خاطر عدم پشتیبانی درست از سیستم یونیکد در برنامه ها بود. هم اکنون دلفی 2009 این مشکل را به طور کامل برطرف کرده است.

با دلفی می توانید برنامه های بانک اطلاعاتی را هر جه سریعتر، کاراتر و قدرتمندتر بنویسید. این کار با استفاده از جدا کردن لایه های مختلف برنامه (جدا کردن لایه داده، لایه تجاری و لایه نمایش از هم) بوسیله DataSnap جدید انجام می گیرد. ابزارهای مختلف IDE دلفی 2009 به شما امکان تحلیل ساختار بانک اطلاعاتی را با استفاده از مدل سازی و نمودارهای گوناگون می دهد.

دلفی 2009 شامل کنترل های متنوع و جدیدی است که توسعه برنامه های کاربردی تحت ویندوز را هرچه آسان تر و لذت بخش تر می کند. کنترل های VCL جدید شامل Microsoft Office Style Ribbon (کنترل های ریبون که در رابط کاربری آفیس 2007 استفاده شده اند) و کنترل Image که فرمت PNG را پشتیبانی می کند.

با دلفی 2009 علاوه بر نرم افزارهای تحت وب، قادرید پروژه های تحت وب تجاری که از تکنولوژی های AJAX و Silverlight بهره می برند، ایجاد کنید. با دلفی 2009 می توانید همانند برنامه های کاربردی تحت ویندوز، وب سایت هایی با ظاهر زیبا و بر مبنای وب 2.0 تولید کنید. این قابلیت دلفی به نام VCL for the Web شناخته می شود. البته در نسخه های قبل دلفی هم این قابلیت وجود داشت ولی در این نسخه کاملاً بهینه و پیشرفته شده است.

دلفی 2009 در سه نسخه Professional، Enterprise و Architect عرضه می شود و توسعه و توزیع برنامه های کاربردی در ویندوزهای ویستا، اکس پی، سرور 2003، ویندوز 2000 و سرور 2008 را پشتیبانی می کند.

دلفی 2009 | امکانات جدید نسخه 2009

حال باید منتظر ماند و دید که آیا دلفی 2009 می تواند دلفی 7 دیگری باشد و برنامه نویسان را دوباره به استفاده از دلفی علاقه مند کند!؟

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

پ.ن : من هنوز شخصاً از دلفی 2009 استفاده نکردم و اطلاعاتم را از مقالاتی که تا به حال در مورد دلفی 2009 خواندم بدست آورده ام. به محض آنکه خودم تجربه استفاده از این نسخه را پیدا کردم سعی می کنم مقاله کاملی در موردش بنویسم. فعلاً این نوشته را در حد یک خبر خلاصه داشته باشید.

مطالب مرتبط :





نسخه های جدید Datefa و Darkpad

1 10 2008

اگر خواننده این وبلاگ هستید حتماً با هدف این وبلاگ و برنامه هایی که قبلاً معرفی کرده بودم آشنایید. یکی از اهدافی که من در مورد این وبلاگ داشتم و در مورد وب سایتی که قراره ایجاد کنم خواهم داشت، تولید و پشتیبانی نرم افزارهای آزاد برای استفاده کاربران ایرانی سیستم عامل ویندوز است. حالا به علت مشغله و تحصیل و مسائل دیگر آنچنان نتوانستم برنامه هایی که در سر داشتم عملی کنم. به هر حال در طول عمر این وبلاگ اگر کار مفیدی در این زمینه کرده باشم همان عرضه اوپن سورس برنامه تاریخ شمسی برای ویندوز یعنی Datefa بوده و همچنین به علت علاقه ام به برنامه Darkpad، قصد دارم اون رو هم ادامه بدم و به صورت اوپن سورس منتشر کنم. برای کسایی که تازه با این وبلاگ آشنا شدن یا احیاناً نمیدونن من در مورد چی صحبت می کنم بهتره این صفحه و این صفحه را مطالعه کنند و سپس ادامه این مطلب را بخوانند.

Datefa

نرم افزاریست کم حجم، رایگان و کدباز برای سیستم عامل ویندوز که قادر است تاریخ میلادی جاری سیستم شما را به تاریخ معادل شمسی تبدیل کند. این برنامه راه حلی است مطمئن و آسان برای داشتن قابلیت تاریخ شمسی در سیستم عامل ویندوز مایکروسافت که دارای قابلیت های دیگری همچون تنظیمات، مبدل تاریخ، زنگ هشدار است و با استفاده از محیط قدرتمند دلفی 7 تولید شده است. عملکرد این برنامه بدین صورت است که پس از اجرا در حافظه سیستم شما مقیم می شود و یک آیکن جدید به قسمت System Tray (در کنار ساعت ویندوز) اضافه می کند. شما از این پس می توانید با نگه داشتن ماوس روی این آیکن و یا دابل کلیک کردن روی آن، تاریخ شمسی معادل تاریخ سیستم خود را مشاهده کنید. برای دسترسی به دیگر ویژگی های این برنامه باید روی همین آیکن کلیک راست نمایید تا به منوی Datefa دسترسی پیدا کنید. Datefa بر اساس کلاس تاریخ شمسی TFaDate که توسط دوست عزیزم آقای سالار خلیل زاده نوشته شده، ایجاد و توسعه داده شده است. با این امید که برای کاربران ایرانی سیستم عامل ویندوز مفید واقع گردد.

Datefa با مجوز اوپن سورس GPL 2.0 ارائه می شود. برای توسعه آن احتیاج به Borland Delphi 7 و کامپوننت های JVCL خواهید داشت. برای اطلاعات بیشتر می توانید این مطلب را مطالعه کنید و یا سئوالات خود را در قسمت نظرات همین مطلب ارسال نمایید

دریافت نسخه آزمایشی 2.0.3 | دریافت سورس کد

Darkpad

دارک پد ویرایشگر متنی است قابل حمل (=Portable) که پس از اجرا، کل صفحه کاری شما را پوشش می دهد ( به صورت Fullscreen) تا بتوانید آزادانه روی آن تایپ کنید و به جز نوشتن به هیچ چیز دیگری فکر نکنید. در حقیقت دارک پد کمک می کند تا روی متن خود تمرکز بیشتری داشته باشید. در دارک پد بر خلاف ویرایشگرهای متن دیگر همچون Notepad ویندوز، هیچ نوار ابزار یا منویی برای اجرای دستورات ویرایشی بر روی متن مورد نظر خود ندارید. تمام دستورات را بایستی بوسیله کلیدهای میانبر (Shortcut Keys) صادر کنید. با دارک پد می توانید متون ساده خود را باز کنید، ویرایش کنید و در نهایت تغییرات را ذخیره نمایید. توجه داشته باشید که دارک پد نیازی به نصب ندارد و فقط باید فایل اجرایی آن را باز نمایید.

علاوه بر حل شدن مشکلات نسخه ی قبلی Darkpad، این نسخه به صورت اوپن سورس و تحت مجوز GPL نسخه 2 منتشر شده است. این تصمیم را گرفتم تا هرکس بتواند بر اساس نیازش دارک پد را سفارشی کند. فقط یادتان باشد که باید نسخه های تغییر داده شده را نیز به صورت اوپن سورس ارائه کنید. دارک پد نیز همچون Datefa با استفاده از دلفی 7 تولید شده و برای توسعه آن از کامپوننت های JVCL استفاده کرده ام.

کلیدهای میانبر در Darkpad :

F1 : تنظیمات / راهنما / درباره برنامه | Ctrl+O: باز کردن فایل متنی |Ctrl+A: انتخاب کل متن

Ctrl+S: ذخیره کردن فایل | Ctrl+D: درج تاریخ | Ctrl++: افزایش اندازه فونت

Ctrl+-: کاهش اندازه فونت | Ctrl+T: انتخاب نوع قلم | Ctrl+F: پیدا کردن متن (جستجو)
Ctrl+R: جایگزینی متن | Ctrl+U: تبدیل حروف کوچک به بزگ در متن انتخابی
Ctrl+L: تبدیل حروف بزرگ به کوچک در متن انتخابی
Ctrl+Q: خارج شدن از برنامه;

دریافت نسخه آزمایشی 0.5.12 | دریافت سورس کد

توضیح : لینک های دانلود به صورت غیر مستقیم و در سایت Box.net قابل دریافت هستند.

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :





باز کردن فرمت های مختلف با ATViewer در دلفی

29 08 2008

برای برنامه نویسان دلفی ATViewer نام کامپوننتی است برای محیط دلفی که با استفاده از آن می توانید به برنامه خود قابلیت پیش نمایش انواع فایل ها با فرمت های مختلف را بدهید. این کامپوننت قابلیت “ویرایش” فایل را به شما نمی دهد اما راهکاری برای نمایش انواع فایل های متنی، باینری، مالتی مدیا، تصاویر و صفخات وب به شما ارائه می دهد. با استفاده از این کامپوننت می توانید برنامه ای بنویسید که اکثر فایل های معمول را برای کاربر باز کند. برنامه های معروفی همچون UniversalViewer، UltraExplorer و FreeCommander از این کامپوننت برای نمایش انواع فایل ها استفاده می کنند.

فرمت هایی که این کامپوننت پشتیبانی می کند :

  • فایل های متنی : انواع فایل های متنی با فرمت TXT و RTF و پشتیبانی از یونیکد و UTF-8
  • انواع تصاویر : فرمت های معروف تصاویر : BMP, JPG, GIF, PNG, WMF و غیره.
  • مالتی مدیا : تمامی فرمت هایی که توسط Windows Media Player پشتیبانی می شوند از جمله : AVI, MPEG, MP3 و غیره. این فایل ها توسط اکتیو ایکس Windows Media Player پخش می شوند.
  • صفحات وب : تمامی فرمت هایی که توسط برنامه Internet Explorer باز می شوند : HTML و غیره. این فرمت ها توسط کنترل Browser دلفی که از مرورگر پیش فرض ویندوز استفاده می کند، باز می شوند.
  • پلاگین ها : فایل هایی که توسط پلاگین های Total Commander Lister پشتیبانی می شوند (wlx)

این کامپوننت کاملاً آزاد و تحت مجوز MPL 1.1 منتشر شده است، پس به رایگان آن را دریافت کنید و از آن لذت ببرید.

ATViewer را دریافت کنید!

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :