Tag Archives: Windows8

101 Questions and Answers About Windows 8

1. What tools and information do I need to develop Windows 8 Store applications?

a. Windows 8 – Download free version here

b. Visual Studio 2012 Express – Download free version here

c. Windows Phone – Download free version here

d. Windows Server 2012 – Download free version here (Optional)

e. Microsoft Virtual Academy – Register here

2. How to develop a Windows Phone 8 app in 30 days?

Register at http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200134727

3. For a Mac user, where can I get the free tools to build Windows Store apps for Windows 8?

Install Windows 8 and the dev tools on your Mac.

4. How to start planning now for a cloud-based backend service—user authentication, push notifications, and structured data?

Sign up for the Windows Azure 90-day Free Trial and receive 10 free Mobile Services running on shared instances.

5. Get the samples and get started!? Download the design assets—PSD assets include templates, common controls, and common components—and the sample apps pack.

6. Where to find Windows 8 Sessions and Keynotes — //BUILD Conference Site

7. Download the Bits — Windows Dev Center

8. PDF Manual — Windows Developer Preview Guide

9. Code Examples — MSDN “Metro Style” app examples (or get them all together in a Single ZIP)

10. What Devices will Run It? — List of Devices in Microsoft’s Test Lab

11. How to Install on My Machine without Losing Everything even if I don’t have Dual-Format DVDs or 8 GB Memory Sticks Handy — Installing Windows 8 Developer Preview as a Bootable VHD

12. What About Silver light? — It’s still here, with a diagram from Microsoft to prove it

13. Chat about Windows 8 or Cry for Help — MSDN Forums for Windows 8

14. What is WinRT? — Introduction to WinRT and WinRT demystified

15. Touch Input — Quickstart: Touch Input

16. Comfort Guide to Controls for Silverlight and WPF Developers — Controls List (for Xaml)

17. How do I Convert Silverlight to WinRT/Metro? — Blog Series on WinRT vs. Silverlight

18. But is Xaml REALLY There? — Yes, It Is

19. The New Architecture — Windows 8 WinRT Capabilities (Tip: Lean forward to make it look flat)

20. Platform and Tools Architecture — Windows 8 Platform and Tools (Tip: this time lean sideways)

21. Can I Borrow Someone’s Opinion? — Sure thing: Yours Truly, Michael Crump, Engadget, Wired

22. Create a bootable USB? jerrynixon.com

23. Setup boot to VHD? jerrynixon.com

24. Get an Azure account? http://aka.ms/w8cloud

25. Get Windows 8? http://aka.ms/w8download

26. Get Visual Studio 2012? http://aka.ms/w8tools

27. Get Windows Live SDK? http://aka.ms/w8live

28. Get Windows 8 Samples? http://aka.ms/w8samples

29. Get Multilingual Toolkit? http://aka.ms/w8language

30. Get Advertising SDK? http://aka.ms/w8ads

31. Get Design Assets? http://aka.ms/w8design

32. Register your App? http://aka.ms/w8reg

33. Join 30 to Launch? http://aka.ms/w8launch

34. View the online labs? http://aka.ms/w8vlabs

35. Does Windows 8 run Windows 7 software? Yes

36. Does Windows 8 support .Net 4.0? Yes

37. Does WinRT replace the .Net framework? No

38. Can users re-enable the start button in Windows 8? No

39. Can enterprises disable Microsoft Design Style on their Windows 8 desktops? No

40. Will Microsoft Design Style be part of the server version of Windows? Yes

41. Do developers need two apps in the Windows 8 store to support ARM? No

42. Can apps have a hidden URL in the Windows 8 store? No

43. What is the revenue split with Microsoft for the Store? 80/20

44. Do developers need a developer account in order publish an app? Yes

45. Can developers use payment systems other than Microsoft? Yes

46. Is HTML5 and JavaScript (JS) supported in Microsoft Design Style development? Yes

47. What is the HTML rendering engine in HTML-based Microsoft Design Style apps? IE10

48. Is IE10 Microsoft Design Style the same engine as IE10 desktop? Yes

49. Can desktop applications create live tiles? No

50. Can desktop applications use WinRT? Yes

51. Can desktop HTTP end point be accessed by Microsoft Design Style apps? No

52. Can Microsoft Design Style applications access a local SQL server? No

53. Do Microsoft Design Style applications have a local database solution? Yes, Sqlite

54. Can Microsoft Design Style applications access the internet while the pc is in standby? Yes

55. Can Microsoft Design Style applications access SkyDrive? Yes

56. Can Microsoft Design Style applications iterate through the user’s hard drive? No

57. Is there a Microsoft Design Style version of windows file explorer? No, see above

58. Can Microsoft Design Style applications detect other Microsoft Design Style apps? No

59. Can more than one Microsoft Design Style application run at one time? Yes, two

60. Can push notifications execute client code? No

61. Are there background tasks in Microsoft Design Style? Yes

62. Is the performance of HTML5 Microsoft Design Style applications comparable to XAML? Yes

63. Is native code (C++) supported in Microsoft Design Style development? Yes

64. Is Microsoft Design Style C different than traditional CPP? Yes

65. Should all desktop apps be migrate to Microsoft Design Style? No

66. Will the Windows 8 store support trials? Yes

67. Will the Windows 8 store support subscriptions? No

68. Will enterprise apps deliver through the Windows 8 store? No

69. Can enterprises disable the Windows 8 store? Yes

70. Can enterprises disable side-loading of apps? Yes

71. Can apps in the Windows 8 store access desktop apps & services? No

72. Can side-loaded apps access desktop apps & services? Yes

73. Can parents disable the Windows 8 store for kids? Yes

74. Can parents limit the hours in the day their kids can log in? Yes

75. Can parents limit the cumulative time in a day kids can use the PC? Yes

76. Can parents filter available web sites? Yes

77. Can parents disable games based on their rating? Yes

78. Can Visual Studio 2010 be used to build Microsoft Design Style apps? No

79. Can Visual Studio 2012 be used to build Windows 7 apps? Yes

80. Can Visual Studio 2010 access Team Foundation Server 2012? Yes

81. Can Visual Studio 2012 open 2010 projects without altering them? Yes

82. Can Visual Studio 2010 open 2012 projects? No

83. Does the .Net 4 async keyword work in WinRT? Yes

84. Does Windows 8 WinRT code run on Windows Phone 7? No

85. Does Windows Phone 7 code run on Windows 8? Yes, some

86. Does Windows Phone 8 code run on Windows 8? Yes, more

87. Does Windows 8 code run on Windows Phone 7? Yes, some

88. Does Windows 8 code run on Windows Phone 8? Yes, more

89. Can Microsoft Design Style applications roam settings/files across desktops? Yes

90. Can desktop applications roam settings, too? No

91. Can Microsoft Design Style applications roam settings/files to Windows Phone? No

