Interview Series: Four Questions With  Ewan Fairweather

Interview Series: Four Questions With Ewan Fairweather

In this month’s interview with a CSD thought leader, we chat with Ewan Fairweather who works for Microsoft on the BizTalk Customer Advisory Team (previously known by their hip moniker “BizTalk Rangers”) and has authored or contributed to numerous BizTalk whitepapers including:

BizTalk Server 2006 R2 Hyper-V Guide
BizTalk Server Operations Guide
BizTalk Server Performance Optimization Guide

Ewan is […]

Shutting down

When I was over at PDC the guys from GWB convinced me to move my blog to them (well, it didn’t take much convincing), so I have, but I kept cross-posting on my old blog as well until I make up my mind.

Took me way too long, but I have now decided to stick with my old place.

Cross posting is naturally not a good idea, and I shouldn’t have done that for that long – apart from me having to post twice each time, other people comments are not visible for all which is the worst aspect of it, and also I can’t get good statistics on traffic.

The reason I stay on blogger is exactly that – I can easily point google analytics to it and get great reports (and I can better control my template, etc.

Sorry if anybody find this irritating, I do hope anyone reading this would consider moving accross to

www.sabratech.co.uk/blogs/yossidahan

Upcoming BizTalk User Group events in Sweden

Our User Group looking forward  to a very exiting spring, with loads of sessions coming up as Microsoft are rolling out the RTM of BizTalk Server 2009. I feel really privileged that we’ve been able to engage such distinguished guest speakers in the past as Jon Flanders, Darren Jefford, Dwight Goins and Charles Young. I was not sure we’d be able to keep up the level of speakers from last year, but I’m proud to say we have: 

15th of AprilBizTalk best practices from a developer perspective. (Open for registration soon)

Speakers:

Brian Loesgen is a Principal SOA Architect with Microsoft. Based in San Diego. Brian is a 6-time Microsoft MVP for BizTalk Server, and has been involved with BizTalk since prior to the BizTalk Server 2000 beta. Brian has extensive experience in building sophisticated enterprise, ESB and SOA solutions. Brian was a key architect/developer of the “Microsoft ESB Guidance”, initially released by Microsoft in Oct 2006. He is a co-author of 6 books, including “BizTalk Server 2004 Unleashed”, and is currently working on “SOA with .NET”.

Alan Smith is form the north of England, and living in Stockholm Sweden, he has been working as a developer with Microsoft technologies since 1995, starting out with C++, and working with VB, ASP, SQL Server before moving to .net with the early betas. He has worked as a multimedia developer,  moved into web development, and then working as a systems architect.
Since November 2003 he has been focusing on BizTalk Server, working as a consultant in the UK, then taking up a full time position as BizTalk developer/architect for KnowIT Consulting in Stockholm.
He is also a certified trainer, and delivers BizTalk courses both from the Microsoft Official Curriculum, and the advanced “Deep Dive” training in partnership with QuickLearn.
He has always had a passion for evangelizing new technologies, and played the lead role in the adoption of .net at Razorfish in Stockholm, running after-hours labs, and mentoring other developers. His latest initiative is to publish “The Bloggers Guide to BizTalk” on a monthly basis, bringing to together the best ideas and resources from the BizTalk developer community.

16th of AprilBizTalk best practices from a performance perspective. Register here

Speaker:

Paolo Salvatori was born on 9th October 1969 in Pisa, the city of the leaning tower placed right in the heart of Tuscany. In 1988 he finished the high school with the maximum degree (60/60) and in 1993 he graduated with the maximum degree in Informatic Sciences at the University of Pisa. He had my military service as a Navy Officer (1 year and 3 months) and then started to work on January 1995 in Unisys. He joined Microsoft on 12th October of 1997 as an evangelist. After a couple of years decided to move to a new role so he started to work in the Services Division where he spent 8 years as a developer and architect. On July 2007 Paolo joined the Connected Systems Division to cover the role of EMEA BizTalk Ranger

May – no official yet

4th of JuneThe Role of Dublin in the BizTalk Enterprise (Open for registration soon)

Speaker:

Stephen W. Thomas started his career with a Chemical Engineering degree from the University of Iowa.  After realizing his passion was actually in software, he went to work for a major consulting firm where he worked on his first Microsoft BizTalk project in early 2001.
Since then Stephen has done consulting work for a number of different clients including many in the Fortune 500.  He was fortunate to get to work with the beta release of BizTalk 2004, BizTalk 2006, and BizTalk 2006 R2 and BizTalk 2009.  Stephen now focuses on all Connected Systems Technologies including the latest improvement in .Net 4.0 (Window Communication Foundation and Windows Workflow) and Dublin.  
Currently, Stephen is an independent consultant focused solely on Microsoft based integration solutions using BizTalk and other Connection System Technologies.
Stephen runs the BizTalk community site
www.BizTalkGurus.com and is a 5 year Microsoft Most Valuable Professional in BizTalk Server (https://mvp.support.microsoft.com/profile=7C702F76-09BA-4102-992B-5E23518A3482).  Recent speaking engagements are at the Microsoft’s SOA and BP Conference in January 2009 in Seattle, WA and at Tech Ed in Orlando in 2007.  Book credits include tech reviewer of the BizTalk 2006 Recipes book published by APress.

Let us know you’re coming!

The "Jan Tielens" SharePoint Challenge by Christophe

My last post about splitting the Top Navigation Bar of a WSS site in two with the help of jQuery, triggered a little discussion (in a good way) in the comments. As a result Christophe from the Path to SharePoint blog wrote some Javascript to accomplish the same thing, without using jQuery at all. Now Christophe started the “Jan Tielens Challenge” on his blog: “I have already talked about Jan in a previous post. End users who visit his blog can certainly feel like a kid in front of a bakery display: so many goodies that are out of reach!
So here is my proposal: if you find on Jan’s site a tool you’d like to have as an end user, send me the challenge! If a topic gets enough votes, I’ll work on a solution that can be implemented on the client side.”

So, make sure you send Christophe all your challenges. Good luck Christophe! 🙂

ASP.NET MVC 1.0

ASP.NET MVC 1.0

mvcsource[1] Two weeks ago at MIX we released ASP.NET MVC 1.0.  ASP.NET MVC is a free, fully supported, Microsoft product that enables developers to easily build web applications using a model-view-controller pattern.  ASP.NET MVC provides a “closer to the metal” web programming option for ASP.NET.  It enables full control over HTML markup and URL structure, and facilitates unit testing and a test driven development workflow.

Releasing the ASP.NET MVC source code under MS-PL

I’m excited today to announce that we are also releasing the ASP.NET MVC source code under the Microsoft Public License (MS-PL).  MS-PL is an OSI-approved open source license.  The MS-PL contains no platform restrictions and provides broad rights to modify and redistribute the source code.  You can read the text of the MS-PL at: http://www.opensource.org/licenses/ms-pl.html

Learning more about ASP.NET MVC

To learn more about ASP.NET MVC, you can read my free ASP.NET MVC PDF tutorial that covers building an end-to-end application (starting literally with File->New Project).

There were a number of great ASP.NET MVC talks at MIX this year.  Below are links to several of them:

There are also several great ASP.NET MVC tutorials at http://www.asp.net/mvc.  You can also read the ASP.NET MVC MSDN Documentation.

Download ASP.NET MVC

Click here to download and install ASP.NET MVC 1.0.  You can also install it using the new Microsoft Web Platform Installer V2 – which provides an integrated setup experience for the entire Microsoft web stack.

The ASP.NET MVC 1.0 source code is now available.  Scroll down to the bottom of the ASP.NET MVC download page and you’ll find links to both the ASP.NET MVC 1.0 integrated MSI setup, as well as a .zip file that contains the ASP.NET MVC source code.  The ASP.NET MVC source code includes a VS 2008 project file that enables you to build it.

Hope this helps,

Scott

Comming soon: Tool to build your own queries for MBV

Comming soon: Tool to build your own queries for MBV

Hello,


I create this post just to announce that I will make available very soon a tool to build queries for MBV : MBVQueryBuilder.


Let me explain quickly role of this tool as I will make a more detailed post on that later :



As you noticed, I added already a lot queries embeded in MBV exe but because more and more MBV users, inside or outside Microsoft, suggest me to add some queries in MBV, I decided for a while to change MBV Architecture to be easily extensible in term of queries to add (MBV version 10.12 allow you to add also your own rules).


So it means that MBV accept “custom” queries to be added in its lists of queries via an XML file.


To achieve that, you will just have to use  MBVQueryBuilder tool to create your custom queries with also their rules (warnings they can generate) in a queries repository XML file.
To create a query, you will have to provide some information like its Type (SQL, WMI, BAT, CMD, VBS), Caption, Comment, Target Type (MsgBox db, Mgmt db, ALL BT servers, ALL Biztalk SQL Servers,etc…) , and of course its body (ex: “Select @@ServerName” for a SQL query,  or “Select * from MSBTS_SendPort”  for a BizTalk WMI one)

MBV contain a query execution engine for queries of type SQL, WMI, CMD, .BAT, or VBS so it will automatically execute your queries knowing  just its type and body.


Once you built your repository of queries, you can select in the same tool the specific queries you want to be visible  in MBV and save them in an MBVEXT.XML file.

This file must be put in the same folder than MBV, and when MBV will be started you will see your custom queries in an additional listview in MBV Gui interface, that’s all  !   
you can then select/unselect your queries like for any embeded queries an start a Collect process. and output of your queries will be also visible in the resulting HTML report


To see a concrete sample of this MBV query extensibility, you can have a look on following Thiago’s Post (Thanks Thiago to have shared that) :

http://connectedthoughts.wordpress.com/2009/03/19/extending-msgboxviewer-with-biztalk-message-body-tracking-count-queries/


So stay tuned for availability of  this tool !


JP

The Context Accessor functoid, part I

The Context Accessor functoid, part I

Hi all

At http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/ecaa2059-d78e-449f-8eb0-37696847b4b0 there
is a guy who is struggling to get the MessageID into a message inside a map.

I have been trying to help him and have come to a stand still, because I missed a
very important point. The MessageID is “written” and not promoted to the context base.
Therefore, it cannot be read using the functoid found at http://www.codeplex.com/ContextAccessor (The
one used inside an orchestration).

So basically, you can use the functoid to get hold of all the properties that were
promoted into the context, but the ones that were written, you need to get to some
other way.

I have created a small sample that illustrates how to do this inside an orchestration.

It can be downloaded here.

Basically, I have a schema for the input:

Inputschema

It has two fields, and I have promoted the first field.

The output schema looks like this:

OutputSchema

It has four fields.

What I want in the output is this:

  • Field1: The value from Field1 in the source schema. It isn’t to be mapped directly,
    though. I want to demonstrate that the functoid can be used to get values that were
    promoted from a schema.
  • Field2: The value from Field2 in the source schema. Mapped directly
  • MessageID: The Message ID of he input message. Since this isn’t accessible by the
    functoid, I will use a Message Assignment shape to do that
  • ReceivedFileName: Will contain the content of the BTS.ReceivedFileName poperty – by
    using the functoid.

The map looks like this:

Map

I am using the ContextAccessor (for orchestations) to fill a value into Field1 and
ReceivedFileName. I am mapping Field2 directly. The MessageID field I am not mapping,
since I need a message assignment shape for that. The element “MessageID” must be
present in the output, though. Otherwise i cannot fill in value. So, as you can see
in the screenshot, I have set the “Value” property to “<empty>”. This will create
an empty element. This feature is very handy for initializing elements that will later
on get values from message assignment shapes but also for creating the needed empty
fields for demotion.

Anyway, the parameters for the first functoid look like this:

FirstFunctoid

The parameters are:

  1. The name of the message to get the value from.
  2. The name of the property
  3. The name space of the property schema that property exists in.

The second functoid looks like this:

SecondFunctoid

Now, the final touch is the orchestration:

Orchestration

Quite simple A receive, a construct and a send port for the output. The construct
shape has two shapes inside it. The first is a transformation shape hat will execute
the map. The second is a message assignment shape hat will insert the messageid into
the destination schema.

The message assignment shape looks like this:

MesageAssignment

I made the MessageID field of he output a distinguished field and can therefore insert
values into it. This is quite clever . the way you can do several things to a message
as long as you are still inside the same Construct Message shape. After the map, where
I let the MessageID field be empty, I can insert a value into this field using a distinguished
field. I could also just as easily have used XPath to do that, but that is not as
readable, so I didn’t do it.

So This was the first post of two – next time I will look at the receive port version
of the Context Accessor functoid.

And one last point: If the idea i just to get an Id into a message and it doesn’t
have to be the message ID of a message, you can also just use the “New GUID” functoid
found at http://eebiztalkfunctoids.codeplex.com/



eliasen

BizTalk: What features we would like to see in future releases

.
BizTalk: What features we would like to see in future releases
After the MVP Summit [http://geekswithblogs.net/LeonidGaneline/archive/2009/03/09/microsoft-global-summit-mvp-most-valuable-professional-2009-pictures.aspx] we, the BizTalk MVPs, have been asked to give feedback to the product team on what features we’d like to see in future releases.
I created the list of features and separated it into parts. One is from the global, crazy things than never be implemented. But why don’t imagine? Second one is from the small things.
Let start from the big, crazy things:
More flexibility in the deployment and licensing.
What I mean:
1) Why don’t move the BizTalk as a product to cheap segment? (cheap? No, let’s talk about bigger)
a) BizTalk + SQL Express on one box. Then creating a farm of the BizTalk applications would be easier. Load Balancing is moved outside, before the farm. Maybe create a separate product the “BizTalk load balancer”?
b) Moreover, ship the preconfigured VHD with BizTalk + SQL Express + Windows Server. With possibility to create the farm from these VHDs. (Not so easy because now we have strict limit to the SQL and BizTalkserver names, and that limit should be fixed anyway.)
2) Why don’t move to the expensive segment?
a) Shift to the Windows HPC? What about this? One time the BizTalk was pioneered as the first enterprise level product by Microsoft, created on .NET. Using the HPC methods to get rid of SQL completely, perform all persistency in memory to get super-low latency product.
3) Reiterate the architecture with all spectrum new Microsoft technologies. Is it possible to extract the MessageEngine, the OrchestrationEngine, and the UnifiedInputOutput Engine to separate products?
4) At last extract the BRE to separate product or free library! Now it is dead. Give BRE a shock treatment.
5) Redesign the error processing for different stages of the message processing. Now there are different approaches are used in many places or nothing at all.
6) Extract the LOB Adapters to separate product on the “buy if you need it” basis or to the free library. Create the Internet store and sell adapters for small money to everyone not only to the buyers of the BizTalk. Sell them not in packages but per adapter.
Nowthe small things:
Many years there were no improvements in very basic things, the things the developers are using in everyday tasks. I mean: adapters: File, SQL; pipelines; schema and map editors; additional shapes in Orchestrations, etc.
1. Adapters:
a. File adapter (for example): add the possibility to use the file names to order delivery (process files in the sorted order, many variations J ); implement the file receive filters with regEx on the file names; add possibility to copy files to other folder after consuming (to make some sort audit/resubmit storage, in forums this question is repeated and repeated, “How we could make a copy of the original files?”)
b. SQL adapter: OMG, there should be many changes in real-time functions and much more improvements in the design-time appearance. I’d prefer to use not the standard Wizard to generate SQL port artifacts but some sort rich-UI window to set up different stages of artifact creation and the real-time parameters.
I am sure the brainstorm by BizTalk MVP should generate a lot of good ideas.
c. Additional adapters: like Task Scheduler; Nope; Fan-out/Garbage (to consume messages without subscribers in the pub/sub application); PowerShell (for additional processing of the input/output messages). Brainstorm this! Buy these adapters from the third-parts, unify them and include to the standard package.
d. Please, make InfoPath integration with BizTalk easy as hell!!!! (Isn’t it a prime purpose of InfoPath??? To integrate the BizTalk with human?)
2. Pipelines (pipeline components): where are? the xml <-> PDF ; zip/unzip ; map (yeah! what is wrong with it?); different coders/decoders; symbol (regex) replacement (for EDI processing it MUST be!); PowerShell (for additional processing of the input/output messages); “create message” pipeline; Excel/Word ; Html ; simple EDI (to very basic EDI processing); promote properties from the text; etc. . Brainstorm this!
3. Add the error processing to the standard interfaces of the custom pipeline components.
4. Transmitting raw/binary data. Frequently we only use the BizTalk to transfer and route the documents (messages) without transformation. Now it is the second-class citizen scenario.
5. Orchestrations: additional shapes as: CreateMessage !!!; throwEvent; Pipeline transformation (?).
Make shapes resizable, otherwise we should use odd methods to make the Orchestration more descriptive. How we could show Orchestration to business people if we cannot add enough text to shapes???? Add color to shapes.
Make the Expression Editor window resizable, dockable, fully InteliSensed, etc. !!!!!!!!!!!!!!!!!!
6. Schema editor: Use the schema node icons for more useful information, definitely, for cardinality (say, different colors for “max occurs = *”, for “min occurs = 0”). Maybe add separate window for the referenced (included) schemas?
7. Map editor: add functoids [IfElse]… Make improvements to the Script functoid!!! Separate to InlineScript; ExternalScript (ExternalMethod?); XsltScript…; make InteliSense to the Inline Script and Xslt script windows. Use the source/target node icons to more usefull information. See http://geekswithblogs.net/LeonidGaneline/archive/2005/12/23/64004.aspx – it is an old list but still actual.
8. Ports: Please, make ports the first-class artifact as an Orch. Why we should use the orchestration assembly just to store the port type??? Why do we use the “logical port” term in Orchestration editor? It is not a port, it is just an endpoint. Orchestration has the endpoints and the Port has the endpoints. My perception it should be big redesign of the “port part” of the BizTalk architecture. Right now it is a mix of adapters, pipelines, maps, etc. without strict regulation, strict design. This mix is very static, could not be used in structured way to improve the development.

