BizTalk Benchmark Wizard



Note: You also need to make sure that BizTalkCop is configured to point to the right BizTalk application so that it can validate the application level artifacts like the physical post names etc.
|


1. Port names should be prefixed with their direction – start ‘ReceivePort1’ with ‘Receive.’
|
2. Port names should be prefixed with their direction – start ‘SendPort1’ with ‘Send.’
|
3. Receive Location names should be prefixed with their Receive Port name – start ‘Receive Location1’ with ‘ReceivePort1’
|
4. Receive Location names should be suffixed with their transport type – end ‘Receive Location1’ with ‘.FILE’
|
5. Artifacts should be declared in modules with the correct suffix – consider module name ‘BadProject.Schemas’
|
6. Schema names should end with the data format. Format: ‘inventoryRequest’ is unknown
|
7. Schema names should begin with the root node. Start: ‘inventoryRequest’ with: ‘Root’
|
8. Artifacts should be declared in modules with the correct suffix – consider module name ‘BadProject.Transforms’
|
9. Map names should have the format “SourceSchema_DestinationSchema”
|
10. Artifacts should be declared in modules with the correct suffix – consider module name ‘BadProject.Orchestrations’
|
11. Orchestration members should be Camel cased. Replace Message name: ‘InvReqMsg’ with: ‘invReqMsg’
|
12. Orchestration members should be Camel cased. Replace Message name: ‘PurchaseOrderMsg’ with: ‘purchaseOrderMsg’
|
13. Orchestration members should be Camel cased. Replace Port name: ‘Port_1’ with: ‘port1’
|
14. Orchestration members should be Camel cased. Replace Port name: ‘Port_2’ with: ‘port2’
|
15. Orchestration shapes should be correctly named – replace ‘ConstructMessage_PurchaseOrder’ with ‘Construct_PurchaseOrderMsg’
|
16. Orchestration shapes should be correctly named – replace ‘Transform_InvToPurchaseOrder’ with ‘Transform_inventoryRequest_purchaseOrderSchema’
|
17. Orchestration Shapes should have the correct prefix – start ‘MessageAssignment_1’ with ‘Assign_’
|
18. Orchestration Shapes should have the correct prefix – start ‘Receive_InvRequest’ with ‘Rcv_’
|
19. Orchestration Shapes should have the correct prefix – start ‘Send_POMsg’ with ‘Snd_’
|
20. Orchestration types should be Pascal cased. Replace Port Type name: ‘PortType_1’ with: ‘PortType1’
|
21. Orchestration types should be Pascal cased. Replace Port Type name: ‘PortType_2’ with: ‘PortType2’
|
22. Orchestration Types should have the correct suffix – end ‘PortType_1’ with ‘PortType’
|
23. Orchestration Types should have the correct suffix – end ‘PortType_2’ with ‘PortType’
|
24. Orchestration Types should have the correct suffix – end ‘Port_1’ with ‘Port’
|
25. Orchestration Types should have the correct suffix – end ‘Port_2’ with ‘Port’
|
26. Artifacts should be declared in modules with the correct suffix – consider module name ‘BadProject.Schemas’
|
27. Schema names should end with the data format. Format: ‘purchaseOrderSchema’ is unknown
|
28. Schema names should begin with the root node. Start: ‘purchaseOrderSchema’ with: ‘Root’
|






