WinRT versus Win32 on Windows 8

The Windows Runtime API (WinRT) replaces the old Win32 libraries for accessing operating system functions. The WinRT API is object oriented, largely asynchronous, and callable easily by a wide variety of programming languages. Win32 continues to be supported by Windows 8, and it is what enables all existing Windows 7 applications to function in the Windows 8 desktop environment. The following figure shows how existing technologies map to the Windows 8 development platform.

 

 

 

 

 

 

 

 

Windows 8 Development Strategy

When considering the impact of Windows 8 on future software development, the following broad strategies should be evaluated:

1- Continue to use existing technologies, and run the application in the desktop environment.

2- Create a WinRT/Metro style smart client application that takes full advantage of the new WinRT and Windows 8 features.

3- Create a browser-based web application that relies on no plug-ins, so it can run in the browser in both the WinRT and desktop environments.

In summary, the new WinRT API and Metro style applications may represent the future of smart client development on the Windows operating system. Existing applications will continue to run in the Windows 8 desktop environment. Additionally, existing web applications that avoid the use of plug-ins will run in the WinRT web browser.
Existing developer skills in XAML, C#, VB, .NET, and Silverlight carry forward to WinRT development. The same is true for HTML5, CSS, and JavaScript developer skills.

Reverse Engineering C# and XAML Win8 apps

This post has been removed. Please email bryan.robinsons@gmail.com if you have any questions.

Justin Angel on Windows 8, C# and Build

Windows 8 gives you the platform and tools to create rich app experiences where your customers focus on tasks that are important to them. Apps are at the center of the Windows 8 experience. They are alive with activity and vibrant content. Your customers immerse themselves in your full-screen, Metro style app allowing them to focus on their content rather than on the operating system.

With Windows 8 you can leverage your existing skills and code assets to create great experiences for your customers.

Web developers can use their HTML5, CSS3, and JavaScript skills to build native applications for Windows.

.NET Developers can use XAML, C#, and Visual Basic to build beautiful Metro style apps.

Game developers can use the power of DirectX 11.1 to build amazing, immersive gaming experiences.

Driver developers can use the new, integrated Microsoft® Visual Studio® development environment to increase productivity.

Justin Angel on Windows 8 Platform and Tools

C/C++ Developers and Metro Style Apps

Windows 8 and its new WinRT native libraries can be targeted by C/C++ developers just as the age-old Win32 libraries could be. This has not really changed and there are certainly many applications such as complex games, device drivers, etc. that require the kind of low level control that C/C++ offer. On the other hand, for 99% of Metro Style Apps such as social media apps, productivity tools, and business apps, C++ is not the answer in Win8 any more than it has been for the last 10 years.

XAML/C# Developers and Metro Style Apps

XAML/C# in Win 8 is the best option for the vast majority of Microsoft developers. The Silverlight/WPF community can bring their skills forward, though they will need to learn new controls and new APIs for working with WinRT as opposed to WPF/SL. General .NET developers who have not yet done anything with XAML will have a somewhat larger learning curve, but XAML itself is a very mature UI platform at this point, so it should be pretty easy for these developers to find the resources they need to quickly get up to speed with this.

Web Developers and Metro Style Apps

Web developers will likely find the HTML5+CSS+JS option attractive. There are also many Microsoft web developers, who build applications today using ASP.NET and C# (or perhaps VB) on the server, but who must also know CSS and JavaScript and HTML for the client work. Many of these developers including ASP.NET developers will likely opt to go the HTML5+CSS+JS route rather than the XAML route.

Rockford Lhotka on Windows 8, and WinRT

WinRT API is supported by the following technologies: WinRT .NET, WinRT HTML 5, and WinRT C++

WinRT .NET

I expect this to be the most widely used technology stack for building WinRT applications. The .NET available to WinRT applications is best thought of as being like .NET on the Windows Phone. It is basically the Silverlight subset of .NET, plus a bunch of WinRT-specific features and capabilities. The differences between Silverlight and WinRT are a bit more dramatic than with WP7, but the analogy remains quite accurate.

The XAML is very close to Silverlight and WPF, and the types of code you can write using C# and VB are very comparable to what you can write today using Silverlight.

Please note that using Silverlight today provides the easiest transition to WinRT in the future. Not seamless or trivial, but practical. In addiiton, WPF can enable a WinRT transition too – especially if you limit your use of WPF and .NET to the Silverlight subset of behaviors and features.

WinRT HTML 5

Microsoft has made much of the HTML 5 technology stack for building WinRT applications. In no way are we talking about web sites, web pages, or web applications here. This is smart client development done using technologies that were previously web-focused.

For a .NET developer, the technologies map like this:
HTML instead of XAML
JavaScript instead of C#
WinJS instead of the .NET BCL

In my conversations with traditional web developers, it is a brain-bending moment when I point out that there is no web server involved, and so no server-side code at all here. All the stuff that is done in ASP.NET or PHP is now done in JavaScript. From an architecture, design, and application functionality perspective, a WinRT HTML 5 app is almost, but not completely, unlike a web app.