The question to us was: 1) What was/is THE GOOD stuff about the area? 2) What is just plain BAD? 3) What is UGLY about the feature area e.g. if you were developing this feature what would you do to improve it.
I am sorry but I used the same words. To me “UGLY” and “BAD” are just synonyms for ”rudimentary implemented” and “implemented in beta version”.
1) Monitoring, operations. Now it is UGLY. No real real-time :). See how it works on HPC Windows, for example.
2) Debugging is plain BAD.
3) BRE is good, but EVERYTHING for development BR, everything is UGLY. Development, testing-debugging (come on, have somebody seen the test text window in Composer? the text inside it????), deploying. BRE now is good, very good to sell the BizTalk to business people, and BRE is just pain in ass for developers. Examples?
http://geekswithblogs.net/LeonidGaneline/archive/2006/12/27/102156.aspx
http://geekswithblogs.net/LeonidGaneline/archive/2006/10/16/94245.aspx
Now as a rule of thumb, I use the BRE for POC projects and never for real projects.
4) To me BAM is kind of partly implemented. Run-time is very good. Design-time is BAD.
5) ESB. IMHO if the BizTalk gets the Web-service (or metadata) repository, it has ALL ESB functionality and could be named ESB to business people. MVPs discussed this many times on the Summit.
6) Of course, low latency must be implemented.