Converting your VS2008 projects to support xaml designer in Expression blend 3

If you've created a new WPF project in VS2008 and then you try to design your UX in Expression Blend 3 you'll find that you get xaml view only.

What is required is to add


to the project file.

.NET DateTime Webservices UTC

With .NET 1.1 when we receive a UTC DateTime in a SOAP response from a Webservice it used to get converted to Local time.

With .NET 2.0 when we receive a UTC DateTime in a SOAP response it stays in UTC.

If you need it in local time make sure to call .ToLocalTime()

** Edit: P.s. Have a look at this neat class in the framework XmlConvert

Expression blend for WPF/Silverlight 4

Announced at PDC this week

Finally a version of blend that will open vs2010 projects (and of course handle Wpf4 and Silverlight 4)

It will run side by side with Blend 3

Enjoy Winking smile

Configuring IIS to host WCF services

It's true what they say, to learn new technologies it's simple a matter of ABC (Always be coding), I've watched many the video, read many the book but it's only when I went to try to do something the it sinks in.
Like tonight while trying to host a WCF service on my Windows 7 machine I came across a problem that you'd only find by ABC.

HTTP Error 404.3 - Not Found

The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

The solution.

Control Panel/Programs and Features/Add or Remove components/Microsoft .NET Framework 3.5.1 section.

I checked the two Windows Communication Foundation checkboxes shown below (the second box enables Windows Activation Service - WAS so that IIS can host WCF services that can be called using non-HTTP bindings such as TCP) (nice!)


WPF ErrorList


I recently wrote a control that tries to replicate the error list seen in Visual studio.

The control is dependant on .NET 3.5 SP1. because it uses the WPFToolkit.

I'm hosting a sample here. [Update August 2012 My host has stopped xbap application types, sorry]


BlogEngine and Silverlight

I've had a few people asking me how did I host Silverlight 3 in blog engine.

Silverlight Usercontrol

It was pretty simple really (when you know how)

Basically Silverlight3 needs an <object> tag.

So I created a user control with the object tag and some script handling for client side errors (actually VS2010 did all the hard lifting).


<%@ Control Language="C#" ClassName="SilverlightControl" %>

<script runat="server">


<script type="text/javascript" src="~/Silverlight.js"></script>
    <script type="text/javascript">
        function onSilverlightError(sender, args) {
            var appSource = "";
            if (sender != null && sender != 0) {
                appSource = sender.getHost().Source;

            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            if (errorType == "ImageError" || errorType == "MediaError") {

            var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

            errMsg += "Code: " + iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            else if (errorType == "RuntimeError") {
                if (args.lineNumber != 0) {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " + args.charPosition + "     \n";
                errMsg += "MethodName: " + args.methodName + "     \n";

            throw new Error(errMsg);

    <div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="<%Silverlight.xbap%>"/>   // where <%Silverlight.xbap%> is location of silverlight xbap
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="3.0.40818.0" />
    <param name="autoUpgrade" value="true" />
    <a href="" style="text-decoration:none">
      <img src="" alt="Get Microsoft Silverlight" style="border-style:none"/>
     </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>


Windows Forms Validation

One approach for validating child controls on windows froms is to


  • Add a Validated event handler to all child controls you're interested in.
  • On a button event handler call this.ValidateChildren();

This will ensure the validation routine on all child controls will be called, if for example you've added an ErrorProvider control extender to your form you can set it up in the validated event handlers.

Inline XML Linq manipulation sample

A quick example of inline xml and Linq




void LinqToXmlSample()
  Console.WriteLine("{0} : Start", new StackTrace(0, true).GetFrame(0).GetMethod().Name);

  XDocument xDocument = new XDocument(
    new XElement("people",
      new XElement("person",
        new XAttribute("sex", "male"),
        new XElement("FirstName", "Brian"),
        new XElement("LastName", "Keating")),
      new XElement("person",
        new XAttribute("type", "female"),
        new XElement("FirstName", "Dustin"),
        new XElement("LastName", "Turkey"))));

  IEnumerable<XElement> elements =

  /*  First, I will display the source elements.*/
  foreach (XElement element in elements)
    Console.WriteLine("Source element: {0} : value = {1}",
      element.Name, element.Value);

  /*  Now, I will display the ancestor elements for each source element.*/
  foreach (XElement element in elements.Ancestors())
    Console.WriteLine("Ancestor element: {0}", element.Name);

  Console.WriteLine("{0} : Finish", new StackTrace(0, true).GetFrame(0).GetMethod().Name);




LinqToXmlSample : Start
Source element: FirstName : value = Brian
Source element: FirstName : value = Dustin
Ancestor element: person
Ancestor element: people
Ancestor element: person
Ancestor element: people
LinqToXmlSample : Finish


[Update August 2012: Little did I know when i wrote this post just how much I would use Linq to xml, it saved me from a life of xslt Smile ]

Resource Cleanup and Lambda Expressions

A neat way of always cleaning up resources is to use Lambdas as data.

Take the following



    internal interface ITryCatchReport
        void Try(Action<IServer> action);

    internal class TryCatchReport : ITryCatchReport
        public TryCatchReport(IServer server)
            _server = server;

        public void Try(Action<IServer> action)
            catch (Exception e)
                // Clean up resources
                // Report errors

        private IServer _server;    






TryCatchReport safeInvoker = new TryCatchReport(_data.Server);
safeInvoker.Try(x =>


We are now guaranteed that in the case of an exception that the resources will get cleaned up.


Usage with code blocks

If you wish to execute many statements in the action look at this sample.


private List<WFActionDefinition> GetActionDefinitions()
    if (_actionDefinitions == null)
        safeInvoker.Try(x =>

    return _actionDefinitions;


Visual Studio Project Dependencies

Adding project dependencies on Visual studio is done automatically with .NET projects when Add Reference dialog chooses another project from your solution.

However you can get Visual Studio to add project dependencies if no explicit intra project reference exists.

Right click on your solution, choose properties and choose the project dependencies option.


Recent Tweets

Note: For Customization and Configuration, CheckOut Recent Tweets Documentation


<<  December 2018  >>

View posts in large calendar

Month List