ภายใต้ประทุน Windows 8: คำถามและคำตอบจากสนามเพลาะ

  • Oct 21, 2023

ฉันได้สัมภาษณ์ผู้พัฒนาที่แยกส่วนบิลด์ภายในของ Microsoft Windows 8 Milestone 3 (M3) โดยหวังว่าจะได้สิ่งที่นักพัฒนาควรคาดหวังเมื่อทำการพอร์ตและเขียนแอปสำหรับ Windows 8 นี่คือสิ่งที่ทั้งสามคนต้องพูด

เจ้าหน้าที่ของ Microsoft ยังคงยืนกรานว่าพวกเขา วางแผนที่จะอยู่แม่เกี่ยวกับรายละเอียดเกี่ยวกับเรื่องราวของนักพัฒนา Windows 8 จนถึงกลางเดือนกันยายนที่บริษัทถือครอง สร้างการประชุม. แต่นั่นไม่ได้หมายความว่านักพัฒนาที่อยากรู้เกี่ยวกับอนาคตของ .Net และ Silverlight ต่างนั่งเฉยๆ โดยรอให้ทุกอย่างถูกเปิดเผย

ผู้พัฒนาหลายคนชั่งน้ำหนักในช่วงสองสามสัปดาห์ที่ผ่านมาด้วย คาดเดาได้ดีที่สุดว่า Microsoft กำลังประดิษฐ์อะไร ในด้านกรอบการพัฒนาของบ้าน Windows 8 ในขณะเดียวกัน ฉันได้สัมภาษณ์ผู้ที่แยกส่วนบิลด์ภายในของ Microsoft Windows 8 Milestone 3 (M3) ที่รั่วไหลออกมา ความหวังที่จะรวบรวมสิ่งที่นักพัฒนาคาดหวังเมื่อทำการพอร์ตและเขียนแอพสำหรับ Windows 8 ซึ่งคาดว่าจะออกสู่ตลาดใน 2012.

ดังที่เห็นได้จากอีเมลถามตอบที่ฉันได้ดำเนินการกับบุคคลเหล่านี้สามคนในสัปดาห์ที่ผ่านมา ไม่ใช่เรื่องง่ายที่จะบอกได้อย่างชัดเจนว่า Microsoft กำลังวางแผนอะไรจากบิตที่รั่วไหลเกี่ยวกับ ที่เรียกว่า

ไลบรารี UI ของ Windows 8 ของดาวพฤหัสบดี; ที่ กรอบงาน HTML "ดั้งเดิม" ที่จะอาศัยกลไกการเรนเดอร์ของ Internet Explorer; และ/หรือ อนาคตของ Common Language Runtime (CLR) ที่เป็นหัวใจสำคัญของ .Net Framework. แต่มีเบาะแสบางอย่าง

นักพัฒนาสามคนที่ฉันติดต่อคือ:

ไมเคิล บราวน์, Microsoft MVP ในการพัฒนาแอปพลิเคชันไคลเอนต์ และประธาน Kharasoft, Inc., บล็อกที่ http://azurecoding.net/blogs/brownieและทวีตที่ @บราวนี่พอยท์ส. (บราวน์กล่าวว่าแม้ว่าเขาจะเป็น Microsoft Most Valuable Professional แต่ "ไม่มีการให้ข้อมูลใด ๆ แก่ฉันผ่านโปรแกรม MVP มันถูกรวบรวมผ่านแหล่งข้อมูลสาธารณะอื่นๆ")

โฮเซ่ ฟาจาร์โด้นักพัฒนาอาวุโสที่เกี่ยวข้องกับ Silverlight "และสิ่งเจ๋งๆ อื่นๆ" ซึ่งเป็นบล็อกที่ http://advertboy.wordpress.comและทวีตที่ @josefajardo.

แจ็ค อูเคิลจา, สถาปนิกซอฟต์แวร์ที่ Device Logic (@ดีไวซ์ลอจิก) และทวีตที่ @JackUkleja

นี่คือคำถามและคำตอบของฉัน:

