PDA

View Full Version : سوال: طریقه آپدیت کردن برنامه؟! ClickOnce یا هر راه دیگه!



hanieh66
پنج شنبه 31 مرداد 1387, 19:29 عصر
چجوری می تونم برنامم رو طوری بسازم که بتونم آپدیتش کنم. می خوام روی سایت براش قطعه های کوچک آپدیت رو بذارم با حجم خیلی کمتر از برنامه اصلی و مشتری دانلود کنه و برنامه بروزرسانی بشه. شاید باید به فایل EXE تزریق کنم قطعه های آپدیت رو ولی نمی دونم چجوری!

جستجو هم که کردم در مورد ClickOnce پیدا کردم چیزی ولی نگفتن که از اولش باید چکار کنم و چی لازمه؟
اون فایلای آپدیتی که قراره نوشته بشه چجوری هستن و چجوری قراره برنامه من رو آپدیت کنن؟ از چه طریقی این کار رو انجام می دن؟

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

Zaparo
جمعه 01 شهریور 1387, 14:02 عصر
با ClickOnce زمانی که شما پروژه رو Build میکنید یسری مشخصات میخواد ادرس برنامه اصلی روی Host و اینا بعد هر بار که برنامه روی Host تغییر میکنه خودش میگه که Update برنامه موجوده میخوای بگیری یا نه
راه دیگش با کد نویسی که تو فضای نامی System.Deployment.Application باید دنبالش بگردی

مثال ندارم ولی در اولین فرصت دو مورد بالا رو با مثال توضیح میدم

mehdi.mousavi
جمعه 01 شهریور 1387, 15:04 عصر
چجوری می تونم برنامم رو طوری بسازم که بتونم آپدیتش کنم. می خوام روی سایت براش قطعه های کوچک آپدیت رو بذارم با حجم خیلی کمتر از برنامه اصلی و مشتری دانلود کنه و برنامه بروزرسانی بشه. شاید باید به فایل EXE تزریق کنم قطعه های آپدیت رو ولی نمی دونم چجوری!

جستجو هم که کردم در مورد ClickOnce پیدا کردم چیزی ولی نگفتن که از اولش باید چکار کنم و چی لازمه؟ اون فایلای آپدیتی که قراره نوشته بشه چجوری هستن و چجوری قراره برنامه من رو آپدیت کنن؟ از چه طریقی این کار رو انجام می دن؟ ClickOnce باید راه استاندارد برای اینکار باشه ولی آیا راههای دیگه ای هم هستن؟ خودتون اگه بخواین آپدیت کنین چیکار می کنین؟

