click tracking
Katrien's MSDN Blog - Site Home - MSDN Blogs
  • Katrien's MSDN Blog

    MSDN Evening "Building setup packages with WiX": recording online


    The MSDN evening session from last week has been recorded and can be watched online on our Chopsticks platform. In this session, Martijn Beenes, coming specially from the Netherlands for this session, explains how to use the installer tools, MSI's, WiX toolset (Windows Installer XML), and shows how to create a fully customized Windows installer packages using WiX.

    View the session online: (you will need to login for this as it's premium content).

    Together with the recording you can also find the PowerPoint presentation by clicking the Resources tab.

    Martijn, thanks for the great session, we hope to see you again in Belgium in the future.


    Tags van Technorati: ,,
  • Katrien's MSDN Blog

    Silverlight and the HTML page: let your Silverlight do the work


    One of the things I like with having Silverlight 2 runtime on the browser is that it gives us the power of .NET at the browser level. And this is more than just for creating RIAs, one aspect that does not get much attention is the fact that you can use the Silverlight plugin to have extra power at the browser level. With this I mean taking advantage of all the power of the .NET framework and your ease of work with C# to get things done in the browser.

    Even with the power of JavaScript debugging in Visual Studio 2008, if like me you are not a fan of lengthy applications in JavaScript this is a new possibility: just let Silverlight work with web services and processing and integrate that with your HTML page (DOM).

    You can use the Silverlight plugin without even visually showing it, if that would be a requirement. In this post I will show a few of the possibilities that you can use in your Silverlight classes to make them available to the hosting HTML page and even manipulate your page’s DOM from the Silverlight application.

    For this post I’m making a small demo application where an HTML page shows a list of thumbnails from Flickr photos together with the name. The call to Flickr is done by accessing Flickr’s REST API. What I’m doing is actually passing the calls that I would normally do using Ajax into the Silverlight application. As we all know it requires some work to get our Ajax working correctly in all browsers, with this approach we let Silverlight do the processing.

    Tools used: Visual Studio 2008 with the Silverlight 2 Beta 1 Tools for VS.

    Creating the Silverlight project

    Create a Silverlight Application project in Visual Studio. In my case I've named the application "FlickrPhotosSL". I've chosen to automatically create the web application as well as I'll be using the web application to create the HTML page in which to show the pictures. Everything is added to the default.aspx page that was created by Visual Studio in the web application. Please note that I'm using ASPX here but could as well be using a static HTML page. The advantage of using an ASP.NET is we can take advantage of the asp:Silverlight control.

    Accessing the DOM in Silverlight

    Because I don't want to display anything in the Silverlight control I'll just change the background to the color of the HTML page.
    Note: I did not find a way to completely hide the Silverlight plugin, will have to check how there is a better way to do this than setting a similar background. I tried setting the CSS class visibility to hidden but this causes the Silverlight plugin not to load anymore.

    <div id="test"></div>
          <asp:Silverlight ID="Silverlight1" runat="server" 
    Source="~/ClientBin/FlickrPhotosSL.xap" Version="2.0" Width="10" Height="10" /> </div>

    Let's start with a small test to get a DIV from the Silverlight application and change its innerHTML. To do this the DIV is added to the HTML page, together with the Silverlight object:

    <UserControl x:Class="FlickrPhotosSL.Page"
        Width="0" Height="0">
        <Grid x:Name="LayoutRoot" Background="Transparent">

    Then, in the Page.xaml.cs file we get a reference to the "test" DIV by calling HtmlPage.Document.GetElementById (lines 9 and 10).

       1:  public Page()
       2:  {
       3:          InitializeComponent();
       4:          this.Loaded += new RoutedEventHandler(Page_Loaded);
       5:   }
       7:  void Page_Loaded(object sender, RoutedEventArgs e)
       8:  {
       9:          HtmlElement testDiv = HtmlPage.Document.GetElementById("test");
      10:          testDiv.SetAttribute("innerHTML", "Silverlight Page loaded");
      11:  }

    The result is the text being displayed when running the page. Nothing fancy here but that works.


    Now we'll remove the code used for the test in the HTML page and Page.xaml.cs. Next we add a textbox in plain HTML together with a button. This will be our textbox to type in the Flickr tag name to search for. The objective is to have the onclick event of the button to fire code in the Silverlight application by calling a method made available to the browser.

    I'm also creating two DIVs: one for showing a list with pictures and another to be shown when the pictures are still loading.


    Accessing Silverlight code from script

    In the Silverlight code we we need to make some changes to the Page class so the object and methods are available to the script. .NET objects can be made available by using HtmlPage.RegisterScriptableObject(). By default the members of the object are not available in the browser, so we need to add the attribute [ScriptableMember].

    So, we call RegisterScriptableObject in the page loaded and add a new method that will be called from script.

       1:  void Page_Loaded(object sender, RoutedEventArgs e)
       2:   {   
       3:         HtmlPage.RegisterScriptableObject("SilverlightFlickrObject", this);
       5:   }
       7:  [ScriptableMember]
       8:  public void SearchPictures(string tag)
       9:   {
      10:       ///code here
      11:   }

    In order to call the SearchPictures method from script we create a reference to the Silverlight plugin and call the method in JavaScript. The method is available because it has been decorated by the ScriptableMember attribute. The loadPicturesSilverlight function is called by the onclick event of the button.

    <script type="text/javascript">
         function loadPicturesSilverlight()
             var slPlugin = document.getElementById("Xaml1"); //Silverlight plugin
             var searchTag = document.getElementById("textTag"); //textbox
    Calling the Flickr REST service in Silverlight

    Now we only need to add code in Silverlight in order to search photos on Flickr and add them to the HTML page by generating HTML through Silverlight.

    Because we are accessing the Flickr REST API we'll use WebClient to make an asynchronous call to the Flickr service. This will return us an XML document that we can parse and read to print out the picture thumbnails in the HTML page. You'll want to download the whole sample to view the complete as I'm only showing the main parts hereunder.

       1:  [ScriptableMember]
       2:   public void SearchPictures(string tag)
       3:  {
       4:         WebClient rest = new WebClient();
       5:         rest.DownloadStringCompleted += new DownloadStringCompletedEventHandler
       6:        rest.DownloadStringAsync(new Uri(string.Format(flickrApi, tag)));
       7:   }
       9:   void rest_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
      10:   {
      11:        string url = string.Empty;
      12:        string imageUrl = string.Empty;
      14:        XDocument doc = XDocument.Parse(e.Result);
      16:        HtmlElement ulList = HtmlPage.Document.CreateElement("ul");
      17:        picturesDiv.AppendChild(ulList); //pictures DIV
      19:        picturesDiv.RemoveStyleAttribute("display");
      20:        picturesLoadingDiv.SetStyleAttribute("display", "block");
      22:        picturesLoadingDiv.RemoveStyleAttribute("display");
      23:        picturesLoadingDiv.SetStyleAttribute("display", "none");
      25:        var photos = (from results in doc.Descendants("photo")
      26:                 select new
      27:                  {
      28:                     PhotoId = results.Attribute("id").Value.ToString(),
      29:                     Farm = results.Attribute("farm").Value.ToString(),
      30:                     Server = results.Attribute("server").Value.ToString(),
      31:                     Secret = results.Attribute("secret").Value.ToString(),
      32:                     Title = results.Attribute("title").Value.ToString(),
      33:                     Owner = results.Attribute("owner").Value.ToString()
      34:                   }).Take(12);
      36:      foreach (var photo in photos)
      37:      {
      38:        imageUrl = string.Format("http://farm{0}
      39:                    photo.Farm, photo.Server, photo.PhotoId, photo.Secret);
      40:        url = string.Format("{0}/{1}/", 
    photo.Owner, photo.PhotoId);
      42:        HtmlElement listItem = HtmlPage.Document.CreateElement("li");
      43:        listItem.SetAttribute("innerHTML", string.Format(LI_ITEM, url, 
    imageUrl, photo.Title));
      45:        ulList.AppendChild(listItem);
      46:      }
      48:  }

    So the result is this, we type in a tag to search for:


    And the result is retrieved by the Silverlight code that then adds new <LI> items to the page.


    The sample code used in this post can be downloaded here:

    I can see some use for this in web applications that are currently using Ajax for this kind of processing and where there is no intention of transforming the whole interface into a Silverlight application. Using Silverlight in place of the Ajax calls could prove to be an advantage, especially if you already develop in C#.

    Reproducing my example using JavaScript and AJAX is possible, but it’s another approach to achieving the same results.

  • Katrien's MSDN Blog

    And here we start blogging...


    Or better here is where I start blogging at Microsoft.

    I'm a developer evangelist for Microsoft in Belgium & Luxemburg. My role is to reach out to the developer community:

    • by organizing (or helping with organization of) developer focused events like TechDays
    • connecting with user groups
    • working together with our Regional Directors, MVPs and other influential developers
    • and much more

    Blogging is one of the ways to reach out so no wonder why I’m starting this blog :-)

    Happy New Year 2008 to all of you, and hope to see you on blogsphere or at a live event soon!


  • Katrien's MSDN Blog

    Preview of the Belgian TechDays 2008 agenda


    We've been working hard to finalize the agenda for the TechDays event next March 11th and 12th. Here's a preview (subject to change) on the sessions we're bringing this year. Check out the sessions and leave your comments!

    We've got some great international and national speakers coming to Belgium: Alex Turner, Bart De Smet, Dave Webster, Matt Gibbs, Nikhil Kothari, Patrick Tisseghem, Peter Himschoot, Roy Osherove to name a few. Others still need confirmation so stay tuned for new names being added soon.

    Session topics, in no particular order:

    Deep Reflection (Roy Osherove)
    In this 400 level session Roy Osherove digs deep into the heart of some of the new features in Reflection 2.0 such as runtime code generation using DynamicMethod (Lightweight Code Generation - LCG), parsing IL at runtime, generics in reflection, debugging runtime generated code, understanding Reflection.Emit, ReflectionOnly Context's for security and using Code gen to improve performance. Put your thinking cap on.

    The ABC of building services with WCF (Peter Himschoot)
    In today’s highly connected world being able to communicate is very important, especially for your applications. But how? Web Services? Remoting? Enterprise Services? WCF is Microsoft’s unified framework for building communication into your application, ready for the future. In this session we will look at building services with WCF, getting our hands dirty through building a service live, in front of your eyes. After this session you should have a clear understanding of the development life-cycle for WCF, the advantages of using WCF and how to proceed with it yourself.

    Architecture and Databinding in WPF (Dave Webster)
    Now that we have had some time to get used to XAML and WPF and seen the shiny new UIs we can build, it’s time to get serious about architecture and understand the power of databinding.  In this talk we will discuss advanced topics in databinding, the use of MVC architecture patterns and we will stretch Expression Blend version 2.0 to its limits.

    We’ve been hacked!  Web security for developers (Dave Webster)
    This is a demo driven session showing the actual hack of a web site.  You will learn how to write your web sites securely, and what your IT department will need from you. Bring your laptop and join in!

    Introduction to the new ASP.NET Model View Controller (MVC) Framework (Matt Gibbs)
    A benefit of the MVC architectural pattern is that it promotes a clean separation between the models, views and controllers within an application. In the near future, ASP.NET will include support for developing web applications using an MVC based architecture.
    The ASP.NET MVC Framework is designed to support building applications that exhibit the following traits:
    - Testability – Red/Green test driven development.
    - Maintainability –clear separation of concerns
    - Extensibility – interfaces allowing custom implementation at all levels.
    - Web Standards and clean URLs – with routing and giving developers tight control over the resulting HTML.
    Join us for a dive into the new MVC Framework and learn how to leverage this new alterative in your own applications.

    AJAX Patterns (Nikhil Kothari)
    This session takes a deep look at the Ajax paradigm by discussing useful development patterns, common problems and associated solutions. Patterns covered range from development approaches such as unobtrusive script attachment, to fundamentals such as search optimization to user interface and usability patterns such as intuitive navigation and visual notifications. While the demonstrations are illustrated through basic scenarios, like any pattern, the concepts can be applied to your own applications. In the course of demonstrating the patterns, this talk will also cover various aspects of ASP.NET AJAX including the latest features.

    Unit testing tips and tricks (Roy Osherove)
    In this talk we'll explore techniques for dealing with various unit testing scenarios. From testing events, to testing databases to testing LINQ queries and anonymous types, we'll see many small scenarios and discuss the unit testing patterns that can help test them.

    The .NET Language Integrated Query (LINQ) Framework (Alex Turner)
    Modern applications operate on data in several different forms: Relational tables, XML documents, and in-memory objects. Each of these domains can have profound differences in semantics, data types, and capabilities, and much of the complexity in today's applications is the result of these mismatches. Alex Turner, C# Compiler Program Manager, explains how Visual Studio 2008 aims to unify the programming models through LINQ capabilities in Microsoft Visual C# and Visual Basic, a strongly typed data access framework, and an innovative Application Programming Interface (API) for manipulating and querying XML.

    LINQ Under the Covers: An In-Depth Look at LINQ (Alex Turner)
    Want to know what really happens when you execute your favorite LINQ queries? Join us as we peek behind the curtain in Reflector to see how the C# compiler translates LINQ query expressions into standard query operators, while digging into the iterators that make LINQ to Objects tick. Learn exactly when query evaluation is deferred, and see how lambda expressions and closures work together to enable LINQ's elegant syntax. Then we'll explore how nearly identical LINQ to Objects and LINQ to SQL queries will result in radically different translations as we dig into the details of IQueryable and expression trees. Finally, we follow our IQueryable objects across the language barrier to investigate the unique features VB brings to LINQ, including XML literals. It is suggested that you attend the session "The .NET Language Integrated Query (LINQ) Framework" before attending this session.

    Creating Custom LINQ Providers – LINQ to Anything (Bart De Smet)
    LINQ is all about unifying data access in a natural language integrated way. But there’s more than just LINQ to Objects, LINQ to SQL and LINQ to XML. In this session, we put ourselves on the other side of the curtain and explore the wonderful world of LINQ providers. You’ll learn how to create a fully functional LINQ query provider allowing users to target your favorite query language using familiar LINQ syntax in C# 3.0 and VB 9.0: LINQ to AD, LINQ to SharePoint, LINQ to AD, LINQ to Outlook, you name it! This is your chance to get to know the inner workings of LINQ.

    Building internet web sites using Microsoft Office SharePoint Server 2007 (Joris Poelmans)
    Microsoft Office SharePoint Server 2007 provides the necessary framework components to build an Internet web sites using master pages, page layouts and WCM specific functionality. In this session we will take an in-depth look at how to use these components and which are the best practices  for developing an internet web site while leveraging the MOSS platform. This session will conclude with a look at the Accessibility Kit for SharePoint as well as at the migration story for MCMS customers.

    Building RIAs for WSS 3.0 and MOSS 2007 (Patrick Tisseghem)
    In this session you’ll learn how to leverage Web 2.0 technologies to deliver a rich and interactive end-user experience for SharePoint sites and content. Topics that will be covered are: building ASP.NET AJAX 1.0 enabled Web Parts; creating and consuming SharePoint Web Services that are AJAX-enabled; Web Parts hosting Silverlight 1.0 and 2.0 applications; techniques to have the Silverlight applications communicated back and forth with SharePoint content such as items in lists and libraries, user profile information and search results; samples of how publishing portals can be enriched with Silverlight navigation controls and enhanced page layouts; demos on how to build Vista Gadgets that display SharePoint content using traditional UI techniques as well as using Silverlight.

    Building Rich Web Experience with Silverlight using Expression Blend and Visual Studio (Wim Verhaegen)
    Silverlight is a cross-platform technology that brings new user interface capabilities such as vector graphics, media, animations and XAML to the browser.
    Learn about building Silverlight applications using JavaScript, and see how Silverlight fits naturally into the AJAX development model.
    This session provides developers the in-depth knowledge they need to start building Silverlight 1.0 applications today using Visual Studio and Microsoft Expression Blend.

    IIS7 End-to-End Extensibility for Developers (Brian Delahunty)
    In IIS7 the server exposes a brand new, powerful extensibility model for building server features that can be used to extend its functionality, or replace any of the default features.  With the Integrated Pipeline architecture, managed modules become virtually as powerful as native modules. In part I of this two part session, we will illustrate extending the server in an end to end scenario, building a managed module to extend the runtime and replace existing functionality.  We will then extend IIS7 diagnostics to instrument our module with custom trace events.

  • Katrien's MSDN Blog

    TechDays 2008: new sessions added


    Here's an update on yet more sessions that will be added to the final agenda of this year's TechDays (March 12-13 2008). You can already register and take the opportunity to witness the Visual Studio 2008, Windows Server 2008 and SQL Server 2008 launch event which is held on the 11th of March.

    I thought it might interest some people to get the information as it comes available, but please note that this might still be subject to change. As you can see, some great speakers have been added.

    Check out my previous post for first preview.

    WCF and WF: Integrating two key technologies of .NET 3.5 (Ingo Rammer)
    Windows Communication Foundation and Windows Workflow Foundation are two cornerstones of .NET 3.5. In this session, you will learn about different ways to combine them to workflow-enable your WCF applications.

    Advanced Debugging with Visual Studio (Ingo Rammer)
    Basically every .NET developer knows the Visual Studio debugger, but only few know its little secrets. In this session, Ingo shows you what you can achieve with this tool beyond the setting of simple breakpoints. You will learn how advanced breakpoints, debugger macros and visualizers, interactive breakpoints, tracepoints and interactive object instantiation at development time can support your hunt for bugs in your applications.

    Using Visual Studio 2008 as a RAD tool to build a distributed application (Jay Schmelzer)
    In this demo intensive session we’ll take a look at improved support in Visual Studio 2008 for building distributed business applications.  We will focus on Visual Studio’s support for building and consuming WCF services, sharing business validation rules between client and server, implementing local caching of read-only data on the client, sharing common application services like authentication and authorization between Windows and Web client applications and much more.  Next we will turn our attention to web and see how Visual Studio 2008 allows us to easily incorporate rich experiences into our existing ASP.NET web sites using ASP.NET AJAX, the ASP.NET AJAX Control Toolkit and take advantage of improved HTML designer, CSS editor and JavaScript intellisense and debugging.  Visual Studio 2005 raised the productivity bar for business application developers.  Visual Studio 2008 builds on that foundation bringing unmatched productivity gains to distributed business application developers.

    Visual Studio 2008: Building applications with Office 2007 (Jay Schmelzer)
    This session provides an overview of the tools and technologies that enable developers to leverage the new Visual Studio 2008 and Office platform tools and technologies to build new and exciting Office Business Applications. You’ll learn a number of key technologies in this session, including the creation of Office smart clients, development of custom SharePoint workflow, and extension of Outlook to integrate key business data into one of our most popular productivity tools.

    Visual Basic: Tips and Tricks for the Microsoft Visual Studio 2008 (Jay Schmelzer)
    In this session, we combine some tips for existing Visual Studio features, and tricks for leveraging new Visual Studio 2008 features. We look at a variety of existing features including operator overloading, refactoring, creating your own snippets, some tips for using frameworks classes (and generics), and leveraging application settings. Then we look at new features including some LINQ Do’s and Don’ts, My Extensibility, and taking control of unit testing in Visual Studio. All of these tips are aimed at giving you a more productive, fun programming experience.

    Office: Office Open XML Formats (Chad Hower)
    Office 2007 now stores its documents in XML. This makes manipulation and creation of documents easy to do, even without Office installed. The Office Open XML format is also an ECMA standard and has backwards compatibility with older versions of Office as well as some capabilities on Linux and Macintosh, as well as Java. Surprised? Learn about these features and more in this session.

    Architecture: Dude, where's my business logic? (Chad Hower)
    Over the years we have moved from desktop, to client server, to 3-tier, to n-tier, to service orientation. In the process though many things have changed, but many habits have remained. This session discusses what we are doing wrong, and solutions.

    .NET 3.0: WinForms and WPF (Chad Hower)
    With two options for building forms, which is better to use? For the near future the answer often is both. In this session we will cover the strengths and weaknesses of each, and how to use them effectively together.

    Technorati Tags: ,
  • Katrien's MSDN Blog

    Windows Store – App Certification Tips


    Windows 8 launches globally on October 26th, as we move closer and closer, we’re supporting many Belgian developers go through the process of certifying their apps. To help other developers we might not be in touch with, I’m sharing an aggregation of tips and resources we use. It’s worthwhile browsing through this post before you submit so that you increase the chance of passing certification from the first time.

    The tips are based on what we have been working on, many times it’s small things that you can have fixed before you submit, such as forgetting a support contact or privacy policy. We’ll be updating this post as we move along.

    Before going into the details, keep the following resources handy when certifying apps on Windows Store.

    Most recurring omissions

    From our experience, this is what I ask developers before they submit:

    1. Have you created a Privacy policy settings entry in the Settings charm?
    2. Have you added a Privacy URL info in the Additional details of the Store Portal dashboard? See below.
    3. Have you set your Default language correctly in the App Manifest? See below.
    4. Are your Capabilities correct? Remember capabilities also influence requirements around age rating and privacy. If you do not need Internet access, make sure to uncheck the capability as it is checked by default.


    Store Portal: Description Page

    In the description page of the Store portal, after you submit your package, you will be able to enter the details for the Windows Store app listing. For a complete overview of the content needed to complete this page, please see the Dev Center Checklist for submitting an app. This is a great resource to send to your business team as they will provide visuals, description, features and category information in each language the app supports.

    Support contact

    Failing to fill in the Support contact URL or e-mail address will have your app rejected. Double-check the content you are entering here.

    Add a Privacy URL

    We also recommend you add the same privacy URL as an entry in the app settings pane.

    Choosing the right Age Rating

    Review the guidance: Pick a suitable Windows Store age rating and Give your app an age rating.

    Linked to the Age rating, make sure the screenshots you upload for your app listing (metadata) are viewable by 12+ if your app requires higher age rating.


    Before submission

    Language of the package, default language and multiple languages

    Windows Store allows for global distribution. This is a huge potential you should take advantage of, and which will be even more successful if you offer the app in several languages.

    When uploading the app package to the Store, detection of the supported languages is done through the AppManifest resources. Make sure you entered your default language correctly (default might go to en-US depending on your version of Visual Studio).
    Open the AppManifest file in the XML editor.

    Case 1: single language (US English)

    For English, you can either leave the default setting (x-generate) if you are using an English version of Visual Studio or adapt manually:

         <Resource Language="en-us"/>

    Case 2: single language (only Dutch for both Belgium and Netherlands)

        <Resource Language="nl" />   

    Case 3: several languages (English, French and Dutch as example)

    The first language in the list is the default language. We are using the country code to make it more specific. You can choose to omit it.

       <Resource Language="en-us" />
       <Resource Language="fr-be" />
       <Resource Language="nl-be" />
    < /Resources>

    Privacy policy in settings pane (charm)

    Many applications use the Internet capability, for which a privacy policy URL is required in the Store portal. Note that this is a very important one and also linked to activating a number of capabilities such as:

    • SMS
    • Text messages
    • Location
    • Microphone
    • Webcam
    • Documents Library

    See full details: 4. Windows Store apps put the customer in control on the Resolving certification errors documentation.


    Disclaimer and About

    Depending on the content you use, information you share, a disclaimer and about sections in the Settings pane are also recommended.



    I wish you a lot of success with your app. Don’t forget our local events and support options through App Clinics.

  • Katrien's MSDN Blog

    Windows 8 App Clinics: book your slot and let’s talk apps


    Have you looked into the new developer opportunity with Windows 8 Metro Applications? 
    imageCombining the broad reach of Windows, best-in-class developer tools, a reimagined user experience, support for new chipsets, and a built-in Store with industry-leading business terms - Windows 8 is the largest developer opportunity, ever.

    But now what? In Belgium we have announced a series of developer camps, webcasts and MIC calls for projects. These activities will allow you to dive technically into the platform to support you in building apps. However, you probably need more.

    What about testing on more than one device? What about discussing the best UX and experience to integrate with Metro? And most importantly, what about getting that access to the Windows Store and publish an app? If you are based in Belgium or Luxembourg don’t hesitate to take advantage of this option.

    The answers are the App Clinics. Join us for a meeting with the Microsoft Evangelists and consultants to discuss the app, the ideas, the application flow, architecture, technical questions and more. It’s an open discussion and allows you to be ready for the next step: passing an App Excellence Lab with a Microsoft engineer, the last step before getting access to the Windows Store as a developer.


    Are you actively working on a Windows 8 Metro app? Have an idea but are not sure what the next step is? Join us at an App Clinic and we’ll help you move to the next stage.


    App Clinic dates (currently all dates are on Tuesdays): 24th April 2012, 8th May 2012, 31th May 2012, 5th June 2012 and 19th June 2012.


  • Katrien's MSDN Blog

    Get the latest content on Microsoft’s web technologies at MIX08


    Next March, MIX08 is taking place in Las Vegas (March 5th to 7th 2008).

    So, what is it?
    MIX is THE conference to attend to learn about the new web and UX technologies by Microsoft.

    Keynote speakers
    Keynote speakers include Steve Ballmer, Guy Kawasaki and Scott Guthrie

    Sessions, content and speakers
    Take a look at the list of sessions on Silverlight 2.0, Expression tools, ASP.NET Extensions (ASP.NET MVC Framework, Dynamic Data Controls),  Windows Live, SharePoint and much more.

    Other than the keynote speaker I noticed a few familiar names in the session list: Scott Hanselman, Angus Logan, Miguel de Icaza, Joe Stegman, …

    Who should attend?
    MIX is a conference geared towards business strategists, developers and designers.  There are enough sessions focused on each public. It’s also a great opportunity to network with your peers in the web industry.

    Want to go but you’re short on cash (or can’t convince your boss)?

    There are still a few ways to win your free entry to the conference and even a free stay at the Venetian.

    1. MIX ReStyle: if you are a CSS wiz this is for you. Participate by creating a new design for the MIX site using your own CSS and images. At the time of writing only one (1!) person submitted an entry. Take your chance!
    2. 1st European Silverlight contest: one a few days left to submit your entry. They are giving away a few tickets to MIX to the winners.

    I must admit I’m very happy that I will be attending the conference myself. I’m looking forward to the great sessions that have been announced and the opportunity to meet with other Belgian folks that will be present.

    If you book before the 31st of January 2008 you still get the special early bird price.

    Technorati Tags:
  • Katrien's MSDN Blog

    Silverlight 2: structure of the new .XAP file (Silverlight packaged application)


    With Silverlight 2 comes a new file extension for your Silverlight applications: .XAP (pronounced zap). This is a compressed file that uses standard .zip compression algorithm to minimize client download size.

    .XAP structure

    As stated the .XAP file is a .zip compressed file that contains the client DLL for the Silverlight application as extra DLLs of assemblies that you are using in your application. This can be your own assemblies of user controls or assemblies that are not part of the Silverlight runtime by default that gets installed on the client.

    External resources like images or other types of files can also be added to the .XAP file if you do embed them into your client DLL. I will be doing another post on the different ways of embedding files into the package application and DLL.

    By renaming the .xap file to .zip you can view its contents:


    Application Manifest file


    The AppManifest.xml file defines the assemblies that get deployed in the client application. This file is automatically updated when compiling your application. Based on the settings of a referenced assembly it is added to the Application manifest. For example, if you have an assembly that you are referencing in your application but do not wish to have it included into the. XAP file you can choose to set “Copy Local” to false.


    In this example I’m referencing the System.Xml.Linq assembly and chose not to have a local copied deployed with the .xap. I’ll then need to an on demand download of the assembly when accessing it in my code. This can be useful to have only your base assembly deployed and have an on demand download of subsequent assemblies on the fly so that your initial download time is minimal. When only a part of your application uses a specific assembly you may want to use this mechanism.

    .XAP generation tool

    When you use the Silverlight project template in Visual Studio 2008 the .XAP file gets generated automatically for you. This is done in a post-build action that uses a tool called Chiron; a tool that gets installed with the Silverlight 2 Beta1 SDK.

    The Chiron tool can also be accessed via the command line to package your own .XAP files if needed. You can also use this tool to generate the .XAP for a DLR application.

  • Katrien's MSDN Blog

    VSX, VISUG and Multi-mania events


    I'm really running behind with my blogging, these have been busy weeks. I was at several community events and did a presentation at Multi-mania. Wow, that was a first where everybody was talking around mostly non-Microsoft products. Gill, Brecht and I were the only ones doing sessions on Microsoft technologies. The good thing to see there was the openness of the audience. Lots of people talking about Silverlight, curiosity to say the least.

    VISUG event on VSX

    On Tuesday 20th of Mary we had the visit of James Lau and Jean-Marc Prieur from the VSX team (Visual Studio Extensibility). They are on tour through Europe and did a first presentation at Microsoft offices, in the evening there was a VISUG user group event foreseen.
    James and Jean-Marc did a wonderful session on Visual Studio Extensibility: extension packages, DSL tools, entDev, etc. The good news is my colleague Tom already did all the encoding of the recorded videos and you can view the whole session online. If you want to learn more about extending Visual Studio, using the Visual Studio Shell for host your own designers and programming environment and more: check out the videos.
    During the presentation Jean-Marc did two full demos of building tools from scratch: building a custom source code outliner and building a custom DSL. This is a great way to get started on your own. Also check out James' write-up about the day.

    Here is a list of resources that are worth checking out around VSX:

    Wygday and BIWUG event

    The Belgian Information Worker User Group meeting was last Thursday. I had a lot of trouble to get there on time...
    In the morning I travelled to Lille (boy, that's no longer Belgium, that's France!) to attend the Wygday, an event organized by Wygwam, the company of our Regional Director Gregory Renard. There were lots of interesting sessions around SharePoint, Silverlight, .NET Framework 3.5 SP1, GAT, GAX, etc. The event was organized together with Microsoft France but as quite some Belgian developers go over there as well it was worth the travel to meet up.

    Then I left early enough to get to the BIWUG meeting in Kontich but had the bad luck of getting stuck in two big traffic jams. Result: a 1h30 drive took more than 3h30. But I still got to the BIWUG event, even if I was late!

    When I arrived there the first presentation was already well under way: an introduction to Lotus software (Quickr), only got to see the final part of this presentation.
    Then Kurt Claeys did a presentation on Bizatlk integration with SharePoint Services and MOSS. Donwload his and the other presentation slides from Joris' blog.

    Multi-mania event in Kortrijk

    As I already mentioned in the beginning of this post, Friday 23rd May was Multi-mania day. It was a first for me to be presenting at a non (MS) developer event, lots of creative people around with presentations about their work, vision of the future of the web and lots of interactive and design technology (can you guess who was the main sponsor? :-).
    Gill did a general RIA development with Silverlight 2 session. As always, I think it was very well structured and introduces the technology well for people not having done Silverlight yet. The room was not completely full but the audience was very interested in seeing what Microsoft is doing in that space.

    Brecht, one of the founders of the new XNA user group in Belgium (XNABUG) did a presentation on XNA game development, he had some great samples with games on a Zune and some of the projects Belgian participants of the Imagine Cup. That same day we actually got the good news that one of the Belgian teams has made it to the final 6 in Game Development in the Imagine Cup. Congratulations guys!

    My own session was focused on the learning's for designers when doing WPF and Silverlight projects in Expression Blend. I mostly used great samples provided by Arturo Toledo, a designer audience product manager at Microsoft. He did a fantastic session at MIX that you definitely need to check out: XAML Ready Agency with Expression Blend.

    VISUG HHH session: Introduction to Workflow Foundation

    This week another VISUG event took place at Ordina in Merelbeke, presented by Kurt Claeys. Kurt again, he is keeping busy! Kurt gave a good overview of what Workflow Foundation is all about with lots of samples. He started by explaining the basics using .NET 3.0 samples and then moved to version 3.5, explaining the main updates between the two releases. 

    I especially appreciated the TV sample he made to explain State Machine workflows. This is actually explained in an article he did 2 years ago: State Machine Workflows in Windows Workflow Foundation. This is still version 3.0 but very usable in the current version as the article explains the concepts.

    Kurt is already in Orlando for next week's TechEd US, where he will be helping out with the Hands-on-Labs the whole week. Have a nice time Kurt!

    Workflow Foundation: new articles by Serge Luca

    And to finish off, Serge Luca has posted part 11 and 12 of his Step by Step Tutorial "Creating Workflows for Windows Sharepoint Services and MOSS2007". Check out the two new articles on his blog:

  • Katrien's MSDN Blog

    Prism: codename for the new guidance for Composite Application development for WPF


    imagePrism is the codename for the new guidance for Composite Application development for WPF. This is not an update to CAB (Composite UI Application Block), it delivers a new set of assets and guidance for developing new Composite WPF applications. As it is not based on previous smart client offerings it is really optimized for WPF and gives a simplified approach that is more easily adoptable. Prism includes a reference implementation, reusable library code and pattern guidance.

    I've been reading on Prism and collected a few URLs that should get you started on Prism. Please note that this is still not in beta, drop 6 is currently available for download from the CodePlex site.

    If you are wondering whether Prism is a replacement for Acropolis (which has been delayed), it's not really the same thing. Acropolis is still undergoing and will be folded into future versions of the .NET platform. "Prism" focuses only on a subset of what Acropolis was aiming to provide.

    There is one thing I don't like though, hope the team comes up with a nicer logo :-) sorry guys, really not my thing.

  • Katrien's MSDN Blog

    Looking for the Belgian attendees at PDC 2008!


    After receiving this question a few times: “will there be any Belgian event at PDC2008?”, and with the suggestion of my colleague Tom we are planning to have an informal get together with all the Belgians and Luxembourgers attending PDC.

    So, if you want to join us there’s one easy way to keep up to date of where we’ll meet and any changes: just add this Facebook event to your events! You will automatically be notified of any last minute updates.

    As it stands now, this is the deal:

    Date: Monday, October 27, 2008
    Time: 8:30pm
    Location: Show Off area - at PDC2008 - L.A. Convention Center

    It’s in informal get together so we’ll see how it goes. I guess a lot depends on the number of people joining us. Suggestions are welcome on the Facebook event page.

    I’ll also be micro-blogging any updates on my twitter account: katriendg.

    Thanks Nico and Rogge for getting this rolling, and check out Nico’s very helpful post on getting prepared for PDC.

    See you in L.A.!

  • Katrien's MSDN Blog

    PHP on Windows Training Kit available (April 2009 update)


    As you might know running PHP applications on Windows Server 2008 (and Vista SP1) and Internet Information Services 7 (IIS7) is supported through the FastCGI module. If you need to learn more there is good news: a full training kit has been released. Besides addressing configuration of PHP on IIS 7 it also contains demos and labs on how to take advantage of SQL Server from PHP applications.


    PHP & SQL Server Demos

    • Integrating SQL Server Geo-Spatial with PHP
    • SQL Server Reporting Services and PHP
    PHP & SQL Server Hands On Labs
    • Introduction to Using SQL Server with PHP
    • Using Full Text Search over Office Documents in PHP
    PHP on Windows Hands On Labs
    • IIS Access Control Features for PHP
    • Using IIS 7.0 Media Features in a PHP Application
    • Troubleshooting PHP
    • Migrating PHP Applications to IIS 7.0

    Download “PHP on Windows Training Kit (April 2009 update)”

  • Katrien's MSDN Blog

    .NET Developer technologies: what’s here to stay, what can you focus on? (trends)


    With the beta release of Windows 7, the announcements done at PDC in October 2008 around the Azure Services Platform, Oslo and others; Visual Studio 10 at TechEd EMEA and more in between you might start wondering what your focus should be. Chances are you currently work on a project that does not yet implement any of these new technologies, so what can you start using and learning today in order to have an advantage in the future? That’s what I try to identify for you so that you can invest your time in technologies that according to me will become even more used in the future (of course while evolving as well).

    In this post I’m making a selection on technologies that according to me will be important in the future (when working with Microsoft products mainly). This is a personal view and not an official statement by Microsoft in which direction to evolve or invest. It’s based on my own assumptions and learnings of the past months.

    If I look back at what I have learned about the most in 2008 I can see a distinct moment in the year where a lot of new things started getting clearer: with PDC in October you could clearly see a shift towards a new paradigm, cloud computing. I also see PDC as the confirmation of other technologies are here to stay.


    This is a real favorite of mine, XAML is the markup language used in WPF and Silverlight. By using XAML for the UI layer, both developers and designers/integrators can work on the same project, each with their favorite tools and focus.

    XAML also marks an evolution in Microsoft technologies with a stronger User Experience focus, and tools to enable designers/integrators and developers to work together on projects.
    Because XAML is separate from the Designers/integrators can work on the layout, interaction and styling of applications by using Expression Blend. This tool generates XAML without the need to type in all XAML manually. However a good base knowledge of XAML for WPF and Silverlight is really a plus. Developers also produce some XAML but they will mainly add business logic in the “code-behind” files using C#, VB or even IronRuby and other dynamic languages using Visual Studio or other tools.

    If we look at the evolution of WPF and the extensive use of XAML in devices such as the Surface we see this will still evolve quite a lot in the years to come. This means that with a single technology you can target multiple forms:

    • Windows client (WPF)
    • Web (Silverlight)
    • Mobile (Silverlight)
    • Surface (WPF with Surface SDK)

    XAML Resources:

    • – community site for Windows Presentation Foundation & Windows Forms
    • – community site for Silverlight, the best starting point for anything Silverlight (and XAML)
    • Some sample WPF projects:
      • PhotoSuru
      • blu – Twitter client (showcase project by Thirteen23)
    • Expression community site (tutorials, articles, videos about XAML and the related technologies WPF and Sivlerlight, mainly for integrators and designers)

    I should also highlight that XAML is not only used for UI like in WPF and Silverlight but also as the declarative language for services (in WCF) or in Workflow Foundation.


    Windows Communication Foundation was first introduced with the .NET Framework 3.0 version. WCF is Microsoft’s recommended framework for building distributed applications, using a typed programming model (service model). While previously you had to use different technologies to build services like ASP.NET Web services, Web Services Enhancements (WSE), or .NET Remoting, since .NET 3.0 the answer is WCF.

    WCF continues to evolve, with a lot of new features foreseen for WCF 4.0: tighter integration of WF and WCF, declarative services (with XAML), just take a look at the new features announced for WCF 4.0 on this MSDN page.


    REST (or Representational State Transfer, see Wikipedia) is becoming more widely used as the protocol for a lot of new services and the support for REST in the .NET framework is only increasing. The WCF REST Starter Kit was released to make it even easier to build RESTful services using WCF.

    If we look at the Azure Services Platform, quite a lot of the services are accessible through REST, like the Live Services or Windows Azure storage. This is also one of the pointers to me in choosing this as one of the current technologies where you can focus on.

    In this area we should also not forget ADO.NET Data Services, which allow you to expose and consume your data or objects easily through a RESTful interface. Again here the integration with Azure becomes important become some of Microsoft’s cloud services expose data using the same conventions as the ADO.NET Data Services. This means you can use ADO.NET Data Services client libraries when working with some of Azure Services’. Again more reasons proving that investing your time in learning REST and ADO.NET Data Services will most probably pay off in the future.

    Entity Framework

    ADO.NET Entity Framework was released last year with .NET Framework 3.5 SP1. In short, Entity Framework is a ORM for the .NET framework but we would be doing it wrong by this abstraction. On one hand, it allows developers to program against a conceptual model of your data instead of programming directly against a relational storage schema. This is done through defining Entity Data Model (EDM) to map the model to the data store.
    The model can then be programmed against by using different services:
    - Object Services
    - Entity Client
    - Entity SQL
    - LINQ to Entities

    Check out this PDC video to learn about the future of ADO.NET Entity Framework, and see how it’s going to evolve.

    A note on LINQ to SQL: I have read on several places on the web that LINQ to SQL is gone. Well, I could not really find any official Microsoft source stating it’s finished. Rather, most investments will be made in LINQ to Entities, which is part of Entity Framework. While I love LINQ to SQL for RAD development and data access it has its limitations if you need to build an object model that does not do 1:1 mapping to the database.
    See this official post on the ADO.NET blog.


    ASP.NET Ajax 4.0 promises to bring some very interesting capabilities like Client templates. Forget the extra postbacks and roundtrips to the server, you can now take advantage of Client templates and load your data exposed through JSON for example.  But that’s just one of the features, check out latest preview on the CodePlex site.


    These are the main areas that I have identified, based on events I attended, readings, and discussions with colleagues and fellow developers in the community. So, IMHO you cannot do wrong going further already today with the before mentioned technologies.

  • Katrien's MSDN Blog

    Quick tip (link): Virtual images for testing different Internet Explorer versions


    This question comes up a lot: web devs need a solution for testing websites on different versions of Internet Explorer. One answer to this are the “Internet Explorer Application Compatibility VPC Image” files, made available for download.

    The whole batch of VHD files has now been refreshed on August 16 2011, meaning you can use them again for a period of three months until mid-November.

    Download includes the following OS/IE combinations:

    • Windows XP SP3 with IE6 VHD file
    • Windows Vista SP2 with IE7 VHD file
    • Windows 7 SP1 with IE8 VHD file
    • Windows 7 SP1 with IE9 VHD file

    Do not that for testing on Internet Explorer 10 you can download the standalone IE10 Platform Preview 2 installer which installs side by side with IE9:

    >> Download VHD files at

Page 2 of 27 (399 items) 12345»