1. ฉันยังคงพยายามทำความเข้าใจกับ "ดาวพฤหัสบดี" ซึ่งเป็นเลเยอร์ที่คาดว่าจะให้นักพัฒนา .Net มีไลบรารี XAML โค้ดที่ได้รับการจัดการสำหรับการเขียนแอปพลิเคชัน Windows 8 คุณคิดว่าดาวพฤหัสบดีเป็นเพียงชื่อของ DirectUI ของ Win8 หรือไม่

สีน้ำตาล: เมื่อมองแวบแรก มันเป็นเรื่องง่ายที่จะรวมทั้งสอง (Jupiter และ DirectUI) เข้าด้วยกัน แต่หากเจาะลึกลงไปอีก ดูเหมือนว่าดาวพฤหัสบดีอาจเป็นสิ่งที่เรียกว่ารันไทม์ของ Windows DirectUI เป็นไลบรารีกราฟิกที่อยู่บนดาวพฤหัสบดี ในแง่ปัจจุบัน Windows Runtime ก็เหมือนกับ .NET CLR (รันไทม์ภาษาทั่วไป) และ Direct UI ก็เหมือนกับ WPF มันไม่ได้จบที่การเปรียบเทียบเช่นกัน DirectUI มีองค์ประกอบมากมายที่มีอยู่ใน WPF และ Silverlight

ฟาจาร์โด้: ไม่มีความสัมพันธ์โดยตรงระหว่างดาวพฤหัสบดีกับดาวพฤหัสบดีอย่างแน่นอน DirectUI. แม้แต่ในโค้ดที่เราบังเอิญพบว่ากล่าวถึง DirectUI ก็ไม่มีการเอ่ยถึงดาวพฤหัสบดี สิ่งที่ฉันรู้เกี่ยวกับเรื่องนี้ก็คือมีการอ้างอิงทั่วทั้งฐานโค้ดของ Microsoft UIFramework ลับที่ทำเครื่องหมาย UI ของมันอย่างเปิดเผยเป็น xml (โดยใช้ DUIXML ).

สิ่งที่เรารู้ตอนนี้ก็คือใน Windows 8 ดูเหมือนว่าจะมี API “Windows Runtime” ที่กำลังถูกสร้างขึ้นซึ่งมี เนมสเปซ DirectUI ที่มีโค้ดที่คล้ายกันมากกับที่พบใน WPF/Silverlight/WPF (เพิ่มเติมจาก ซิลเวอร์ไลท์) มันไม่ใช่โค้ดเดียวกันทุกประการ แต่เป็นโค้ดที่บางมาก ปรับโครงสร้างใหม่ และมีความคิดที่ดีผ่านอินเทอร์เฟซ สิ่งนี้ได้แทนที่ pre DirectUI “duixml + code” หรือไม่ หรือเวอร์ชันใหม่นี้จะเป็นส่วนขยายของสิ่งที่มีอยู่เสมอ + บิตที่ดีที่สุดของ WPF/SL/WP7 (ปรับโครงสร้างใหม่) หรือไม่

เราไม่รู้คำตอบสำหรับคำถามเหล่านั้น และเราไม่รู้ด้วยซ้ำว่า Build จะตอบคำถามเหล่านั้นหรือไม่! ฉันไม่สามารถพูดได้อย่างมั่นใจว่าดาวพฤหัสบดีคืออะไร (ขออภัย)

อุคเลจา: DirectUI น่าจะเป็นดาวพฤหัสบดีมากที่สุด แต่ก็เป็นไปได้ว่า DirectUI จะเป็นส่วนประกอบของเฟรมเวิร์กแอปพลิเคชันใหม่...ขอเรียกมันว่า "Windows Foundation" หลังจากสำรวจไปรอบ ๆ (ฉันพบว่า) DirectUI (ใน XP) ดูเหมือนจะเป็นไลบรารี C ++ ที่ค่อนข้างสำคัญซึ่งระบายสีส่วนควบคุม UI ลงบน "ผืนผ้าใบ" โดยตรงโดยใช้ GDI + API บอกเป็นนัยว่าสามารถโหลดการออกแบบ UI จาก XML ได้

