In my previous post about the Live Framework and Mesh-enabled apps I described how to create your first project, publish and deploy it to the Mesh and debug using Visual Studio 2008 support tools.
However, that was without taking advantage of any of the Live Framework and Mesh functionalities. In this post that’s exactly what I’ll be doing. The sample application will be storing some data and loading it upon running on the web on or the client (Mesh). To do this we are going to use the Silverlight Toolkit for the Live Framework, this one exists for Silverlight and for client (full) .NET applications. The Live Framework .NET library is one of the toolkits you can use to call the framework, but this is actually a wrapper around the RESTful APIs that can be accessed through HTTP. Because at the base it is all HTTP, any platform can access the framework.
The toolkits that are available today are just extra help so that you do not have to deal with all the HTTP calls. Toolkits that are available today:
Now let’s get to our sample application. To get my data stored and synchronized through the Mesh it is important to get a good look at the Live Framework Resource Model. The base objects in the resource model are MeshObejcts, DataFeeds and DataEntry objects. I must admit I still need to read on further into the SDK documentation and understand correctly when I should use which elements. As I have understood it a MeshObject is the highest element in your application that you would want to share. If my application (instance) can be shared as a whole I will only create one MeshObject. If sub-elements can be shared than each of the sub-elements should be a MeshObject.
For now, I’ll be accessing the DataFeeds property. Nothing more than that for now. So in short, the application will contain a list of Party titles. Yes parties, guess I’m thinking about Christmas wish lists or something :) Please note I have not gone to defining the object model for the application, it shows a simple way how to access the Mesh and feeds directly.
1. First of all since we are using the Silverlight Mesh-enabled web application template in Visual Studio, this contains some base code to load the Mesh application service object.
MeshApplicationService meshApp = Application.Current.GetMeshApplicationService();
// once mesh contents are loaded we get callback
meshApp.LoadCompleted += new EventHandler(meshAppLoaded);
2. The app UI consists of a ListBox, a TextBox and a Button. ListBox is bound to an ObservableCollection of DataEntryResource objects. Each of the Party entries will be stored in a DataEntryResource on the Mesh.
ObservableCollection<DataEntryResource> partyEntries = new ObservableCollection<DataEntryResource>();
3. Upon loading of the Mesh application service object we load the DataFeed in which we store the entries. This DataFeed does not exist upon first call of the application so we create in that case. I’m also inserting a default entry in the list named “My first party”.
private void LoadDataFeed(MeshApplicationService meshApp)
DataFeed partyFeed = meshApp.DataFeeds.Entries.FirstOrDefault (pf => pf.Resource.Type == "Party_DataFeed");
if (partyFeed == null)
//Create the DataFeed
partyFeed = new DataFeed();
partyFeed.Resource.Type = "Party_DataFeed";
DataEntry entry = new DataEntry("My first party");
entry.Resource.Type = "Party_DataEntry";
entry.Resource.Title = "My first party";
//load the collection of DataEntry items
foreach (DataEntry entry1 in partyFeed.DataEntries.Entries)
4. To finish, we create the Button event handler to add an item to the collection of DataEntries.
private void buttonAdd_Click(object sender, RoutedEventArgs e)
MeshApplicationService meshApp = Application.Current.GetMeshApplicationService();
DataFeed partyFeed = meshApp.DataFeeds.Entries.FirstOrDefault( pf => pf.Resource.Type == "Party_DataFeed");
DataEntry partyEntry = new DataEntry();
partyEntry.Resource.Type = "Party_DataEntry";
partyEntry.Resource.Title = textPartyName.Text;
textPartyName.Text = "";
And that’s it. Data in the Mesh, be it on the client desktop or the web.
Last week at MIX11 we announced the next update coming to Windows Phone 7. Joe Belfiore, overseeing Windows Phone Program Management came on stage to address the audience eager for more on Windows Phone. While starting with an update on why some ‘Nodo’ updates are taking longer than expected, Joe then switched to bringing us the new stuff. As a developer, you can start getting up to date with the latest capabilities by watching or downloading the sessions covering the new APIs and capabilities given during MIX11.
Customer Feedback for Windows Phone Developer through UserVoice The WPDev UserVoice forum is now available to gather user feedback from developers around on the application platform (APIs, runtimes, and controls) using Silverlight and XNA. Make your voice heard too: http://wpdev.uservoice.com/forums/110705-app-platform
My personal note on the keynote and new features: sitting at the keynote I heard lots of great exciting “wow… amazing…” around me. Attending the keynote in person was a fantastic experience. Developers are very excited about new possibilities the 1500+ new APIs coming with “Mango”. For myself, it’s hard to choose the absolute favorites. But if I must, I guess the new features coming to the Live tiles are a personal favorite. One of the things that I love about the use of WP7 is the start screen and what you can do with Live tiles. So having more control over them will only enhance how the start screen gets more personal and comes even more to live. I must admit Silverlight 4 support, Live Agents, SQL CE support and such are also very welcome.
At the conference there was also a Windows Phone booth (of course ), they had a very nice apps wall with tiny icons of the thousands of apps: THANK YOU DEVELOPERS.
Oh, and Angry Birds is officially coming to Windows Phone 7. Are you concerned? I know some folks will be happy.
The new developer tools, codenamed “Mango” are coming next month in May. Get ready today!
Back from Tech-Ed EMEA developers, running from 10 to 14 November 2008 in Barcelona. It was a very interesting week in turns of content but also in terms of meeting up with lots of interesting people. And proud to be a Belgian at this conference: besides Hans Verbeeck as the business owner we had a Belgian winner at the Speaker’s Idol: Kurt Claeys.
Congratulations to Kurt, looking forward to his first session at TechEd next year in Berlin!
This year it was my first time at the Silverlight “Ask the Experts” booth where I had the pleasure to meet with some peers of mine, and MVPs that were ready to answer questions from attendants. Having booth duty did not prevent me from following some of the sessions. I especially enjoyed getting even more PDC content like Angus Logan’s session on Mesh enabled web apps, Windows 7, and David Chappell’s session on Geneva (codename for Microsoft’s identity and claims based framework). Non-PDC content like Bob Beauchemin’s sessions on SQL Server 2008 or Stephen Forte’s interactive session on data access were some of the other sessions I followed.
Opening keynote was presented by Pierre Liautaud, Vice-president Western Europe for Microsoft and Jason Zander was the overall keynote speaker.
Taking place just one week after the Professional Developer’s Conference (PDC) in L.A., it’s not an easy task to bring more new stuff to the event. However, without leaving behind the importance of PDC the keynote did present us with quite some new information on VS2010.
Jason Zander did a great overview of some of the new things to be found in Visual Studio 2010, and included lots of demos which is really what any developer wants to see!
Visual Studio 2010 highlights:
Check it out: download the Visual Studio 2010 and .NET Framework 4.0 CTP here.
In addition to VS2010 goodness, PDC content was not forgotten. The event had a special PDC Highlights track bringing the best of PDC to Barcelona. I thought this was a very useful decision to bring the PDC content to TechEd. Waiting one year would create too large a knowledge gap. This track included sessions on Windows Azure, Oslo, Live Framework and Windows 7.
Finally, having the possibility to meet up with a lot of Belgian developers and exchanging views and ideas was another highlight for me. Thanks all for joining the conference and hope to see you around at another event in Belgium or at TechEd in Berlin next year!
My colleague David blogged about support for Windows Phone 7 in PhoneGap released last month. Please find more information and resource below or head off to David’s blog.
Back in September, Microsoft joined Nitobi to announce a Beta of PhoneGap support for Windows Phone Mango, and at the same time committed to continue working with the PhoneGap Open Source project community to help bring full support.
This release includes many new features, and you can find more details here
Quite a few new screencasts and interviews have been added to Chopsticks these last few weeks. Time for an overview of what is new.
Content by Microsoft folks
Last month Thomas Delrue, a Belgian software development engineer at Microsoft Corp visited Belgium and my colleague Philippe Destoop sit down with Thomas for two interviews about the newly announced “Oslo” platform.
Thomas Delrue talks about "Olso" and the "M" modeling language Thomas Delrue, software development engineer at Microsoft Corp, discusses Microsoft's recently announced platform for model driven applications, code named "Oslo" in an interview by Philippe Destoop, Architect Evangelist at Microsoft Belgium & Luxembourg. During the interview they also talk about the "M" modeling language and the "Oslo" Repository, as well as "Quadrant", the tool that allows to build models visually.
“Oslo” demonstration Thomas Delrue demonstrates the "Oslo" repository and the "M" modeling language and "Quadrant". Philippe Destoop, architect evangelist, is the moderator of this interview
Just before leaving for PDC I had the chance to sit down with Craig Spiezle, Director Security and Privacy for Internet Explorer, and discuss the main improvements of IE8.
Interview with Craig Spiezle on IE8 for Developers Craig Spiezle talks about several Internet Explorer 8 innovations of interest to developers related to security and compatibility.
Community created content
Maarten Balliauw, Gill Cleeren and Hans Le Roy submitted new screencasts on ASP.NET MVC, Silverlight 2 controls and IE8.
Using ASP.NET MVC Model Binder This screencast demonstrates how code can be made more maintainable and testable by delegating binding to client data to the ASP.NET MVC model binder architecture.
By Maarten Balliauw
Silverlight Controls Series: Part 1 - Styling Silverlight Controls Since Silverlight controls can be styled to fit any design, it’s vital that you apply styles to your applications in order to keep them maintainable in the long run. In this video, Gill Cleeren explains the best practice to do this.
By Gill Cleeren.
Silverlight Controls Series: Part 2 - Creating Custom Silverlight Controls Apart from styling your controls, Silverlight makes it easy to create custom controls yourself by overriding the entire visual tree of a control. In this video, Gill Cleeren shows you how to do this.
Internet Explorer 8: Qu'est-ce qui est nouveau? (pour utilisateurs) – French only Qu'y at-il de nouveau dans la nouvelle version d'Internet Explorer (IE8)? Nous regardons le nouveau navigateur depuis la persêctive de l'utilisateur. o Aangeraden tagging Internet Explorer 8, barre de commandes, onglets, IE8, accélerateurs .
By Hans Le Roy
Full recordings of the Luxembourg TechDays08 (September 2008)
This September we hosted the Luxembourg TechDays event. A one day event for developers and IT professionals. The six developer sessions are now available for viewing online (note: all content in French).
Trucs et Astuces C# 3.0, VB 2008 au travers de Visual Studio 2008 (TechDays'08 Luxembourg) Cette session commence avec une introduction pas BCEE. Dans le reste de cette session exclusivement orientée code, vous découvrez différentes pistes vous permettant d’augmenter considérablement votre productivité au sein de Visual Studio 2008. Nous construirons pour ce faire, au court de cette session, une application architecturée Software + Service et découvrirons les trucs et astuces disponibles au sein de Visual Studio 2008 tout au long du cycle de vie de développement de l’application phare de cette session. Nous aurons entre autre l’occasion de parcourir : - Customisation de l’IDE Visual Studio 2008 - Multi-Targetting - Overloading d’opérateurs - Codes Snippets, Macros - Éditeur , IntelliSense, Amélioration du débuggeur, ... - LINQ et LINQ to XML - Exploitation des Générics - Windows applications - Web Solution : WCF - ADO.NET data - Refactoring Presented by Gregory Renard
Visual Studio 2008 SP1 - Quoi de neuf? (TechDays'08 Luxembourg) Le SP1 de Visual Studio 2008 et du .NET Framework 3.5 ont été lancés en Aout 2008. Bien plus qu’une simple mise à jour, ces service pack contiennent de nombreuses améliorations et avancées. Plusieurs domaines du .NET Framework sont impactés et seront présentés durant la session; la couche d’accès au données, le développement d’application Windows ainsi que le développement web. Des changements ont également été apportés à l'environnement de développement pour supporter les nouvelles fonctionnalités du .NET Framework 3.5 SP1. Presented by Johan Blais
Le .NET Language Integrated Query (LINQ) Framework (TechDays'08 Luxembourg) Les applications modernes se construisent aujourd'hui sur de nombreux types de sources de données: bases de données relationnelles, documents XML, objets en mémoire, ... Chacun de ces types de sources de données ont des approches très différentes de la sémantique, de leur typologie et capacité, ... tout ceci sans même aborder la complexité de mixage de l'ensemble. Dans cette session, nous aborderons comment Visual Studio 2008 apporte une aide non négligeable au travers d'un modèle de programmation unifié "LINQ". A partir de C# 3.0 ou VB2008, nous observerons comment LINQ nous apporte une modèle fort d'accès aux données de part son Framework et son API (Application Programming Interface) innovante de manipulation des données et requêtes XML. Presented by Gregory Renard
Développer des applications qui combinent WCF, WF et Cardspace en .NET Framework 3.5 (TechDays'08 Luxembourg) « Windows Communication Foundation » (WCF) a été introduit dans .NET 3.0 Framework pour facilité la construction d’applications distribuées. « Workflow Foundation » (WF) pour sa part a également été introduit dans la version 3.0 du .NET Framework pour faciliter l’implémentation des logiques business. Dans la version 3.5 du .NET Framework, de nouvelles perspectives d’intégration entre ces solutions sont possibles ; permettant ainsi une plus grande productivité. Cette session démontrera comment les développeurs peuvent utiliser les puissantes capacités de ses 2 extensions du .NET Framework pour construire des applications orientée service, à long terme et durable, et exposer un workflow comme un service. Cette session expliquera aussi Cardspace, qui fourni une solution basée les standards du marché pour travailler et gérer diverses identités digitales. Presented by Gaëtan Holderbecke and Xavier Pellegrino
Développer des RIAs en Silverlight grâce à Expression Blend et Visual Studio (TechDays'08 Luxembourg) Découvrez comme utiliser Silverlight pour construire de riches applications internet grâce à la puissance des codes .NET et XAML UI. Cette session démontrera, en utilisant le cadre de travail de Silverlight, ses controles, son modèle d’application , son networking stack et ses nouvelles capacités, les atouts de Silverlight pour les cross-browsers et les applications cross-platform de nouvelle génération. Presented by Xavier Vanneste
Développer des Rich Client Applications avec Windows Presentation Foundation (TechDays'08 Luxembourg) Venez découvrir avec quelle facilité il est possible de créer une application business riche en utilisant "Windows Presentation Foundation" (WPF), comment vous pouvez lui donner vie grâce à la puissance ainsi qu’aux capacités étendues de WPF. Et enfin comment on peut ajuster et collaborer autour du contenu, du design, des templates et UI ; Data models, data binding et contrôles (Datagrid, User Control…) s'assemblent pour permettre aux développeurs de créer une interface plus riche et plus dynamique en moins de temps. Presented by Olivier Raulot and Cristovao Figueiredo
In this edition we look at how to add content to SketchFlow Silverlight application screens. We look at the Sketch styles that are supplied in Expression Blend so that the UI of your screens is making clear to your customer that this is a prototype and not a finished design. This video is available in three languages.
3 minutes on Expression Blend 3: SketchFlow Adding Content
The 3 minutes on Blend 3 series:
You may have seen it posted on several blogs: Scott Guthrie has published an overview of Silverlight 2 functionality and a complete 8 part tutorial!
The tutorial is step-by-step guide on building a sample Silverlight 2 Beta1 application that reads stories from Digg.com. The sample uses REST, cross-domain access, LINQ to SQL, Silverlight UI and more.
Well worth reading today so that you get a headstart once the Beta1 comes out.
In this video we continue on where we left off in the previous video: after letting the customer or reviewer give feedback on our application, we now see how to import feedback files into Blend. We also see how this feedback can be shown in the different screens and how Blend informs you about out of date feedback.
3 minutes on Expression Blend 3: SketchFlow Player
This series will introduce concepts of Expression Blend 3, with a short 3 minute video available on MSDN Chopsticks in Dutch and French. The accompanying blog posts will give some resources or insights.
I was actually planning to do the videos in Dutch and French only (the two main languages in Belgium) but then I just went for it and added a version in English for most of the coming videos, so stay tuned... I’m starting with the workspace and then have a number of videos addressing SketchFlow.
Today we start with video no. 1, which addresses the Workspace, assets pane and saving your own workspaces.
During TechDays Belgium 2012 two weeks ago, Scott Guthrie announced the Beta release of ASP.NE MVC 4 slated for that same week. Since February 16th you can now download ASP.NET MVC4 Beta. Interesting to note is the availability of a Go-Live license with this release. In other words, if you feel like using these bits on production you now can!
A few important updates and features are part of the Beta:
Internet Explorer 9 Beta is here, and it’s here for you to try out. Yesterday we had the official beta launch event in San Francisco, with our own local event in Belgium. Download now!
With a bunch of new features, the team has focused on three main areas:
Make sure you read the IE Team blog post on the beta release with loads of good information on the new features of the browser.
After downloading and installing you can then head over to ‘Start Developing’ section of TheBeautyOfTheWeb.com site.
Some great resources:
Also in this series:
SketchFlow projects can be either in WPF of Silverlight. Let’s focus on a Silverlight version here and look at the differences of a SkechFlow project between other ‘normal’ Silverlight projects.
A Silverlight SketchFlow project (solution) consists of two projects on file:
Silverlight project containing the SketchFlow player
Silverlight library project referenced by the player project
The SketchFlow player is set as the RootVisual of the Silverlight application (in App.xaml.cs):
private void Application_Startup(object sender, StartupEventArgs e)
this.RootVisual = new Microsoft.Expression.Prototyping.Workspace.PlayerWindow();
When you add screens, all this is done in the library project since the base Silverlight (SketchFlow) project calls these screens automatically.
Let’s review the main task panes and elements we use in Expression Blend when working on SketchFlow projects.
Note: Your own workspace might differ from this one since all task panes can be moved around or hidden as you wish.
A project reviewer or stakeholder can give feedback by adding comments through the SketchFlow player. When importing the feedback into Expression Blend, the feedback file itself is imported into the “Feedback Files” directory in the screens project.
Using the Feedback pane you can choose which feedback file details to view and whether or not ink feedback should be overlaid on the screens.
After a few versions of feedback, you might want to clean out feedback files. You can do this by simply deleting the physical file from the Feedback Files directory.
When the application is ready to be shown to the stakeholders you package it and distribute it.
For a Silverlight application this can be a directory that you host on a web site, making the application available online. Another option is to create a zip file with the package and transfer that to the stakeholders.
If you .zip the whole directory and send it to end users make sure the full directory contents are unzipped before they run the application.
To package the application from within Expression Blend choose File > Package SketchFlow project and choose a destination folder. The end user can access the TestPage.html to load the project.
While in the keynote of day 1 we saw the light of Windows Azure Platform, the Microsoft Software + Services platform, on day 2 we actually had two keynotes: a lot of stuff!
Keynote 1: Ray Ozzie, Steve Sinofsky, Scott Guthrie, David Treadwell – on Windows 7, WPF, .NET 4.0, VS2010, Live Framework, Mesh, Office 14 Keynote 2: Chris Anderson and Don Box – A lap around Azure Services platform
As yesterday, I really appreciated the speech by Ray Ozzie, he started out by pointing us to the importance of client user interfaces and how the web can actually improve the value of the PC. By overlapping from PC / Web / phone, the use of these together is more value than just the sum of their parts.
As there were a lot of announcements and demos, I’m listing things I wrote down during the keynote. A lot of them I will come back to later in a more detailed post but this should give an overview of what we saw.
And now I would like to get a few of the CTPs. Will do that after taking the chance to follow a few sessions still today.
There is a free extension for Visual Studio available for a few months already, which I only now found out through a newly released video on Channel9: Visual Studio Toolbox: JScript Editor Extensions.
>> Download the extension Watch the Channel9 video
>> Download the extension Watch the Channel9 video
Note: if you’re looking for more or extending these extensions you can start by viewing or downloading the source code from these extensions from Codeplex.
Today developers can start with the final migration of their Beta Windows Phone 7 code to RTM, as today the developer tools hit RTM version. This means that as of now code can be developed against the RTM version, with the final step before submitting your app to the Marketplace. The Windows Phone 7 Marketplace will start accepting submissions early October, in the meantime it’s a good idea to get registration done as this can take some time to get all required documents through.
Download the RTM tools: Windows Phone Developer Tools package is a free single download containing all of the tools that developers need to create apps and games for Windows Phone 7: Visual Studio 2010 Express for Windows Phone, the Windows Phone Emulator, Expression Blend 4 for Windows Phone, and XNA Game Studio 4.0.
Silverlight Toolkit for Windows Phone
A special version of the Silverlight Toolkit to be downloaded separately from CodePlex contains these features, amongst others:
Check out this video with Charlie Kindel and Scott Guthrie celebrating the final version of the tools, notice how a few of the upcoming apps are being previewed:
Also recommended: Windows Phone Developer blog post by Brandon Watson on the final tools release.
And don’t forget the Belgian 5K Contest! If you’re in Belgium, don’t forget you still have about two weeks to register for the Windows Phone 7 5K Challenge.