Slides from my ASP.NET Connections talks: WPF/E, LINQ and ASP.NET Tips/Tricks

Earlier this week I presented three breakout sessions at the ASP.NET Connections conference in Orlando.  Below are the slides / demos for each of the talks I gave:

Introduction to "WPF/E"

This talk provides a good introduction to "WPF/E" - which is the code-name for a new small, cross platform browser runtime that enables developers and designers to deliver richer, more interactive web experiences.  I first blogged about "WPF/E" here.

You can download the slides+demos from my WPF/E talk here (it includes a video sample - which makes the overall download ~10MB).  The talk provides an overview of the core capabilities within the WPF/E CTPs today, and also demonstrates the core XAML and JavaScript programming model concepts you use.

For more "WPF/E" samples please visit the online "WPF/E" sample gallery on Channel9 here.  You can also download documentation and samples on the official "WPF/E" MSDN site here.  Mike Harsh on my team also maintains a fantastic blog that covers WPF/E here that I highly recommend subscribing to.

Building Data Driven Web Applications using LINQ

This talk provided a drill down of LINQ (which will ship as part of our "Orcas" release), and demonstrated some of the dramatic productivity improvements it will bring for ASP.NET.  Click here to download the slides for this talk.

If you haven't seen it yet, I highly recommend watching my 20 minute video that demonstrates using LINQ with Visual Studio "Orcas" here.  You can learn even more about LINQ and how to use it with ASP.NET by reviewing some of my past LINQ blog posts.  Here are a few in particular worth reviewing:

Lastly, to learn more about some of the new C# and VB language features coming out with "Orcas" (and which LINQ heavily uses), please check out the first two posts in my language series here:

I'm going to try and post the next installment in my language series (which will cover Lambdas) in the next few days - so stay tuned for that.

ASP.NET 2.0 Tips and Tricks:

This talk covered ASP.NET UI, AJAX, Caching and Deployment Tips and Tricks, and Visual Studio 2005 tips/tricks.  The samples include updated versions of ASP.NET AJAX that all work with ASP.NET AJAX 1.0.  You can download the slides+samples here.

You can learn more about the Visual Studio build performance optimization suggestions by reading this past post of mine on improving build performance

