Microsoft Consumer Channels and Central Marketing Group

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Feature: Reprint Outstanding Transactions Report © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Co- location Mass Market Managed Hosting ISV Hosting.
Windows 7 Training Microsoft Confidential. Windows ® 7 Compatibility Version Checking.
Feature: Purchase Order Prepayments II © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: OLE Notes Migration Utility
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: SmartList Usability Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Session 1.
travel Suru Windows 7 Release NET 4.0 / Surface 2.0 Release Multi-Touch Controls Multi-Touch API Surface Multi-Touch Controls & API Surface.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Rico Mariani Architect Microsoft Corporation.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
WinHEC /22/2017 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Print Remaining Documents © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Connect with life Connect with life
NEXT: Overview – Sharing skills & code.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Document Attachment –Replace OLE Notes © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Ian Ellison-Taylor General Manager Microsoft Corporation PC27.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
demo Instance AInstance B Read “7” Write “8”

customer.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
Building Windows Runtime Components in C++ Harry Pierson Program Manager, Windows Runtime Experience Team Microsoft Corporation.
Microsoft Consumer Channels and Central Marketing Group
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
Feature: Suggested Item Enhancements – Analysis and Assignment © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and.
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
The CLR CoreCLRCoreCLR © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

MIX 09 4/17/2018 4:41 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Platform for Metro Style Apps
Возможности Excel 2010, о которых следует знать
Title of Presentation 11/22/2018 3:34 PM
Deep dive on app data roaming
Title of Presentation 12/2/2018 3:48 PM
MIX 09 12/8/2018 4:33 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
1/3/2019 1:21 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
1/14/2019 3:57 AM © 2004 Microsoft Corporation. All rights reserved.
28 days.
Build /23/2019 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Silverlight Debugging
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
WINDOWS AZURE A LAP AROUND PLATFORM THE Steve Marx
PENSACOLA ENERGY WORK PLAN OCTOBER 10, 2016
Title of Presentation 5/12/ :53 PM
Шитманов Дархан Қаражанұлы Тарих пәнінің
Build /20/2019 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Title of Presentation 5/24/2019 1:26 PM
5/24/2019 6:44 PM 1/8/18 Bell #10 In a world governed by the gods, is there any room for human will? Do human choices make a difference? EXPLAIN © 2007.
日本初公開!? Vista の新機能を実演 とっちゃん わんくま同盟 7/23/2019 9:09 AM
Title of Presentation 7/24/2019 8:53 PM
Bringing existing managed code into Metro style apps
Presentation transcript:

Microsoft Consumer Channels and Central Marketing Group 7/13/2019 Porting to Metro Sridhar Madhugiri Software Design Engineer Microsoft Corporation © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Agenda Metro SDK API Prepare for porting Win32 technologies Libraries 7/13/2019 Agenda Metro SDK API Prepare for porting Win32 technologies Mentions these are not in order of importance. Hint of Windows on ARM, but don’t add it as a bullet. Libraries Porting © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Metro SDK API

Metro SDK API WinRT API Win32 API COM Components New APIs Operation that can block implemented as asynchronous operation Win32 API Subset of Win32 API available in Metro Similar Win32 API may be part of Metro SDK InitializeCriticalSectionAndSpinCount -> InitializeCriticalSectionEx COM Components Some OS components available under Metro

Identifying Non Metro SDK API usage Documentation http://msdn.microsoft.com/library/windows/apps/br211369 Preprocessor define WINAPI_FAMILY=WINAPI_PARTITION_APP Add the define to C++ preprocessor settings in Projects settings Compiler stops after 100 errors so may not get full list API not available in Metro SDK Windows App Certification Kit tool Create an Appx package with app binaries Run resulting package through tool <Program Files>\Windows Kits\8.0\App Certification Kit\appcert.exe

Prepare for Porting

Get the desktop app ready for Porting Build with VS 11 Compile, test on Windows 8 desktop Desktop API usage Use alternate Win32 APIs available in Metro SDK Wrap API usage in abstractions

