<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3666466141308912256</id><updated>2011-06-11T02:53:11.539-07:00</updated><category term='Biztalk Scemas .net classes BizTalkMgmtDB'/><category term='BizTalk'/><category term='.net'/><category term='Web Sevice Wizard'/><category term='Biztalk Scemas .net classes'/><category term='Schema Bound'/><category term='Subscriptions'/><category term='Object Oriented'/><title type='text'>Adventures in Wonderland</title><subtitle type='html'>It's all about me...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://biztalkabc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://biztalkabc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Costantinos Fassis</name><uri>http://www.blogger.com/profile/07279996034000327495</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_PWGkLuUjSuI/ST6PLDl28MI/AAAAAAAAACI/a4IjN0XQ7rg/S220/n576919663_1709167_4364.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3666466141308912256.post-4852439636959586231</id><published>2009-02-03T11:29:00.000-08:00</published><updated>2009-02-03T12:15:29.384-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='Object Oriented'/><title type='text'>Give BizTalk some Object Orientation</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;The following blog discusses the techniques I use for orchestration development that I think are worth consideration...&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: 12px; "&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Coming from a .net and oo programming background I find that although xlang gives you the power, the solutions always lack finesse that a suite of glorious interoperating classes delivers.  &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;So why not use messages that are .net data types rather than schema based?&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;Well, although I know you &lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;can&lt;/span&gt; create messages that have a .net datatype over a schema, that does not mean that you &lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;should&lt;/span&gt;...&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;I have found this is to be a far from perfect solution, especially as you lose the magical mapping capabilities that make transforming messages so productive, the mapper does not allow you to pick a .net data type from the type picker.  Also there are some additional advantages to having a schema represented class that I will discuss later.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;So having tried to use a pure “messages as.net objects solution”, setting biztalk property attributes on the .net code to create distinguished fields and promoted properties and a whole load of other faf, I came to the conclusion that this is not the way forward. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Instead I have found that there is a happy medium where you can use the best of both worlds as it suits you, there is however one Golden Rule and several recommendations that I have found useful listed below.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;The “Golden Rule” is that all biztalk message variables are based on schemas and not .net objects!&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;This may seem a little backwards at first, however I found that when you base a message on a .net class BizTalk will create a schema for this class anyway which can be seen in the admin console(I think it examines a serialized version of the object).&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;If you need to use a schema representation anywhere else (need to map for example) you will have two definitions of the same message within BizTalk and get problems.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;So always start with schemas, using these as the basis for your classes.  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;When you need to perform some complex work function in BizTalk, generate a .net class using xsd.exe.  You will get a class that represents your schema which &lt;span class="Apple-style-span" style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;you can then adjust as you see fit, adding constructors and object methods that will help perform functions of that class in BizTalk (or elsewhere).  Now there this method gives you some great flexibility discussed later.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;No here is my great discovery... You can “Construct” messages by assigning objects directly to them.  What I mean is you can create an orchestration variable that is of type .net class (the class you created using xsd) then assign it directly to a message within a contruct message shape like so....&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;SchemaMessage = object;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;This means that complex message construction can be done in .net which is more suited for this, and simply assigned to a message.  Proper Bo I tell the....&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Note however this is not a two way street, in order to assign messages to objects you need to pass the message to a static de-serialization function to create an instance of the object with the message data&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;object = namespace.object.deserialize(SchemaMessage); &lt;span class="Apple-style-span" style="font-size: 8px; font-style: italic; line-height: 9px; "&gt;- remember the deserialize method will receive an xmldocument&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;If you are simply using .net for message creation you do not need to worry about custom de\serialization as the xsd generation give you it out of your box.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;This interchange is quite neat and means message construction and manipulation within BizTalk becomes a piece of cake. &lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Also, and in my view very powerful bonus is that you get the beginnings of a true data dictionary as your class definitions are defined by a set of schemas, forget the M language, .net has had this stuff for ages if you new how to use it! (Don't get me wrong, M is a shot in thearm for this stuff).&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;You can even use this technique in a non BizTalk environment to help with visual code generation.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;Anyway now you have a class definition of the schema you can reuse it.  What if you were dumping your BizTalk data into a .net application? Bosh, you have got the re=usable objects already.  What if you are creating an application that calls the orchestration using web services? Bam (no pun intended) you have got a class you can create and reuse instead of the web serice proxy generated one, maintaining one central set of class definitions.... &lt;span class="Apple-style-span" style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;Add to this the ability to persist these objects to sql using the serialization and the sql xml data type (in a Dublin-esque way) and my word now we are getting somewhere……&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px; "&gt;Anyway back to OO BizTalk….&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Recommendations&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px; "&gt;only create classes as and when you need them, and always use xsd.exe (its pretty good)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;Ensure you use the /order parameter of XSD to avoid strange serialization problems&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;Create a batch file for each schema that gets a class and include this in the project&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;If you intend to alter the class (which is likely) write the xsd output to a file that is not part of your project to prevent automatically overwriting any amendments you may have made when running the batch file.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;Note ALL amendments made in a separate .txt file in case you lose your amended generated file (see above to mitigate the risk of this)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;Remove\comment out the “specified” Booleans from the xsd generated code, they are unnecessary&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;Remove\comment out the debugger.stepthrough attribute that xsd adds to the class definitions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;If your schemas have enums, you must set the “AnonymousType = false” rather than true in the serialization xmlTypeAttribute&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;If you make additions to the class, create these in a separate .cs file making use of the partial classes&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;If you follow my &lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;recommendations&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt; you will end up with something like the following&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;A schema\bts project containing&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;MySchema.xsd&lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;A compoent project containing&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;MySchema_generated.cs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;MySchema_Extentions.cs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB" style="font-size:8.0pt; line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; "&gt;MySchema_GenerateClass.bat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 11px; line-height: 12px;"&gt;Here are some additional style choices I use that may not be everyones flava&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;I prefer to work with List&lt;t&gt; rather than the arrays that xsd produces.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;This still serializes in exactly the same way, but allows you to use the power of List&lt;t&gt;.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;You have to implement your own add, count and other functions in order to use this in good ole xLang, but it is easy and neat and I think worth the effort ( I comment out the array and declare a List&lt;t&gt; in my extension class, using the arrays serialization attributes)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Where a class contains a child class, I almost always create a constructor on the child class and parent so that I can use the new operator to give me an object that has values.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Without this you would need to instantiate a child class and set the parent.child = instantiatedchild which is no good.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;This means creating a new message looks like this in biztalk&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;obj = new obj(param1, param2, param3);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;message1 = obj;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Quick and simple&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Problems&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;If a schema changes the classes change, that’s how it is.&lt;/span&gt;&lt;span style="mso-spacerun:yes"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;If you keep a not of all changes and push your additions to a separate .cs file your changes should be minimal (depending on schema complexity). &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;You have the possibility of increasing the memory footprint for large documents as the object.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Final Thought&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;It would be nice if a schema had an associated class with it in much the same way as the webservices proxy wizard does but this is not the case at the moment in BizTalk therefore I am rocking with this happy medium which seems to yield the best of both worlds… &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB" style="font-size:8.0pt;line-height:115%"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;Ciao for now&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3666466141308912256-4852439636959586231?l=biztalkabc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://biztalkabc.blogspot.com/feeds/4852439636959586231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3666466141308912256&amp;postID=4852439636959586231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/4852439636959586231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/4852439636959586231'/><link rel='alternate' type='text/html' href='http://biztalkabc.blogspot.com/2009/02/give-biztalk-some-object-orientation.html' title='Give BizTalk some Object Orientation'/><author><name>Costantinos Fassis</name><uri>http://www.blogger.com/profile/07279996034000327495</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_PWGkLuUjSuI/ST6PLDl28MI/AAAAAAAAACI/a4IjN0XQ7rg/S220/n576919663_1709167_4364.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3666466141308912256.post-1432333115924304511</id><published>2008-07-21T14:45:00.000-07:00</published><updated>2008-07-22T01:25:48.073-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Subscriptions'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Sevice Wizard'/><category scheme='http://www.blogger.com/atom/ns#' term='Schema Bound'/><title type='text'>Web Service Wizard</title><content type='html'>So, I have been working hard of late, getting right into the ole BizTalk, and have come across a couple of issue and solutions that I think are worth a blog....&lt;br /&gt;&lt;br /&gt;I have been looking at exposing orchestrations as webservices. A simple and straight forward task as you may think!&lt;br /&gt;&lt;br /&gt;However to be typically awkward, I do not like early binding ports (configured during orchestration development) I like my logical ports to be bound to schemas and the freedom of binding to a particular transport mechanism after deployment time during the configuration stage.&lt;br /&gt;&lt;br /&gt;Anyway, skip to the end I hear you say....&lt;br /&gt;&lt;br /&gt;So while creating a web service to launch my orchestration using the web service wizard, I wanted my web service to be bound to schemas only, and not be created directly from the orchestration. Easy right???&lt;br /&gt;&lt;br /&gt;No.&lt;br /&gt;&lt;br /&gt;It transpires that the orchestration binding that gets created when the port is wired to a soap port the subscription looks like this&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#66cccc;"&gt;&lt;span style="font-size:78%;"&gt;http://schemas.microsoft.com/BizTalk/2003/system-properties.ReceivePortID&lt;/span&gt;&lt;span style="font-size:78%;"&gt; == {32F1E5D2-04C1-4608-AD01-08019E8BB4DB} &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#66cccc;"&gt;And&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#66cccc;"&gt;&lt;span style="font-size:78%;"&gt;http://schemas.microsoft.com/BizTalk/2003/system-properties.MessageType&lt;/span&gt;&lt;span style="font-size:78%;"&gt; == &lt;/span&gt;&lt;span style="font-size:78%;"&gt;http://btstest.AsynchSample.MessageHeader#MessageHeader&lt;/span&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#66cccc;"&gt;And&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#66cccc;"&gt;http://schemas.microsoft.com/BizTalk/2003/system-properties.InboundTransportType&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color:#66cccc;"&gt; != SOAP&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Or&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-size:78%;"&gt;http://schemas.microsoft.com/BizTalk/2003/system-properties.ReceivePortID&lt;/span&gt;&lt;span style="font-size:78%;"&gt; == {32F1E5D2-04C1-4608-AD01-08019E8BB4DB} &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;And&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="font-size:78%;"&gt;http://schemas.microsoft.com/BizTalk/2003/soap-properties.MethodName&lt;/span&gt;&lt;span style="font-size:78%;"&gt; == &lt;span style="color:#ff0000;"&gt;wsTestFunction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;color:#ff0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now as you can see, the first subscription is a catch all for everything that is from the port, of the message type and the transport is not soap.&lt;br /&gt;&lt;br /&gt;The second is the soap binding. as you can see it is based on the methodName being set to a value (in this case 'wsTestFunction'). This value is actually the name of the operation of the port within the orchestration you are binding to (see below).&lt;br /&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5225594789948402658" style="CURSOR: hand" alt="" src="http://bp2.blogger.com/_PWGkLuUjSuI/SIUKxmsBq-I/AAAAAAAAABc/AmlXNUGXIxQ/s400/sample.jpg" border="0" /&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;Now here is the issue. If you create the web service using the wizard and use schema binding you can name the web service method whatever you like and this may not be the same as the port operation named in your orchestration. &lt;/p&gt;&lt;p align="left"&gt;There is a way around this. Open up the generated web service and look at the code for the web service method you have created. You should be able to identify the call to invoke that is responsible for putting your data into biztalk and reading out the result....&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-size:78%;color:#3333ff;"&gt;object[] invokeResults = this.Invoke("&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;wsTestFunction&lt;/span&gt;&lt;/strong&gt;", invokeParams, inParamInfos, outParamInfos, 0, bodyTypeAssemblyQualifiedName, inHeaders, inoutHeaders, out inoutHeaderResponses, out outHeaderResponses, null, null, null, out unknownHeaderResponses, false, false);&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color:#000000;"&gt;As you can see the first parameter in the Invoke function passes in the name of the orchestration logical port operation. Change this and you are away!&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;Now once this is edited, your exposed service can have a different name to your logical port. The question you now have to ask yourself is if the service ends up being implicitly bound to the orchestration what is the point of anything!&lt;/p&gt;&lt;p align="left"&gt;For that I do not have an answer!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3666466141308912256-1432333115924304511?l=biztalkabc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://biztalkabc.blogspot.com/feeds/1432333115924304511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3666466141308912256&amp;postID=1432333115924304511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/1432333115924304511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/1432333115924304511'/><link rel='alternate' type='text/html' href='http://biztalkabc.blogspot.com/2008/07/web-service-wizard.html' title='Web Service Wizard'/><author><name>Costantinos Fassis</name><uri>http://www.blogger.com/profile/07279996034000327495</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_PWGkLuUjSuI/ST6PLDl28MI/AAAAAAAAACI/a4IjN0XQ7rg/S220/n576919663_1709167_4364.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_PWGkLuUjSuI/SIUKxmsBq-I/AAAAAAAAABc/AmlXNUGXIxQ/s72-c/sample.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3666466141308912256.post-1298268652251625592</id><published>2007-03-07T10:17:00.000-08:00</published><updated>2007-03-07T10:30:49.768-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk Scemas .net classes BizTalkMgmtDB'/><title type='text'></title><content type='html'>&lt;span style="font-family:arial;"&gt;&lt;strong&gt;And another BizTalk discovery&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Having spent the day dealing with &lt;/span&gt;&lt;a href="http://biztalkabc.blogspot.com/2007/03/obvious-discovery-of-day.html"&gt;&lt;span style="font-family:arial;"&gt;this&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, I found that I got a vision of the guts of BizTalk.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Obviously not being able to identify where these mysterious schemas were going I decided there was stop mucking around and dig into the tables of the managementDB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Having found what looked like a likely suspect hanging around in the BizTalk.Service application I decided to work out how to dispose of this unwanted scumbag of a dll that was causing me grief!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This led to me finding &lt;/span&gt;&lt;a href="http://biztalkbits.blogspot.com/2004/08/undeploy-error-in-biztalk-explorer.html"&gt;&lt;span style="font-family:arial;"&gt;this blog&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and after significant checking came up with the following snippet that seems to work on 2006&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Give it a shot, it worked for me, but do not come crying if BizTalk no worky...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;use BiztalkMgmtDB&lt;br /&gt;go&lt;br /&gt;declare @iAssemblyID int&lt;br /&gt;select @iAssemblyID=nID from bts_assembly where nvcName = 'INSERT DLL NAME HERE'&lt;br /&gt;select @iAssemblyID&lt;br /&gt;delete from bt_mapspec where assemblyid = @iAssemblyID&lt;br /&gt;delete from bt_documentspec where assemblyid = @iAssemblyID&lt;br /&gt;delete from bts_item where assemblyid = @iAssemblyID&lt;br /&gt;delete from bt_properties where nassemblyid = @iAssemblyID&lt;br /&gt;delete from bt_sensitiveproperties where assemblyid = @iAssemblyID&lt;br /&gt;delete from bts_libreference where idlib = @iAssemblyID&lt;br /&gt;delete from bts_assembly where nID = @iAssemblyID&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3666466141308912256-1298268652251625592?l=biztalkabc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://biztalkabc.blogspot.com/feeds/1298268652251625592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3666466141308912256&amp;postID=1298268652251625592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/1298268652251625592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/1298268652251625592'/><link rel='alternate' type='text/html' href='http://biztalkabc.blogspot.com/2007/03/and-another-biztalk-discovery-having.html' title=''/><author><name>Costantinos Fassis</name><uri>http://www.blogger.com/profile/07279996034000327495</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_PWGkLuUjSuI/ST6PLDl28MI/AAAAAAAAACI/a4IjN0XQ7rg/S220/n576919663_1709167_4364.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3666466141308912256.post-6374085335889902632</id><published>2007-03-07T06:50:00.000-08:00</published><updated>2007-03-07T10:14:41.873-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk Scemas .net classes'/><title type='text'></title><content type='html'>&lt;span style="font-family:arial;"&gt;Ah what a day, half a day chasing an illussive schema around BizTalk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;Problem&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;We have a BizTalk 2006 project that uses a mixture of schemas and .net serializble objects based on these schemas. Trying to be clever we decided to create port types and messages that were based on the .net type rather than the schema. Circumstances arose where we needed to mix the two up methods (using schemas and .net classes) within one orchestration\project. I kept getting the old message about there benig more than one schema for the inbound message, and I could not find out where this apparant other schema was.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;Reason&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;If you use ports that consume messages that are based on a serializable .net type rather that a schema, biztalk automatically creates a schema for this .net type under the Biztalk.System application, try it, you will see a schema for your .net type appear&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_PWGkLuUjSuI/Re8Ag_pPcCI/AAAAAAAAAAk/wWv-h7CZjV0/s1600-h/biztalk.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5039247074891100194" style="CURSOR: hand" alt="" src="http://bp3.blogger.com/_PWGkLuUjSuI/Re8Ag_pPcCI/AAAAAAAAAAk/wWv-h7CZjV0/s400/biztalk.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;This type is (obviously) based on a serialized version of the .net type.&lt;br /&gt;&lt;br /&gt;Once inside the orchestration, it seems you can use this message as if it were of the type when passing out to helper classes.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3666466141308912256-6374085335889902632?l=biztalkabc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://biztalkabc.blogspot.com/feeds/6374085335889902632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3666466141308912256&amp;postID=6374085335889902632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/6374085335889902632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/6374085335889902632'/><link rel='alternate' type='text/html' href='http://biztalkabc.blogspot.com/2007/03/obvious-discovery-of-day.html' title=''/><author><name>Costantinos Fassis</name><uri>http://www.blogger.com/profile/07279996034000327495</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_PWGkLuUjSuI/ST6PLDl28MI/AAAAAAAAACI/a4IjN0XQ7rg/S220/n576919663_1709167_4364.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_PWGkLuUjSuI/Re8Ag_pPcCI/AAAAAAAAAAk/wWv-h7CZjV0/s72-c/biztalk.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3666466141308912256.post-3453876643601252136</id><published>2007-03-06T07:43:00.000-08:00</published><updated>2007-03-07T10:16:32.297-08:00</updated><title type='text'>New PDA</title><content type='html'>&lt;a href="http://www.htc.com/product/PRODUCTS_IMAGES/p3350_101x111.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 123px; CURSOR: hand; HEIGHT: 124px" height="124" alt="" src="http://www.htc.com/product/PRODUCTS_IMAGES/p3350_101x111.jpg" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;So I have a new love in my techno life. My new PDA. It is &lt;strong&gt;&lt;u&gt;the&lt;/u&gt;&lt;/strong&gt; nuts, it is an &lt;a href="http://www.htc.com/product/03-product_p3350.htm"&gt;HTC P3350&lt;/a&gt; running on T-Mobile.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;A whole new chunk of technology for me to get my teeth into and blog about.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Discoveries so far....&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;T Mobile have chosen to lock the wifi functionality for reasons unknown. I guess it stops me installing a skype client and stopping use their air time, along with forcing me to use their soo slow gprs!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Soooo. why is this phone the daddy. Well it has built in GPS which means I can begin to look into location specific functionality without having to use the cell triangulation which most providers do not allow easy access to...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;More to come soon&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3666466141308912256-3453876643601252136?l=biztalkabc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://biztalkabc.blogspot.com/feeds/3453876643601252136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3666466141308912256&amp;postID=3453876643601252136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/3453876643601252136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/3453876643601252136'/><link rel='alternate' type='text/html' href='http://biztalkabc.blogspot.com/2007/03/new-pda.html' title='New PDA'/><author><name>Costantinos Fassis</name><uri>http://www.blogger.com/profile/07279996034000327495</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_PWGkLuUjSuI/ST6PLDl28MI/AAAAAAAAACI/a4IjN0XQ7rg/S220/n576919663_1709167_4364.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3666466141308912256.post-6066845461700962167</id><published>2007-02-27T11:46:00.000-08:00</published><updated>2007-02-27T11:57:05.939-08:00</updated><title type='text'>The blog is up</title><content type='html'>Finally got around to creating a blog.&lt;br /&gt;&lt;br /&gt;Been contemplating it for a while and finally figured I would give it a bit of my time. Hope it is worth while to somebody out there. Will divide it up into a couple of areas, but will try to write as often as possible! lets hope I can maintain the enthusiasm&lt;br /&gt;&lt;br /&gt;Better late than never is&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3666466141308912256-6066845461700962167?l=biztalkabc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://biztalkabc.blogspot.com/feeds/6066845461700962167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3666466141308912256&amp;postID=6066845461700962167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/6066845461700962167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3666466141308912256/posts/default/6066845461700962167'/><link rel='alternate' type='text/html' href='http://biztalkabc.blogspot.com/2007/02/blog-is-up.html' title='The blog is up'/><author><name>Costantinos Fassis</name><uri>http://www.blogger.com/profile/07279996034000327495</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_PWGkLuUjSuI/ST6PLDl28MI/AAAAAAAAACI/a4IjN0XQ7rg/S220/n576919663_1709167_4364.jpg'/></author><thr:total>0</thr:total></entry></feed>