ในทางกลับกัน DirectUI (ใน Windows 8) นั้นเป็นญาติใกล้ชิดกับ WPF/SL อย่างชัดเจน (API ที่คล้ายกันอย่างยิ่ง, ที่ใช้ XAML เป็นต้น) ดังนั้นในระดับทางเทคนิค API ทั้งสองจึงไม่มีความสัมพันธ์กัน แต่... พวกเขาเป็นทั้งลูกของ WinDiv และหลักฐานแสดงให้เห็นว่า DirectUI (Win8) กำลังถูกใช้แทน DirectU I (XP) นี่เป็นเรื่องที่น่าตื่นเต้นทีเดียว หมายความว่าในที่สุดทีม Windows ก็จะมีเครื่องมือในการนำ Windows UI ออกจากยุคหินในที่สุด! (เคยสงสัยบ้างไหมว่าเหตุใดกล่องโต้ตอบแบบอักษรจึงไม่เปลี่ยนแปลงเป็นเวลา 45 ปี)

2. หากฉันเป็นนักพัฒนา .Net/Silverlight เหตุใดฉันจึงควรสนใจ Jupiter มันจะมีความหมายต่อฉันอย่างไรในกรอบเวลา Win 8? สีน้ำตาล: ในฐานะนักพัฒนา .NET คุณให้ความสำคัญกับ Jupiter เนื่องจากมีผลกับโฮสต์ใหม่สำหรับแอปพลิเคชัน .NET บน Windows สิ่งที่น่าตื่นเต้นจริงๆ เกี่ยวกับเรื่องนี้ก็คือ Windows Runtime มีคุณสมบัติที่น่าสนใจบางอย่างที่ไม่มีอยู่ใน CLR ในปัจจุบัน กล่าวคือ ปรากฏว่า Jupiter อนุญาตให้แอปพลิเคชัน .NET ใช้ประโยชน์จากโค้ดเนทีฟได้อย่างง่ายดายราวกับว่าเป็นแอสเซมบลี .NET ความหมายก็คือ สิ่งที่เรารู้จักในฐานะเฟรมเวิร์ก .NET สามารถนำไปใช้ในภาษา เช่น C++ ที่กำหนดเป้าหมายเครื่องได้โดยตรง และยังคงใช้งานได้โดยแอปพลิเคชัน .NET ที่จริงแล้วดูเหมือนว่านี่คือสิ่งที่เกิดขึ้น ตัวอย่างเช่น DirectUI ดูเหมือนจะเป็นไลบรารีดั้งเดิม

ฟาจาร์โด้: ดูเหมือนว่าจะมี Windows API ใหม่ที่นักพัฒนาสามารถใช้เพื่อโต้ตอบกับ Windows (ฮาร์ดแวร์, บริการ, UI) ดูเหมือนว่าจะเรียกว่า WindowsRuntime (WindowsRT)

ในโลกของ windows ปัจจุบัน เราโต้ตอบกับ windows ผ่านทาง Win32 API ในโลกใหม่ดูเหมือนว่า API ใหม่คือ WinRT ดูเหมือนว่า API จะเปิดเผยต่อโลกที่มีการจัดการผ่านทาง ไฟล์ข้อมูลเมตาที่พบใน “System32\WinMetaData”

สิ่งสำคัญที่ควรทราบก็คือ API ใหม่นี้แชร์ฟีเจอร์/อินเทอร์เฟซที่คล้ายคลึงกันกับ WPF/Silverlight/WP7 ตามที่ฉันได้กล่าวไปแล้วข้างต้น ดูเหมือนว่าคุณกลุ่มคนได้นำ WPF/SL/WP7 ไปบางส่วนและปรับโครงสร้างใหม่ ให้ผล API ที่มีประสิทธิภาพและเป็นมิตรต่อนักพัฒนา ในหลาย ๆ กรณีคุณลดลงอย่างมาก ฟังก์ชั่น

ฉันได้ทำการวิเคราะห์เบื้องต้นเกี่ยวกับความแตกต่างของคุณสมบัติบางอย่างใน WPF / Silverlight / Windows Phone 7 Silverlight เมื่อเปรียบเทียบกับ Windows 8 WinRT/WinMD ตัวอย่างที่นี่ กำลังดูเหตุการณ์อินพุตในทั้งสาม (ระบบสัมผัส/ท่าทาง/คีย์บอร์ด/เมาส์/ปากกา ฯลฯ) ความแตกต่างใน API ในกรอบงาน UI ที่น่าสนใจนั้นค่อนข้างน่าสนใจ จริงๆ แล้วค่อนข้างเปิดหูเปิดตา..

อุคเลจา: Jupiter มีแนวทางคล้าย "XAML" สำหรับการสร้างแอป ในความเป็นจริง หลักฐานจนถึงขณะนี้บ่งชี้ว่า DirectUI API เป็นลูกพี่ลูกน้องที่ใกล้ชิดของ WPF/SL ดังนั้นผู้พัฒนา SL/WPF จะคุ้นเคยทันที สมมติว่าสุดท้ายแล้วการจัดส่งด้วย Win 8 หมายความว่าคุณมีตัวเลือกที่สามสำหรับการสร้างแอป ซึ่งอาจเป็นตัวเลือกที่ทำงานราบรื่นกว่าและผสานรวมเข้ากับฟีเจอร์ทั้งหมดของ Win 8 ได้เป็นอย่างดี

3. คุณคิดว่านักพัฒนา XNA ควร/จะสนใจดาวพฤหัสบดีหรือไม่ เพราะเหตุใด ทำไม/ทำไมไม่?

สีน้ำตาล: ฉันคิดว่าดาวพฤหัสบดีคือสิ่งที่สำคัญที่สุดที่เกิดขึ้นสำหรับนักพัฒนา .NET ทุกคน การมีแอปพลิเคชันส่วนใหญ่ของคุณ เฟรมเวิร์กที่รองรับ ซึ่งทำงานเป็นโค้ดเนทีฟจะช่วยเพิ่มประสิทธิภาพทั่วทั้งกระดาน คำถามคือเฟรมเวิร์กใดบ้างที่จะถูกแปลงเป็นเนทีฟโค้ด แล้วถ้าไม่ พวกมันจะเข้ากับระบบนิเวศใหม่ได้อย่างไร?

ฟาจาร์โด้: วันนี้ในโลกของ WP7 และ Silverlight เราสามารถผสม XNA กับ Silverlight ได้ แน่นอนว่าการสร้าง UI ที่ใช้แบบฟอร์มใน Silverlight บน XNA นั้นง่ายกว่าอย่างแน่นอน หน้าจอรวบรวมข้อมูล ตัวช่วยสร้าง ฯลฯ นี่คือสิ่งที่เรารู้จากบิตที่รั่วไหลของ Win8: มีบิตของ Windows Store ใน Win 8; การอ้างอิงถึงการอนุญาตให้เล่นเกมในร้านค้า และ XNA สามารถใช้ในการเขียนเกมได้. อุคเลจา: ขึ้นอยู่กับว่าการทำงานร่วมกันของ XNA (หรือแม้แต่ WPF/SL/D3D) จะได้รับการสนับสนุนโดย DirectUI ตั้งแต่วันแรกหรือไม่ ปัญหา "น่านฟ้า" เหล่านี้ส่งผลให้มีการบูรณาการแอป XNA/WPF/SL/D3D มานานแล้ว มันเป็นปัญหาที่ซับซ้อน และมันจะไม่ทำให้ฉันประหลาดใจหากพวกเขาไม่ได้จัดการมันใน V1 หากรองรับการทำงานร่วมกัน DirectUI จะเสนอวิธีการที่ยอดเยี่ยมในการสร้าง UI ในขณะที่ปล่อยให้ XNA เรนเดอร์ 3D จำนวนมาก (สถานการณ์นี้อยู่บนการ์ดที่ WPF/SL.vNext รองรับ ดังนั้นนั่นอาจมีอิทธิพลต่อสิ่งต่าง ๆ...) 4. คุณเชื่อหรือไม่ว่าแอพ Windows Phone 7 ที่เขียนด้วย Silverlight และ XNA จะทำงานบน Windows 8 โดยอัตโนมัติ ถ้าเป็นเช่นนั้นเหตุใดคุณจึงเชื่อสิ่งนี้? ถ้าไม่ทำไมจะไม่ได้?