It can be used both on the individual machines as well as on the build server. You can integrate it with your build scripts so that your application health report now also includes static code analysis among other things. This way you can be assured and can sleep peacefully knowing that the code drop you just sent to the customer conforms to all the naming conventions without having to manually review it at the eleventh-hour, not to mention the amount of time saved. I hope to see many more new rules and improvements from Elton in future releases of BizTalkCop.
GUI for BizUnit on codeplex
A good friend and colleague of mine has started a project on codplex to build a GUI for BizUnit,
Check it out here : http://www.codeplex.com/bud
Links to materials on GoF Design Patterns
As I am into BizTalk consulting / development / training for quite sometime now, I feel that I am missing out on hardcore c# programming and the enchantment of object oriented concepts lately.
For instance, the other day I was trying to recollect the implementation details of the Decorator design pattern, and searched for it on the Internet and in the process, got glued at the wealth of information available on design patterns.
So I thought it would be helpful to have a quick reference list of the materials available so that i don’t waste time searching for them again.
Here goes:
Abstract Factory
http://www.dofactory.com/Patterns/PatternAbstract.aspx
http://en.wikipedia.org/wiki/Abstract_factory_pattern
http://www.exciton.cs.rice.edu/JAvaResources/DesignPatterns/FactoryPattern.htm
Factory Method
http://www.dofactory.com/Patterns/PatternFactory.aspx
http://en.wikipedia.org/wiki/Factory_method_pattern
http://gsraj.tripod.com/design/creational/factory/factory.html
Facade
http://www.dofactory.com/Patterns/PatternFacade.aspx
http://en.wikipedia.org/wiki/Facade_pattern
http://aspalliance.com/970_Facade_Design_Pattern
Iterator
http://www.dofactory.com/Patterns/PatternIterator.aspx
http://home.earthlink.net/~huston2/dp/iterator.html
http://www.c-sharpcorner.com/UploadFile/acusis/IteratorPattern07072006023056AM/IteratorPattern.aspx
Observer
http://www.dofactory.com/Patterns/PatternObserver.aspx
http://en.wikipedia.org/wiki/Observer_pattern
http://www.exciton.cs.rice.edu/JAvaResources/DesignPatterns/ObserverObservable.htm
http://sern.ucalgary.ca/courses/SENG/609.04/W98/lamsh/observerLib.html
Singleton
http://www.dofactory.com/Patterns/PatternSingleton.aspx
http://en.wikipedia.org/wiki/Singleton_pattern
http://www.exciton.cs.rice.edu/JAvaResources/DesignPatterns/singleton.htm
http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html
Adapter
http://www.dofactory.com/Patterns/PatternAdapter.aspx
http://en.wikipedia.org/wiki/Adapter_pattern
http://www.exciton.cs.rice.edu/JAvaResources/DesignPatterns/adapter.htm
http://vico.org/pages/PatronsDisseny/Pattern%20Adapter%20Object/index.html
More to follow soon…
I am sure most of you (not talking about the BizTalk gurus out there J) have worked with some of the open source utilities available for BizTalk such as the BizTalk Adapter Wizard or the BizTalk Server Pipeline Component Wizard or BizUnit. However what some of you may not know is the wealth of other open source utilities for BizTalk available on CodePlex.
Here are some of the interesting ones and their descriptions as found on CodePlex :
SDC Tasks Library – . The SDC Tasks are a collection of MSBuild tasks designed to make your life easier. You can use these tasks in your own MSBuild projects. You can use them stand alone and, if all else fails, you can use them as sample code.
BizUnit – Framework for Automated Testing of Distributed Systems – BizUnit enables automated tests to be rapidly developed. BizUnit is a flexible and extensible declarative test framework targeted that rapidly enables the automated testing of distributed systems, for example it is widely used to test BizTalk solutions. BizUnit is fully extensible. Its approach is to enable test cases to be constructed from generic reusable test steps, test cases are defined in XML which allows them to be auto-generated and also enables the ‘fixing up’ of Url’s for different environments, e.g. test, staging and production environments. Defining test cases in XML enables test cases to be auto-generated.
BizTalk Server Pattern Wizard – The BizTalk Pattern Wizard is an extensible tool to help you capture, share, and reuse your orchestration best practices. By using the BizTalk Pattern Wizard, you can capture a best practice, turn it into a generalized and configurable pattern, and share that pattern with the rest of your team or the entire BizTalk community. The wizard comes with over a dozen patterns ready for implementation in your next project.
WCF Adapter for BizTalk Server 2006
BizTalk Adapter Wizard for BizTalk Server 2006 – The BizTalk Adapter Wizard for BizTalk Server 2006 is a Visual Studio 2005 project wizard which creates all of the framework code for your custom BizTalk adapter. The adapter wizard is accessible from the Visual Studio menu: File – New – Project – BizTalk projects.
BizTalk Server 2006 Documenter – Creates compiled help files for a given BTS 2006 installation. This tool can be run on an ad-hoc basis using the UI or from the command line as a post build/deploy task to create a compiled help file describing a BTS 2006 installation. It will compile: BTS Host configuration, Send/Receive port configuration, Orchestration diagrams, Schema and Map content, Pipeline process flow, Adapter configuration, Rule engine vocabularies and policies, More… and publish them as compiled help files. Optionally you can embed custom HTML content and custom descriptions for all BTS artifacts to produce a more customized look and feel to the CHM output
BizTalk Server 2006 Orchestration Profiler – Creates CHM report files illustrating the level of coverage for specified BizTalk orchestrations. This tool can be run to gain a consolidated view of orchestration tracking data for a specified period of time to help developers get an idea of how their orchestrations are being processed and how much coverage they are getting in their testing. In addition to simple coverage information the data presented helps to identify latency and code path exceptions by highlighting long running and error prone orchestration shapes.
PowerShell BizTalk Provider – A full PowerShell provider for exposing BizTalk Server as a filesystem. Administer your BizTalk installation. List all applications / orchestrations / Schemas. Stop an application, enlist an orchestration … Use the full power of the shell to script away the pain of GUI based mass-management.
MapCop – A program for testing BizTalk map files (.BTM) for a set of best practices.
BizTalk Instance Controller – Limit the number of instances of any BizTalk Service.
Have Fun!
You know that BAM is used to gather statistics from your BizTalk application. What you probably don’t know is that:
- You can collect BAM data from your non-BizTalk applications such as external .NET components that BizTalk calls into.
- Tracking profile editor (TPE) is not the only way to collect data you can use a set of APIs available in the Microsoft.BizTalk.Bam.EventObservation namespace to read and write directly into the BAMPrimaryImport database.
Check out some of the links here:
- http://www.topxml.com/rbnews/BizTalk-BAM-activity/re-29195_Business-Activity-Monitoring–GenerateTypedBAMAPI-Tool.aspx
- http://www.developer.com/net/net/article.php/11087_3587296_2
- http://blogs.msdn.com/keithlim/archive/2006/02/02/522649.aspx
- http://blogs.msdn.com/keithlim/archive/2006/03/08/545851.aspx
8 Tips And Tricks For Better BizTalk Programming
Wish you all a happy Easter
Here’s wishing you all a happy Easter!
Everybody these days seems to be pretty excited about the new PDF version of BizTalk 2006 documentation (Btw, a latest .CHM version is out as well, but there is no hoopla around that).
So thought I’ll download the PDF version and check it out as I have been using only the .CHM version extensively. But I was not very impressed with what I saw.
To start with, the PDF version is really huge file 114 MB (whereas the .CHM version is only 44MB, the contents are the same), there is no way my PDA mobile device will load that kind of thing even with external memory card.
The links in the PDF version are not active (not clickable), so you cannot navigate through the document
Searching through the pdf document is very slow and the interface not as user friendly as the .CHM version.
The CHM version on the other hand (IMHO) is more convenient, and the search is blazing fast, you can do incremental search as well using the index tab.
You can even maintain a list of favorite pages just like keeping shortcuts, and the best part is, when I overwrote the old .CHM file with the latest version, all the old favorite pages (shortcuts) appeared intact.
I am not sure why we have a PDF version in the first place, I am sure missing out on something, someone kindly enlighten me please.