ברור שזה תלוי באפליקציה.
השאלה היא איפה אתה עוצר - תוכנת ההתקנה צריכה לעשות
משהו
בוא נדייק. תוכנת ההתקנה צריכה להתקין את המוצר. יש הגדרה מדויקת (צריכה להיות הגדרה מדויקת) של "מה כולל מוצר". זה יכול להיות, למשל, בניית ספריות ייעודיות, העתקת קבצים מסוימים, רישום כל מיני דברים במערכת ההפעלה (שזה בעצם פניה ל-REGISTRY, אם מדובר ב-WINDOWS), וכן הלאה. עכשיו, את ההגדרה הזו אפשר לצמצם יותר, או להרחיב יותר, איש איש וטעמו. למשל, יכול להיות שכתבתי אפליקציה שחלק אינטגרלי בהתקנתה יהיה העתקת קבצים על בסיס קונפיגורציה. זה נכון במיוחד בהתקנות דרך הרשת - למשל, אם אתה מוריד את QUICKTIME אתה מתבקש לומר מה אתה רוצה (איזה FEATURE-ים), ובהתאם תוכנת ההתקנה מורידה את הקבצים המתאימים מהרשת, ומתקינה לך אותם. במצב כזה אפשר לעשות משהו מאוד בסיסי, ולומר למשתמש "טוב, עכשיו אתה יכול להוסיף עוד FEATURE-ים דרך מסך כך וכך, אם יש לך קשר לאינטרנט". אפשר מצד שני (וזה צד שני טוב, לדעתי) לשאול את המשתמש, עוד לפני שההתקנה וההורדה התחילו בכלל, מה הוא רוצה - ושיסמן. אני חושב שיש שתי קיצונויות פה - האחת היא לא לעשות כמעט כלום חוץ מלהעתיק קבצים (וזה בערך מה ש-WINZIP עושה), והשניה היא להכניס הכל הכל הכל לתוך מנוע ההתקנה (כמו ש-MSI מנסה). האידיאלי היה, לדעתי, האופציה השניה, אם היא הייתה
באמת מושלמת, ידידותית, וגמישה ברמה כזו שנותנת לך לוותר על קומפוננטות שלמות בלי להינזק, ומצד שני להוסיף את הקומפוננטות שלך בצורה חלקה וקלה. זה מנוע ההתקנה האולטימטיבי. אגב, רטנת למה אי אפשר להוסיף DIALOG-ים של MFC, או לפחות לייצר אותם בתוך IS כמו שאתה עושה אותם בקלות ב-MFC. יהיו הרבה אנשים שיקחו את השאלה שלך קדימה וישאלו למה אי אפשר לעשות אותם בקלות הרבה יותר גדולה כמו בדלפי או ב-VB (ובצדק!). גם כאן אני חושב שיש הרבה מקום לשיפור ב-IS, מבחינת הידידותיות ומבחינת הגמישות, ששתיהן לא מדהימות ב-IS.