سلام.
ClickOnce یکی از روشهای موجود هستش، که البته من اونو نمیپسندم.
من UAB یا همون Updater Application Block (http://msdn.microsoft.com/en-us/library/ms978574.aspx) رو ترجیح میدم.

hanieh66
جمعه 01 شهریور 1387, 17:32 عصر
من نمی دونم ولی مطالبش مال 2003 و 2005 هستش. البته شایدم اشتباه می کنم.
هنوزم نتونستم Microsoft patterns & practices: Enterprise Library for .NET Framework 2.0, January 2006 رو دانلود کنم!
روند کار رو هم متوجه نشدم. خودتون که تجربشو دارین می تونین راهنمایی کنین؟

mehdi.mousavi
جمعه 01 شهریور 1387, 21:04 عصر
من نمی دونم ولی مطالبش مال 2003 و 2005 هستش. البته شایدم اشتباه می کنم. هنوزم نتونستم Microsoft patterns & practices: Enterprise Library for .NET Framework 2.0, January 2006 رو دانلود کنم! روند کار رو هم متوجه نشدم. خودتون که تجربشو دارین می تونین راهنمایی کنین؟

سلام.

1. چرا 2006 رو میخواهید Download کنید؟ از (Ent. Lib 4 (May 2008 (http://msdn.microsoft.com/en-us/library/cc512464.aspx) استفاده کنید. من البته هیچ تجربه ای با این نسخه ندارم، و غیر از این نسخه، با بقیه نسخه ها کار کردم. اما قطعا ایرادهایی که در نسخه های پیش بوده، در این نسخه رفع شده.

2. در Document های مربوط به UAB همه چیز نوشته شده و چند تا مثال هم باهاش هست. در نتیجه، توضیح بیشتر رو ضروری نمیبینم.

پاورقی: نگاهی به این پروژه (http://www.codeplex.com/SmartLauncher) هم بندازید بدک نیست. شاید برای شرایط شما مناسب باشه.

ali_kashani
یک شنبه 03 شهریور 1387, 01:41 صبح
با سلام

من اينكار با One click انجام دادم

رو نام پروژه در Solution كليك راست كن و روي Publish كليك كن آدرس محلي كه ميخواي پروزه را قرار بدهي بده و Next را بزن كار خاصي نداره ، يك Setup هم ساخته مي شه در همان ادرس و كاربر همان Setup اجرا ميكنه و نرم افزار در سيستمش نصب ميشه در مراحل بعد كه تغييراتي دادي بر روي نام پروژه كليك راست كن propertis را كليك كن در قسمت Publish روي publish now كليك كن ورژن جديد به همان ادرس فرستاده مي شه و دفعه بعد كه كابر برنامه را اجرا بكنه به طور اتوماتيك ورژن اخر دانلود و اجرا ميشه
اگه سوالي داشتي بپرس

hanieh66
یک شنبه 03 شهریور 1387, 08:59 صبح
ممنون. اینجوری که گفتین خیلی ساده تر می تونم برم جلو.
آپدیتای این برنامه قراره روی سایت گذاشته بشن. الان با Wamp یک سرور روی سیستم خودم راه انداختم و مثلا این آدرس رو برای گذاشتن برنامه ایجاد کردم: http://localhost/myDeployments/test
اما وقتی که می زنم توی این آدرس publish کنه خطا می ده که :



Unable to create the Web site 'http://localhost/myDeployments/test/'. The components for communicating with FrontPage Server Extensions are not installed.
Publish failed.

باید چیکار کنم؟ IIS نصب کنم یا کار دیگه؟

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

ali_kashani
یک شنبه 03 شهریور 1387, 23:59 عصر
سلام

من خودم برنامم چون روي يك فايل Share روي شبكه قرار دادم نياز به نصب IIS نداشتم ولي شما با اين توضيحي كه داديد بايد IIS را نصب كنيد

اما در مورد حجم برنامه بايد بگم كه همان برنامه قبلي بروز ميشود و مشكلي با حجم برنامه نخواهيد داشت

راستي به اين پست هم يك نگاه بكن

http://barnamenevis.org/forum/showthread.php?t=114438&highlight=clickonce

hanieh66
دوشنبه 04 شهریور 1387, 08:06 صبح
من فعلا روی وب سرور پابلیشش نکردم و برای تست توی شبکه محلی share کردم.
سوالم اینه که اگه سیستمی preRequirement نیاز داشت مثلا دات نت فریمورک 3.5 و windows installer 3.1 که خودش الان داره می گه باید چیکار کنم؟
چجوری اون پیشنیازها رو در اختیار سیستمهای کلاینت قرار بدم؟ آیا باید مثلا فریمورک رو هم share کنم یه جایی تا بتونن دانلودش کنن و نصبش کنن یا کار دیگه ای باید بکنم؟

در ضمن windows installer هم همراه دات نت فریمورک هست؟ و همراه این نصب می شه؟

hanieh66
دوشنبه 04 شهریور 1387, 08:29 صبح
یه سوال دیگه!
من الان چند بار ورژن برنامه رو از توی Project properties بخش اطلاعات مربوط به اسمبلی تغییر دادم و بار اول که 1.0.0.0 بود کردمش 1.0.0.1 و 1.0.0.2 ولی هر بار که برنامه رو اجرا می کنم متوجه تغییر نمی شه و نمی فهمه که باید آپدیت بشه!

چه کار دیگه ای باید انجام بدم؟

ali_kashani
سه شنبه 05 شهریور 1387, 00:38 صبح
سلام

1- وقتي تغييرات ،در برنامت ميدي اول Build كن
2- بر روي برنامت در Solution كليك راست كن و Propertis انتخاب كن برو به قسمت Security و Enable ClickOnce Security Setting را تيك بزن
3- برو به قسمت Publish و به قسمت update و ُThe Aplication Shuld check for updatesرا تيك بزن و بعد Befor the apliction starts را تيك بزن و publish now را كليك كن


فكر كنم مشكلت بايد حل بشه باز اين كارها رابكن اگه حل نشد بگو يك دفعه خودم مراحلي كه گفتم را در يك پروژه چك كنم

hanieh66
چهارشنبه 27 شهریور 1387, 15:38 عصر
سلام

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

اما مشکل اینه که برای هر بروزرسانی کل برنامه رو دوباره دانلود می کنه در صورتی که مثلا فقط اگه یکجای برنامه یک حرف از "ب" به "ل" تغییر کنه بازم تمام برنامه رو مجددا دانلود می کنه و این خیلی بده مخصوصا در آینده که بخوام برنامه رو روی وب سرور بذارم و برنامه ای که مثلا 10 مگابایت شده برای یک کاربر dialup سخت دیگه.

چجوری می شه بهش بفهمونم یه جوری (یا اصلا می شه) که فقط قسمتایی که تغییر کرده رو بگیره و به برنامه اصلی تزریق کنه و نه همش رو. (مثل خیلی برنامه های دیگه)

خیلی مهمه این قضیه.لطفا اگه کسی اطلاعاتی داره بگه.
و اگرهم کلا با این تکنولوژی نمی شه و چنین امکانی نداره در اینصورت ایا راه دیگه ای هست؟؟؟؟؟؟
مثلا Updater Application Block (http://msdn.microsoft.com/en-us/library/ms978574.aspx) که یکی از کاربرا گفتن؟؟ چونکه روش clickonce راحت تر بود من سراغ این روش رفتم ولی اگر که با Updater Application Block می شه این مشکل رو حل کرد مطمئنابهم بگین تا برم و روی اون روش وقت بذارم.

با تشکر

mehdi.mousavi
پنج شنبه 08 مهر 1389, 13:27 عصر
سلام یه سوال مهم دارم، لطفا کمکم کنید اگر که با Updater Application Block می شه این مشکل رو حل کرد مطمئنابهم بگین تا برم و روی اون روش وقت بذارم. با تشکر

سلام.
بله، البته که با UAB این مشکل رفع خواهد شد. هنگام استفاده از UAB شما می تونید فقط فایلهایی رو که نیاز به Update کردن دارند، تعیین کنید و فقط اون فایلها توسط Client دریافت خواهند شد.

موفق باشید.

پاورقی: میدونم سوال قدیمی هستش، اما چون یکی از دوستان در پاسخ به سوال تازه مطرح شده مشابه (http://barnamenevis.org/forum/showthread.php?t=250177)، لینک به این تاپیک رو دادن، خواستم این تاپیک به نتیجه رسیده باشه و پرسشی در این مورد باقی نمونه.

haririan2
سه شنبه 13 مهر 1389, 13:32 عصر
دوستان یه راه به بنده معرفی کنید چون من exe نهایی رو یکبار با برنامه های خاصی کد میکنم که امنیت بیشتری داشته باشه فکر نمیکنم منطقی باشه که از روی سرور Update برداره