For all you guys developing BizTalk 2009 solutions a hotfix was brought to my attention by Thiago Almeida’s blog.

From the Microsoft support site:

“FIX: You experience various problems when you develop a BizTalk project that references another BizTalk project in Visual Studio on a computer that is running BizTalk Server 2009”

On a computer that is running Microsoft BizTalk Server 2009, you use Microsoft Visual Studio to develop a BizTalk application. In your BizTalk project, you add a reference to another BizTalk project. In this scenario, you may see the following behavior:

  • The orchestrations in the referenced BizTalk project may show compiler warnings.
  • The changes that are made to the referenced BizTalk project are not propagated on to the referencing project.
  • When you edit the orchestrations of the referenced project, XLANG errors are thrown. These errors may disappear after the orchestrations are saved and recompiled.
  • After you deploy the referencing project, the local copies of the referenced project’s binaries are deleted.
  • After you deploy the referencing project, various errors or warnings occur in Orchestration Designer.

Information about the hotfix can be found here.

Today when I walked in the conference center in Amsterdam it was almost as if I was at the wrong place. It was completely empty. The post conference day with a IT pro and a developer track was filled with only about 100 people.

Of course I attended the developer deep dive by Wouter van Vugt. Yesterday I attended his session about workflow and was overpowered by his speed of speech. Today he presented in a for me more relaxed way.

The things he covered were ‘what is a developer box’, ‘how to upgrade from 2007 to 2010’ and UI customization. Although there were a lot of attendees interested in BCS it was unfortunately not covered. In my view there was not a real agenda about what to cover and what time to spend to it and suddenly it was 4 pm. It was very interesting to see what can be customized in the UI, but as an integration focused developer I would have liked to see more of development behind the scenes like workflow and BCS.

The overall feelings of the SharePoint 2010 connections in Amsterdam are mixed. It was good to see so many familiar faces and talk to so many people, on the other hand the sessions were not that good and if you’re interested in SharePoint and follow a bit what is blogged about it you soon know more than is shown in the sessions. The catering was also limited, especially this third day. Not even a snack during the coffee breaks…...

So what’s next?

Time to spin up my server and get started with some BCS myself :-)

Today was the second day of the 2-day conference. Today I had planned to see more of the back side of SharePoint 2010. After all I am an integration guy.

So I went to see a session about the Business Connectivity Services by Steve Fox. It was a good session which provided a good overview. In SharePoint 2007 it was only possible to read external data and view it in a list, but in SharePoint 2010 the full CRUD operations are supported. It is my expectation that this feature will be used extensively to perform operations on LOB systems. Also with my background in integration I see a lot of possibilities.

Next I attended Integrating workflows into backend systems using Data External Services, presented by Wouter van Vugt. This guy tries to talk twice the speed of sound and you really have to pay attention otherwise you’re lost, or at least that was my experience. I’m not all that into WF data external services and Wouter jumped from one topic to the other. The thing I missed was context and overview. For the more experienced attendees it was probably a meaningful session.

After the lunch I planned my last session. It was about Claims based identity in SharePoint 2010 by Spencer Harbar. This was also a somewhat disappointing session. He probably knows a whole lot about the topic, but he has difficulties presenting it. He talks monotonic, didn’t show any demo and was finished 25 minutes early. The things he discussed where general claims bases topics like the STS. He could have shown more SharePoint specific, in my opinion.

After the last session I rushed to the BTUG meeting, the Dutch BizTalk User Group meeting. The sessions there were very good, as always. It was great to see so many familiar faces and it was terrible I had to leave early, just in the middle of the session I actually came for. Too bad.

Tomorrow is my 3rd day, the developers deep dive. Let’s see what that will bring.

Today started the 2-day SharePoint Connections 2010. It was my first meeting with SharePoint 2010 since I left SharePoint back in 2005. I must say it is an exiting platform which can be used to build great solutions.

The key note was presented by Mike Fitzmaurice of Nintex. As a former Microsoft SharePoint evangelist he took us on a journey through the history of SharePoint. It was fun to watch.

My next session was by Steve Fox, he brought an overview of the developer platform. Steve is a good speaker with a great sense of humor. On the way of course the SharePoint designer and Visual Studio came by. It was useful overview.

Then I went to a session I would normally not attend. The SharePoint BI overview by Mike Fitzmaurice. I’m on a project now with a strong focus on BI so I thought it wouldn’t be a bad idea to see what Microsoft did to for example Performance Point Server. Like Steven Forte predicted, BI in SharePoint 2010 will be for the masses. Performance Point Server is integrated and is now a service like the Excel and Visio services. It is much easier to build a custom dashboard in SharePoint 2010.

Next I visited the ECM (Enterprise Content Management) for the masses by Erica Toelle. It was a new experience for Erica. As she told at the end she wasn’t used to speak for such a crowed but she tried to make the best of it. She was unsure about her live demos Her demo environment stopped working so she had recorded ones, which wasn’t the best choice. However I learned quite a few things from this session I normally would skip when researching SharePoint, like document sets where you can create a set of documents with one click and those documents can also be parameterized. How about records management for auditing purposes and auto-archiving.

My final session of today was presented by one of my favorite speakers, Jan Tielens. Jan can make complex things easy, knows his stuff and is entertaining. He showed how easy it is to use client technology to access SharePoint 2010 using a console application, JavaScript or Silverlight. It is great to see that SharePoint now comes with a client side API which makes it possible to use the object model on a client the same way it can be used on the server. That makes it possible to easily use SharePoint data in for example a Silverlight client.

Like at any conference it is difficult to decide what session to attend and I hope the other session will be available soon.

I’m looking forward to tomorrow!

It wasn’t really a surprise but I ran into quite some familiar faces from fellow freelancers, customers and former colleagues from Macaw. It was great to talk to any of them.

2010 is an important year for Microsoft with some major releases. One of them is SharePoint 2010.

Back in 2003 I played quite a lot with what was then called SharePoint Portal Server 2003, but due to my focus on BizTalk Server I did almost nothing with MOSS 2007.

Now with SharePoint 2010 coming I want to get on that train again to also be able to work with that part of the Microsoft stack.

Since SharePoint 2010 is in a beta stage, not everything installs as smooth as will be with the final release. Luckily I found a great 1-page install guide which is probably the easiest guide available to install SharePoint 2010 beta2 on a Windows Server 2008 R2 box. It also uses the SQL Server 2008 R2 CTP so you’re in the front seat again.

http://www.chakkaradeep.com/post/Quick-Installation-Guide-for-SharePoint-2010-Beta2.aspx

I’ll also attend the Microsoft SharePoint Connections 2010 on 18/19 January in the Amsterdam RAI Forum Centre. Exciting stuff!

While working on my current SSIS assignment I ran into some strange performance problems. The package ran fine but it took a lot of time to get a certain Data Flow Task to finish.

The strange thing was that when executing the package in Visual Studio, all elements in the Data Flow Task were ‘green’ but the Data Flow Task itself remained ‘yellow’ for a long time. Eventually the flow finished ok, but it took about 5 seconds to execute all elements in the flow, but the total time of the package was 2 minutes.

The ‘Execution Results’ tab showed that the package seem to spend a lot of time in the ‘Post Execute phase’ and ‘Cleanup phase’.

At first I thought it was something in the Data Flow Task itself, so I removed some items. This didn’t solve anything. The I thought it was something with a table being locked or so, but the SQL monitoring showed no locks during execution.

With such behavior it was hard to find the solution using a search engine, but luckily I found the solution here.

This post saved my life because it suggests to increase the Data Flow Tasks DefaultBufferSize setting. By default it is 10485760 and I increased it with a factor 4. After doing that the package ran in 10 seconds instead of 2 minutes. Great!

If this doesn’t solve your problem, take a look at the Ole Db Destination, if you’re using one. If you use the ‘Table or view – fast load’ make sure unnecessary settings are turned off. For example only check constraints if it is really necessary.

If you’re like me than you’re probably also catching up all the interesting stuff that was presented at the PDC this year. You also probably agree that it is way to much and it is taking way to long to view all the interesting sessions.

Luckily I got an email from Ideablade.com with a link to a presentation which gives an overview of the most important news in less than an hour.

Click here to go to the PDC 2009 Tour by Ideablade.com.

Also a PDF with links to all the sessions are available. You can get them here.

The tour is from a business application developers perspective and according to the presenter the following technologies should be watched closely:

  • Silverlight 4 (New Visual Studio ‘Cider’ for Silverlight development)
  • WCF Data Services (for exposing data)
  • WCF RIA Services (for building applications)
  • Entity Framework
  • OData
  • Parallelism
  • F#

The recommended sessions are:

  • CL01 – Silverlight 4 overview
  • CL21 – Amazing Bus Apps with RIA Services
  • CL19 – Building LOB Apps
  • CL20 – Trusted Apps Out of Browser
  • CL07 – Mastering RIA Services
  • CL06 – Networking and Web Services in Silverlight 4
  • FT24 – Extensible RIA with MEF
  • CL22 – Building Larget-Scale Apps with Silverlight 4
  • FT10 – Evolving EF in .NET 4
  • Manycore and the Microsoft .NET Framework 4 (Stephen Toub)
  • PLINQ: LINQ, but Faster! (Igor Ostrovsky)
  • Rx: Reactive Extensions for .NET (Erik Meijer)
  • F# for Parallel and Asynchronous Programming (Luke Hoban)

After the hour during overview I certainly need more time to see more sessions!

Last weekend I spend some time installing Visual Studio 2010 beta 2 and Team Foundation Server 2010 beta2. I now have a nice server with 12 Gb of RAM so I have some space to run virtual environments side-by-side. :-)

Installation went smoothly but configuration of TFS single server failed with the following error:

“TF255040: Install SQL Server Reporting Services or at a minimum SQL Client Connectivity Tools on the application tier to ensure Analysis Services object model is present for warehouse processing.”

So I started the SQL Server 2008 setup and thought I fixed the error by installing Reporting Services and SQL client tools, but the error remained. The good news about such a specific error code is that you can use it in your search query and so did I.

I found the solution in this MSDN forum.

The solution was easy, just restart the TFS configuration tool:

The problem in beta2 is we scan for those assemblies once and don't re-scan so after you install to SQL client tools, you need to close and restart the wizards.

Clear error code, easy solved. Let’s move on!

Last week the Professional Developers Conference (PDC) was held in the USA. At this conference Microsoft gives an insight in the future of their products and ambitions.

Also news about BizTalk was presented. At least 2 new releases were announced:

BizTalk Server 2009 R2, with these features:

  • Visual Studio 2010 support
  • SQL Server 2008 R2 support
  • Windows Server 2008 R2 support
  • Enhanced designer tool for mappings
  • FTPS adapter
  • Performance tuning dashboard (to allow easy access to the BizTalk performance (latency) knobs)
  • Improved support for event processing (used for RFID)
  • Powershell scripts to automate management
  • New System Center Operations Manager pack

BizTalk Server vNext, with this focus:

  • Deep application platform alignment, including AppFabric (aka Dublin) and WF 4
  • Enterprise connectivity for AppFabric
  • On-premises Server and Cloud Service Symmetry

A video about the roadmap can be viewed here.

Want to know more about these exiting announcements, take a look here:

At the moment I’m on a project which involves SQL Server Integration Services 2008. I had experience with DTS packages back in SQL Server 2000, but things have changed quite a bit.

