Microsoft announces next big wave of products "Oslo"

by Matt Milner 31. October 2007 14:00

I attended the Microsoft SOA and BP conference this week in Redmond where they announced their plans for future of connected systems (the division responsible for BizTalk, WCF, WF, AD, and much more).  You can read more about the announcement and what impacted products are on the Microsoft SOA site.  What I found most interesting is that this effort is not just about the Connected Systems Division (CSD) but also includes the Developer Division with the next release of Visual Studio and the .NET Framework, as well as the System Center products.  The close alliance of those product groups is something we don't often see from Microsoft and can only be better for customers as we'll get a better story about using those products together. 

Now being a BizTalk/WCF/WF guy, I'm pretty interested in how all of those technologies get impacted by the modeling and management tools as well as how the integration of these technologies continues to improve.  It's only going to get better, but like all technology, we'll continue to have things to learn and understand about these technologies and how they get leveraged in different environments. 

Most interesting to me is that the keynote included information stating that CTPs and Betas would be available in 2008. That makes this stuff much more real for the near term than say a 5 year timeline.  Microsoft obviously won't be able to create the entire vision in a single release of each product, but the next phase is pretty exciting and being able to get your hands on the technology and see what they are doing and thinking can be critical as you plan for your future projects.  It's also a great way to give feedback and help direct the product team about what is important to you as a customer. They really do listen, even if you don't always get exactly what you want, significant changes happen based on customer feedback.  

We also had our two day pre-conference training on the new features in BizTalk R2 and .NET 3.5.  In addition we had some fun talking about "Astoria" and BizTalk Services which are emerging technologies built on WCF and other CSD technologies that provide some really compelling options for messaging and data access.  The class went really well and we're thinking about making it available as a seminar course for people who want to get a good deep dive into the broad range of technologies.  Let us know if you are interested in the class for your company. 

Tags:

BizTalk Server | General Musings | Windows Workflow Foundation | Windows Communication Foundation

BizTalk Mapper/XSLT - Creating sequence number based on destination tree

by Matt Milner 25. October 2007 10:48

When creating maps in BizTalk server, or generally creating XSLT transforms, you might run into a situation, as I did, that calls for you to generate a sequence number in your destination document.  If the source document and destination have a similar repeating structure, you can always use the Iteration Functoid or the position() function to create a sequence based on the source tree.  I recently ran into a situation where I needed to create a sequence number for the output records, but I was conditionally mapping the input records.  For example, I had a structure like the following for my source:

<Invoices>

  <Invoice>

    <InvoiceDetail>

       <SomeFlag>true</SomeFlag>

    </InvoiceDetail>

    <InvoiceDetail>

       <SomeFlag>false</SomeFlag>

    </InvoiceDetail>

</Invoice>

  <Invoice>

    <InvoiceDetail>

       <SomeFlag>false</SomeFlag>

    </InvoiceDetail>

    <InvoiceDetail>

       <SomeFlag>true</SomeFlag>

    </InvoiceDetail>

</Invoice>

</Invoices>

In my output, I actually had a similar structure, but I was only creating output records for the items where the "someFlag" element was true.  So in each case in the example, I'd only have one detail record for each invoice rather than two.  In the first case, creating a sequence number based on the position() function or Iteration functoid would work just fine.  However, in the second Invoice, my sequence would start with 2 since that is what the position() function would return.  This really gets fun when you have multiple details and your sequence starts skipping positions.  I was getting sequences like 1,4,10,13. 

What I needed was a way to generate the number based on the destination tree, not the source; enter xsl:number.  Using xsl:number you can provide a value and do some formatting, etc., but I was more interested in using it without submitting a value which causes a new number to be generated. If you look at the MSDN documentation for xsl:number you'll see that you can specify more attributes to control how the number gets generated.  Specifically the "count" and "from" attributes allow you to scope the generation of the numbers and where to start, respectively.  These attributes allow you to generate the numbers as you want them in the output.  A lot of the examples I found on the web were for formatting numbering in lists or table of contents formats to number things like 1.1  or 1.A.  The "format" attribute really helps here, but I just wanted a raw number. 

I added a scripting functoid to my map and set the type to inline XSLT.  I then used the xsl:number like so (based on the sample document above). 

<xsl:number count="*[./s0:SomeFlag='true']" />

That got me all I needed. My sequence numbers in my output were only generated when an output detail was created and the sequences were unique to each invoice (i.e. they restarted for each invoice which is what I wanted).  In my case I didn't need to use any other controls on xsl:number but you might find that you need to further restrict it using the "from" attribute.  I'd start simple and then work from there. 

A couple of things to note.  First, the XSLT expression that I have in the "count" attribute points to all elements where the SomeFlag is true.  You may need to play around with this to get the right expression, just make sure you are referencing the right context (based on your XSLT) and filter the records appropriately.  Also notice that I used a namespace prefix on the SomeFlag element.  In the BizTalk mapper I needed to add this since BizTalk uses this prefix for the primary/first namespace of my source document.  Without this prefix, I always got empty output, so watch for this in your own code and use the validation map functionality in BizTalk to view the XSLT and see what prefixes you might need.  If you want to make sure things are working at a base level, then just use * for the "count" attribute and you should get a similar output as if you used the position() function.  Then apply filters from there to get the results you want. 

