I found myself with a bit of extra time so I saw it as the ideal moment to look at some new Microsoft technology. In addition to wanting to start to familiarize myself with WCF I wanted to get started on BizTalk 2009 and some of the new features that are available. I especially wanted to take a look at the new ESB 2.0 guidance. I tried to build a relatively bullet-proof Dev box that would be able to Demo a lot of different technologies.
What's the first thing that I needed to do to get started (besides gather up a lot of different pieces of software)? I needed a development box with all the tools on it! I am using a Windows 7 HP Compaq 8510w laptop to build my machine. It has 4 Gigs of RAM and in a pinch I can run multiple servers at the same time. Windows 7 has an integrated Virtual Machine which is fantastic. The performance is much better than the previous versions of VPC. Don't confuse this with the Microsoft Virtual PC 2007 (for example) as that is a different product. This new Windows Virtual PC is step forwards and can be downloaded for your Win7 machine here: http://www.microsoft.com/windows/virtual-pc/download.aspx (Win7 is commercially available in October 2009 by the way).
The following is a list of the steps and software that are required to build a BizTalk 2009 Dev box which has a lot of Bells and Whistles:
STEP #1. Build a Base Win2k8 and Sysprep.
I had no experience with Windows Server 2008 so it was time to get started. Luckily when you work at Microsoft you can either download all the software internally or use your personal MSDN account (this is great). The first step is to create a Virtual Machine and if you are like me you probably want to sysprep a base server so that you can save time later. Win2k8 has much more extended sysprep apabilities and there is a tool set called WAIK (Windows Automated Installation Kit) available. The sysprep tool is located in the win2k8 system32 directory however you will need to create an answer file (an xml file) for it. I won’t go into detail here now as there are already some good blogs out there regarding how to do this. I highly recommend keeping a sysprep’d machine saved, it can save the win2k8 install time. Wait with sysprepping however.
Once your Win2k8 machine is up and running I suggest to disable the enhanced Internet Security. It’s not located in the same place as it was in Win2k3 but after a bit of searching I found that it was now regarded as ‘feature’. Win2k8 is now grouped in Roles and Features. The next (very) important step is to to run Windows updates. Once your machine has been fully updated then you can sysprep it (this saves a lot of time later). Save a copy of the sysprep’d vhd file somewhere and don’t forget to mark it read-only.
STEP #2. Assign Win2k8 Roles and ensure that specific features (such as IIS) are running. Take a copy of your sysprep’d machine and fire it up. Since I want to use this box for WCF, BizTalk and ESB I had to make sure that WAS (Windows Activation Services) and IIS 6 manageability were installed. Typical Roles that are needed are Application Server and Web Server. Note: I did not install UDDI through the features section. After several failed attempts I left this out and later when I installed BizTalk 2009 I installed UDDI 3.0 through there. If anyone knows why this could fail I would really like to know?
STEP #3. Install SQL Server 2008. Install SQL Server 2008 on it. You can install a named instance or default, I personally like to give my Dev box a specific name that is easy to remember. Remember however that this has consequences for all the app.config and web.config etc., files within your .NET applications. I had a problem with that my portal would not work properly for me and I spent a number of hours checking logs and searching until I finally discovered that I had not updated the web.config file in the ESB.Exceptions.Service project.
STEP #4. Install Visual Studio 2008. There is a Service Pack 1 available and it can be found here. I also installed all the MSDN help. Yes it is a huge chunk of space but too many times I have been in a hotel somewhere with no internet access and thus no help. That’s frustrating!
STEP #5. Install SQLXML 4.0 with SP1. Link: http://www.microsoft.com/downloads/details.aspx?familyid=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en
STEP #6. Install and Configure Sharepoint Services 3.0 with SP1. I had initially a lot of problems setting this up to run correctly. Apparently Sharepoint still wants to grab all the http traffic going into the Default website. I found as the best solution to separate 3 websites: Default, a WSS site and a site for the Sharepoint Central Admin. I used ports 80, 90 and 100 respectively. The big trick is to create the port 90 site before you install Sharepoint 3.0 and during the configuring process ensure that you ‘extend’ onto that site instead of the Default. This was a real gottcha for me and cost me a lot of time and frustration. It was preventing my UDDI from functioning properly and thus the ESB didn’t work correctly. It also prevented my BAM portal from functioning correctly. Something similiar to the following should work fine:
Default Website (port 80)
WSS site (port 90)
Sharepoint Central Administration (port 100)
STEP #7. Install and Configure BizTalk 2009. I installed and configured everything except EDI. I cheated however in regard to the accounts and ran everything under my personal Admin account. I created a new login in Win2k8 and gave it Administrator rights. All my services run under this. This is definitely NOT recommended for any kind of production environment. I however want to make sure that this box always works especially in a Demo type of environment. I really dislike messing around with user rights/group policy problems in the middle of a Demo. I would love to have a powershell script that I could run to easily create the proper accounts that I need to run things properly.
STEP #8. Install and Configure UDDI 3.0 using the BizTalk 2009 installer. Use the SQL Server instance to host your UDDI database and ensure that SSL is not checked!
STEP #9. Install Enterprise Library 4.1-October 2008. If you are having privileges problems you can run a command prompt as an Administrator and then run the msi file within the prompt. Link: http://www.microsoft.com/downloads/details.aspx?FamilyId=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en
STEP #10. Install Microsoft Chart Controls for Microsoft .NET Framework 3.5. I am looking forward to seeing some snazzy new charts: http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en
STEP #11. Install Unity Application Block 1.2 – October 2008. Link: http://www.microsoft.com/downloads/thankyou.aspx?familyId=2c8b79e7-ae56-4f90-822e-a1e43c49d12e&displayLang=en
STEP #12. Install Visual Studio 2008 SDK 1.1. Link: http://www.microsoft.com/downloads/details.aspx?FamilyID=59ec6ec3-4273-48a3-ba25-dc925a45584d&DisplayLang=en
STEP #13. Install WCF LOB Adapter SDK SP2. Link: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=47ab6f21-0d8b-4c90-a8b9-e8647281b164
STEP #14. Install BizTalk Adapter Pack 2.0. I use my MSDN subscription for this and I haven’t seen a external link for it.
STEP #15. Windows Updates. At this point my windows updater fired up again and I had to wait while the machine was updated.
* I made a back up copy of my vhd file at this point just in case something went wrong at this point. There are many hours of work between this step and step 1 and it can be very frustrating if something fails now.
STEP #16. ESB 2.0 Guidance. The ESB 2.0 guidance can be found on CodePlex here: http://www.codeplex.com/esb . I also recommend reading through the MSDN information as well which can be found here: http://msdn.microsoft.com/en-us/library/ee236739(BTS.10).aspx . You will also need to run the Powershell prompt (I do runas Administrator), set-ExecutionPolicy unrestricted. There is a good description of the install and config here: http://msdn.microsoft.com/en-us/library/ee236759(BTS.10).aspx . You will need to configure the EsbException database & webservice as well as the EsbItinerary database & webservice depending upon which options you wish to run. I had a lot of problems with the UDDIPublisher.exe tool but this was due to the fact that I had incorrectly set up my Sharepoint services.
One more important note: once I had everything installed (including the ESB guidance) I tried to create my first itinerary. There was an immediate problem the first time I tried to do this. Visual Studio did not recognize my Itinerary files! The solution to this problem was to run Visual Studio 2008 Service Pack 1 again. Once this was completed I was able to create/use itinerary files.