After some reading and trying I built a new package. It was quite easy, reading data from one table, adding a column and writing it to another table. I used the Ole DB data flow source and because the destination was a SQL Server I decided to use the SQL Server destination data flow.

After a few runs I found out that the data in my destination table was malformed. Some fields contained correct data, but most were wrong. It looked like the data was shifted in one way or another.

Adding debugging to the package showed me that the problem had to be in the SQL Server destination data flow.

Some trial and error work didn’t result in a solution so I finally replaced the SQL Server destination data flow with the Ole DB destination data flow. It turned out to do the trick!

I’m not sure why SSIS behaved like this, because the data entering the data flow component was ok.

Microsoft released a demo VPC for BizTalk Server 2009. It contains demos and hands-on labs aiming for integration with Sharepoint Server 2007 and WF 3.

Get it here: Microsoft BizTalk Server 2009 Demo VPC

The VPC will expire on October 1st, 2010.

Update: The download seems to be corrupted, I got a CRC error !!

I’m very happy to announce that today the BizTalk Software Factory v2.0 is released. This version is updated to work with BizTalk Server 2009.

The v2.0 release contains all functionality currently in the version suitable for BizTalk Server 2006 development.

It took a while to convert the BSF and make it work with BizTalk Server 2009. All kinds of small things are different in Visual Studio 2008, BizTalk Server 2009 and the Guidance Automation Extensions and Toolkit. One example is where the BizTalk application name is stored, namely in the btproj.user file. It was hard to get that right but D. Dijkstra found a way to do it.

To use the BSF v2.0 you need the following:

Optionally you can use nUnit 2.5.2 if you prefer nUnit over Visual Studio Unit Testing. The BSF v2.0 is capable of using both.

I would like to encourage you to take a look at it and please let me know what you think!

While I’ve worked with the exception handling from the ESB guidance 1.0 and read quite a lot about the ESB Toolkit 2.0, I thought I should take a closer look at the ESB Toolkit 2.0 and get my hands dirty.

