DCSIMG
מדריך מקוצר ל - ClickOnce חלק 2 מתוך 3 - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

מדריך מקוצר ל - ClickOnce חלק 2 מתוך 3

בהמשך לפוסט הקודם, שדיבר על יצירת התקנה מסוג Click Once, נראה הפעם כיצד להשתמש ב - API כדי לממש מנגנון כזה לבד - כלומר להשתמש במנגנון המובנה של net ולייצר UI משלנו למנגנון.
 
 
הקוד שאכתוב כאן והדוגמאות יהיו ב - Console Application, אבל כמובן שבדרך כלל כשנרצה מנגנון משלנו ל - Click Once יהיה (בעיקר) כדי לממש UI לבד.
 
 
למעשה ה - API מחולק לשניים, הפעם הראשונה בה אנחנו מתקינים את התוכנה, והפעמים האחרות בהם אנחנו בודקים עידכונים, בפוסט זה נדבר על הפעם הראשונה, ובפוסט הבא נדבר על העידכונים.
 
הדוגמאות קוד מגיעות מה - MSDN (שם יש דוגמת קוד מלאה - עם טיפול בשגיאות וכדו' - פוסט מומלץ ביותר)
 
 
לאחר שנעשה publish, לאפליקציה שלנו (כפי שראינו בפוסט הקודם), נשתמש ב - API כדי לגרום להתקנה שלו.
 
נוכל לייצר אפלייקציה בה יהיה הקוד הבא:
 

static void Main(string[] args)

{

    string deployFile = @"file://[FOLDER]\WindowsFormsApplication2.application";

    Uri deploymentUri = new Uri(deployFile);

    var iphm = new InPlaceHostingManager(deploymentUri, false);

    iphm.GetManifestCompleted += iphm_GetManifestCompleted;

    iphm.GetManifestAsync();

    Console.ReadLine();

}

 
ראשית, נגדיר את ה - URI לקובץ עם סיומת ה - application. (שנוצר כתובצאה מה - publish שעשינו)
 
לאחר מכן נייצר מופע של המחלקה שיודעת להתקין ClickOnce, ונשלח לה כפרמטר את ה - URI וערך שאומר שמדובר גם באפליקציה שמוגדרת לעבוד כ - offline.
 
היות שכל העבודה עם המחלקה הזאת היא אסינכרונית, ראשית נרשם לאירוע של סיום הורדת הקובץ, ורק לאחר מכן נבקש את הקובץ (כמובן שנקרא ל - ReadLine כך שהתוכנית לא תסגר לפני שהכול יסתיים)
 
 
לאחר שקבלנו את הקובץ, נכתוב את הקוד הבא:
 

static void iphm_GetManifestCompleted(object sender, GetManifestCompletedEventArgs e)

{

    // Check for an error.

    if (e.Error != null)

    {

        // do ...

    }

    var iphm = (InPlaceHostingManager)sender;

    iphm.AssertApplicationRequirements(true);

    iphm.DownloadProgressChanged += iphm_DownloadProgressChanged;

    iphm.DownloadApplicationCompleted += iphm_DownloadApplicationCompleted;

    iphm.DownloadApplicationAsync();

}

המשתנה e מכיל הרבה מידע אודות ההתקנה (בדוגמא ב - MSDN, משתמשים במידע הזה הרבה (וכנראה גם בחיים האמיתיים))
 
חייבים להפעיל את פונקציית AssertApplicationRequirements כדי לוודא את דרישות הקדם (הערך true מוודא גם בדיקות הרשאות)
 
נרשם לאירועים של התקדמות ההורדה, וסיום ההורדה - ונתקין את התוכנה.
 
למעשה זהו פחות או יותר, כל מה שנשאר לנו זה לממש UI יפה וחמוד (אחרת ניתן פשוט להשתמש בזה של מייקרוסופט)
 
 
בפוסט הבא נראה כיצד נשתמש ב - API שלהם כדי לקבל עידכוני תוכנה.
פורסם: May 13 2012, 11:09 PM by Shlomo | with no comments
תגים:, ,
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 4 and 3 and type the answer here:


Enter the numbers above: