Photowalking in Gent, Belgium, Next Saturday

Photowalking in Gent, Belgium, Next Saturday

[Cross posted from my photo blog] My dear friend and esteemed colleague Kevin DeRudder is hosting a photowalk in his home town: Gent (Belgium), next Saturday (22th of March). And of course everyone is invited: geeks, non-geeks, hobbyists, amateurs, professionals … Kevin has created a nice outline of the day that starts at 2pm, you can find more details in the Photowalk Belgium group on Flickr (discussion here). The agenda is still open so feel free to comment and contribute. When you want to join, just drop a line in the Flickr group discussion (or on this blog if you don’t have a Flickr account). If you miss the 2pm start time: I’ll do my best to post some updates on our location on my twitter account. If you want to join but don’t know any of us, we’ll be the geeky looking group with a higher-than-average-number-of-camera’s-per-person. I’ll bet Kevin will be wearing his famous “I’m blogging this” t-shirt:


I'm Blogging This


If you are wondering; Kevin does have a head. 🙂 I hope to see you all next Saturday in Gent!

System.Data.SqlXmlHelper – calling extended XPath functions from BizTalk Maps

In this post:
   Methods in the helper class
   Notes on implementation
   Installation Instructions
   Problems with the Script Functoid
   Examples of Usage
   Download the code
   Testing the sample map

I’m not sure if this is actually of any use to anyone but if
you do want to use Microsoft’s
Extended XPath Functions from a BizTalk Map (see my previous post) then
I’ve created a wrapper assembly to do this for you.
Method names are the same as the original functions, but
using "_" instead of "-".

Race condition for MQ correlation…

This bit of documentation explains
that when you want to send a message out over the MQSeries adapter and receive a correlated
response, the typical pattern is to:

  1. Generate a value for the MQMD_MsgID property on the outbound message
  2. Set the MQMD_CorrelID property on the outbound message to that same generated
    value,
    so that your “Send” shape can initialize a correlation that
    refers to the same property that will be present on the message you receive.
  3. Send the message (initialize correlation with MQMD_CorrelID)
  4. Receive the response (follow correlation with MQMD_CorrelID)

This assume that the destination system is following the usual pattern of setting
the correlation identifier on the reply message equal to the message identifier
on the request message.

Great.  Except when you don’t have the luxury of specifying the MQMD_CorrelID
message on the outbound message to a value of your liking.  This occurs when
you’re using a CICS bridge, or anything else that requires you to set the
MQMD_CorrelID property to IBM.WMQ.MQC.MQCI_NEW_SESSION (signifying a new session interaction…)

In this case…you might be attempted to use the other pattern suggested here. 
In this case, you engage in a solicit-response interaction with the adapter –
where you send your request message and receive an immediate reply that contains a
message with BizTalk_CorrelationID populated as a context property.  The message ID
has also been generated for you.  You are then supposed to do a “dummy
send” to initialize a correlation based on the BizTalk_CorrelationID property
(sigh), and then follow that correlation with another receive shape that is the actual
transaction response. 

To see this in action, see SDK\Samples\AdaptersUsage\MQSeriesAdapter\MQSCorrelationSetOrchestration
under your BizTalk installation, or see the orchestration here.

Unfortunately, this design lends itself to a race condition.  The response
coming back can occur prior to your correlation being initialized by the “dummy
send”, resulting in a routing failure.  (This isn’t hypothetical
– I just spent some time helping someone debug this issue.)

To work around this, you could try to do content-level correlation instead (i.e. use
a promoted property in your request and response content.)

DevWeek 2008 wrap-up

I just wrapped up DevWeek 2008, a wonderful developer conference held each year in London. This show brings in some of the best attendees around…I always really enjoy my time here. I’m sitting in my hotel here decompressing before my long journey home. Here are the demos from my sessions:



  • Programming WCF (workshop)
  • The ABC’s of Programming WCF
  • Message-Oriented WCF
  • SOAP, REST, POX, & RSS
  • Getting Started with BizTalk Server 2006 R2 (workshop)

Thanks again to the attendees for making this a great event once again, for all the thought provoking questions and discussions along the way. Hope to see you again next year!


I’m going to especially miss the Indian food and running along the Thames each morning. I had some Springbok one night while taking a break from India — quite good actually.

March 14th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC and .NET

I’m slowly recovering from keynoting at MIX last week, and have been digging my way out of backlogged email the last few days.  I’m going to try and finish catching up on blog comments this weekend – apologies for the delay in getting back to some of your questions.

To kick-start my blogging again I thought I’d post a new link-listing series.  Today’s post is mostly focused on ASP.NET and web related links.  I’m going to be doing more Silverlight and WPF posts soon.

ASP.NET

  • Tag Cloud Filters with ASP.NET 3.5’s LinqDataSource and ListView Controls: Matt Berseth has a cool post that shows off using LINQ to SQL and ASP.NET 3.5 to build a tag-cloud navigation UI.

  • Five New ASP.NET Security Tutorials Now Available: Scott Mitchell continues his great ASP.NET security tutorials.  These 5 new ones (all in both VB and C#) cover using the ASP.NET membership system.

  • Building a Vista Style Folder Browser with ASP.NET 3.5 and a Custom Hierarchical DataSource Control: Matt Berseth continues his great posts with a nice one that shows how to build a custom HierarchicalDataSourceControl to implement file browsing functionality using ASP.NET.

ASP.NET AJAX

  • New ASP.NET AJAX Control Toolkit Release: David Anson blogs about a new ASP.NET AJAX Control Toolkit release that the team made right before MIX.  This release includes a number of patches (including a bunch from the community) with bug fixes and improvements in a bunch of areas.

  • LinkedIn Style Theme for the ASP.NET AJAX Tab Container Control: Matt Berseth posts some cool new themes you can use with the ASP.NET AJAX Control Toolkit’s tab control.

  • JScript Intellisense: working with Ext JS: The VS web tools team enabled JQuery intellisense last month with the VS 2008 Web Development hot fix.  In this more recent post they talk about enabling intellisense support for Ext JS (another popular JavaScript framework).  VS 2008 Intellisense support for Prototype is coming in the next few weeks.

ASP.NET MVC

  • Thoughts on ASP.NET MVC Preview 2 and Beyond: Phil Haack from the ASP.NET team has a great post where he talks about the ASP.NET MVC Preview 2 release, as well as some of the features and work that will show up in the next preview drop.  One of the major focuses in Preview 3 will be improvements to the testing workflow of controllers.

  • Cheesy Northwind Sample Code: Scott Hanselman has posted a sample application that shows building a simple data driven application using the ASP.NET MVC Framework and the Northwind sample database.

  • Securing Your Controller Actions: Rob Conery shows how to use the new ASP.NET MVC ActionFilterAttribute feature to apply declarative security rules to a controller.  Also check out David Hayden’s post here for more security attribute examples.

  • Url Routing Debugger: Phil Haack posts a cool Url Routing Debugger he has built that demonstrates an easy way to test URL route conditions using the ASP.NET MVC framework.

  • ASP.NET MVC Test Project Integration with NUnit and Rhino Mocks: Joe Cartano from the VS Web Tools team walks-through using some NUnit and Rhino Mocks project templates that he has created.  These plug-into the new VS 2008 tools support for ASP.NET MVC, and enable you to easily get a test project started when you create a new ASP.NET MVC application.

  • ASP.NET MVC Test Project Integration with MBUnit: Andrew Stopford posts about new templates created to enable VS 2008 tools integration with MBUnit when creating a new ASP.NET MVC application.

.NET

  • Graffiti: The folks at Telligent have recently released a sweet new CMS system for ASP.NET that is trivial to setup, and which provides a bunch of great content editing support.  Definitely worth looking at if you are in the market for an great way to publish or manage content on the web.

  • Beta of LINQ to LLBLGen Pro Released: Frans Bouma announces the first public beta release of LINQ to LLBLGen Pro (a very popular commercial ORM for .NET).  Frans has a very in-depth 14 post series that discusses how he built the LINQ support for it (a nice technical read).

Hope this helps,

Scott

March 14th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC and .NET

I’m slowly recovering from keynoting at MIX last week, and have been digging my way out of backlogged email the last few days.  I’m going to try and finish catching up on blog comments this weekend – apologies for the delay in getting back to some of your questions.

To kick-start my blogging again I thought I’d post a new link-listing series.  Today’s post is mostly focused on ASP.NET and web related links.  I’m going to be doing more Silverlight and WPF posts soon.

ASP.NET

  • Tag Cloud Filters with ASP.NET 3.5’s LinqDataSource and ListView Controls: Matt Berseth has a cool post that shows off using LINQ to SQL and ASP.NET 3.5 to build a tag-cloud navigation UI.

  • Five New ASP.NET Security Tutorials Now Available: Scott Mitchell continues his great ASP.NET security tutorials.  These 5 new ones (all in both VB and C#) cover using the ASP.NET membership system.

  • Building a Vista Style Folder Browser with ASP.NET 3.5 and a Custom Hierarchical DataSource Control: Matt Berseth continues his great posts with a nice one that shows how to build a custom HierarchicalDataSourceControl to implement file browsing functionality using ASP.NET.

ASP.NET AJAX

  • New ASP.NET AJAX Control Toolkit Release: David Anson blogs about a new ASP.NET AJAX Control Toolkit release that the team made right before MIX.  This release includes a number of patches (including a bunch from the community) with bug fixes and improvements in a bunch of areas.

  • LinkedIn Style Theme for the ASP.NET AJAX Tab Container Control: Matt Berseth posts some cool new themes you can use with the ASP.NET AJAX Control Toolkit’s tab control.

  • JScript Intellisense: working with Ext JS: The VS web tools team enabled JQuery intellisense last month with the VS 2008 Web Development hot fix.  In this more recent post they talk about enabling intellisense support for Ext JS (another popular JavaScript framework).  VS 2008 Intellisense support for Prototype is coming in the next few weeks.

ASP.NET MVC

  • Thoughts on ASP.NET MVC Preview 2 and Beyond: Phil Haack from the ASP.NET team has a great post where he talks about the ASP.NET MVC Preview 2 release, as well as some of the features and work that will show up in the next preview drop.  One of the major focuses in Preview 3 will be improvements to the testing workflow of controllers.

  • Cheesy Northwind Sample Code: Scott Hanselman has posted a sample application that shows building a simple data driven application using the ASP.NET MVC Framework and the Northwind sample database.

  • Securing Your Controller Actions: Rob Conery shows how to use the new ASP.NET MVC ActionFilterAttribute feature to apply declarative security rules to a controller.  Also check out David Hayden’s post here for more security attribute examples.

  • Url Routing Debugger: Phil Haack posts a cool Url Routing Debugger he has built that demonstrates an easy way to test URL route conditions using the ASP.NET MVC framework.

  • ASP.NET MVC Test Project Integration with NUnit and Rhino Mocks: Joe Cartano from the VS Web Tools team walks-through using some NUnit and Rhino Mocks project templates that he has created.  These plug-into the new VS 2008 tools support for ASP.NET MVC, and enable you to easily get a test project started when you create a new ASP.NET MVC application.

  • ASP.NET MVC Test Project Integration with MBUnit: Andrew Stopford posts about new templates created to enable VS 2008 tools integration with MBUnit when creating a new ASP.NET MVC application.

.NET

  • Graffiti: The folks at Telligent have recently released a sweet new CMS system for ASP.NET that is trivial to setup, and which provides a bunch of great content editing support.  Definitely worth looking at if you are in the market for an great way to publish or manage content on the web.

  • Beta of LINQ to LLBLGen Pro Released: Frans Bouma announces the first public beta release of LINQ to LLBLGen Pro (a very popular commercial ORM for .NET).  Frans has a very in-depth 14 post series that discusses how he built the LINQ support for it (a nice technical read).

Hope this helps,

Scott

Minneapolis Developer Roundtable – REST and stuff

I recently got to sit down with some local smart guys here in Minneapolis and we chatted about REST versus SOA.  It wasn’t any kind of religious discussion, but it was fun to talk to people who build apps and work with developers every day to hear what they think about this topic. 

You can find the audio over on Jeff Brand’s blog.  Enjoy!

We do these periodically and are looking for other folks that might be interested in joining, so if you live in the area, contact Jeff through his blog and let him know.