I couldn't find anything to really help me figure this out without some work, so hopefully this will save someone some time (or maybe you are just better at searching the web than I am). 

Tags:

BizTalk Server

Demos from Heartland Developers Conference

by Matt Milner 21. October 2007 14:45

I had a great time again this year at the Heartland Developers Conference (HDC) talking about extending WCF.  The guys did a great job of putting on a top notch 2 day conference.  It just gets better each year.  If you attended my session, then you will find the source for the demos here

I'm headed out to Redmond next week for Pluralsight's 2 day pre-conference event on all the great technologies coming out of the Connected Systems Division at Microsoft and then speaking on best practices for building composite activities at the SOA and BP conference on the Microsoft campus. 

Tags:

Pre-conference training at the upcoming SOA BPM conference

by Matt Milner 7. September 2007 07:58

Jon Flanders, Aaron Skonnard and I are going to be doing a two-day workshop just before Microsoft's SOA and BPM conference at the end of October.  This will be two days chock full of training content on the latest tools coming out of the Connected Systems Division at Microsoft including BizTalk Services, WCF/WF integration, and BizTalk Server R2.  Check out our official page and sign up if you'll be attending the conference or if you are in the area.  This will be a great way to start your week and maximize your travel. 

Tags:

Upcoming talk at the Heartland Developer's Conference - October 19

by Matt Milner 24. August 2007 17:42
I've got an upcoming talk at the Heartland Developer's Conference coming up in Omaha in November.  If you are a developer in the Midwest, you should definitely check out this event.  These guys put on a nice two day conference with some great technical content and  fun atmosphere.  Despite what you might think, downtown Omaha can be fun after all the technical sessions.  :)   I love doing these smaller regional events because the people are so much fun and put so much into making sure the show is an awesome experience for the attendees. 
 
I'll be talking about extending the WCF runtime so come check it out if that sounds interesting. 
 
 

Tags:

General Musings

Downloads for my presentations at the Minnesota Developer's Conference

by Matt Milner 24. August 2007 17:37
If you joined me for the two presentations I did Wednesday here in Minneapolis, then you'll find the code downloads for those sessions here(WCF/WF) and here (SharePoint and WF).  If you weren't there, then never mind. 

Tags:

General Musings

Workflow Communications article posted

by Matt Milner 10. August 2007 03:39
My MSDN article on communications in workflow has been posted.  In this article, I really wanted to try and focus on the low level communication so that people would understand what was going on under the covers.  I don't both with the "local communications" pieces as they provide a simple abstraction on top of this underlying architecture. 
 
I hope you find this useful.  Any feedback is always appreciated, and if you have ideas for things you'd like to see in future columns, leave a comment here. 
 
 

Tags:

Windows Workflow Foundation

BizTalk R2 class with Jon Flanders

by Matt Milner 2. July 2007 09:47
As many of you know, Jon Flanders recently joined us here at Pluralsight.  In just a couple of weeks Jon is going to be delivering our first public offering of the BizTalk R2 class.  If I weren't already committed, I'd be at this course as Jon has some great material on the new features in the upcoming R2 release including the integration with WCF / WF and all the cool RFID stuff.  Be sure to check it out if you are using or plan to use R2. 

Tags:

BizTalk Server | General Musings

Tech Ed Demos for WCF Adapter session and chalk talk

by Matt Milner 9. June 2007 03:21
For those of you who attended Tech Ed and wanted the demos from the breakout and chalk talk about the WCF adapter, you will find them below.  Thanks to all who attended, and enjoy. 
 
Breakout session (445 kb) (Connected Systems application) includes transaction flow example and basic adapter configuration. See the setup folder for db scripts and setup directions.
 
Chalk Talk (5.5 MB) -- includes three demos: BTS as WCF message router, WCF channel extensibilty in BTS (PO + line items = single transaction), and using BizTalk Services in the cloud (multi-cast vendor request).  Each demo should have an installer for the BTS portion and other files to update configuration etc. 
 
any questions, just add them in comments on this blog post, or contact me through this blog. 

Tags:

BizTalk Server | General Musings | Windows Communication Foundation

Our first Applied Windows Workflow Foundation training is coming to London!

by Matt Milner 31. May 2007 16:43
OK, Reading actually, but if you are in the London area and interested in workflow, then this is your chance to get a thorough understanding of not only the how of WF, but the why.  We will look deep under the covers of building WF programs, hosts and activities/components.  Check out the course information for more details and to register. 
 
July 30 - August 2
Microsoft Technology Center in Reading
 

Tags:

General Musings | Windows Workflow Foundation

Pluralsight Developer Training

View my developer training videos on Pluralsight.

Pluralsight .NET Training