Hope this helps,



  • I hope you aren't giving away your MIX content :)

  • Great stuff.

    I'd really really really (!!!) like to see DLinq include better support for disconnected update, save features.

    ie. client queries for the object, makes changes to the object, passes it to a webservice, persists the changes.

    Once that is present I see huge potential in DLinq, currently it appears to support only a 2 tier environment (client -> database server) vs. (client -> webservice on app server -> database).

    I understand it's CTP, just waiting for the next version already :)

  • Hi Ben,

    Don't worry - there will be a lot of new stuff for MIX. :-)



  • Hi Steve,

    The good news is that support for multi-tier access is actually in there now.

    Specifically, you can serialize out DLINQ entities via a web-service or remoting to another tier. On the remote tier you can work against the object disconnected and send it back later.

    To reconnect a DLINQ entitiy with a DLINQ DataContext (to perform an update or delete) you can take "Attach" the entitiy object (by calling DataContext.Attach() and passing a reference to the entity object).

    If you download the May CTP of LINQ, there is a description of how this works in the "DLINQ Overview for C#/VB Developers" whitepaper on pages 48->50 (section 7.2).

    Hope this helps,


  • Hi Scott,
    After sitting through the awesome talks you gave at Connections, I don't know if I can go back to work and just use the "old" features. I want the new stuff now! I can't wait for Orcas.

  • Very useful information.

    I've seen people talking about how Linq is not the same as Nhibernate because NHibernate can be plug into Linq, how does that work? I'm still trying to catch up on that part of the Linq concept.

  • wow, more stuff to look at.

  • Hi Scott,
    Thanks a lot for your great presentaion on WPF/E.

    Most of the software applications which are used to monitor the updates of a real time system are based on
    descktop applications (in some cases smart client applications). Because they must display the real changes

    happened on an industrial processes(power plant, factory and etc.) on a GUI based software system in very

    short period of time.
    You know in such these real time applications the response to each update occured in the system must be
    displayed as a graphical object. In fact these appliations must have a graphical process visualization.
    In recent years the companies which are encountered with developing real time monitoring systems plan to
    develope their systems based on web applications. So, here I have a question, can WPF/E be used
    in these systems? As you state in your presentaion the vectorized graphical objects can be drawn easily using
    WPF/E. So, it can be considered as a good news. But a point is still remained is a response time.
    In some commercial descktop application using for industrial automation monitoring, the response time

    resolution is in term of millisecond.
    I'm not sure that WPF/E can provide us such this response time or at least a little bit greater.

    What's your opinion Scott?

  • Hi Liming,

    At a high-level, LINQ provides language and programming framework support for querying. This can be used with any datasource - including NHibernate.

    .NET will also ship with built-in ORM mappers that provide LINQ support. LINQ to SQL is one example ORM mapper that does this. As an ORM, this is somewhat analogous to NHibernate (although they each use a different mapping approach).

    Hope this helps,


  • Hi Majid,

    WPF/E will provide the support you need to-do live graphical updates and charts. You can do these at a millisecond granularities.

    What I'm not 100% sure on is what your needs are in terms of getting network updates of the data. A WPF/E app would still want/need to use a polling model where it pings a server to retrieve data. Assuming this works for you, then it should provide everything you need.

    Hope this helps,


  • Thanks Scott,

    Nice information indeed.

    Can you provide me a link, where i can gradually start learning LINQ, DLINQ and other new things from scratch.

    I have been reading all your blogs about this new LINQ. It explains the features that will be available, but i am more interested in learning rather than waiting for its arrival in Orcas.

    If there are no such tutorials,can you kindly arrange something as an start.


  • Hi Paraag,

    I have a number of links and videos about LINQ and DLINQ above that are good places to start right now.

    Going forward you'll see me blog a lot more about these topics. Stay tuned...


  • Hey Scott,

    Last week at devconnections I won an XBox 360 and I'm more excited about what we saw in Orcas and WPF/E and I've talked more about these new technologies than winning the XBox. I'm very excited about where we're heading!



  • Scott,

    I understand you can attach it, but then you have to 'play back the changes', however, the changes are made back in the other tier.

    Unless I'm really missing something, that is how it currently works.

    This is a major issue right now imo

  • What about sql server side paging? Because i still don't see general solution in .NET for this - in slides there's only example with getting all the data and then do the paging, but i my case (and i think that's a usual case) SQL server is sitting on another machine, so receiving all the records from SQL server just to show 10 of them is kind of waste of resources. SubSonic project solved this for MS SQL 2005, but it would be nice to have possibility to have it SQL data provider independant (my case SQL 2000 also).

  • will wpf/e v1 support c# and Standard controls ?

  • Hi lx,

    We'll be talking about our C# and controls plans soon. :-)



  • Hi Giedrius,

    What is cool about LINQ is that when you use the Take() and Skip() methods, it causes server-side paging to occur. So you are only retrieving the 10 records you actually need.

    Hope this helps,


  • Regarding WPF/E and C#

    Compiled C# in WPF/E is extremely important. Consider that beyond simple calling simple webservice , you want to integrate light Business Objects into your WPF/E application and pass them between client and server for a rich cross platform RIA. Although javascript is very useful as a bridge between the browser and the WPF/E app and ajax is great. Javascript is not strongly typed and much more difficult to develop in. I can see having rich WPF clients with lighter WPF/E counterparts providing broader reach.

    Have you considered that WPF/E could even be a gataway for a javascript app handing javascript objects, raw html to the page in which it resides? You could then move as much code as possible to compiled C# in WPF/E place it on a page hook it to JS only when needed. Think of a WPF/E app with no UI sitting on a page exposing a compiled library of useful features to the html page in which it resides.

    Are we going to get compiled C#, xaml code behind and the ability to deploy compiled code in WPF/E?



  • When can we expect to see support for databinding, layout managers and built-in common controls in WPF/E?

  • Hi Tom,

    That is something we are working on now, we'll be providing more of a roadmap soon.



  • Hi Mike,

    Stay tuned - you'll hear more about some of the scenarios you mentioned above shortly...



  • Scott,
    I have a question regarding Visual Studio and whether the Issue I bring up is addressed in Orcas:

    - Currently in Visual Studio, when I add a reference to an assembly that is not a project, I browse to the location of the assembly and select the dll or exe. If I have debug and release versions of the assembly to add, How do I ensure that the project that is adding the reference uses the debug version of the refernced assembly in debug mode and the release version in release mode. I've tried asking around at work and searching in the help and online and i dont find anyone even mentioning this issue.

    If this is not the right forum for this question please direct me to the right place.
    Thanks a bunch. Looking forward to Orcas. I'm exploring c# 3 and dlinq right now and they excite me.


  • Hi Matt,

    Often when you do this, you use project to project references (where the debug project is part of the solution). In cases like this Visual Studio will automatically pick the right release/debug version.

    Could you do this scenario - or are you looking to do a file-system revference to another assembly?



  • User Input Control in next version ?

  • Hi Majid,

    WPF/E will provide the support you need to-do live graphical updates and charts. You can do these at a millisecond granularities.

    What I'm not 100% sure on is what your needs are in terms of getting network updates of the data. A WPF/E app would still want/need to use a polling model where it pings a server to retrieve data. Assuming this works for you, then it should provide everything you need.

    Hope this helps,


Comments have been disabled for this content.