دلفی

آیا دلفی هنوز هم انتخاب مناسبی برای توسعه یک نرم افزار است؟

Delphi یکی از موفق ترین ابزارهای توسعه نرم افزار برای ویندوز در دهه گذشته بوده است. پس از شکست ویژوال بیسیک 6 در مقابل دلفی 7 در سال 2002 و فراگیر شدن محیط توسعه شرکت بورلند در میان توسعه دهندگان ویندوز، مایکروسافت به فکر ساخت یک محیط توسعه مجتمع مناسب افتاد. در آن زمان دلفی دوران طلایی خود را می گذراند. دلفی 7 در اکثر شرکت های نرم افزاری دنیا و حتی در همین ایران خودمان به اولین انتخاب برای توسعه نرم افزارهای تحت ویندوز تبدیل شده بود. این محبوبیت با آمدن ویژوال استادیو 2003 هنوز هم ادامه داشت. مایکروسافت با ارائه دات نت فریم ورک 2.0 و ویژوال استادیو 2005 که به برنامه نویسان امکان توسعه نرم افزارهای تحت ویندوز و تحت وب را به بهترین شکل می داد توانست در این رقابت دلفی را پشت سر بگذارد.

ارائه دلفی 2005 و 2006 به ضعیف ترین شکل ممکن توسط شرکت بورلند، اکثر توسعه دهندگان دلفی را از آن نا امید کرد و به فکر مهاجرت به یک محیط توسعه دیگر مثل دات نت و جاوا ترغیب نمود. پس از آن شرکت بورلند توسعه دلفی را به یکی از شرکت های زیرمجموعه خود به نام CodeGear واگذار کرد. با ارائه نسخه 2007 توسط این شرکت روح تازه ای به پیکر نیمه جان دلفی دمیده شد و بسیاری از برنامه نویسان ویندوز را به استفاده از آن تشویق نمود. در سال 2008 بورلند شرکت CodeGear را به شرکت Embarcadero Technologies فروخت تا نسخه 2009 دلفی با نام Embarcadero Delphi 2009 به بازار وارد شود. نسخه 2009 موفق ترین انتشار دلفی پس از دلفی 7 بود. +

با خواندن این مقدمه نسبتاً طولانی و خلاصه ای از تاریخچه دلفی و با ارائه دلفی 2010 توسط شرکت Embarcadero این سئوال پش می آید که آیا هنوز هم دلفی محیط توسعه قابل اعتماد و مناسبی برای انجام پروژه های نرم افزاری هست یا خیر؟


ساده ترین جواب به این سئوال جواب «بله» است. نسخه 2010 دلفی انتخاب مناسبی برای توسعه نرم افزارهای تحت ویندوز است. این محیط زمان توسعه پروژه شما را کاهش می دهد و با ابزارها و کامپوننت های آماده ای که دارد تولید یک برنامه تحت ویندوز را برای هر برنامه نویسی آسان می کند. نسخه 2010 دلفی دارای خصوصیات جدید و ویژگی های مناسبی است. برنامه های دلفی بر خلاف برنامه های مبتنی بر دات نت و جاوا به هیچ پیش نیازی وابسته نیستند و خروجی دلفی یک فایل اجرایی stand-alone است که به مراتب سریع تر از خروجی های محیط های ویژوال استادیو و جاوا اجرا می شود.

دلفی 2010 از تمامی قابلیت های جدید ویندوز 7 مثل direct 2D، صفحه لمسی و اشاره ای پشتیبانی می کند. اکثر کامپوننت های VCL در این نسخه طوری تغییر کرده اند که با ویندوز 7 سازگاری کامل داشته باشند. Delphi Prism هم قابلیت نوشتن برنامه های مبتنی بر دات نت را به زبان دلفی به برنامه نویسان می دهد.

اما اینکه واقعاً دلفی 2010 می تواند انتخاب مناسبی برای شما باشید یا خیر، کاملاً بستگی به نوع پروژه و موقعیت شما دارد. به طور مثال اگر می خواهید یک نرم افزار مبتنی بر پایگاه داده ها تحت ویندوز و به صورت کلاینت/سرور بنویسید، شک نکنید که دلفی 2010 بهترین گزینه برای شماست. اما اگر می خواهید یک برنامه تحت وب که از وب سرویس هم استفاده می کند و ساختار پیچیده ای دارد تولید کنید، دلفی 2010 نمی تواند انتخاب خوبی باشد. در کل برای توسعه نرم افزارهای مبتنی بر Win32 دلفی می تواند بهترین انتخاب باشد. اما برای توسعه مبتنی بر دات نت یا وب نمی تواند انتخاب مناسبی باشد.

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

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

farasun.wordpress.com

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

farasun.wordpress.com

تبادل لینک نمی کنیم!

مقالات، برنامه نویسی، دلفی، دات نت

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

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

یک برنامه قابل حمل یا 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

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

SQL، کد باز، ابزارها، برنامه نویسی، دلفی، دات نت، سی شارپ