สีน้ำตาล: มันยากที่จะพูด ลองนึกถึงข้อเท็จจริงที่ว่าแอปที่เขียนขึ้นสำหรับปลั๊กอิน Silverlight Web ไม่จำเป็นต้องทำงานโดยตรงใน Windows Phone 7 คุณต้องกำหนดเป้าหมายโดยตรง นอกจากนี้ เราอาจสันนิษฐานได้ว่าแอปที่คอมไพล์สำหรับ Intel จะต้องคอมไพล์ใหม่สำหรับ ARM (คล้ายกับวิธีที่แอปพลิเคชันที่กำหนดเป้าหมาย X64 จะไม่ทำงานบน Windows 32 บิต) กระบวนการนั้นเกี่ยวข้องมากน้อยเพียงใดขึ้นอยู่กับการเปลี่ยนแปลงของกรอบงาน

(มีต่อในหน้าถัดไป)

ดังนั้น.. Silverlight และ WPF มีอนาคตหรือไม่? ไปที่หน้าถัดไปเพื่อดูข้อมูลเพิ่มเติม...

สีน้ำตาล: (ต่อ): ฉันจินตนาการว่า Microsoft จะพยายามอย่างเต็มที่เพื่อทำให้สถานการณ์นี้ง่ายขึ้น เช่น "เปลี่ยนเป้าหมายและคอมไพล์ใหม่" แต่ นักพัฒนาจะต้องใช้ประโยชน์จากรูปแบบใหม่ที่ประสบการณ์แท็บเล็ตและเดสก์ท็อปมอบให้ แอพ Vanilla Windows Phone อาจดูดีในรูปแบบแถบด้านข้างที่เราเห็นในการสาธิต แต่คุณต้องการมอบประสบการณ์ใหม่สำหรับการแสดงแบบเต็มหน้าจอและ 2/3 หน้าจอ คุณอาจต้องการเปลี่ยนอินเทอร์เฟซไทล์ของคุณเพื่อใช้ประโยชน์จากสิ่งที่มีอยู่ใน Windows 8

ฟาจาร์โด้: เช่นเดียวกับที่การเปลี่ยนแอป WP7 Silverlight ของคุณเป็น Silverlight แบบเต็มนั้นไม่ใช่เรื่องง่าย (ในทางกลับกัน) ก็ไม่ดูเหมือนเป็นเส้นทางที่ง่ายในการเปลี่ยนแอป WP7 Silverlight ของคุณเป็นแอปที่ใช้ WinMD (แน่นอนว่ายังเร็วเกินไปที่จะรู้เรื่องนี้ เรายังต้องดูว่าเครื่องมือใดบ้างที่ใช้ได้กับแอป Windows 8)

อย่างไรก็ตาม หากคุณเป็นนักพัฒนา WP7 ที่มีประสบการณ์และเข้าใจแอปเดสก์ท็อป Silverlight ก็มีโอกาสเป็นเช่นนั้น คุณได้สร้างแอป WP7 ของคุณในสถาปัตยกรรมแบบคอมโพเนนต์ซึ่งมีไลบรารีแยกต่างหากที่สามารถนำมาใช้ซ้ำได้ รหัส. ตัวอย่างเช่น คุณมีโค้ด c# ที่สำคัญซึ่งแยกออกเป็น dll ของตัวเองซึ่งคุณรู้ว่าใช้งานได้ใน WP7/Desktop Silverlight มีแนวโน้มว่าไลบรารีเดียวกันนี้จะทำงานในแอป Win8 WinMD ที่มีการจัดการใหม่ของคุณ

ท้ายที่สุดแล้ว มันสมเหตุสมผลไหมที่จะพอร์ตข้ามแอพขนาด 800 x 430 WP7 ไปยัง Win8 ฉันเดาว่าคุณจะต้องการสร้าง UI ที่กำหนดเองโดยสมบูรณ์เพื่อใช้ประโยชน์จากฟอร์มแฟคเตอร์ที่ใหญ่กว่าให้ดีที่สุด

อุคเลจา: ฉันตอบคำถามนี้ครบถ้วนในขณะที่พยายามตอบ ฉันเริ่มต้นด้วยการคิดว่าสิ่งนี้จะไม่ง่าย - Windows 8 จะต้องมีการใช้งาน WP7 API หรือวิธีที่ชาญฉลาดในการแปลงการโทรให้เทียบเท่ากับ "Windows Framework" ใหม่ แต่การดู API ของ "Windows Framework" อย่างรวดเร็วเผยให้เห็นความคล้ายคลึงที่ชัดเจนกับ WP7 API... ตัวอย่างเช่น ไมโครซอฟต์. Devices.* มีอยู่ในทั้งสองเครื่อง