On the positive side, if a web developer can learn and embrace the smart client architectural model, their skills with HTML, CSS, and JavaScript will carry over to this new platform. Some HTML and CSS assets, and perhaps some js assets, will carry from web development into this type of smart client development as well.

WinRT C++

Finally, C++ remains relevant on WinRT as well. This should come as no surprise, given that the Windows OS developers primarily use C++, and there’ll hopefully be games and other applications that are traditionally created using this technology.

I also suspect that Objective C apps will port to WinRT more directly through C++ than with C# or js, and (at least for my part) I hope that some of the existing iPad/iPhone apps quickly make their way onto WinRT so I can enjoy them.

Richard Campbell on Windows 8, and C#

The Best of Build with Richard Campbell

On October 4, 2011, Richard Campbell presented in BCIT the highlights of this year’s Windows BUILD conference, as well as added a few of his own insights about the direction of Windows and Microsoft.

The first and most apparent change in Windows 8 is the user interface. Richard showed Windows 8 on the new Samsung tablet, and demonstrated its usability. In Windows 8, everything is considered to be an application, including the traditional desktop. The main screen is similar to a mobile device; it displays icons of the installed applications. The desktop is one of these applications, and by clicking on the Start Menu the user is taken back to the main screen. This main screen is Windows Metro, a new design language that features a simpler and cleaner user interface. Microsoft is pushing Metro as the new way of designing their products, which will rely on WinRT, or Windows Runtime. WinRT is the new programming model that simplifies the interfacing between languages and platforms, consisting of services.

Everything that runs in Windows today will be supported in Windows 8. Silverlight is not going to be phased out, but Richard speculates that it will not go past Silverlight 6. XAML, HTML 5, and CSS 3 will be significant for providing the user interface, and Javascript, C++, C#, and .NET 4.5 will be support the model control. The stack will be the same, but Windows 8 is focusing on separating the CLR (Common Language Runtime) and the different programming languages.

Windows is also introducing an “App Store”, for both desktop applications and mobile applications. Unlike the Android store, these App Store will be curated, and Microsoft will be just as responsible as the developers for any bad or malicious apps. The Internet Explorer 10 app is completely chromeless and does not support plug-ins. However, running Internet Explorer 10 on the desktop will allow plug-ins, and will feel like IE does now with the traditional chrome.

Richard also talked about the popularity of Windows 8. He explained that because many companies didn’t switch to Vista, they waited until Windows 7 to be released. Now that these companies are finally set up with Windows 7, they won’t want to switch again once Windows 8 comes out, and instead wait for Windows 9. Therefore, Windows 8 is directed at the consumer, and Windows 9 will be directed at enterprises.

C# and Silverlight 5 RC in Windows 8

Microsoft has delivered a new release candidate (RC) of Silverlight 5, a tool for creating and delivering rich Internet media and applications. C# 4 and C# 5 are still the most effective languages for writing the Silverlight 5 RC applications.

Pete Brown, the leader of Microsoft’s Developer Guidance Community Team in September 2011, said the Silverlight 5 RC is now available as a developer-only release, and is preparing developers for the final release later this year.

Silverlight 5 builds on the foundation of Silverlight 4 for building business applications and rich media experiences. Among other capabilities, the Silverlight 5 RC has modified video quality and performance, along with other features that improve developer productivity.
These include reduced network latency by using a background thread for networking; XAML parser improvements that speed up start-up and run-time performance; support for 64-bit operating systems; and reduced network latency by using a background thread for networking.

Does the Async CTP work with Silverlight 5 RC?

The Async CTP may work with Silverlight 5 RC, but according to Microsoft’s Stephen Toub, works effectively with Slivelight 5 Beta. The recommended procedure is to up a system with Visual Studio 2010 SP1, and install Silverlight 5 Beta and the Async CTP. After all of these installations are completed successfully, you will be able to successfully create and run new SL5 projects that uses Async CTP.

Windows 8 and Future of C#

In Windows 8, C# will be used in writing applications or invoking Jupiter-based applications on the Jupiter platform.

What is Jupiter?

Jupiter is a programming platform that Microsoft will use to leverage applications for both Windows 8 and Windows Phone in the near future. It is a new user interface library for Windows. Although different from Silverlight or WPF, it will be fully compatible with both, and will use IE 10’s rendering engine. Using a XAML-based framework, it will provide access to Windows 8 elements, like sensors and networking. Jupiter apps will be packaged as AppX application types that could be common to both Windows 8 and Windows Phone 8. The AppX format is universal, and can used to deploy native Win32 apps, framework-based apps (Silverlight, WPF), Web apps, and games.

What is AppX?

AppX is a tight specification that describes how applications are packaged and installed, and was likely inspired by Silverlight’s XAP files.
Although Windows 8 will change many components of applications like how they are written and distributed, AppX is only concerned with the deployment aspect of applications.
AppX packages require an XML manifest file named AppXManifest.xml. In this file, developers will have to specify many compulsory and optional attributes of their application, which is much more than the current requirements in Windows Phone 7.

Copyright © All Rights Reserved - C# Learners