SQLite Wrapper برای دلفی 2009 و دات نت 2 و 3.5

برای انجام پروژه ای نیاز به استفاده از بانک اطلاعتی SQLite در دلفی 2009 و دات نت فریم ورک 2 دارم، همانطور که می دانید به صورت پیش فرض RAD Studio و دات نت فریم ورک کلاسی برای کار با SQLite ندارند. پس از کمی جستجو در وب سایت ها و همچنین پیشنهاداتی که در سایت رسمی SQLite داده شده (اینجا) بود یکسری Wrapper را مورد بررسی قرار دادم. برای دلفی 2009 کامپوننت RemObjects AnyDAC 2.0 راه حل خوبی است اما متاسفانه رایگان نیست. البته نسخه شخصی و رایگان DISQLite3 هم می تواند نیاز من را برطرف کند. اما در این میان با کلاس ساده و مناسبی برخورد کردم که هم رایگان است و هم ساده. برای دات نت فریم ورک من قصد دارم از این در پروژه ام استفاده کنم.

SQLite for Microsoft .NET framework and Delphi 2009

برای دلفی 2009

آقای Tim Anderson برای استفاده خودش Wrapper مناسب و ساده ای نوشته و آن را در اختیار عموم قرار داده است. این Wrapper شامل سه کلاس پایه است که اعمال درج, حذف، به روز رسانی و واکشی داده ها از یک دیتابیس SQLite را انجام می دهند. این Wrapper همچنین از تراکنش های بانک اطلاعاتی (Commit, RollBack) پشتیبانی می کند اما متاسفانه از قابلیت هایی مثل Full-text search پشتیبانی نمی کند. این کلاس ها را نمی توان در حالت طراحی (Design Time) استفاده نمود و بایستی برای استفاده از این Wrapper از کلاس های مورد نیاز خود نمونه سازی کنید. در واقع شما از دو کلاس TSQLiteDatabase و TSQLIteTable برای دستیابی به فایل دیتابیس و اعمال تغییرات در آن استفاده می کنید. نکته ای که باید در نظر داشته باشید این است که این Wrapper را نمی توانید با کامپوننت های دیگر همچون Dataset ارتباط دهید، در نتیجه نمی توانید از کامپوننت های DBAware مثل DBText استفاده کنید و یا داده ها را به یک DBGrid بایند کنید.

برای دریافت این Wrapper به این صفحه از سایت Tim Anderson مراجعه کنید. همراه با کلاس های فوق، یک برنامه نمونه ساده هم موجود است که نحوه ی استفاده از آن را به سادگی توضیح داده است.

برای دات نت فریم ورک 2 و 3.5

ADO.NET 2.0 Provider for SQLite دارای یک فایل اسمبلی است که شامل موتور دیتابیس SQLite و کلاس های ADO.NET مورد نیاز برای دسترسی و استفاده از SQLite می باشد. به سادگی فایل اسمبلی این Wrapper را به Referenceهای پروژه خود اضافه می کنید و از فضای نام System.Data.SQLite به کلاس های داخل آن دسترسی پیدا می کنید. اسمبلی دیگر این Wrapper به شما اجازه استفاده از LINQ به SQLite را می دهد. نحوه استفاده از کلاس های این Wrapper دقیقاً مشابه استفاده از کلاس های دیگر Data Providerها مانند OleDb و Sql است. این Wrapper از .NET Compact Framework نیز پیشتبانی می کند، پس می توانید از SQLite در برنامه های مبتنی بر ویندوز موبایل بهره ببرید.

این Wrapper را می توانید از اینجا دریافت کنید. در زیر مثالی از ایجاد یک جدول در یک فایل دیتابیس SQLite با استفاده از این Wrapper به زبان سی شارپ را مشاهده می کنید.

SQLiteConnection con = new SQLiteConnection("Provider=System.Data.SQLite;Data Source=C:\\data.db");
con.Open();
SQLiteCommand cmd = new SQLiteCommand(con);
cmd.CommandText = "CREATE TABLE farasun (post_id INT, title TEXT(150), post VARCHAR)";
cmd.ExecuteNonQuery();

فقط توجه داشته باشید که بایستی فضای نام System.Data.SQLite را using کرده باشید. اگر نیازی به توضیح بیشتر و مثالی واضح تر بود، در نظرات اعلام کنید.

به یاد داشته باشید که SQLite یکی از مناسب ترین راه حل ها برای ذخیره داده های محلی است. نرم افزارهای معروفی مثل Firefox و Google Gears از SQLite به صورت توکار (Built-in) استفاده می کنند.

farasun.wordpress.com

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

farasun.wordpress.com

مطالب مرتبط :

نرم افزار، اخبار، برنامه نویسی، دلفی

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

شرکت 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 خواندم بدست آورده ام. به محض آنکه خودم تجربه استفاده از این نسخه را پیدا کردم سعی می کنم مقاله کاملی در موردش بنویسم. فعلاً این نوشته را در حد یک خبر خلاصه داشته باشید.

مطالب مرتبط :