Dec 2nd Links: ASP.NET, ASP.NET Dynamic Data, ASP.NET AJAX, ASP.NET MVC, Visual Studio, Silverlight/WPF

I’m flying out later today on a pretty intense business trip (22,000 miles, 5 countries, 3 continents, 1 week, no sleep… :-), so my blog activity over the next week and a half will be pretty light.  To keep you busy till I return, here is the latest in my link-listing series.  Also check out my ASP.NET Tips, Tricks and Tutorials page and Silverlight Tutorials page for links to popular articles I’ve done myself in the past.

ASP.NET

  • Geolocation/Geotargeting Reverse IP Lookup Code: Scott Hanselman has a cool sample that demonstrates how to perform IP address lookups on users visiting your site to determine where they are located on the globe (down to the latitude and longitude).  Pretty cool stuff.

  • Tracking User Activity: Scott Mitchell has a nice article that discusses how to track end-user activity when visiting an ASP.NET web site.

  • iTunes Data Grid Skin: Matt Berseth continues his cool series showing off cool new skins you can apply to ASP.NET controls (especially the GridView and DetailsView controls).  This post shows off a pretty sweet iTunes like skin.

ASP.NET Dynamic Data

  • ASP.NET Dynamic Data Videos: Joe Stagner has 6 nice ASP.NET Dynamic Data "How Do I?" videos posted on www.asp.net that you can check out to learn about the new ASP.NET Dynamic Data feature in .NET 3.5 SP1.

  • ASP.NET Dynamic Data Routing: Rachel Appel has a nice post that talks about how to use the new ASP.NET routing features with ASP.NET Dynamic Data to enable customized URLs.

ASP.NET AJAX

ASP.NET MVC

  • How to Setup ASP.NET MVC on IIS6: Phil Haack has a great post that walks-through how to enable ASP.NET MVC on IIS6 servers (including how to enable it on a hosting server that you can’t install anything on).

  • Fluent Route Testing in ASP.NET MVC: Ben Scheirman has a nice post where he blogs about new helper methods he is creating that make it easier to unit test ASP.NET MVC routes using a fluent API.

  • Hierarchical TreeView with ASP.NET MVC & jQuery: Mike Bosch has a cool sample that demonstrates how to add treeview UI to an ASP.NET MVC site using jQuery.

Visual Studio

WPF / Silverlight

  • XAML Power Toys – Instant Form Creation: Karl Shifflett has a great video that shows off his XAML Power Toys tool that integrates into Visual Studio and enables rapid forms creation for WPF and Silverlight.

  • AutoCompleteBox Control – The Missing Guide: Jeff Wilcox has an awesome post that talks about the new Silverlight AutoCompleteBox control in the Silverlight Toolkit.  Very useful reading.

Hope this helps,

Scott

New Virtual Lab – Using Test First Development with WF 3.5

I’m very pleased to announce the publication of a new WF 3.5 hands-on lab to the MSDN Virtual Labs site: Using Test-First Development with WF.

The new lab covers doing test-first development in the Windows Workflow Foundation (WF) technology. The lab explains [at a high level] the concepts of test-first development, and walks the user through how to unit test both custom activities and full WF workflows.

Unit testing and test-first development seems to become a very popular topic in the last year. The question of how to unit test WF activities/workflows has been something that I’ve heard asked about at the last few conferences I’ve attended (both internal and customer conferences; at the WF booth and advanced WF sessions), and it’s been a question our field has been getting as well.

In answer to the question – there have been a couple excellent blog posts on the topic this past summer: Maurice de Beijer wrote an excellent (and concise) blog entry on the topic in June – which was the inspiration for the lab, and Ron Jacobs blogged on the topic following a conversation we were having about whether to do this HOL. And, most recently, WF unit testing was covered in the last two issues of MSDN Magazine (Matt Milner’s Nov-2008 Foundations article and Josh Lane’s Dec-2008 article ‘Real World WF: Best Practices’).

But the feedback has been what was lacking was a good, approachable manner of learning how to do WF unit testing. So we worked with David Starr, a trainer and consultant specializing in agile processes, to build a lab that attempted to demonstrate how a developer can use Visual Studio Team System and/or Professional to establish unit tests for WF activity and workflow development. The lab was written assuming basic experience with WF 3, but no prior experience with test-first development principles. To work with some of the less unit-test-ready aspects of WF 3.5, David walks the user through the use of fake objects and the Rhino Mocks mocking framework (there are a variety of mocking frameworks out there; Rhino Mocks is one of them).

As mentioned in the beginning of the blog post, in addition to hosting the lab in our hands-on-lab areas at TechEd this year, we have published the lab to MSDN Virtual Labs to enable a broader audience to experience the lab. For those unfamiliar, the Virtual Labs environment offers you a way to test drive Microsoft software without having to download or install the software on your local machine. To do the hands on lab, you visit the Virtual Lab website and it will provision you a pristine virtual server for you do the lab, which is [virtually] yours for a two-hour block. The connection to the server is done through the web browser, requiring only the installation of an ActiveX component. You can then follow the instructions in the lab manual to try out the lab and learn more about unit testing activities and workflows WF 3.5.

In addition to this WF lab, there are a couple other notable virtual labs I would like to point out:

We’re working on delivering a few new WF hands on labs via this method over the coming months. We are working on a new hands-on-lab detailing conversation correlation in WCF workflow services (based on Matt Winkler’s TechEd talks) and also updating the VS2005 hands-on-labs to VS2008, incorporating user feedback.

We are also in the process of posting the test-first development with WCF hands-on-lab. If you poke around in the C:\Labs directory of this virtual lab, you’ll notice it’s there (with lab manuals and relevant begin/end code).

I hope you enjoy the new lab; and, as always, your feedback is appreciated!

Cliff

Screencast: Calling services asynchronously with WCF

Screencast: Calling services asynchronously with WCF

Time for another screencast in the WCF screencast series. In this one you'll learn how to call services asynchronously with WCF in order to avoid tying up your main application thread for extended durations. You'll see how to configure your service references to support asynchronous calls, and then I'll show you how to write the async invocation logic. Enjoy!

 calling-services-asynchronously-300

Be sure to check out our growing collection of screencasts via our screencast landing page at Pluralsight.

Previous WCF Screencasts (RSS for all posts in the series)

Some interesting BizTalk compiler hints, well not quite.

Ok, so these aren’t entirely compiler hints, but interesting nonetheless:
1. Re-Ordering of Catch Clauses
The compiler will throw the following warning if you catch specific exceptions after a general exception block:
Orchestraion.odx(653,17): warning X4001: automatically re-ordering catch clauses from specific to general
I’m surprised that this doesn’t throw an error as including a General catch block as […]

Whats the future for BAM?

I was at the SOA/BPM Conference this week at reading and was watching one of the presentations which discussed the differences between BizTalk and Dublin.

It occured to my that with BizTalk being pitched as the integration product and dublin being pitched as the application server product this means that BAM is strategically misplaced in terms of being within BizTalk.

This is just my opinion but I think that in the future it would make sense to move BAM to be part of the SQL Server BI offering. I think that if it was part of SQL Server then it would expose BAM to more products within the Microsoft space. A summary of my thoughts is:

  • It would allow you to easily use it with Dublin as it would be likely you are using SQL Server for persistence and tracking anyway.
  • It would still support BizTalk which is based on SQL Server anyway
  • It would allow other products which are based on SQL Server to use this without requireing BizTalk (eg: Dynamics)
  • It would allow ISV’s to develop hooks into BAM. A number of the ISV products which compliment the Microsoft BPM offering often use SQL Server but not necessarily BizTalk
  • In the future it would probably be easier to hook models developed with Oslo into BAM if it was part of SQL Server

These are just my random thoughts and ideas, I have not seen anything from Microsoft which indicates this is a planned direction, but if anyone has an opinion on this feel free to comment below

Added functoid to read from app.cofig

Hi all

A new functoid has been added to the collection of functoids that an be downloaded
at http://www.eliasen.eu/Downloadsoftware.aspx.

The functoid simply takes one parameter, which is used as a key against BizTalks app.config
(The BTSNTSvc.exe.config file in BizTalks installation folder) to read an application
setting from the appSettings group.

So given a .config file like this:

<appSettings>
<add key=”eliasen” value=”eliasenValue” />
</appSettings>

and the parameter “eliasen” to the functoid, it will return “eliasenValue”. If the
key cannot be found, an empty string is returned.

And the documentation has also been updated – look at http://www.eliasen.eu/DownloadSoftware.aspx



eliasen

Application Architecture "Pocket Guides" From Microsoft

Was trolling CodePlex today and noticed that those Patterns and Practices cats just released a neat little set of short architecture guides that cover a few specific architectural areas including the Agile architecture method, web application architecture,  mobile architecture, rich Internet application (RIA) architecture,  rich client architecture, and finally, service architecture.
The service guide is a […]