PDA

View Full Version : سامانه به روز رسانی



zman123456
پنج شنبه 20 فروردین 1388, 11:48 صبح
با سلام
اگه دوستان همت کنند و این تاپیک رو مرجع سامانه به روز رسانی قرار بدن ممنون میشم.
همانطور که همگان می دانند بحث پشتیبانی و ارتقاء ورژن یکی از بحث های مهم شرکت های کامپیوتری و فروشنگان نرم افزار ها می باشد.
حال می خواهم از تجربیات دوستان استفاده کرده و پس از بررسی و تحلیل تکنیکی به یک روش اصولی و منطقی برای update نرم افزار ها برسیم.
شاید بشه اینگونه دسته بندی کرد:
1- چه روشهایی برای این کار وجود دارد؟
2- بستر سازی در هنگام طراحی نرم افزار چگونه است؟
مثال: تکنیک های برنامه سازی و یا حتی متغیرهای خاص در کد و بانک.
3- بستر سازی پیاده سازی چگونه باید باشد؟ مثال: bpl یا exe یا dll و ...
4- چه امکاناتی نیاز دارد؟ مثال: internet یا پست cd و ...
از اینکه در این امر ما را یاری می نمایید متشکریم.

khazaie01
دوشنبه 24 اسفند 1388, 19:37 عصر
سلام دوستان
من هم به دنبال یک روش منطقی برای بروزرسانی نرم افزار هستم(از طریق اینترنت و بدون استفاده از DLL).
دوستان لطفا همکاری کنند تا این تاپیک به نتیجه برسد .
ممنوووووووووووون

vcldeveloper
دوشنبه 24 اسفند 1388, 23:30 عصر
(از طریق اینترنت و بدون استفاده از DLL)
چه ربطی به DLL داره؟
یک بار یکی سوالش اینه که چطور برنامه ایی بنویسه که راحتر آپدیت بشه؛ اون وقت بهش میگن سعی کنه برنامه را در DLLها یا BPLهای مختلف پخش کنه، تا برای هر آپدیتی مجبور نباشه کل برنامه را دریافت کنه.

یک بار یکی می پرسه که چطور میتونه برنامه خودش را آپدیت کنه؛ خب این ربطی به DLL نداره. شما یک فایلی را از اینترنت می گیرید، و هر چیزی که لازم هست را با آن آپدیت می کنید. اینجا سوال این هست که برنامه چطور از وجود آپدیت با خبر بشه؟ با چه شیوه ایی فایل را دریافت کنه؟ فایل دریافتی چه فرمتی داشته باشه؟ فایل دریافتی به چه شکلی تغییرات را روی برنامه نصب شده اعمال کنه؟

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

khazaie01
سه شنبه 25 اسفند 1388, 07:39 صبح
ممنووون دوست عزیز
DLL را گفتم زیرا در تاپیک دیگری هم همچین بحثی بود و دوستان اشاره کردند که برای بروزرسانی(آپدیت از طریق اینترنت) برنامه بهتر است از DLL استفاده کنید،حال فرض را بر این می گیریم که برنامه فقط یک فایل exe است و از DLL استفاده نمی کند.
شیوه ای که من مد نظر دارم به این شکل است :

درون برنامه ثابتی را برای ورژن برنامه مقدار دهی می کنیم (مثلا Ver1) ، بر روی هاست یک فایل متنی که در بر دارنده ورژن برنامه است و یک فایل اجرایی که همان نسخه جدید برنامه است قرار دارد.
بر نامه در هنگام آپدیت ابتدا فایل متنی را دانلود کرده و اگر ورژن فایل با ورژن برنامه یکی نبود شروع به دانلود فایل اجرایی از روی هاست می کند(فایل اجرایی روی هاست را همیشه با یک نام مثلا Update ذخیره می کنیم).
فایل اجرایی جدید را در کنار برنامه ذخیره کرده و برنامه فعلی (که دانلود را انجام داده است) می بندیم،قبل از بسته شدن برنامه فایل اجرایی جدید باید اجرا شود،در اولین اجرای برنامه جدید،فایل قبلی را حذف کرده و برنامه جدید را تغیر نام می دهیم...

اما راه حل بهتر چیست ؟!

Mahmood_M
سه شنبه 25 اسفند 1388, 07:53 صبح
به نظرم ميشه يك برنامه ي كوچيك به عنوان Updater در كنار برنامه ي اصلي قرار داد ، هر زمان نياز به آپديت بود برنامه ي Updater اجرا ميشه و فايل اصلي برنامه هم بسته ميشه ، Updater فايلهاي مربوط به Update رو دانلود مي كنه و بعد از دانلود فايلهاي مورد نياز ميشه يك BackUp هم از فايلهاي فعلي گرفت و بعد فايلهاي دانلود شده رو با فايلهاي فعلي جايگزين كرد و در نهايت هم فايل Updater رو بست و برنامه ي اصلي رو دوباره اجرا كرد ...
مي شه يك پارامتر خاص هم براي برنامه در نظر گرفت كه اگر مثلا برنامه با اون پارامتر اجرا شده بود يعني تازه آپديت شده و بتونه به كار هم پيغامي براي اطلاع از موفقيت آميز بودن آپديت نمايش بده ...

موفق باشيد ...

khazaie01
سه شنبه 25 اسفند 1388, 07:59 صبح
ممنووون دوست عزیز
ولی با این وجود باز هم همان سوال های قبلی بی جواب ماند.


اینجا سوال این هست که برنامه چطور از وجود آپدیت با خبر بشه؟ با چه شیوه ایی فایل را دریافت کنه؟ فایل دریافتی چه فرمتی داشته باشه؟ فایل دریافتی به چه شکلی تغییرات را روی برنامه نصب شده اعمال کنه؟

Mahmood_M
سه شنبه 25 اسفند 1388, 08:16 صبح
براي دريافت اطلاعات فايل ميشه از يك فايل XML يا اصلا يك فايل متني يا INI استفاده كرد ، براي چك كردن هم مي شه دكمه اي براي اون در نظر گرفت و چك كردن آپديت رو به كاربر واگذار كرد يا اينكه دوره زماني خاصي رو در نظر گرفت ، با ابزاري مثل idHTTP ابتدا فايل XML يا هر فايل ديگري كه شامل تغييرات و نسخه ي جديد برنامه هست دانلود ميشه ، اگر نسخه ي تعرفي شده در فايل متني از نسخه ي فعلي جديد تر بود يعني بايد آپديت انجام بشه ، با همون idHTTP ميشه فايلهاي مربوط به آپديت رو دانلود در يك Stream ذخيره كرد ، در پايان دانلود ، فايلها در ديسك ذخيره مي شن و فايل فعلي حذف ميشه و فايل جديد جايگزين ، در آخر هم فايل Updater بسته ميشه و فايل جديد هم اجرا ...

موفق باشيد ...

khazaie01
سه شنبه 25 اسفند 1388, 08:19 صبح
ممنوووووووووووون دوست عزیز
پس میشه همان روشی که فکر می کردم !!!
خیلی ممنووووووووووووووون

zman123456
سه شنبه 25 اسفند 1388, 09:31 صبح
خدا رو شکر این هم به نتیجه ای رسید بالاخره.
کاش دوستان می آمدند و روشهای دیگه ای رو هم پرزنت می کردند.

SAASTN
سه شنبه 25 اسفند 1388, 21:50 عصر
درون برنامه ثابتی را برای ورژن برنامه مقدار دهی می کنیم (مثلا Ver1)
خود ورژن فایل ها مناسب تر نیست؟ می تونه تنها شماره Build هم باشه که یونیکه.