Tuesday, September 28, 2010

It’s official and it’s live.


Go there!

9/28/2010 5:16 PM  | Comments [283]  |  View reactions  |  Trackback
 Monday, June 21, 2010

The NDC was bigger than ever this year, a fantastic conference with so many fantastic speakers – I predict it will continue to grow next year and of course if you have ever been to Norway you know it is just a great place for a visit!

At any rate, here are the resource from my two sessions I presented. Hope you enjoy!

Session: Rocking AppFabric Access Control: Practical Scenarios, Killer Code and Wicked Tools

  • In this session I showed you how to use AppFabric Access Control to secure REST-based WCF services including federation with a custom Security Token Service (STS) built with Windows Identity Foundation (WIF).
  • The sample code includes my custom object model for working with Access Control, encapsulates the use of SImple Web Token and typical flow with WRAP protocol.
  • Get a whole bunch of other federated identity samples here as well, with instructions for setting up your environment and a list of other resources in the readme: http://www.dasblonde.net/downloads/FederatedIdentitySamples.zip

Top Security Scenarios for WCF Services: On Premise & In The Cloud

  • In this session I talked about various WCF security scenarios from anonymous, intranet/windows, internet/username, trusted subsystem, and federated identity. I also wrapped up with some tips on how the cloud can help, service bus for the DMZ layer and access control for a normalized security model that can satisfy any client technology (mobile, windows, web, silverlight, ajax).
  • You can see my federation samples above for machine setup as well.
  • Security templates are posted to: http://wcf4templates.codeplex.com
  • I talked about how BasicAuth is a username/password option that works across platforms but the default behavior is to authenticate with Windows credentials. Dominick provides some nice resources to overcome this problem here: http://custombasicauth.codeplex.com
  • Looking for some Azure security scenarios? Here are resources coming out of Patterns and Practices: http://azuresecurity.codeplex.com/
  • Some more resources from me: http://wcfclientguidance.codeplex.com

And lastly, the slides (PDF) for my sessions are here: http://www.dasblonde.net/downloads/NDC2010_Slides.zip


6/21/2010 1:32 PM  | Comments [0]  |  View reactions  |  Trackback
 Friday, June 11, 2010

Just returned from a fantastic Tech Ed, what a great event this year as it was sold out and jammed with lots of great sessions, hands-on-labs, and events to participate in…not to mention New Orleans is lots of fun.

I promised a blog post for my session, and here it is. My session was “WCF 4 Made Easy with .NET Framework 4 and Windows Server AppFabric”. The highlights from the talk are as follows:

  • With WCF 4 and VS 2010 you can finally be immediately productive when you build WCF services. Just focus on your service interface and business logic, use the default bindings and behaviors that come out of the box, no configuration mess required.
  • With Windows Server AppFabric you can more easily troubleshoot your WCF services without messing with configuration – and this part really rocks! I am addicted to hosting all my WCF services in IIS/WAS now, with AppFabric, so I can be productive. Nuff said.
  • AppFabric also surfaces many features of WCF configuration necessary for IT administrators to touch in production, and this is immensely helpful.

Of course, I did inject a dose of reality here. At some point you do have to know what are the right bindings and behavior configurations for your services. This is heavily influenced by your security model of course. The point is, it is great to be productive up front, and get your business functionality working behind the service. Once the big picture is clear related to protocols, process and machine boundaries, security models and the like are clear – it is time to decide what should the bindings and behaviors look like?

To help you in this quest, I have produced some templates here: http://wcf4templates.codeplex.com. Eventually they will be posted to the Code Gallery online but I want to get some feedback first, see what you like, what you want, and of course figure out how to produce VSIX for the code gallery :)

Check them out and let me know (on the CodePlex site) what you think!!!!

Most of my demos were leading in the direction of the templates, so consider this the code for the session and let me know if you have any questions!!!!

6/11/2010 12:55 AM  | Comments [2]  |  View reactions  |  Trackback
 Friday, May 7, 2010

I am more than a little tardy with this blog post but the link for the tutorial code can be found here: http://www.dasblonde.net/downloads/windowsazureessentialslaunch042010.zip

If you had already downloaded the code from the link specified in my tutorial slides, that link (and this one) are both updated with some new stuff.

If you attended my similar tutorial in Norway, there are updates to the scripts here that you might be interested in. I created some PowerShell scripts to delete all Windows Azure deployments (avoid charges when you aren’t using your account and blast-em away) and to deal with SQL Azure firewall settings and database installation using script as well. The document in the zip tells you all about environment needs.


5/7/2010 9:21 AM  | Comments [3]  |  View reactions  |  Trackback
 Monday, April 19, 2010

Just returned from the VS Launch last week, and as promised here is the code for my sessions. I will post a separate entry with all the code for my Azure Tutorial which was on Thursday. And, as always, if you are looking for something in particular and can’t find it here, just drop me an email!

AppFabric Access Control

  • http://www.dasblonde.net/downloads/AccessControlSamples.zip
  • Samples for both WCF/REST samples and web resources such as Web Form and ASHX
  • Samples include a complete object model for working with Simple Web Token (SWT) and components for both WCF and ASP.NET applications to build client requests and process incoming tokens

RIA applications and WCF

Data Access

WCF. Workflow Services and AppFabric

4/19/2010 7:47 AM  | Comments [2]  |  View reactions  |  Trackback
 Monday, November 23, 2009

At the PDC last week I presented a revamped version of my massive one-day presentation covering language trends, data access technologies, windows and web development, WCF and workflow, “Dublin” (now App Fabric), identity and cloud computing with Azure. Whew! Always a ton of work getting this presentation updated but it is a ton of fun to discuss all of these technologies in a single jam packed session and I hope you all enjoyed it. Here is a link to the goods:


11/23/2009 7:26 AM  | Comments [6]  |  View reactions  |  Trackback

At long last here is my post from the recent Dev Connections conference in Las Vegas. It was an interesting time getting things up and running for the conference what with the PDC the week after and so many updates to the Azure stack right before…but it was well worth the effort! Here are the sessions and related code samples.

I’m’ still working on updating all my Azure samples since the PDC last week, so I’ll post tutorial code separately.

11/23/2009 7:22 AM  | Comments [2]  |  View reactions  |  Trackback
 Sunday, August 16, 2009

A few short months after my EU tour (see previous blog post) I will be delivering a variation of my technology roadmap (once again, affectionately known as the technology avalanche) at the PDC in November 2009. You can bet even in that two short months I will have updated the seminar once again, to better reflect the latest state of the various technologies I will discuss. The goal of this workshop at the PDC will be to prepare you for the rest of PDC - get you up to speed with the various technologies from platform releases to languages, for data access, windows and web development, for middle-tier development, for security and identity related, and for cloud computing. Lots to cover, lots of fun to be had discussing the avalanche! You must join me!

Here are the details!


Developers increasingly have more on their mind and on their plate. Though Visual Studio and the .NET Framework both provide tools that yield an overall increase in productivity during the development cycle, the avalanche of technologies that build upon these foundations can seem overwhelming if not insurmountable at times. The goal of this workshop is to help you understand the value proposition of each technology and to prepare yourself to make the most of the rest of PDC. We’ll help you make sense of language and platform trends, data access tier advances, technologies for windows client and web application development, the middle tier evolution with WCF and workflow, identity platforms and technologies, and cloud computing.

8/16/2009 7:10 PM  | Comments [1]  |  View reactions  |  Trackback

A few years ago I brought my Microsoft Technology Roadmap - affectionately known as the Technology Avalanche - to 5 countries in the EU. I thought there were a lot of technologies to cover then...but here we are two years later and there is no shortage of new technologies to talk about and so I will embark once again to some 5 countries including Germany, Denmark, Sweden, and Norway. Here is a list of dates and locations:

I created this seminar to help all of you developers and architects keep up with all the many platform releases and technology stacks - to help you make sense of which technologies are right for your scenarios, and keep you apprised of the status of upcoming releases and their value proposition. It is no small undertaking I assure you! I am constantly updating this each time I deliver it, even if only a few months pass between events! I hope you will enjoy this renewed 2009 tour!

Here is a summary of the seminar:

With these rapidly changing times, developers have a lot more on their mind and on their plate than they did at any point in recent time. Although the Visual Studio and the .NET Framework both provide tools that yield an overall increase in productivity during the development cycle, the avalanche of technologies that builds upon these foundations can seem overwhelming if not insurmountable at times. This workshop will take you through a guided tour of the Microsoft technologies available today, tomorrow, and into the foreseeable future...and enable educated decisions on aligning your product road map with upcoming technologies.


· Language and platform trends for .NET 2.0 through .NET 4.0 including discussions of the language trends for C# 4.0 and Visual Basic 10, F# and parallel computing

· Advances for developing the data access tier from data sets and readers to LINQ, Entity Framework, ADO.NET Data Services and velocity

· Windows client development with WPF and the relevance of Windows Forms and ClickOnce

· Web development with ASP.NET, AJAX and Silverlight

· The evolution of the middle tier with WCF and Workflow, and the relevance of WCF Workflow Services in .NET 4.0 and Dublin

· The impact codename “Oslo” will have on the future of Microsoft development

· A review of identity platforms including Windows Identity Foundation, ADFS and Windows Cardspace

· The benefits of cloud computing with the Windows Azure Platform

In this intense, one–day briefing, you will see numerous demonstrations of these technologies, we will assess the benefits and advantages of the forward trends and you will gain an overall picture of each technology’s place in your development efforts today and tomorrow–for each respective discipline. Developers, architects, and technical leads who would like to gain some perspective on the Microsoft road map, the applicability of each technology, the choices and the trade–offs, will greatly benefit from this workshop.

8/16/2009 7:09 PM  | Comments [3]  |  View reactions  |  Trackback
 Saturday, July 11, 2009

Thanks to a customer of mine (thank you Christoph!) some major improvements have been made to the ExceptionHandlingProxyBase type. Plus, a duplex version now exists. Nothing like using the code in production to work through the real limitations. I knew I had to add a lot of these things, but this week I had a good reason to do it.

The proxy generator can be found at http://wcfproxygenerator.codeplex.com

Invoke() and Value Types
**I had a problem surface when I tried to return a value type (not a reference type) from Invoke(). I created this dependency in the generic method by requiring the generic type parameter to be a class. I changed this so now you can use value types freely.

Thread Safety
** A lock is used for all calls that touch the channel. But you can have parallel calls through Invoke() of course.
** Now you can safely have parallel calls to invoke, but if one thread encounters an exception other threads queue up before invoking the operation until the proxy is safely recreated.
** Disposal is now safe in multithreading environments.

** Now all operations check if the object is disposed and throws if it is.

** Now constructors call virtual Initialize() methods to support scenarios where the derived class wants to calculate values before calling down to base.
** Initialization only supported once.

Creation and Recreation
** Now the two are considered different so that we can enforce creation only once, while allowing multiple recreation attempts. Recreation also uses a lock to protect Invoke() and fires an event after so clients can do other work after recreation, such as subscribing to a service after the proxy is recreated.

Communication Events
** Clients can subscribe to these events even if channel isn't created yet. Events from the inner channel are fired to listeners.

Support for Message parameter type
** Invoke() retries didn't work if you had a contract that supports Message type. That's because you can't "replay" a Message instance, once it is read, it cannot be read again. There are two possible ways to handle this:
a) Buffer the message before each first attempt to invoke and create a copy of the message for the first and (if applicable) second call. But, this means buffering unnecessarily when things are going well.
b) allow the application to buffer in the derived type when using Message types. Then, subscribe to the RetryInvoke (new) event and supply a message before retry.
** I implemented b).

Hope you like it! Cheers!

7/11/2009 1:19 PM  | Comments [0]  |  View reactions  |  Trackback