The first thing you should do is download it :-) and that can be done here. Before you install the toolkit, make sure the comply to the prerequisites:

  • Microsoft Windows Server 2008 or Windows Server 2003 (except Web Editions) operating system
  • Microsoft .NET Framework 3.5 SP1
  • Internet Information Services (IIS) 7.0 with IIS 6.0 extensions or IIS 6.0 (used for Web services and the ESB Management Portal)
  • Microsoft SQL Server 2008 or Microsoft SQL Server 2005
  • Microsoft BizTalk Server 2009 Enterprise Edition, including Business Activity Monitoring (BAM)
  • Microsoft Visual Studio 2008 SP1 (required on development computers)
  • Microsoft Chart Controls for Microsoft .NET Framework 3.5
  • Some are quite obvious, but for example without the Chart Controls the installation will fail.

    After downloading the MSI you can double click it to unpack the files, change registry settings and install and register for example the Itinerary designer in Visual Studio.

    If you go to the folder where the toolkit is installed (by default in the Program Files folder), you’ll find some more MSI’s. To do a basic setup, launch the BizTalk Server Administration and import  the ‘Microsoft.Practices.ESB.CORE.msi’.

    Now BizTalk is setup with a new application “Microsoft.Practices.ESB”, containing several orchestrations, send ports and receive ports to support on ramps and exception handling.

    Ok so far so good. The ESB in BizTalk is setup, but the toolkit relies heavily on WCF services and they aren’t setup yet. To do this use the “ESBConfigurationTool.exe”. It is located in the ‘bin’ folder of the location the ESB Toolkit 2.0 is installed. You can setup the both the Exception Management database and webservice and the ESB core components there. The Core components are the Itinerary Database and the core webservices like the resolver, transformation and itinerary services.

    So we’re ready to start with the so called itineraries but what are they? In chapter 11 of the book SOA patterns with BizTalk Server 2009 Richard Seroter writes: “An itinerary is a set of instructions which outline a sequence of services that the bus should perform on a given message”. Another interesting thing is that they “attach to the message itself and do not require any deployment to the BizTalk environment”.

    Ok, we now know what they are but how does it work? The key thing is that the itineraries are attached to the message when it enters BizTalk. This is done by a pipeline component in the on ramp. Then the steps in the itinerary are executed one by one and after every step the message is send to the messagebox again. This makes itineraries a very decoupled way of messaging because BizTalk is unaware.

    So far the getting started. For itinerary design and tooling also this video by Brian Loesgen is worth watching.

    For the next version of the BizTalk Software Factory(BSF) also the BizTalk Deployment Framework(BTDF) must be converted to the latest version, 5.0 in this case.

    From blogs and reviews I understood that the BTDF 5.0 was seriously simplified, something I like in advance. :-)

    So I started by downloading and installing it on my virtual PC environment. It is installed in the Program Files folder, where also some samples are installed. These samples were the basis for me.

    Like is said on Codeplex with this 5.0 beta release, the documentation is sometimes outdated which makes it a bit harder to get started.

    The best thing you can do after installing is launch the sample. That is the easiest way to find out how it works. You’ll find a toolbar in the Visual Studio IDE which supports several deployment and undeployment options. If you build and deploy the sample application, it is first stopped and undeployed if it was already deployed and then redeployed, bindings applied and started. That’s about it! You can play with the options to generate MSI’s for server deployment, but that is out of scope for this post.

    So what do actually you need to get started? The best way is to copy the “BizTalkSample.Deployment” folder from the “BizTalkSample_BT2009” project to your own project. This contains everything you need.

    • <project>.Deployment.btdfproj
    • BuildDebugMsi.bat
    • BuildReleaseMsi.bat
    • InstallWizard.xml
    • UninstallWizard.xml
    • PortbindingsMaster.xml
    • EnvironmentSettings folder with SettingsFileGenerator.xml

    The <project>.Deployment.btdfproj contains the deployment script where you specify all project names, artifacts to deploy, how to handle bindings and a lot of other things. Not all possible elements are in the sample, take a look at “BizTalkDeploymentFramework.targets” to find all elements you can use.

    The debug/release build files just kick the process to get the build started.

    The install and uninstall wizard files can be used to specify the user interface you see when you deploy or undeploy from the start menu. This user interface is only shown for server deployments via the MSI.

    For now the <project>.Deployment.btdfproj, the PortbindingsMaster.xml and the SettingsFileGenerator.xml are the most important files.

    With BizTalk deployment there is always the question about how to manage your bindings. These files are hardly readable so it is easy to make mistakes. The BTDF contains a SettingsFileGenerator.xml where you can specify values to show up in the bindings. When the deployment is started, the settings are parsed and merged with the PortbindingsMaster to a file called ‘PortBindings.xml’. This file is used to import bindings to the just deployed application. If you don’t need to parse anything, you can instruct the BTDF to use the PortbindingsMaster file instead of the Portbindings file by setting the "<UsingMasterBindings>” element to true.

    With most of the defaults in the sample btdfproj file you can get started or easily figure out what they should be. To conclude this short getting started: the sample can get you up to speed very fast and you’ll have a deployment process in place in minutes.

    In my current project I’m working on a BizTalk application and some user interface built in ASP.NET MVC. As a BizTalk consultant my Javascript skills aren’t the best in the world but for the user interface I had to create a view with a “tree control” look.

    From my early days as web developer I remembered to do that using DIV tags and Javascript to hide and show parts of the tree. Since that is a while ago I prepared myself for some (for me) hard core HTML and Javascript.

    This year I visited the Dutch DevDays and there I saw Jan Tielens doing amazing things with jQuery, so I decided to give it a go.

    I was very happy to find out someone actually wrote a TreeTable plugin using jQuery, but how easy would it be to implement it?

    It took me about 15 minutes to get this working and it looks good!

    Awesome!

    More Posts Next page »