« September 2007 | Main | November 2007 »

October 29, 2007

VS 2008 Beta 2 VPC Expiring on 1st Nov 2007

If you have been playing around with VS 2008 Beta 2 VPC, note that the VPC unlike earlier thought, will expire on 1st Nov 2007 itself. In case you have been using TFS along with the VPC, follow the steps mentioned at Moving Team Foundation Server to take a backup of your DB and prepare to move to the new VPC.

Since the timeout is at OS level, it is still being researched if anyone will be able to access their data on the VPC after 1st Nov 2007 or not. Additional guidance will be made available shortly. Keep a watch here for latest information. 

 

October 22, 2007

BizTalk Assembly - Under the hood

For some work I was doing with BizTalk 2006, I had used reflection and played around with internals of BizTalk Assembly. With BizTalk 2006 R2 now available, I decided to give the code I was working then, a try again.

I have earlier blogged about installing BizTalk 2006 R2 on my Vista machine and as part of that I had built the CallOrchestartion SDK Sample. I decided to work with this sample code itself.

Before going ahead, a word of caution: The internals of BizTalk Assembly aren't published and are subject to change. Hence any code (like below) that you write assuming the internals, may break with future versions.

Let's see how we can load a BizTalk Assembly and find out if it contains an Orchestration or not. For this, we write the regular reflection code as below

            Assembly al = Assembly.LoadFile(@"C:\Program Files\Microsoft BizTalk Server 2006\SDK\Samples\Orchestrations\CallOrchestration\bin\Development\CallOrchestration.dll");

BizTalk Orchestartions derive from BTXService base class. So we search for it as below

            Type orc = null;

            BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static ;

 

            Type[] types = al.GetTypes();

           

            foreach (Type t in types)

            {

                if (t.BaseType.Name == "BTXService")

                {

                    orc = t; //t.FullName will give the name of the orchestration

                }

            }

            if (orc == null)

            {

                //no orchestartion. act accordinly

                ...

            }

Assuming we get the Orchestration, there are two key fields in the orchestration that contain all the information about it. There is a field called _symInfo that contains information about all the shapes (including children) and the messages used in the orchestartion. There is another field called _symODXML, which contains all the relevant properties for the shapes in the orchestration. Both of these are XML content and you can load and parse them using XML DOM APIs. To load them, something like following will work

            FieldInfo info = orc.GetField("_symInfo", flags);

            string syminfoString = info.GetRawConstantValue().ToString();

 

            FieldInfo odXML = orc.GetField("_symODXML", flags);

            string odxmlString = odXML.GetRawConstantValue().ToString();

 Note that the odXML content uses a namespace - "xmlns:om='http://schemas.microsoft.com/BizTalk/2003/DesignerData'" and hence when working with the XML, you will need to add the appropriate namespace before firing any XPATH queries.

            XmlNamespaceManager namespMgr = new XmlNamespaceManager(doc.NameTable);

            namespMgr.AddNamespace("om", "http://schemas.microsoft.com/BizTalk/2003/DesignerData");

(where doc is the XmlDocument object).

As important feature of BizTalk that will help understand the XML structure better and get to see the source code of BizTalk Ochestration is the ability to generate the C# files. Refer to this blog for more details on it.

October 8, 2007

Aspiring Software Architect Program

If you aspire to become an Architect, you may be interested in the current webcast series being conducted by Vikram Rajkondawar, Architect Advisor, Microsoft. In all, there are 9 webcasts, of which 6 are still remaining. You can register for these here. Note you will have to individually register for all the sessions you wish to attend.

The sessions are really interesting and unique since these are presented as a dialogue between Vikram and practicing Architects from across the Indian Industry and they share their wealth of experience via these sessions. As you attend you even get a chance to practice the concepts discussed, by participating in the Case Study contest.

October 4, 2007

BizTalk Server 2006 R2 on Vista

BizTalk Server 2006 R2 is now available. Introduction paper to this version is available here. Get a trial version of it from here. MSDN Subscribers can download it from the MSDN Subscribers download site. The latest documentation for this version is available here.

I had earlier blogged about getting BizTalk Server 2006 to work in Vista. At that time BizTalk wasn't officially supported on Vista, but I had wanted to test if it worked or not. The current R2 release is now officially supported on Vista. So I decided to give it a try again. I used BizTalk Server 2006 R2 Developer Edition and worked on Windows Vista Ultimate.

I downloaded the pre-requisite cab file for Vista from here so that I need not worry about active internet connection during setup. The various installation guides for this version are available here and I picked up the Vista specific document to aid me in my installation.

Running the Setup.exe and installing BizTalk Server 2006 R2 succeeded without any issues. I had selected the following options during installation

Documentation
Server Runtime
    WCF Adapter
Portal Component (Not installed)
Aministration Tools
    WCF Administration Tool
Developer Tools and SDK
Additional Software
    Business Rules Components

In the Configuration Wizard, I selected Basic Configuration, provide the user details for the service configurations and went ahead. The configuration completed successfully. Post this I ran the BizTalk Administratation Console and got no errors. Like in previous case, i decided to first try the CBRSample (default path - C:\Program Files\Microsoft BizTalk Server 2006\SDK\Samples\Messaging\CBRSample). I ran the setup.bat file and it built, deployed and configurated the application successfully. Via the Admin console i also added appropriate filters for the send port. See my earlier blog for details on this. Finally I placed the inputs messages in the IN folder and got the processed messages in the respective CAN and US folders.

Like before, I then picked up CallOrchestrations (default path - C:\Program Files\Microsoft BizTalk Server 2006\SDK\Samples\Orchestrations\CallOrchestration) and ran the setup.bat file provided. This sample also was built, deployed and configured successfully. The execution also went on fine and the InputPO.xml was processed and placed in OUT folder. However just as I had noticed earlier, this sample still doesn't use the Application concept that was added in BizTalk Server 2006 and still gets added to BizTalk Application 1.

Overall getting BizTalk Server 2006 R2 to install and configure on Vista was pretty good experience !

.NET Source Code

If you have been troubled for not being able to debug into the .net source code when debugging your own code, take a breather. As Scott Guthrie has mentioned, the .net base class library code will be released soon under the MS Reference License. Guess this means, no more need of Reflector. It will however still be useful to view the code for any non .net BCL assembly.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter