PDA

View Full Version : ساخت نرم افزار كه بخشي از اون update بشه



ariobarzan
پنج شنبه 17 آذر 1390, 07:19 صبح
با سلام
چطور ميشه نرم افزاري نوشت كه بخشي از اون update بشه
منظورم اينه كه مثلا در صورتي كه ورژن جديد نرم افزار رو بزاريم در مسير شبكه و نرم افزار ورژن جديد رو متوجه بشه بطور اتوماتيك قسمت هاي جديد تغيير كنند؟ منظورم هم فرم هاي جديده

لازم به توضيح هست كه من در اين قسمت ها مشكلي ندارم :
1- اينكه نرم افزار خودش متوجه بشه كه يك ورژن جديد روي شبكه هست
2- دانلود فايل از روي شبكه

پس لطفا در مورد سوال اصلي راهنمايي بفرماييد.
ممنون

BORHAN TEC
پنج شنبه 17 آذر 1390, 08:13 صبح
این یک نمونه کوچک هست که تا حدودی میتونه روش کار رو نشون بده:
http://www.programmer.blogsky.com/1388/03/08/post-51/

ariobarzan
پنج شنبه 17 آذر 1390, 08:40 صبح
با سلام
ممنون از راهنمايي شما ولي تا اون جايي كه من ديدم توي كد ي كه بود ظاهرا نام كاربر كلمه عبور آدرس سرور رو ميگيره و فايل رو از اون دانلود ميكنه و ميزاره روي كامپيوتر كاربر
همونطوري كه قبلا هم عرض كردم من با اين موارد مشكلي ندارم بلكه ميخوام ببينم آيا ميشه بخشي از نرم افزار متغير باشه ؟
منظورم اينه كه موقع اجرا ي برنامه اگه ورژن تغيير كرده بود بياد و فرم هاي تغيير كرده رو از يك مسير مشخص كه الزاما هم شبكه نيست به روز كنه
فرض كنيد در حالت خيلي خيلي ساده فرم اول كه از كاربر كلمه عبور و نام كاربري مي گيره ثابت باشه ولي فرم دوم از محل ديگه دريافت بشه

rezaei manesh
پنج شنبه 17 آذر 1390, 09:53 صبح
سلام
من فکر می کنم که شما باید بعد از اینکه متوجه شدی نسخه جدیدی در شبکه هست برنامه اصلی تو ببندی و برنامه دیگه ای که وظیفه اون حذف برنامه قبلی و جایگزین کردن برنامه جدید باشه رو اجرا کنی و اون این کار رو برات انجام بده و بعد مجداً برنامه اصلی رو اجرا کنه
که اینکار در ساده ترین حالت می تونه توسط یه زیر برنامه کنار فایل اصلی برنامه انجام بشه یا یه سرویس بنویسی یا از طریق دستورات داس این کار رو انجام بدی و...

vcldeveloper
پنج شنبه 17 آذر 1390, 10:39 صبح
ميخوام ببينم آيا ميشه بخشي از نرم افزار متغير باشه ؟
می تونید کل برنامه را در یک فایل EXE کامپایل کنید، و اون فایل رو هر بار آپدیت کنید، که این آپدیت رو میشه هم به صورت دانلود یک فایل EXE جدید انجام داد، هم Patch کردن فایل، به این صورت که با استفاده از ابزارهایی برنامه نویس نسخه جدید و نسخه قدیم فایل را با هم مقایسه میکنه و تفاوت شان را در یک فایل Patch ذخیره میکنه، و با اجرای این فایل Patch بر روی سیستم کاربر، فایل EXE قدیمی تبدیل به فایل جدید میشه. اینطوری چون فقط تفاوت دو فایل دانلود میشه، حجم دانلود کمتره.

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

هر کدوم از این روش ها قبلا در همین سایت بحث شدند.

ariobarzan
پنج شنبه 17 آذر 1390, 18:36 عصر
ممنون از توجه شما
در حال حاضر من همین کار رو انجام میدم منظورم اینه که پس از اینکه به کاربر از طریق چک کردن در برنامه پیغامی مبنی بر وجود ورژن جدید داده میشه در صورت تمایل کاربر نسخه جدید دانلود میشه و shortcut روی desktop هم به اون متصل میشه و کاربر هم باید دوباره برنامه رو اجرا کنه ولی من میخواستم ببینم بدون بستن برنامه میشه این کار رو انجام داد؟

vcldeveloper
پنج شنبه 17 آذر 1390, 19:50 عصر
ولی من میخواستم ببینم بدون بستن برنامه میشه این کار رو انجام داد؟
باید سوال تان را دقیق بپرسید که سریع تر به جواب برسید. اگر قرار باشه فایل EXE برنامه آپدیت بشه، خیر؛ باید برنامه بسته بشه، یا اینکه عمل کپی فایل موکول بشه به زمان شروع به کار مجدد ویندوز که برنامه هنوز اجرا نشده. اگر آپدیت مربوط به ماجول های جانبی برنامه باشه، در صورتی که اون ماجول به صورت دینامیک لود شده باشه، میشه با خارج کردن آن از حافظه، فایل مربوطه را آپدیت کرد، و مجددا آن را لود کرد.