Metro the vision of clear applications, like signs in the metro. You just know what they mean. Your application must do the same. That is why you’ll need to redesign it for every platform (desktop, mobile, web, tablet, …) Microsoft worked with 70 people for 3 months just on mockups of the GUI for Windows Phone 7.
Bart de Smet – Introducing the WinRT in Windows 8
WinRT is the solid, efficient foundation for the new Windows 8 developer platform
Windows Metadata (on the left) supplies the intellisense. It is implemented IL code and hierarchical organized (not like PInvokes) This metadata lives in the System32/windowsmetadata directory.
Language projection translates everything in the language specifics, like naming conventions (captivation) and specific object types. Example the IVector becomes a collection in Java, a List in dotNET and an Enumerable in C++.
IUnknown is the interface for COM. Now there is IInspectable which is used to get more information about the type and use it.
With versioning Microsoft guarantees programs will keep working on future builds. Interfaces may only be added, not modified. To create this in Visual Studio
- Change the target type from Class Library to WinMD file
- Make all public facing classes sealed. No inheritance is allowed. This does not apply to private classes.
- Empty classes (without any implementation) are not permitted as no interface can be extracted from them
In the manifest of an application the capabilities can be set, like Webcam. On startup the user is asked for permission with a brokered object. A brokered object is an out-of-process created object.
Using the Share charm an application can share data with other applications.
Asynchronous (await, async) is the way to go, no synchronous methods are available anymore.
Scott Guthrie – Windows Azure
The integration of Windows Azure development in Visual Studio has improved. Most processes are supported by wizards now. You can even download the profile from the Windows Azure dashboard and you can import it in the wizard.
Scott shows a demo of auto scaling. The remote desktop still shows the “this windows is not genuine” message. That is probably why you need two instances in the first place: after the trial period expires a new machine must be created. So even when your application works flawless it still goes down when you only have one instance.
SQL Azure has got some price cuts. You can edit the databases with the SQL Studio.
Scott Guthrie – MVC4
MVC4 can be downloaded for VS2010 and is part of VS11. It is stil default ASP.NET so no installation on IIS is required. You could run it on your existing machines.
Modernizer, bundling, minification and Razor are part of MVC4 now. With bundling the number of requests are minimized by bundling them and minification makes the response as small as possible by removing comments, spaces and line feeds.
Entity Framework has database migrations now which can be used in the commandwindow.
Update-package EntityFramework Enable-migrations Add-migration NAME Update-Database –TargetMigration: NAME
Publish of a project could migrate the database too.
Web-API provides access to data with REST in json/xml out-of-the-box. The service can be added as a reference which is the advantage over REST. It also uses the http protocol better with statuscode and url’s in the header. It can be unittested by creating the repository and call that. It can be hosted in a console app.
MVC4 is smart enough for mobile web with jQuery, auto adapt and manual override of a view (by the developer)
MVC4 has asynchronous support with async and wait.
Jeff Prosise – Take a ride on the metro
Desktop application (win32, dotNET) and metro apps (WinRT) are supported on Windows 8. XAML can be used in WinRT, but is not 100% compatible with the existing implementation in WPF. HTML5 is 100% compatible, but you’ll make changes to use the extra features that are available like saving files.
Interaction with applications is done by Pointer (clicks), Tapping (tapps) and Manipulation (move, pinch) events.
In WinRT you’ll need to save sate when the application recievs an OnSuspending event. Save this state in the roaming profile and the used can continue at home where he left the application at work. The different events are
- OnSuspending: user switches, possibly you’re stopped so save your state
- OnLaunched: started (again) by the user, check the type of launch and restore the state if needed
- OnResuming: this event always fires when the user activates the application, this has nothing to do with suspending or launching. Use this event to update data if needed, like in a weather app.
You need to define to the eventhandler that you handle something asynchronous with this code (for info only won’t compile)
var defferal = e.SuspendingOperation.GetDeferral(); await …. deferral.Complete();
Use contracts to use the charms in the charms bar: search, transfer and settings.
Tiles are used to start the application. Secondary tiles are shortcuts into you application, comparable with startup parameters. Tile updates (again like weather) can be queued.
Erik Romeijn – Stop, drop and release
Make minimal apps. These are apps with minimal of features, but that work good. Adding new features can be done later when needed, maybee when the application took off.
Feedback from your customers is important, add it to all your applications.
Rob Miles – Kinect Mayhem
All demos failed, but the guy makes you laugh 🙂
Fons Sonnemans – Windows Phone 7 live
Fons asked the audience what he should build and then did that.
He created an ODATA service. Dropped some prepared code. Used a snippet he developed. Loaded the MVVM Light NuGet package. Used a lot of Blend. Created a partial class to add an extra property to the ODATA service reference class.
In 40 minutes he build an app that showed a list of Hotels with the name and an image, that loaded from the ODATA service. Clicking on a row showed the details and a Bingmaps control, which he needed the extra property for. In such a short timespan you’ll need some accelerators like NuGet packages and some snippets. Fun to watch.