آموزش: چگونه یک سیستم آپدیت برای برنامه ی خودمان بسازیم؟

JavidX

Apadana Developer
سلام

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

«کپی برداری از این مطلب تنها با ذکر نام نویسنده و سایت اصلی نرم افزار آپادانا بلامانع است.»

قدم اول - آماده سازی سرور:
اولین کاری که باید انجام بدید اینه که یه هاست مطمئن و سالم بخرید یا از یک عدد مجانی استفاده کنید.
خب ، اول باید یه فایل Text باشه که شماره ی آخرین ورژن رو توی خودش ذخیره کنه. مثلا محتویاتش این باشه:


کد:
2.0.2.5
این نمونه ی یک ورژن استاندارده که از چهار عدد تشکیل شده. نمیخوام وارد جزئیات طرز ورژن گذاری روی برنامه ها بشم.
مثلا فرض کنید توی این مسیر این شکلی ذخیره بشه:


کد:
http://www.x.com/version.txt
با توجه به اینکه توی این مطلب ما سعی داریم به طور ساده آموزش بدیم، پس شما بهتره که آخرین فایل اجرایی (یا نصب) آخرین ورژن برنامه ی خودتون رو مثلا به اسم myapp.exe توی جای خاصی از سرور ذخیره کنید. مثلا در مسیر زیر:


کد:
http://www.x.com/myapp.exe
خب الان سرور شما آماده شده و قدم بعدی آماده سازی برنامه است.
 

JavidX

Apadana Developer
قدم دوم - آماده سازی برنامه و چک کردن آپدیت:
1. خب اولین کاری که باید برای آماده سازی برنامه انجام بشه اینه که اطلاعات کنونی برنامه رو توی متغیری ذخیره کنیم. پس ورژن کنونی رو به این شکل در رویداد On Show/Create فرم اصلی می نویسیم:


کد:
$CurrentVersion = "1.2.0.0"
2. حالا باید کاری کنیم برنامه به اینترنت وصل بشه و فایل آپدیت رو دانلود کنه و مشخصه که اولین کار پس از دانلود فایل حاوی اطلاعات آپدیت ، مقایسه ی محتویات اون با ورژن خود برنامه است.
پس اول دکمه ی آپدیت رو ایجاد کنید. با دستور FileDownload ابتدا فایل رو دانلود میکنیم. به این شکل:


کد:
FileDownload("http://www.x.com/update.txt","[src]update.txt")
به این صورت با اجرای کد بالا فایل آپدیت دانلود شده و به نام update.txt در مسیری که برنامه اجرا میشود ذخیره خواهد شد.
3. حالا باید فایل دانلود شده رو بخونیم. مثلا محتویاتش رو توی متغیر update به این شکل میریزیم:


کد:
$update = FileRead("[src]update.txt")
4. خب. ورژن کنونی رو داریم. آخرین ورژن رو هم داریم. حالا باید مقایسه کنیم. برای این کار از IF استفاده میکنیم.


کد:
If ($CurrentVersion = $update) then   Msg ("No new version") Else ***   End
خب تا اینجا اگر برنامه محتویات فایل دانلودی رو برابر با ورژن کنونی بدونه پیغام میده که ورژن جدید نیومده.
و اما به جای ستاره ها باید برنامه ای بنویسید که نرم افزارتون در صورت وجود آپدیت جدید کاری رو که میخواهید انجام بده.
 

JavidX

Apadana Developer
قدم سوم - آپدیت کردن برنامه:
نوبت به عکس العمل نسبت به مشاهده ی موجود بودن آپدیت میرسه.
دو راه دارید. یکی این که کار خودتون رو راحت کنید و کاربر رو به صفحه اصلی سایت و یا حتی لینک دانلود (که ثابت فرضش کردیم) هدایت کنید. راه دوم اینکه کاربر رو راحت کنید و کاری کنید که فایل به طور اتوماتیک توسط برنامتون دانلود و برای کاربر نصب بشه. در واقع در این قسمت آموزش کدهایی که براتون قرار داده میشه باید به جای ستاره های کد نویسی قسمت قبلی آموزش جایگزین بشن.

نمایش لینک خاص برای دانلود دستی:
فقط کافیه که آدرس سایتتون رو به شکل زیر وارد کنید تا صفحه اصلی باز بشه:


کد:
Run("http://www.x.com","",1)
دانلود اتوماتیک:
برای این کار لینک دانلود آخرین ورژن رو مثلا این شکلی فرض میکنیم:

کد:
http://www.x.com/myapp.exe
خب باید اول این فایل رو به این شکل دانلود کنیم و در مسیری ذخیره کنیم؛ مثلا مسیری که برنامه در اون وجود داره و با نام install.exe ذخیرش میکنیم:

کد:
FileDownload("http://www.x.com/myapp.exe","[src]install.exe")
حالا باید فایل دانلود شده رو اجرا کنیم:


کد:
Run("[src]install.exe","",1)
و در صورت لزوم از برنامه خارج بشیم تا کاربر راحت فایل جدید رو نصب کنه:

کد:
Exit
به همین راحتی
yes.gif

خسته نباشید شما الان یک سیستم آپدیت برای برنامه ی خودتون ساختین.
 

JavidX

Apadana Developer
قدم چهارم - نکات بهینه سازی برنامه:
در این قسمت آموزش قصد دارم نکاتی رو متذکر بشم که دونستنشون خالی از لطف نیست:

  • هنگ نکردن برنامه در هنگام دانلود: ممکنه برنامه شما تا اتمام دانلود هنگ کنه و بعد از دانلود دوباره راه بیفته. این مشکلیه که عموم دوستان دارن و توی آپادانا به سادگی قابل حل شدن هست. توجه کنید که شما به راحتی میتونید با استفاده از Thread ها فایل رو دانلود کنید. برای اطلاعات بیشتر به راهنمای برنامه مراجعه کنید.
  • استفاده نکردن از یک لینک ثابت: اگر نخواستید همیشه لینک دانلود ثابت باشه، باید توی فایل update.txt لینک دانلود رو از ورژن جدا کنید. برای این کار راه های مختلفی دارید، مثلا میتونید اول ورژن و بعد حرف | و در آخر لینک دانلود رو قرار بدید که در این صورت باید هنگام چک کردن برای ورژن جدید باید اول بار قسمت اول رو توی یک رشته ی جدا قرار بدید (با استفاده از دستور copy) و سپس مقایسه رو انجام بدید.
  • جایگزینی فایل جدید به جای فایل اجرایی کنونی بدون نیاز به نصب مجدد: برای حل این مورد باید از دستورات CMD کمک بگیرید. اول باید دستورات bat رو توی یه متغیر بذارید (به کمک br\ به خط بعدی متغیر برید و دستورات جدید رو وارد کنید) و بعد توی یه فایل با پسوند bat سیو کنید (با استفاده از دستور FileSave). میتونید توی اون فایل bat دستور بدید که خود فایل هم در نهایت حذف بشه. به هر حال بعد از اینکه فایل بت تولید شد توی آپادانا کاری کنید که بعد از دانلود فایل بت رو اجرا و فوری خارج بشه تا دستورات CMD کار خودشونو بکنن.
در همینجا آموزش ما به پایان میرسه. از توجهتون ممنونم.
موفق باشید
نویسنده : جاوید
«کپی برداری از این مطلب تنها با ذکر نام نویسنده و سایت اصلی نرم افزار آپادانا بلامانع است.»
 

جدیدترین ارسال ها

بالا