Asynchronous operations WinRT APIs are asynchronous Refactor existing code to consume asynchronous operations DO refactor code to deal with partial data DO keep UI responsive while asynchronous operations are in progress Convert long running operations to asynchronous Schedule long running work on thread pool DO return partial results as and when available Options Rewrite existing code Write a wrapper that invokes existing code on a thread pool thread

Isolate core logic Separate platform specific code into abstractions Refactor direct call to APIs to call an abstraction over the API Use existing abstraction in libraries if available Use Standard C++ libraries for core logic Refactor core logic to operate on buffers, containers, etc

Win32 technologies

UI User and GDI based UI DirectX UI Options for UI in Metro Rewrite Available in Metro Use DirectX template as starting point Template sets up the start up code required for Metro Options for UI in Metro XAML DirectX

MFC MFC not available under Metro Options in Metro Rewrite UI XAML DirectX Form based App Consider XAML databinding Utility classes Consider STL, CRT

Libraries

CRT Subset available in Metro APIs for concepts not available in Metro not available in CRT APIs available in Metro but not recommended File api ANSI char functions

CRT APIs not in Metro Multi-byte functions: mb* and _ismb* Process control: exec* and spawn functions Threading: beginthread* and endthread* Heap and stack functions: heapwalk, heapmin, resetstkoflw(), … Environment variable functions and globals putenv, getenv, _enviorn, … Console function, cprintf, cscanf, … Port functions, outp, inp, … Pipe functions: pipe, popen, pclose, …

ATL Subset available in Metro APIs available in metro DLL server COM objects (without IDispatch) CStringW ATL container classes CCriticalSection, CEvent, CMutex, CSemaphore, CMutexLock CComVariant CComSafeArray CComBSTR

Porting

Static Libs Consumption of WinRT in static libs C++/CX – supported WRL – supported Authoring WinRT component in static libs C++/CX – not supported WRL – partially supported Have to take explicit steps to make sure that component is part of the final binary WrlCreatorMapIncludePragma used to make sure that specific class is pulled in from static lib

Using existing code in Metro (or do I need to convert all my code to WinRT components) C++ Metro Apps can use existing static libs, DLLs and COM components DO make sure that the existing code is ported to use Metro SDK APIs Link to static libs or import library as usual Include binary components in APPX package, DLLs are app local Using COM components Use Reg-Free COM for activation Activation through new API - CoCreateInstanceFromAppx

Convert types to WinRT types DO change variable to WinRT type if It frequently crosses boundary AND Costly to convert between the two types String and Array as input parameters to WinRT API can be efficiently converted without copying StringRef, ArrayRef add a WinRT veneer using “borrow” semantics Container and Collections Requires copy to go from std::* to Platform::* std::* efficient compared to Platform::* Use std::* or Platform::* based on how often collection contents change vs how often they cross WinRT boundary

Strategies to create WinRT component Choose technology C++/CX, WRL, Your own implementation Wrapper Define interface and in the implementation delegate to existing C++ code after any type conversions Creates a WINRT veneer over your existing code Covert existing code Rewrite code to use WinRT types and concepts Have good reasons to go this route

Converting COM components to WinRT Choose the technology C++/CX, WRL, Your own implementation Component already written using ATL, may be easier to move to WRL Steps Create WinRT interfaces corresponding to the previous interfaces Port to one of the above technologies Generate WinMD (if using IDL, modify MDIL flags) Ship DLL and WinMD for others to consume the component

Technologies to use during porting Language and Libraries CRT and STL for utility functions and classes C++/CX and/or WRL to interact with WinRT See other talks for details about C++/CX and WRL UI XAML DirectX

Conclusion

Conclusion Metro SDK UI C++ Build, test, validate often 7/13/2019 Conclusion Metro SDK Work involved to move but not all throw away Lot of the business logic, core application logic is portable UI DirectX – easy Win32 – rewrite in C++ using Modern UI framework C++ Two way to interact with WinRT C++/CX, WRL Use familiar C++ concepts and types for parts that don’t directly interact with platfrom Build, test, validate often Use Release configuration © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Microsoft Consumer Channels and Central Marketing Group 7/13/2019 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.