เนื่องจาก Silverlight/XNA จะมีอยู่ใน Win8 อย่างชัดเจน... ปัญหาเดียวที่เหลืออยู่ที่ต้องแก้ไขคือสิ่งต่าง ๆ เช่นขนาดหน้าจอ ใช่แล้ว MS ต้องการ app store ที่เติมเต็มตั้งแต่วันที่ 1 และฉันค่อนข้างขายความตั้งใจที่จะเติมแอพ WP7 :) 5 นักพัฒนาที่ไม่เต็มใจ/ไม่สามารถเขียนแอปใน HTML5 + JavaScript + CSS จะต้องใช้ Jupiter หรือไม่? อย่างไร/ทำไม?

สีน้ำตาล: ฉันคิดว่าแม้แต่แอป HTML5 ก็ใช้ประโยชน์จากดาวพฤหัสบดีได้ ดังที่ฉันได้กล่าวไว้ในการวิเคราะห์เบื้องต้น HTML5 เป็นเพียงภาษามาร์กอัปอีกภาษาหนึ่งเช่น XAML ท้ายที่สุด ฉันคิดว่ามันจะถูกคอมไพล์เพื่อกำหนดเป้าหมายดาวพฤหัสบดี เช่นเดียวกับแอปพลิเคชัน WPF/Silverlight

ฟาจาร์โด้: ฉันไม่รู้จริงๆ.. ไม่มีสิ่งใดในบิตที่รั่วไหลออกมาชี้ไปที่ชื่อดาวพฤหัสบดี อย่างไรก็ตาม หาก WinRT และ WinMD เป็นวิธีสำหรับผู้ใช้ที่ได้รับการจัดการในการสร้างแอป Win8 นักพัฒนาซอฟต์แวร์จะต้องเรียนรู้ API ใหม่หากต้องการสร้าง Windows 8 API

6. คุณจะกำหนดแอป "ดื่มด่ำ" ในบริบทของ Windows 8 ได้อย่างไร คุณจะกำหนดแอปรุ่นเก่าในบริบทของ Windows 8 ได้อย่างไร

สีน้ำตาล: แอพที่ดื่มด่ำคือแอพที่ทำงานในเชลล์ใหม่ พวกเขามีไทล์แบบโต้ตอบและใช้ประโยชน์จากความสามารถเต็มรูปแบบของ Windows 8 แอพรุ่นเก่าสำหรับฉันคือแอพที่กำหนดเป้าหมายไปที่สภาพแวดล้อม Windows 7

ฟาจาร์โด้: มีเนมสเปซจำนวนมากใน WinMD (ข้อมูลเมตา) ที่มีคำว่า Immersive อยู่ในนั้น อินเทอร์เฟซภายในเนมสเปซที่สมจริงเหล่านี้มักจะเกี่ยวข้องกับ "หน้าต่างที่สมจริง" และทำสิ่งต่าง ๆ ใน "หน้าต่างที่สมจริง"

ในโลก Win32 ในการสร้างหน้าต่างจำเป็นต้องมีการเรียก “CreateWindowEx” ขณะนี้มีการเรียกใหม่ที่เราสามารถใช้เพื่อสร้างหน้าต่าง “ดื่มด่ำ” “CreateImmersiveWindow” และ สามารถพบได้ใน TwinUI.dll อุคเลจา: ฉันได้เห็นใน Immersive APIs ซึ่งอ้างอิงถึง "PlayTo", "Share" นั่นคือสิ่งต่าง ๆ ที่ดูเหมือนจะมีความสัมพันธ์กันทุกประการกับ 5 รายการทางด้านขวามือของเชลล์ Windows ใหม่ 7. RedHawk ซึ่งดูเหมือนจะเป็น CLR เวอร์ชันเพรียวบางก็มีอยู่ใน Windows 8 เช่นกัน ข้อสังเกตใด ๆ เกี่ยวกับการเปลี่ยนแปลง CLR อาจส่งผลกระทบต่อนักพัฒนา Windows 8 อย่างไร

