רכיבים

Mythical 'Application Vista'

Myths and misconceptions about evolution - Alex Gendler

Myths and misconceptions about evolution - Alex Gendler
Anonim

מקרה לדוגמה: Windows Vista ו"פער האפליקציות ".

לפי Evans Data Corporation (EDC) , פחות מ -10% מהמפתחים כותבים על מצבה הנוכחי של מיקרוסופט. הרוב (49%) עדיין כותבים עבור XP, בעוד שמספר קטן, אך גדל, (13%) מתמקדים בלינוקס. בינתיים, אינספור כלי התקשורת המרכזיים ממשיכים לפענח את המחסור ביישומי Vista חדשים. "זה מערכת ההפעלה שאף אחד לא רוצה", הם אומרים, ומפתחים "מגיבים בהתאם." כמובן, הם טועים. שוב. [המשך קריאה: הטוב ביותר שלנו Windows 10 טריקים, טיפים ו tweaks]

אתה רואה, אין דבר כזה יישום Vista. בדיוק כמו שאין דבר כזה יישום XP. או יישום Windows 2000. מפתחים שכותבים עבור Windows לעיתים נדירות מכוונים לגירסה מסוימת. במקום זאת, הם בוחרים מסגרת API מסוימת - לדוגמה, MFC / ATL או.Net - ומשם ממשיכים משם. בין אם היישום פועל כתוצאה מגירסת Windows נתונה תלוי בתוספי ה- API הספציפיים לגירסאות, אם בכלל, של היזם המפעיל בפרויקט שלהם.

עבור רוב סוגי היישומים, זהו מצב לא רלוונטי: הם משתמשים בגנרי API, המאפשרת להם לפעול בכל גירסת Windows התומכת במסגרת זו. וכיוון שמיקרוסופט עושה עבודה טובה של העברת מסגרות חדשות לפלטפורמות מערכת ההפעלה הישנות שלה, מפתחים מתמודדים רק לעתים רחוקות עם בחירה בין פונקציונליות עשירה של API או בסיס מותקן רחב (החריגים הבולטים הם מפתחי משחקי וידאו, שעבורם מינוף DirectX 10 פירושו להתחייב Vista).

אז כל Vista "הפער App" הטיעון הוא קצת איש קש. השאלה האמיתית צריכה להיות: מדוע לא מפתחים המפתחים את האיטרציות השונות של מסגרת ה- NET? כמו כל מי שעוקב אחר מפת הדרכים לפיתוח של מיקרוסופט יעיד, רוב האבולוציה המתקדמת של ה- API של החברה מתרחש בתוך.Net. למעשה, כאשר "מומחים" מדברים על משאבים פרוגרמטיים חדשים ב- Vista - Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), וכן הלאה - הם באמת מדברים על מסגרת 3.0. ומכיוון ש- NET 3.0 זמין בפלטפורמות ברמה נמוכה (כגון Windows XP), הוויכוח מתגלגל חזרה לשאלה של קבלה מקבילה בקרב מפתחים - ולמה הם (עד כה) נמנעו.

התשובה היא כפולה: ראשית, היזמים אינם אוהבים למקד לממשקי API שאינם זמינים באופן נרחב ברחבי הבסיס המותקן. למרות התמיכה האגרסיבית של מיקרוסופט בגירסאות ברמה נמוכה, עדיין יש הבדל גדול בין "זמין" ל "זמין לאחר הורדת 20MB פלוס של ספריות מורכבות שיש להם מותקן על פני חלקים שונים של המערכת שלך." העובדה היא כי.Net אינו הספינה כחלק מ- Windows XP, וזה אומר כי מפתחים צריכים לשכנע את המשתמשים להתקין תחילה את הגירסה הנדרשת של מסגרת.Net לפני שהם יכולים להתקין פיסת תוכנה - לא תמיד קל למכור, במיוחד בעולם נעול למטה של ​​הארגון IT.

כמו מערכת ההפעלה הראשונה הספינה עם מסוף NET. מותקן כברירת מחדל, Vista היתה אמורה לעודד פיתוח של יישומים NET 3.0. עם זאת, מאז הוא תומך גם מורשת Win32, COM, ATL, MFC, וירידה ברמת. יישומי מסגרת נטו, אין מחסור אמיתי של תוכניות Vista. למעשה, אלא אם כן יש לך רק את זה האחרונה ואת הגדול ביותר WPF / WCF מסגרת פונקציונליות, יש מעט כדי להניע אותך, את היזם, כדי להפוך את הקפיצה ל 3.0 נטו, או אפילו 2.0. בהנחה שאתה לא להיתקל מנגנון בקרת חשבון משתמש (UAC) מנגנון, שלך "מורשת" Windows היישום כנראה נראה ועובד נהדר תחת Vista כפי שהוא. אני יודע, כי זה היה המקרה שלי עם הקוד שלי: כמה tweaks כדי להתאים את UAC (בעיקר העברת כמה קבצים זמניים מן החדש להגן על ספריות מבנים) ואת היישומים והשירותים שלי היו פועל כמו champs תחת Vista - בדיוק כמו שהם עושים תחת Windows XP, Server 2003 ו- Windows 2000. מדוע לתקן אותו כאשר הוא לא נשבר?

הסיבה השנייה מפתחי יש shunned. נטו היא שזה איטי. פונקציות נפוצות רבות פשוט לקחת יותר תחת. נטו, מפתחים לאלץ לבחור בין תחכום ה- API וביצועים גלם. באופן לא מפתיע, רוב המפתחים בוחרים באפשרות השנייה, כפי שנאלצתי לעשות פעם כשגיליתי שמקביל ה- NET. של עוזר נתוני ביצועים (PDH) היה כמעט בלתי שמיש עבור הדגימה בזמן אמת של נתוני הביצועים של Windows. כתוצאה מכך, אני נאלץ לשמור על הזדקנות (בערך 1997) Visual Studio 6 בסיס קוד בזמן מחכה מיקרוסופט סוף סוף לייעל. נטו עד לנקודה שבה היא חלופה קיימא. זה סיפור ישן, הרבה יותר מדי נפוץ בקרב מפתחי חלונות.

השורה התחתונה: כאשר האנליסטים (ובעלי התקשורת שלהם) מחקים על היעדרם של "יישומי ויסטה", הם פשוט משלימים את הבורות שלהם.

אני מניח שזה Mac דבר: כל כך הרבה בני גילאי שלי כבר נתפס בשדה עיוות המציאות כי הרעיון של קישור בין פונקציונליות ה- API וגרסת מערכת ההפעלה הפך חלק מקובל של החוכמה המקובלת. זוהי טעות כנה, המשווה את הטלאים הארכאיים של אפל לתלות בגירסאות ל- API של מיקרוסופט, אך הרבה יותר גמישה.

יותר מדי פרי יעשה לך את זה.