טעימות לאחור..
איפה הכל התחיל?
היום טעמתי מה קורה כשתאגיד (מיקרוסופט במקרה שלנו) מחליט לא להשקיע משאבים בתאימות לאחור.
בימים האחרונים אני מגבש את ההחלטה של התחום אותו אני מייצג לגבי מעבר לויסטה. כתבתי בעבר פוסט בנושא טכנולוגיות מתקדמות בארגונים לא מתקדמים, והפוסט הזה הוא בן כלאיים של הקודם ושל פריקת תסכול קלה.
השלב הראשון במעבר, היה להריץ את כלי המיפוי של מיקרוסופט לטובת אנשי IT כדי לזהות מהן התוכנות שמותקנות באופן כללי על מחשבים של מפתחים בארגון. השלב השני כמובן, בדיקת הכלים האלו על עמדות מעבדה שהרמנו לצורך העניין.
הכלי הראשון בבדיקה - Visual Studio 2003.
לפני כמעט שנה פורסם בבלוג של פול וילסון פוסט שהרגיז אותי מעט, אבל לא הדאיג אותי יותר מדי... כותרת הפוסט: "ויסטה לא תתמוך בתכניתנים". הסיבה? מיקרוסופט הכריזה רשמית כי לא תתמוך בVisual Studio 2003 במערכת ההפעלה Vista. המון צעקות קמו בעקבות זה ברשת, וסקוט גוטרי (שאותו אני נוטה לצטט המון בבלוג שלי) הגיב בנושא ואמר:
The big technical challenge is with enabling scenarios like advanced debugging. Debuggers are incredibly invasive in a process, and so changes in how an OS handles memory layout can have big impacts on it. Vista did a lot of work in this release to tighten security and lock down process/memory usage - which is what is affecting both the VS debugger, as well as every other debugger out there. Since the VS debugger is particularly rich (multi-language, managed/native interop, COM + Jscript integration, etc) - it will need additional work to fully support all scenarios on Vista. That is also the reason we are releasing a special servicing release after VS 2005 SP1 specific to Vista - to make sure everything (and especially debugging and profiling) work in all scenarios. It is actually several man-months of work (we've had a team working on this for quite awhile). Note that the .NET 1.1 (and ASP.NET 1.1) is fully supported at runtime on Vista. VS 2003 will mostly work on Vista. What we are saying, though, is that there will be some scenarios where VS 2003 doesn't work (or work well) on Vista - hence the reason it isn't a supported scenario. Instead, we recommend using a VPC/VM image for VS 2003 development to ensure 100% compat. Hope this helps - even if the answer isn't entirely what we'd all like it to be, Scott
או במילים אחרות - בלה בלה בלה.. עזבו אותי באמא'שלכם, אבל קודם תבדקו אם זה באמת לא עובד לכם.
בחיפוש בגוגל הצלחתי למצוא את רשימת הבעיות הידועות שמיקרוסופט פרסמה בנוגע לVisual Studio 2003 על ויסטה . לפי הרשימה, מלבד בעית הרצה של SQL Server 2000 שכבר כמעט אינה רלוונטית עבורי (אם כי בהחלט יש יתרון בDebugging ב2003 מול SQL2000 שלא קיים מול SQL2005) ובעיה של Cursor נעלם, לא היה משהו שאמור להפריע לפרויקטים שלנו לרוץ.
התחלתי להפשיל שרוולים. קודם כל, הרצתי את תוכנית ההתקנה של אחת המערכות שלנו - כדי לבדוק אם בכלל התוצר הסופי רץ על ויסטה.
ההרצה הראשונית נפלה בגלל מחסור בהרשאות. אחרי שהרצתי אותו שנית כAdministrator (וכאן אני דווקא מאשים את עצמי, שכששמשתי כSolution Architect של הפרויקט הזה לא שמתי לב לElevation שנדרש שם בכתיבה ללוג בתוך תיקיה מוגנת במקום EventLog או IsolatedStorage... מאידך, גם את Visual Studio 2003 חייבים לפי המסמך של מיקרוסופט להריץ כAdministrator, ולכן.. אני מרגיש פחות אשם.. עם זאת, אם אחד מהמנהלים שלי קורא את הפוסט הזה במקרה, אני אישית הייתי מפטר את עצמי על זה.) הוא התחיל לעלות, ואז... האפליקציה שבקה. לא רץ. לא טוב. אין מנוס, צריכים להתקין VS2003 ולבדוק למה זה נופל (ומי שיצעק לי כאן WinDBG יקבל כאפה).
התקנתי את הVS2003 והרצתי את הפרויקט (שמשתמש בArcGIS 9.1 (שעובד רק עם .NET 1.1), בLahey/Fujitso Fortran 7.0 שגם כן לא עובד טוב ב2005 ובעוד Components מובהקים של 2003). הפרויקט המדובר עשה לנו בעיות במעבר ל2005 בגלל המון שימוש בקוד Native C/C++ שמופעל כP/Invoke, ושבגלל שיפורים שהוכנסו בC++/CLI ב2005 הוא לא נתמך.
מיד לאחר ההתקנה, אכן קפצה ההודעה של Program Compatibility Assistant שהודיעה לי שישנן בעיות תאימות ידועות, ושאלה אותי האם אני רוצה ללכת לאינטרנט לבדוק את זה. היית מצפה שויסטה שמתיימר לזהות מתי מחשב מחובר לרשת Intra ומתי לInter לא יציע הצעות כמו "Check for solutions online", אבל.. לא נהיה קטנוניים.
בחרתי להפעיל את הIDE כסדרו (כמובן "Run as Administrator").
ואכן... הSolution עלה. Ctrl+Shift+B מהיר ובOutput מופיע "Build: 30 succeeded, 0 failed, 0 skipped". שמח וטוב לבב, החלטתי לבדוק למה זה לא עבד בגרסת הDeployment.
והתשובה? ESRI כמובן... איזו תעופה COMית שאין לי כח כרגע לבחון לעומק, וכנראה אשרוף עליה את הבוקר של מחר. ואחרי הבוקר של מחר? עוד עשרות פרויקטים שצריכים לבדוק...