สีน้ำตาล: slr100.dll หรือ System. ภาษา. รันไทม์ (SLR) คือ Redhawk (มีการอ้างอิงภายในไลบรารีถึง Redhawk)... มันเป็นขาสุดท้ายระหว่างการรันโค้ด .NET และ Jupiter พวกมันพลิกด้านเป็นเหรียญเดียวกัน ฟาจาร์โด้: อีกครั้งที่เร็วเกินไปในการสืบสวนของฉัน ฉันมุ่งเน้นไปที่ WinRT/WinMD และความเกี่ยวข้องกับ WPF/Silverlight/WP7 เท่านั้น อุคเลจา: ดูเหมือนหลีกเลี่ยงไม่ได้แล้วตอนนี้ SLR จะวางจำหน่ายใน Win8 มี WCL*.dll ประมาณ 10 ตัว (Windows Class Libraries?) ที่ต้องพึ่งพา SLR100.dll ไลบรารี WCL เหล่านั้นดูเหมือนจะมี API ใหม่ขนาดใหญ่นี้ (ฉันคิดว่ามันอาจจะเรียกว่า "Windows Foundation" เนื่องจากมีอยู่ในเนมสเปซเดียวที่เรียกว่านั้น) ดังนั้นฉันจึงไม่เห็นว่าพวกเขาสามารถจัดส่งได้อย่างไรหากไม่มี SLR ในตอนนี้ ไม่มีการหันหลังกลับอะไรเลย WCL dll เหล่านี้อาจจะสับสน...บางคนได้ตรวจสอบภายในแล้ว และ "การส่งออก" ทั้งหมด (เช่น รหัสที่อยู่ภายใน) มีชื่อว่า tx.mx โดยที่ T สันนิษฐานว่าหมายถึง Type และ M ย่อมาจาก Member หากนี่ไม่ใช่การทำให้งงงวย อาจเป็นผลข้างเคียงแปลกๆ จากวิธีการทำงานของ SLR มันเป็นโค้ดเนทิฟ 100% หรือไม่? ดูเหมือนจะไม่มีใครรู้แน่ชัด บางครั้งฉันรู้สึกว่า SLR นี้อยู่ระหว่างทั้งสอง

WinRT (Windows Runtime) เกี่ยวข้องกับ COM อย่างใกล้ชิด เป็นไปได้ที่ Windows Runtime จะเป็นชื่อทางการตลาดของ SLR ในลักษณะเดียวกับที่ .NET เป็นชื่อทางการตลาดของ CLR

8. WMD: ข้อมูลเมตาของ Windows นี่คืออะไร? และเหตุใดนักพัฒนาจึงควรสนใจเรื่องนี้?

สีน้ำตาล: COM สามารถให้ข้อมูลแบบไดนามิกเกี่ยวกับไลบรารีได้ ด้วยเหตุนี้ จึงเป็นไปได้ที่จะแคชข้อมูลนี้ในรูปแบบที่ใช้งานง่าย เมื่อคุณคอมไพล์แอสเซมบลี .NET จะมีข้อมูลเมตาที่ช่วยให้ CLR เข้าใจว่าแอสเซมบลีนั้นประกอบด้วยอะไรบ้าง และวิธีการเรียกใช้ สิ่งที่ WMD มอบให้คือข้อมูลเมตาที่ .NET คาดหวัง แต่แทนที่จะจัดเตรียมไว้สำหรับแอสเซมบลี .NET กลับจัดเตรียมให้กับไลบรารีดั้งเดิม โดยสรุป WMD บวกกับ Redhawk รวมกันเพื่อสร้างแพ็คเกจของโค้ดเนทีฟที่ดูเหมือนแอสเซมบลี .NET กับโค้ด .NET ของคุณ

ฟาจาร์โด้: สรุปแล้ว. สิ่งที่ฉันเชื่อว่า WinMD จะอยู่ที่นี่.

อุคเลจา: WMD แม้ว่าจะใช้รูปแบบข้อมูลเมตา .NET แต่ก็มี API ที่มีลักษณะคล้าย COM ที่น่าสงสัย สิ่งที่ฉันหมายถึงคือตัวอย่าง DirectUI มีอินเทอร์เฟซที่ดูแปลกตา...อินเทอร์เฟซ "ปกติ" ทุกอินเทอร์เฟซจะมาพร้อมกับอินเทอร์เฟซอื่น ๆ เช่น I*Statics I*แทนที่ ฯลฯ .NET เวอร์ชันใหม่ยังรู้เกี่ยวกับ WinRT และมีไลบรารีต่างๆ ที่จะทำงานร่วมกัน การออกแบบ API สำหรับ "Windows Foundation"/WinRT นั้นเหมือนกับ .NET มาก (เช่น การตั้งชื่อคลาส) ดังนั้นฉันจึงสับสนว่ามันเขียนด้วยภาษา C++ หรือ C# ถ้ามันเขียนด้วยภาษา C++ ฉันรู้สึกประหลาดใจที่มันดูสะอาดตาและเหมือน .NET ในทางกลับกัน ถ้ามันเขียนด้วยภาษา C#...แสดงว่าพวกเขาต้องมีคอมไพเลอร์ C# ถึง SLR (ไม่ว่ามันจะหมายถึงอะไรก็ตาม)

9. คำถาม 64,000 ดอลลาร์: Silverlight และ/หรือ WPF ใกล้จะถึงจุดสิ้นสุดหรือไม่ คุณทำอะไรได้บ้าง เมื่อพิจารณาจากสิ่งที่คุณได้เห็นจากรุ่นสำคัญของ Windows 8

สีน้ำตาล: ในอนาคตอาจจะไม่เรียกว่า Silverlight หรือ WPF แต่เห็นได้ชัดว่ามีอยู่ในไลบรารี DirectUI เราเคยเห็นแอปง่ายๆ ที่ใช้ Direct UI และ XAML จาก .NET เพื่อทำงานในสิ่งที่แสดงเป็น "หน้าต่างดาวพฤหัสบดี" WPF และ Silverlight มีชีวิตชีวามากใน Windows 8 แม้ว่าเราจะไม่มีหลักฐานนี้ แต่การวาดความคล้ายคลึงกันระหว่าง HTML และ XAML กับข้อสรุปเชิงตรรกะจะทำให้มีโอกาสสูงที่ XAML และ .NET จะยังคงอยู่ใน Windows 8

ฟาจาร์โด้: Silverlight/WPF มีอนาคตที่ยาวนานและสดใสรออยู่ข้างหน้า โดยเฉพาะอย่างยิ่งเมื่อคุณดูคุณสมบัติที่ตั้งไว้ใน Silverlight 5 คุณลักษณะของ Silverlight 5 มีขนาดใหญ่มาก แต่ก็มีโอกาสที่จะท้าทายการรับรู้ของผู้คนว่าเดสก์ท็อป/เว็บแอปพลิเคชันคืออะไร และการปรับปรุงใน WPF vNext การแก้ไขสิ่งต่าง ๆ เช่น "น่านฟ้า"... ที่มีศักยภาพในการจุดประกายความรักครั้งใหม่ให้กับแอปพลิเคชัน Windows บนเดสก์ท็อป 10: มีอะไรอีกบ้างที่ควรกล่าวถึงในการสนทนานี้?

ฟาจาร์โด้: คำถามหนึ่งที่คุณถามไม่สำเร็จและอาจสำคัญที่สุดคือคำถามเกี่ยวกับ Windows Application Store

ความสำเร็จของ WPF/Silverlight/WP7/ “Jupiter” จะเกิดขึ้นหาก App Store อนุญาต และ App Store อนุญาตให้ผู้ใช้ติดตั้ง/อัปเกรดประสบการณ์ที่เป็นมิตรหรือไม่ หาก App Store อนุญาตให้ติดตั้งได้ง่าย ซึ่งหมายความว่าพวกเขามีโซลูชันที่เป็นมิตรต่อผู้ใช้ที่ดี ให้ผู้ใช้ติดตั้ง/อัปเดต .Net framework/Silverlight framework จากนั้น WPF/Silverlight จะทำ เจริญรุ่งเรือง

คำถามอันดับหนึ่งของฉันที่กำลังมองหาคำตอบจาก Build คือวิธีที่ App Store จะติดตั้งแอป Silverlight/WPF ที่มีข้อกำหนดขั้นต่ำ ท้ายที่สุดแล้ว ทุกอย่างจะเกี่ยวกับ Windows Application Store และสิ่งที่อนุญาตให้สร้างแอปพลิเคชันได้