92. Can Windows Phone roam settings to Windows 8? No

93. Does Windows 8 Microsoft Design Style support XNA game development? No

94. When was Windows 8 released? Friday, October 26, 2012.

95. Win+E – Explorer

96. Win+R – Run

97. Win+D – Desktop

98. Win+Plus or Win+Minus (no shift) – Magnifier/Zoom In and Out

99. Win+F – Find Files

100. Alt-Tab – Switch between Apps

101. Win-Tab – Switch between Full Screen Apps

    First Impressions of Intel Next Generation Ultrabook™ with Windows 8

    Few days ago I received an Ultrabook from Intel as part of winning the Round 1 of Windows 8 & Ultrabook™ App Innovation Contest as shown in figure 1.


    Fig 1: Ultrabook box

    Intel sent me an Ivy Bridge Ultrabook as shown in Figure 2 to review. This Ultrabook from Intel will never be a production hardware – This laptop will never be made. It’s meant to be a reference example for hardware makers to make Ultrabooks of their own. This particular device will not be made available for purchase. So It’s just a proof of concept from Intel. The only manufacturer branding on it is Intel’s Ultrabook TM, as you can see from Fig 2.


    Fig 2: Picture of Intel’s concept Ultrabook (Nice to see Intel logo on the cover)


    Fig 3: Nice touch screen  (Intel Logo on the Ultrabook)


    Fig 4: Ultrabook next to my existing laptops at home.

    Following are my initial observations of the new “on the road laptop.”

    Sensors that are present in the Ultrabook

    • 5 point multi-touch screen
    • Accelerometer
    • Magnetometer
    • Gyroscope
    • Ambient light sensor
    • GPS
    • NFC (Near Field Communication)
    • Bluetooth 4.0
    • WiFi (b/g/n)


    Fig 5: Sensors present in Ultrabook.

    Physical Factors First:
    • High Definition Web Cam
    • Slot for SDHC card
    • Slot for SIM Card (Yes, you can out the phone SIM card in this Ultrabook)
    • Two USB-3  slots on either side
    • Mini-HDMI connector
    • Headphone jack
    • Power Connector
    • Weighs 3.5 pounds (Very very  light compared to other laptops)
    • Great built-in audio
    Performance Factors:
    • Intel Core i7 CPU @ 2.0 GHz (Windows 8 shuts down in 2 seconds)
    • 180 GB Solid State Hard Drive
    • 4GB RAM

    The laptop came with Windows 8 Pro which I immediately activated through MSDN and the computer was ready to go with zero adware. There was also included a 16GB thumb drive with all the drivers and everything it takes to return the machine to factory conditions which was very nice. Responsiveness and speed is amazing. The computer itself feels substantial and has a very beautiful “rubberized” top. It just looks sharp, closed or open. I read on some posts about fan being loud, but the ultra book i received is as silent as thought.

    Hardware and Physical Form Factor

    The Ultrabook is really thin, light, powerful, fast and run Windows 8. The book weighs in at about 3.5 pounds. On the outside it’s got 1.5MP web-cam camera, a 5-point touch screen, a mini HDMI connector port, a pair of USB 3.0 ports on either side, an HD webcam,  a headphone jack, power connector slot and a 13.3” multi-touch display. Inside, it has Intel Core i7-3667U processor (4M cache, 2.00 GHZ) which is one of the new Ivy Bridge processors, 4 GB of DDR3L RAM, a 180 GB SSD hard drive, and the following specifications (to name just a few):

    • 802.11 b/g/n WiFi
    • Bluetooth
    • NFC
    • Multi-Touch Pad
    • Sensors
    Activating Windows 8:

    The machine came with the Windows 8 Pro (64 bit) pre-installed. Now that Windows 8 is released to manufacturing (RTM) and available to MSDN subscribers, I was able to successfully activate Windows 8 Pro through the license key obtained from my MSDN account .

    TouchScreen & Sensors:

    My prediction is that Touch screen is going to be the default feature like USB port in every laptop within a couple of years. A touch screen on a laptop? Why? What kind of madness is this? After using it for a while having a touch screen is a nice to have. I believe that in two to three years from now, all display devices will be touch enabled like monitors in office and laptops. Swipe in from the right to get the charms menu, in from the left to task switch and down from the top for menus and browser tabs. This is such a clean and clear extension of the “touch” experience that if I were in charge of the Windows hardware ecosystem I would require it. Pinch to zoom works as well, just as it should. I found myself using the touch screen more than I expected to. I don’t much like taking my hands off the keyboard, but once I do, the multi-touch screen is a lot more physically intuitive than a mouse, even though I have been using mice for over 20 years. It is, in any case, much more satisfying.

    Most new tablets and Ultrabooks running Windows 8 are going to have a slew of sensors. Here are the sensors and other advanced features included in this proof of concept device:

    • GPS (Location Sensors)
    • NFC
    • Multi-Touch (display and touchpad)
    • Accelerometer ( acceleration along 3 axes)
    • Compass (orientation and position)
    • Gyro meter (angular velocity)
    • Inclinometer (angle of incline)
    • Light Sensor (ambient lighting)
    • Orientation Sensor (combines accelerometer, compass, gyro meter to get more sensitive movement)
    • Simple Orientation (orientation of the device including face up or down)

    Detecting Sensors on an Ultrabook: There are a few ways in which to determine if a system supports the sensors, and if so, which sensors:

    • Computer Management/Device Manager: Find the Computer Management App on the Windows UI Start Menu (if it isn’t there you can view “All Apps” by right-clicking in the window and then click on the “All Apps” icon in the lower right-hand side of the window. Once the Device Manager is up, look for “Sensors” in the device tree as shown in Figure 6.


    Fig 6: Sensors and Proximity devices in Device Manager.

    • Sensor Diagnostic Tool: If you want to get finer detail regarding each sensor and possibly even have some control over some of the sensor parameters (for testing purposes) you can run the Sensor Diagnostic Tool – it is part of the Windows Driver Kit ( WDK). The Sensor Diagnostic tool uses the Sensor and Location API for data retrieval, event handling, report intervals, changing sensitivity, and property retrieval. The tool can also be used to write the sensor data to a CSV file. I should note, however that the Sensor Diagnostic Tool really exists to aid with the development of Windows Drivers; its true use is to help with the testing and optimization of Windows Drivers. This tool can be found in the following folder once you have installed the Windows Driver Kit: C:\Program Files (x86)\Windows Kits\8.0\Tools\x86\Sesnsordiagnotictool as shown in Figure 7.


    Fig 7: Sensor Diagnostic Tool (sensordiagnostictool.exe)

    Figure 8 shows the Sensor Diagnostic Tool that comes with the WDK talking to this Ivy Bridge Ultrabook’s sensors:


    Fig 8: Sensor Diagnostic Tool run on an Ivy Bridge Software Development Platform + USB Sensor Hub

    The following table shown in Figure 9 provides information about the new sensors that are recommended for the Ultrabook (and required for convertibles). It will be up to the OEMs which sensors are included for their specific models/usages.


    Fig 9: Sensor information table.


    Performance Speed & Software Development:

    This feels like a high performance machine in a small package, and an interesting middle ground between a slate and a laptop. 

    • Loads Visual Studio 2012 in about 2 seconds (amazing speed) and builds of average-sized projects are also just 6 seconds on my stopwatch. Not bad at all.
    • System shuts down in 3 seconds
    • How about a reboot of the system:
      • 3 second to the windows lock screen
      • another 2 seconds to login to windows. So in total 5 seconds you can logon to Windows8 from cold start. This a machine I can use to develop, test and write about Windows 8 code. All in all, this machine is clearly a contender.  More to come in a subsequent review once I’ve lived with it for a while.
    • Processor i7 at 2.49GHz – It’s a physical Dual Core with Hyper threading so that’s 4 logical processors as shown in Figure 10.


    Fig 10: Task manager showing 4 logical processor information


    I could develop real serious applications on an Ultrabook and i see it as the future of today’s laptops. It pains me to say it as I have been carrying around 10lb laptops in the name of power for over a decade. In the coming days, I will publish more information around how Windows 8 developers can use this type of device to develop Windows 8 Modern UI style apps.

    Disclosure of Material Connection: I received one or more of the products or services mentioned above for free in the hope that I would mention it on my blog. Regardless, I only recommend products or services I use personally and believe my readers will enjoy. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”

    My First Windows Store App : Emergency – Help Me

    You can download from Windows Store at http://apps.microsoft.com/webpdp/en-US/app/emergency-help-me/477b898a-6781-4b75-a439-44dee5904f14

    Have you ever thought what you would do, if an unforeseen events happens and you need to alert/contact someone immediately, but for whatever reason you can’t? An emergency might impose itself in various ways, someone is stalking/following you, traffic accidents, car trouble, walking at night, lost during hiking/camping trip, threat during a foreign visit, and many more. Odds are that you might have your mobile device with you but given the nature of the situation you might not have time or the means to communicate conventionally via a text message/call for help and to let someone know of your situation. Unlikely? Maybe. But what if…?

    Emergency – Help Me is the first go-to app in case of an emergency. The App generates a SOS distress signal to attract attention of others, simulates a police siren and lights, displays emergency phone numbers for all countries, displays your current location, stores ‘In Case of Emergency’ information, Flash Light and has Request and Respond to alpine emergency (mountain help) light signal. Additionally, this provides you a feature to communicate with a click of a button. You can tell your current location, contact details when in emergency, your medical conditions, blood group, allergies and other information useful during an emergency situation. With just a click of a button, you can send the information to a variety of apps like Facebook, Twitter, Email and any app on Windows Store that accepts text to share.

    You can take advantage of 8 sensational features as shown in Fig 0.1:

    • SOS Emergency Flasher
    • Police Emergency
    • International Emergency Phone Numbers
    • GPS Location Data
    • In Case of Emergency (ICE)
    • Flash Light
    • Alpine Distress Signal
    • Respond to Alpine Distress Signal


    Fig 0.1: Figure showing the main launch page of the application

    Windows features supported in the app:
    • Color Preference and ICE Data Roaming – Roaming personalization settings is key to feeling connected to your preferences and data. You don’t want to configure or choose preferences every time you use a new device. The ‘Help Me’ app creates a connected experience by allowing the user to configure ICE (In Case of Emergency) data and color preference once and use it everywhere, so you don’t have to re-configure the app each time you access it from a different system. When you change the color of the screen by using app bar, it is automatically saves to your preferences. So the next time you open the app and use any feature from any PC or device, it knows the color of your choice and your configured data. The app helps you connect to your data from anywhere by having a continuous experience as you transition from one device to another. image

    Fig 1: Choose color preference from App Bar. The choice of color is automatically remembered by the application. image 

    Fig 2: Enter information of the person to be contacted during emergency and your medical data. The data is automatically saved and synced to your personal account you used to login.

    • Semantic Zoom – Users can now easily navigate countries list within a single view. Semantic Zoom organizes countries alphabetically in a single view and presents the data using the letters of the alphabet. The user could then zoom in on a letter to see the countries associated with that letter as shown in figure 3. image image

    Fig 3: Semantic Zoom of International Emergency Numbers.

    • Share charm – You often come across a situation where you want to share your emergency situation, current location and ICE information with someone or use it in another app. The “Help Me” app exchanges data with other apps without having to navigate away to share data. The app helps you to share content with another app or service quickly and easily by using Windows Share charm. So you can continue using the Help Me app and still share your information.


    Fig 4: Sharing data with other apps using Share charm.

    • Search charm – Lets users search the app from anywhere in the system, including the app itself. Users will be able to use the Search charm to open a search pane where they can enter search queries and the app displays the search results with the following. 

    Suggestions: Start typing country name in the search pane, and you will get a list of suggestions as well. This displays a maximum of 5 countries in the suggestions list as shown in figure 5. image    Fig 5: Search pane automatically showing the Search suggestions as the user types in.

    Filter List: Country names and emergency numbers can be searched. Simply start typing in the search charm and you’ll see your list of countries or emergency numbers filter down to the one you are looking for as shown in figure 6. image image

    Fig 6: Search results displaying the countries that contain the string user searched for.

    • Secondary Tile – Help Me app enables you to pin a specific content or experience from an app to the start screen. Secondary tiles provide a direct link to the feature within the app. Pin any country or main features tile to the main screen and the app takes you directly to that feature shown in figure 7.


    Fig 7: Large Secondary Tiles (Shortcuts) to the app features.


    Fig 7.1: Small Secondary Tiles (Shortcuts) to the app features.

    • Help Page: Help information is included to explain the features of the app. Every feature (tile) has a help page include with it to explain the functionality in detail as shown in figure 8.

    image image

    Fig 8: Help information displayed on Help screen.

    • Settings – Help me app implements Settings contract so that you can access its settings like switching location access on or off from the Settings charm.


    Fig 9: Application Settings.

    • App Bars: The app bar contains contextual actions or commands for each screen in the app. Frequently used commands are kept near the right and the left edges so that they are easy to reach by hand as shown in figure 10.


    Fig 10: One of the features showing App Bar.

    All tiles (screens) in the app support Share and Search contracts of Windows Store apps. The app adjusts the screen display perfectly in landscape, portrait, filled and snapped view as shown in the following figures A-K.


    Fig A: Main Screen shown in portrait view.


    Fig B: Main Screen shown in snapped view.


    Fig C: Main Screen shown in filled view.


    Fig D: SOS Emergency Signal Screen shown in snapped view.


    Fig E: SOS Emergency Signal Screen shown in filled view.


    Fig F: Police Emergency Signal Screen shown in portrait view.


    Fig G: Police Emergency Signal Screen shown in snapped view.


    Fig H: Police Emergency Signal Screen shown in filled view.


    Fig I: International Emergency Numbers Screen shown in snapped view.


    Fig J: International Emergency Numbers Screen shown in portrait view.


    Fig K: International Emergency Numbers Screen shown in filled view.

    A distress signal is an internationally recognized means for obtaining help. Distress signals are commonly made by displaying a visually detected item or illumination, or making an audible sound, from a distance. In order for distress signaling to be the most effective, two parameters must be communicated:

    1. Alert or notification of a distress in progress
    2. Position or location of the party in distress.
    SOS Emergency Flasher:

    This is super easy to use. Just run it! A flashing emergency light with high distress signal sound for alerting people that you are in an emergency situation as shown in figure 11. A realistic light, in a variety of colors, that blinks and has attention grabbing pattern to make yourself visible in the dark, attract attention or warn others about an emergency or safety hazard.

    Simply run it to continuously display a flashing light and distress sound – perfect for use in traffic accidents, car trouble, running or walking at night, and more. Emergency Flasher is a feature dedicated to everyone who want to feel more secure any place, any time.

    * Intuitive and elegant UI design
    * Realistic screen display with flashing.
    * Distress sound to alert or attract attention of others.
    * Variety of color options to choose from App bar. Your choice of color is remembered by the device automatically. If you open the app on a new device, it displays the light with your preferred color automatically.
    * App bar to play or stop the sound.
    * Use Windows Share charm to share your location and ICE details with other people or apps.


    Fig 11: SOS Emergency Signal screen.

    Police Emergency:

    Is someone stalking you? Use this feature to alert others. Real high quality police beacon and blue/red strobe light blow up to full screen that will turn any vehicle (such as your own personal vehicle) into your very own emergency vehicle! This is a cool feature that continuously simulates a police siren and lights. The app bar displays the controls to play, pause or stop the sound

    * Realistic screen display with flashing.
    * Police Beacon sound to alert or attract attention of others.
    * App bar to play, pause or stop the sound.
    * Use Windows Share charm to share your location and ICE details with other people or apps.


    Fig 12: Police Beacon screen.

    International Emergency Phone Numbers:

    Travel the world with peace of mind. Ever been on vacation abroad or on a business trip and an emergency occurs, and you wonder what number to call? Ever wondered how to call the police? The firefighter? Or an ambulance? To be perfectly honest, most people are not aware of these and added to that not every country in the world has the same emergency numbers. The problem arises when you need something fast and in case of emergency.. Don’t forget, roaming internet can be very expensive in other countries. With this app, simply select the country you are in and with just one tap the app displays the emergency numbers for the country you are in. It is possible to call an emergency number right away, without going to menus using snapped view. It doesn’t use internet, so no roam costs! Hopefully this app makes your holiday a lot safer. Have fun!

    * Zooming functionality to easily navigate to the country that you are searching for.
    * Share emergency details with your friends and family members with just a button click.
    * No GPS or cell data network required.
    * Fast selection of which country you are in. Search by index or free search to quickly select the country. Each country is listed by its name and national flag.
    * No cell coverage? You can still call! It displays the emergency phone numbers from the country you select. Just read the emergency numbers from the app and make the call from a landline based phone.
    * Supports 237 countries (covers most of the world that support emergency telephone numbers).
    * Using Windows start screen, you can search for police, fire or medical emergency number of any country in this world and the app shows you the information directly with just a click.
    * Directly search for a country by typing in the Windows Search charm.


    Fig 13: International Emergency Numbers screen.

    GPS Location Data:

    Never get lost. Using this feature, you can let others know your current location with just a click. GPS Location uses the device GPS to show your position coordinates and current address in case of emergency. With just a press of a button, you can send your position details to any of your contacts using any Windows Store app that can share information. Your GPS location will be displayed on the screen in any view so that you can quickly provide you exact location.

    * Get GPS coordinates
    * See how accurate the GPS coordinates are
    * Send your position to a family member or friend through any Windows store app that shares information.
    * You can activate the Track Me feature and the app displays your current location coordinates, in real-time. You can stop the tracking feature when you want!
    * The application automatically detects your GPS coordinates [location]. These coordinates along with the information you entered into the In Case of Emergency tile of the application can be send with any Windows Store app that accepts text like Twitter, Facebook, Email and other social media services.


    Fig 14: GPS Location Data screen.

    In Case of Emergency (ICE):

    This screen provides all the information needed in case of emergency. You can add your own emergency contacts. This fantastic tile rolls so many features into one screen:

    * Store your Emergency contact Details like the person name to be contacted during emergency, phone number, Twitter ID, Facebook ID and email address of the person.
    * Store your allergies information
    * Store you prescriptions & important medical conditions
    * Record your insurance details (travel, car, home etc.) – making sure you have these details to hand at the right time.
    * Store your doctors contact details
    * Store your address in case someone needs it during emergency.
    * Use Windows Share charm to share your location and ICE details with other people or apps.


    Fig 15: ICE Information screen.

    Flash Light:

    Bright. Fast. Simple. The most elegant and functional flashlight tile. Flashlight fills the device screen with bright white light to illuminate your world when you find yourself in a dark spot or concert.

    * Full white screen.
    * Brightest Flashlight instantly ON.
    * Change flashlight color with just a click.
    * Choose from a variety of widely useful colors from App bar. Your choice of color is remembered by the device automatically.
    * Use Windows Share charm to share your location and ICE details with other people or apps.


    Fig 16: Flash Light screen.

    Alpine Distress Signal (Mountain Emergency Help):

    Alpine Request is a feature that uses the device screen to transmit alpine distress help light indicating mountain emergency. The entire process is controlled automatically. The only thing you need to do is to trigger the process.

    * Choose from a variety of commonly used colors to transmit light signal during daytime or night. Your choice of color is remembered by the device automatically.
    * Easy to use interface.
    * Share your location and ICE details with others.


    Fig 17: Alpine Distress Signal screen.

    Respond to Alpine Distress Signal:

    Alpine Response is a feature that uses the device screen to transmit response to an alpine distress signal indicating that you have received the Alpine Emergency Signal. The entire process is controlled automatically. The only thing you need to do is to trigger the process.

    * Choose from a variety of commonly used colors to transmit light signal during daytime or night. Your choice of color is remembered by the device automatically.
    * Easy to use interface
    * Share your location and ICE details with others
    * If the device has a light sensor, the app displays light in Red color if it is daytime and in bright white color if it is night.


    Fig 18: Respond to Alpine Distress Signal screen.

    While we hope that you never need this app, we would like to give you peace of mind. Our goal is that in case of an emergency or an unforeseen event, you are prepared and you can easily communicate your situation and current location to others.

    The creator of this application is under no circumstances liable for any direct, indirect, incidental, consequential or exemplary injury or damages resulting from the use of this application. Calling an emergency number without reason is forbidden in most countries.

    There will be a continued commitment from the developer to implement new features or solve problems you encounter! Just drop a comment on this blog.

    Privacy Policy

    Your privacy is very important to us. Accordingly, we have developed this Policy in order for you to understand how we collect, use, communicate and disclose and make use of personal information. The following outlines our privacy policy.

    • The application uses internet connection only to retrieve your location information upon request. Other than that, we do not use internet connection at all.
    • Before or at the time of collecting personal information, we will identify the purposes for which information is being collected.
    • We do not collect any personal information. Personal information is used solely with the objective of fulfilling those purposes specified by us like In Case of Emergency information, unless we obtain the consent of the individual concerned or as required by law.
    • The application only retain ICE information as long as necessary for the fulfillment of those purposes. ICE information is saved onto your device and is stored with your device Windows account. Other than displaying the ICE information in the app, we do not use your ICE data at all for any other purposes.
    • ICE Personal data should be relevant to the purposes for which it is to be used, and, to the extent necessary for those purposes, should be accurate, complete, and up-to-date.
    • We will protect personal information by reasonable security safeguards against loss or theft, as well as unauthorized access, disclosure, copying, use or modification.
    • We will make readily available to customers information about our policies and practices relating to the management of personal information.

    We are committed to conducting our business in accordance with these principles in order to ensure that the confidentiality of ICE information is protected and maintained.

    Windows8 Desktop Keyboard Shortcuts

    Keyboard Shortcut


    Windows + I

    Window Restart, Shutdown, Sleep, Taskbar Notification Icons like Network, Sound Control, Brightness, Notifications, Keyboard.



    Windows + X

    Menu for frequent Administrator Tasks

    Windows + 0

    Opens 10th application on taskbar with  Normal Privileges. You can use the following values for applications on Taskbar.

    1. 1st Application on taskbar of Classic Desktop View
    2. 2nd Application on taskbar of Classic Desktop View
    3. 3rd  Application on taskbar of Classic Desktop View
    4. 4th  Application on taskbar of Classic Desktop View
    5. 5th  Application on taskbar of Classic Desktop View
    6. 6th  Application on taskbar of Classic Desktop View
    7. 7th  Application on taskbar of Classic Desktop View
    8. 8th Application on taskbar of Classic Desktop View
    9. 9th  Application on taskbar of Classic Desktop View

    You can rearrange your applications on taskbar  according your choice and priority to take advantage of this shortcut.

    Windows + Ctrl + Shift + 0

    Opens 10th application on taskbar with  Elevated Privileges. You can use the following values for applications on Taskbar.

    1. 1st Application on taskbar of Classic Desktop View
    2. 2nd Application on taskbar of Classic Desktop View
    3. 3rd  Application on taskbar of Classic Desktop View
    4. 4th  Application on taskbar of Classic Desktop View
    5. 5th  Application on taskbar of Classic Desktop View
    6. 6th  Application on taskbar of Classic Desktop View
    7. 7th  Application on taskbar of Classic Desktop View
    8. 8th Application on taskbar of Classic Desktop View
    9. 9th  Application on taskbar of Classic Desktop View

    You can rearrange your applications on taskbar  according your choice and priority to take advantage of this shortcut.

    Windows + C

    This shortcut gives you view the Settings, Devices, Start, Share & Search. This is the same option that comes when you move the mouse to the extreme bottom right corner.

    Ctrl + Shift + Esc

    Task Manager


    Toggle between Modern Desktop & Legacy Desktop

    Windows + D

    Takes you to Legacy Windows Desktop.

    If you press this key from the Modern Desktop, this takes you to the currently active application on the Legacy Desktop.

    If you press this key from the Legacy Desktop, this displays the Desktop.

    Pressing the same key combination, will Toggle Between the Legacy Desktop and Active Application on the Legacy Desktop

    Only Legacy Desktop shown when all applications are in a minimized state

    Windows + B

    From the Modern Desktop, this takes you to the currently active application on the Legacy Desktop.

    If all application are in minimized state on Legacy Desktop, this command will take you to the Legacy Desktop.

    No effect when used from a Legacy Desktop.

    Windows + M

    From the Modern Desktop, this takes you to the Legacy Desktop and minimizes all applications on the  Legacy Desktop

    When used from a Legacy Desktop, minimizes all applications.

    If all application are in minimized state on Legacy Desktop, this command will take you to the Legacy  Desktop.


    Windows + Q

    Displays Apps windows with all apps and Search Bar

    Windows + W

    Displays Search Settings.

    Windows + E

    Windows Explorer displaying Computer Folder. Same as clicking on My Computer.

    Windows + R

    Display Run window.

    Windows + T

    Displays the Window Group Thumbnails on your taskbar. This is equivalent of hovering the mouse over the Taskbar Icons.

    Each time you press the Windows + T combination, the next application group is  displayed

    Windows + U

    Displays Ease of Access Center

    Windows + P

    Option to Extend the display.

    Windows + +

    Zoom Windows

    Windows + F

    Search Files

    Windows + H

    Display Share options

    Windows + K

    Display Devices to Share with.

    Windows + <

    Preview Legacy Desktop

    Windows + L

    Lock the Computer

    What’s the chatter about Windows 8, Windows 8 Surface, Windows 8 Phones & the new development technologies

    Well, the last few weeks had been exciting with the release of information related to Windows Surface & Windows Phone 8. I was following these releases and noticed the chatter around the new devices from Microsoft. Here is some of the info related to the same.

    5 ways Microsoft’s Surface may be better than an iPad:

    Windows 8 is an Android killer : http://www.kernelmag.com/comment/opinion/2432/no-but-for-reals/

    Microsoft’s Surface tablet vs. the iPad: Seven challenges: http://reviews.cnet.com/8301-33642_7-57456140-292/microsofts-surface-tablet-vs-the-ipad-seven-challenges/

    Wall Street Journal: http://online.wsj.com/article/SB10001424052702304765304577478283669023576.html

    Windows 8 is, in my humble opinion, the most innovative version of Windows Microsoft has released since Windows 95. What Windows 8 does, says Mr. Courtois, is to bring a consistency to all of Microsoft’s products. The "metro" interface, with its innovative live tiles design, is a bold departure for Microsoft from its familiar and iconic desktop. The one interface to bind them all—desktop, tablet, smartphone, X-Box, even TV—is what Mr. Courtois is hoping, and Mr. Elop is praying, will get people to buy Windows-powered mobile phones.

    Personally, I very much appreciate what Microsoft is trying to do with Windows 8. I’ve noticed many improvements from the Developer Preview to the Release Preview and I believe they will reveal some interesting surprises in the final version. I very much understand and appreciate Microsoft’s end goal – one operating system and one experience on all your devices: your phone, your Xbox, your desktop, your laptop, your tablet, your hybrid computing device you don’t yet know how it looks like. If they succeed with this vision, they will change how we use computers and devices forever.

    With the new kernel, Microsoft is also enabling the creation of native code applications written in C++ for the first time on Windows Phone. In version 7.5, all applications are developed in C# or Visual Basic .NET and compiled to platform-independent bytecode. While this has proven easy to use and attractive to many developers, it makes it hard for game developers to eke out all the performance the hardware can offer. It also precludes the use of useful libraries that developers on iOS, Android, and Windows can take advantage of.

    Windows Phone 8’s native code support addresses both issues. Native code development will produce programs that run directly on the ARM processors that Windows Phone supports. This should boost performance, and will greatly extend source code compatibility with other platforms.

    The trend of "Bring Your Own Device" causes both IT and compliance departments numerous headaches. It is one thing for the IT department to support the CEO’s iPad, but with the explosion of devices, operating systems and services, how CIOs must yearn for the day when they could issue recruits with a company laptop and a company phone and it was all integrated. That is the promise of Windows 8; it puts the IT department back in control, just like the good old days.

    "We are providing an end-to-end managed infrastructure to allow any enterprise, large or small… to manage all kind of devices and all kinds of applications in a secure way,"

    Microsoft takes matters into its own hands.  It uses an ARM processor to compete on price, and an Intel processor to ride its Office monopoly.  These are not dumb moves.

    Surface for Windows Pro also features the ability to use Digital Ink with pen input. During the announcement, it was noted that the distance between the stylus and the screen is .7mm. Surface for Windows Pro also features a microSDXC slot and a USB 3.0 port instead, and is slightly thicker at 13.5 mm.

    Surface represents a major shift in strategy for the Microsoft Windows business unit. For years, OEM partners like HP, ASUS, and Dell, provided the hardware. Now Microsoft will be competing directly, particularly in the Ultrabook segment of the market.

    Surface is notably competing directly with Apple‘s iPad, and doesn’t stop short with building a competitive set of features. In addition to its primary hardware specs, Surface also features a built in kickstand, which essentially turns the tablet into a monitor, and also a 3mm thin case that includes a multitouch keyboard. As no one does keyboards better than Microsoft, yet another keyboard is also available for Surface that features a full trackpad with clicking buttons. Though Surface is slightly heavier than the iPad and has 25% less battery size (31.5 Watt hours compared to the iPad’s 42.5 Watt hours), Surface is truly one of the most powerful and lightweight mobile PCs we have seen.

    It’s clear that Surface is designed for current Windows users, and according to NetMarketshare, Windows XP, Vista, and 7 combine for 93% of all desktops. For these users – especially those in the corporate environment – there is a hesitation to switch to another platform, even just for mobile use. As a result, Surface could be a game-changer in the tablet industry. Not only does it feature key capabilities that Apple has yet to ever integrate (such as a keyboard), but Surface will undoubtedly make it easier for curent Windows users to transition from home to office and in-between. While a price has yet to be set, it’s expected to be extremely competitive compared to other tablets, ensuring that Surface is a device that many current Windows users will want to own.

    Shared Windows core

    Our biggest platform-related revelation last week was that Windows Phone 8 is built on a single shared code with Windows 8. This benefits every player in the ecosystem—end users, OEMs, mobile operators, and of course app developers.

    So what does it mean for you? First, it means that your apps will be running on the same base platform that powers a billion PCs around the world and will provide your apps with a stable, high-performance core on top of next-generation hardware. More directly, it means that you’ll be able to share a significant amount of code between your Windows 8 apps and your Windows Phone 8 apps, in many cases only adjusting for the screen size differences between slates and phones.

    Native code support

    As I mentioned, one of the significant benefits of a shared Windows core is the ease of portability between Windows 8 and Windows Phone 8. We also know that the most popular way to ensure portability across numerous devices is to encapsulate most of an app’s logic in platform-independent native code. That’s one of the main reasons we’ve announced that Windows Phone 8 will support C++ and C.

    I know many of you have questions about the implications. For example, over the last few days I’ve seen developers asking whether this means they can mix C#/XAML with DirectX/C++ or consume native C++ libraries from C# apps. Absolutely! You can mix the code as well as the UI (one element in XAML, another in DirectX).

    Under the hood Part 4 : C++ WinRT Component DLL & C++ XAML application – WinRT, Windows 8, C++, Metro

    Calling WinRT Component from C++

    We have developed a C++ WinRT Component DLL & C#.NET application in the post here Under the hood Part 1 : C++ WinRT Component DLL & C#.NET Metro application

    we have seen the compiler generated components for making the C# application access the C++ WinRT component here Under the hood Part 2 : C++ WinRT Component DLL & C#.NET Metro application

    We have seen the packaging and installation process that happens in the background during building and deploying of the applications here Under the hood Part 3 : WinRT, Windows 8, C++, C#.NET, Metro, WinRT Component DLL

    Going further, I created a C++ Metro application and accessed the C++ WinRT Component DLL from this application. The interesting part here is that C++ applications is XAML based. No more .RC and resource.h files in C++ (for metro). In the previous post, we created a WinRT C++ DLL that contains a class calculatorSample. Now let us create  a C++ application to consume the C++ WinRT DLL.

    To get started with creating a C++ XAML application, go to Visual Studio 2011 –> Solution Explorer–> New Project –> Go to Installed Templates section –> Visual C++ –>Select Application and name it as CPPApplication1 as shown in the following fig 1.


    Fig 1: Creating a C++ XAML application.

    Right click on the project, click on Add References and the following dialog shown in figure 2 comes up.


    Fig 2: Reference manager dialog to add references to another components.

    Click on Solution section –> Projects and Select  CppWinRTComponentDLL –> click on Add button and click on Close as shown in figure 3.


    Fig 3: Selecting WinRT CppWinRTComponentDLL.

    The CppWinRTComponentDLL reference appears in the References section as shown in the following figure 4.


    Fig 4: CppWinRTComponentDLL dll appears in the References section.

    Goto MainPage.xaml.cpp and include the namespace for CppWinRTComponentDLL

    Code Snippet
    using namespace CppWinRTComponentDll;


    Then create an object of calculatorSample on the heap using ref new. In this scenario, ref new  is like cocreateinstance of COM. It’s a smart allocator. we also use ref class to indicate the authoring of a Windows Runtime class . using ^ to represent a “refcounted” pointer in ZW fits quite well

    The following code shows how to use the ref new expression to create a new reference-counted Windows Runtime object. Note that you use the ^ (“hat”) symbol instead of the pointer dereference operator (*) when declaring the variable, but that you use the familiar -> operator to access the objects instance members. Note also that you do not call delete explicitly on the object. The object will be destroyed deterministically when the last remaining copy of it goes out of scope. At the lowest level, the object is basically a COM object owned by a smart pointer.

    Code Snippet
    CalculatorSample^ calcobj = ref new  CalculatorSample();
    txtAddResult->Text = calcobj->Add(10,20).ToString();


    So from the C++ application, we are calling the C++ Windows Runtime Component DLL. This is all native code. C++ calling C++ and everything is ref counted.

    Compiler options: /ZW enable WinRT language extensions /AI<dir> add to assembly search path <dir> is the folder where the compiler searches the winmd files /FU<file> forced using assembly/module force the inclusion of the specified winmd file /D "WINAPI_FAMILY=2" set this define to compile against the ModernSDK subset of Win32

    Linker options: /APPCONTAINER[:NO] marks the executable as runnable in the appcontainer (only) /WINMD[:{NO|ONLY}] emits a winmd; if “ONLY” is specified, does not emit the executable, but just the winmd /WINMDFILE:filename name of the winmd file to emit /WINMDDELAYSIGN[:NO] /WINMDKEYCONTAINER:name /WINMDKEYFILE:filename used to sign the winmd file

    However, in a Metro style app or Windows Runtime component, all the C++ code is native. The /ZW compiler option causes the Component Extensions to be compiled for Windows Runtime. The /cli compiler option causes them to be compiled for C++/CLI. Currently, C++/CLI is not supported for Metro style apps

    Code snippet of the complete MainPage class.

    Code Snippet
    // MainPage.xaml.cpp
    // Implementation of the MainPage.xaml class.

    #include "pch.h"
    #include "MainPage.xaml.h"

    using namespace Windows::UI::Xaml;
    using namespace Windows::UI::Xaml::Controls;
    using namespace Windows::UI::Xaml::Data;
    using namespace CPPApplication1;

    using namespace CppWinRTComponentDll;


          CalculatorSample^ calcobj = ref newCalculatorSample();
        txtAddResult->Text = calcobj->Add(10,20).ToString();

        int result;
        HRESULT hr = calcobj->__cli_Add(20,30,&result);
        txtAddResult->Text = result.ToString();


    All Windows Runtime types derive from the universal base class Platform::Object. There is therefore an implicit conversion from any Windows Runtime object to Platform::Object.

    Code snippet of the XAML page.

    Code Snippet
    <UserControl x:Class="CPPApplication1.MainPage"
        d:DesignHeight="768" d:DesignWidth="1366">
        <Grid x:Name="LayoutRoot" Background="#FF0C0C0C">
            <TextBox x:Name="txtAddResult" HorizontalAlignment="Left" Text="TextBox" VerticalAlignment="Top" Margin="343,90,0,0" Width="212"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Calling C++ component Add method from C++ XAML Application" VerticalAlignment="Top" Margin="81,90,0,0" Height="45" Width="258" FontSize="14" FontWeight="Bold"/>



    Build the solution and deploy the application. The application output is as follows.image

    Configuration settings:

    Enable Windows Runtime Extensions enables the runtime extensions throughout the type system which includes the ability to do Boxing. I.e. Boxing to WinRT type system. Every fundamental types and WinRT types are derived from Platform.Object.image

    heap-allocated objects with heap semantics:

    Calculator^ calc = ref new Calculator(); // Calculator is a ref class from a custom WinRT component

    txtResult->Text = calc->Add(10, 20).ToString();

    The ^syntax will fire a destructor when the refcount on the object drops to 0, or if you explicitly call delete. (So if you handed the object out it’s not necessarily at the end of your scope)

    heap-allocated objects with Stack semantics:

    Calculator calc;

    txtResult->Text = calc.Add(10, 20).ToString();

    Both of those create heap-allocated objects behind the scenes, but the difference is whether you logically have heap semantics vs. stack semantics.

    The stack syntax will fire a destructor when the object goes out of scope (or on an exception etc.). This is important when you e.g. handed of the object to another thread or async callback, so there may still be a refcount on it, but you need to get rid of it right away. (E.g. a file handle that needs to be closed otherwise the file is locked). The main advantage is exception-safe deterministic destruction.

    PS: Because of the nature of refcounting, it’s a little bit less important with WinRT to have deterministic destruction than with e.g. the /clr and a garbage collected heap (where the point of destruction is virtually random). However, you will find that with async patterns it is common to get into a situation where you’re transfer the ownership of an object from one thread to another (e.g. via a lambda). There is then a race condition between the two threads for releasing the object. This is generally still ok, but if the object represents a file or other exclusive resource it might be critical to perform the destruction at a specific time, rather than relying on the timing between the two threads.

    value classes & Ref classes

    Int32 x(15); // Compiles and x is initialized and works as expected.

    String str("test1"); // Doesn’t compile and compiler complains C3149: ‘Platform::String’ : cannot use this type here without a top-level ‘^’

    Int32 is a value class, and String or the custom winRT component are all ref class. They are different.

    Differences between C++/CLI and WinRT C++

    In terms of the differences like flags are as follows.

    Basic types:
    /clr: From mscorlib.dll (System::* types)
    /ZW: From vccorlib.dll (Platform::* types)

    Lifetime management:
    /clr: Garbage collected
    /ZW: Refcounted

    Cycles Broken:
    /clr: By garbage collector
    /ZW: Broken by user (weak references or explicit delete)

    Code generation:
    /clr: MSIL + native code. Can create a cross-platform binary if MSIL-only.
    /ZW: Native code only. Binaries target a specific platform.

    Object Creation:
    /clr: gcnew
    /ZW: ref new

    /clr: Supported
    /ZW: Not supported

    /clr: Supported
    /ZW: Not supported

    V% (% when it refers to a byref (kind’a like an "interior_ref") ):
    /clr: Supported
    /ZW: Not supported

    R% (% when it refers to an implicitly dereferenced ref type):
    /clr: Supported
    /ZW: Supported

    Ref to ^:
    /clr: R^%
    /ZW: R^&

    /clr: syntax V^
    /ZW: IReference<V>^

    Dereferenced box type:
    /clr: V%
    /ZW: const V

    /clr: Generics classes, interfaces & delegates allowed.
    /ZW: Generic interfaces & delegates only.

    Static constructors:
    /clr: Supported
    /ZW: Not supported

    Address of member of ref class:
    /clr: Returns an interior_ptr
    /ZW: Returns a type*

    /clr: Not supported
    /ZW: Supported

    C++ class embedded in ref class:
    /clr: Not supported
    /ZW: Supported

    ref class embedded in C++ class:
    /clr: Not supported
    /ZW: Supported (R-on-stack)

    ^ embedded in C++ class:
    /clr: Not supported (Needs GCHandle)
    /ZW: Supported

    ^ embedded in value class with value class on native heap:
    /clr: Not supported
    /ZW: Supported (for String^)

    Global ^:
    /clr: Not supported
    /ZW: Supported

    Global R-on-stack:
    /clr: Not supported
    /ZW: Supported

    /clr: Supported
    /ZW: Not supported

    /ZW: Runs on IDisposable::Dispose (delete / stack unwind) only
    /clr: Runs on IDisposable::Dispose (delete / stack unwind) -or- last release (never both)

    /clr: Supported
    /ZW: Not supported

    R-on-stack (ref class on stack) syntax is supported on C++/cli and C++/CX, but you’ll notice that unfortunately the /CX implementation in the developer preview release has a code generation bug that will make it impractical to test this right now. (R^ and R% should be fine though). The most important reason for R-on-stack is exception-safe destruction (Like ‘using’ gives you in C#) – other than that it is purely compiler syntactic sugar.

    Download the source code here.

    "If one advances confidently in the direction of his dreams, and endeavors to live the life which he has imagined, he will meet with success unexpected in common hours." — Henry David Thoreau

    Design & Develop for the present and future – WinRT, .NET, C++, HTML5

    A collection of useful information from the web.

    With the new Windows 8, Metro , WinRT and other stuff coming out of Microsoft, the question is when should we care about Metro and WinRT from a development perspective? Here is the information from different sources like Gartner, Magenic, etc. that I found useful.

    As per Research, Windows Phone will be No. 2 smartphone OS by 2015 according to Gartner, IDC.  The question to ask is how long it will take until Windows 8 is finally out and reached a critical mass. Coming to desktops, a lot of machines out there still run Windows XP. Windows 7 is way better and I guess the transition to Windows 8 will take even longer. Windows 8 will probably mainly pushed by non-PC multi-touch consumer devices in the near future. Win8 will probably RTM in time for hardware vendors to create, package, and deliver all sorts of machines for the 2012 holiday season. So probably somewhere between July and October 2012.

    Understanding of some of the new common terms:

    • Windows 8 – the new operating system that runs in a “dual mode”: Desktop (Win32) and WinRT
    • Win32 – the OS API that supports today’s applications in Win8
    • WinRT – the new OS API that supports future applications
    • Metro – a user experience design language often used when building WinRT applications.
    • “WinRT apps” includes any/all apps written on the WinRT API.
    • “Metro apps” that are probably a WinRT app, that also follows the Metro user experience guidelines.

    For consumer apps this means you might care about Win8 now, because you might want to make sure your cool app is in the Win8 online store for the 2012 launch. So you will start writing code using Windows 8 Runtime, Metro and bunch of other tools.

    For business apps the timing is quite different. Corporations roll out a new OS much later than consumers get it through retailers. As an example, Windows 7 has now been out for about three years, but some corporations still use Windows XP!!! So for business apps, we can look at doing a reasonable amount of Win8 Metro development around 2014-2015.

    Attached is the Technology Comparison Chart:image

    * Note: combinations of factors not listed here may point to two or more UI technologies being needed.

    1. If touch is needed in the future, application can be designed to Metro style standards.
    2. Windows 8 phones are planned to be supported with Metro applications.
    3. HTML5/JS Metro applications could be selected if there is an internal skill set for that technology.
    4. WebForms are generally considered an older technology, in general use ASP MVC unless there is a compelling reason to use WebForms.
    5. For applications not in the app store, a deployment system will be needed.
    6. Mono may make app store approval more difficult.
    7. Windows Phone 7 leverages .NET skill sets.

    Some of us will be lucky enough to work for "type A" companies that jump on new things as they come out, and we’ll get to build Metro apps starting in Q1- Q2 2012.

    Most of us work for "type B" companies, and they’ll roll out a new OS after SP1 has been deployed by the "type A" companies – these are the companies that will deploy Win8 after has been out for 1-2 years.

    Some unfortunate souls work for "type C" companies, and they’ll roll out Win8 when Win7 loses support (so around 2018?).  That’s a hard place to find yourself as a developer. Yet those companies do exist even today.

    What does this all mean? It means that for a typical corporate or business developer, we have around 2-3 years from today before we’re building WinRT apps. The logical question to ask then (and you really should ask this question), is what do we do for the next 2-3 years? How do we build software between now and when we get to use Metro/WinRT? Obviously the concern is that if you build an app starting today, how do you protect that investment so you don’t have to completely rewrite the app in 3 years?

    This flowchart by the Telerik guys sums it up pretty nicely.


    Clearly any app that uses multiple windows or modal dialogs (or really any dialogs) will not migrate to Metro without some major rework. The one remaining concern is the new run/suspend/resume/terminate application model. Even Silverlight doesn’t use that model today – except on WP7. I think some thought needs to go into application design today to enable support for suspend in the future. I don’t have a great answer right at the moment, but I know that I’ll be thinking about it, because this is important to easing migrations in the future.

    It is true that whatever XAML you use today won’t move to WinRT unchanged. Well, I can’t say that with certainty, but the reality is that WinRT exposes several powerful UI controls we don’t have today. And any Metro style app will need to use those WinRT controls to fit seamlessly into the Win8 world. For better compatibility with future versions of Windows, it seems sticking to the XAML path would be more beneficial. What does this mean for developers? Well, if you are on .NET today, you can simply start learning the new WinRT using the XAML/C#/VB route and start creating Metro apps. If you are a HTML/CSS/JS developer, ramp up on HTML5/CSS3 and the JavaScript extensions and frameworks available as well as the WinRT code. If you want to build an application that would run both on Windows 7 and Windows 8 you can create it with XAML and then for Windows 8 also provide a Metro XAML frontend. We will of course need to see how all of this comes together as we start getting more information out of Microsoft.

    Conversion Strategies:


    No existing technologies map directly to the WinRT platform. Figure 4 shows how existing technologies map to the Windows 8 development platform. As you can see, all existing technologies map directly to the Windows 8 desktop environment. This is illustrated by the green lines, indicating that these applications are expected to work in Windows 8 with no effort.

    The yellow line for Silverlight indicates that many Silverlight applications can be migrated to WinRT with reasonable effort. We will discuss this in more detail later in the paper.

    The red line for WPF indicates that migration to WinRT is possible, but will require more substantial effort.

    The red dashed line for HTML indicates that development skills will transfer, and a limited amount of existing HTML, CSS, and code assets may apply to WinRT application development.

    Applications written using existing technologies will require effort to migrate to WinRT. For applications written with technologies other than Silverlight and WPF, the term “rewrite” is probably more accurate than “migrate”.

    In summary, Windows 8, WinRT, and Metro are a big deal. But not in the way most people seem to think. The .NET/C#/CLR/BCL story is evolutionary and just isn’t that big a deal. It is the user experience and application lifecycle story that will require the most thought and effort as we build software over the next several years. These are good challenges, and I very much look forward to building .NET applications that deeply integrate with Windows 8. People will ultimately be building business applications on WinRT. Those apps may or may not be strictly “Metro”, but by running on WinRT they’ll gain the benefits of the new runtime API, services, and application model.