<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codebetter.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Jeff Lynch [MVP]</title><subtitle type="html">Everything E-Commerce!</subtitle><id>http://codebetter.com/blogs/jeff.lynch/atom.aspx</id><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/jeff.lynch/default.aspx" /><link rel="self" type="application/atom+xml" href="http://codebetter.com/blogs/jeff.lynch/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.31106.3070">Community Server</generator><updated>2008-04-24T12:04:23Z</updated><entry><title>Creating a PIDX Partner Interface Process (PIP) in BTARN 3.5</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/07/18/creating-a-pidx-partner-interface-process-pip-in-btarn-3-5.aspx" /><id>/blogs/jeff.lynch/archive/2008/07/18/creating-a-pidx-partner-interface-process-pip-in-btarn-3-5.aspx</id><published>2008-07-18T20:51:00Z</published><updated>2008-07-18T20:51:00Z</updated><content type="html">&lt;p&gt;The next step in developing your PIDX / RNIF solution using the BizTalk Accelerator for RosettaNet (BTARN 3.5) is to create a new Process Configuration from your PIDX PIP. I’m going to use the PIDX “Invoice” and “Invoice Response” PIPs (P21 &amp;amp; P22) in this example since they are generally the most important in the Energy, Oil &amp;amp; Gas industry right now.&lt;/p&gt;
&lt;p&gt;1. You begin by opening the BTARN Management Console and right-clicking on the &lt;strong&gt;Process Configuration Settings&lt;/strong&gt; node in the left-hand pane and selecting&lt;strong&gt; New&lt;/strong&gt; &amp;gt; &lt;strong&gt;Process Configuration&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179923/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;2. For PIDX configurations I recommend using a &lt;strong&gt;Display Code&lt;/strong&gt; that includes the standard, the PIP and the version like “PIDX_P21_1.0”. This will make things a lot easier if you need to support multiple versions in the future. The &lt;strong&gt;Process Code&lt;/strong&gt; corresponds to the PIP number which is “P21” in our case. The &lt;strong&gt;Version&lt;/strong&gt; is “1.0” and the &lt;strong&gt;Process Name&lt;/strong&gt; is “Invoice”. The &lt;strong&gt;Message Standard&lt;/strong&gt; is “PIDX”, the &lt;strong&gt;Standard Version&lt;/strong&gt; is “1.0” and the &lt;strong&gt;Payload Binding ID&lt;/strong&gt; is also “PIDX. Once you are done, your &lt;strong&gt;General&lt;/strong&gt; tab should look like this.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/180996/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;3. The parameters you set on the &lt;strong&gt;Activity&lt;/strong&gt; tab are very important and the required values can be found in the &lt;a href="http://www.pidx.org/standards/upload/PIDX%20XML%20Implementation%20Guideline%202002-02-14%20V1.0.doc" target="_blank"&gt;PIDX Implementation Guide&lt;/a&gt;. To meet the PIDX requirements, the &lt;strong&gt;Non-Repudiation Required, &lt;/strong&gt;&lt;strong&gt;Is Authorization Required&lt;/strong&gt; and &lt;strong&gt;Non-Repudiation of Origin and Content&lt;/strong&gt; parameters must all be set to “True” and the &lt;strong&gt;Type&lt;/strong&gt; parameter must be set to “Request/Response”. The settings for all other parameters on the &lt;strong&gt;Activity&lt;/strong&gt; tab must be agreed upon by both parties involved in the transaction. Once you are done, the &lt;strong&gt;Activity&lt;/strong&gt; tab should look like this.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/180997/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;4. The parameters you set on the &lt;strong&gt;Initiator&lt;/strong&gt; tab are also very important and these are all specified by the PIDX P21 Invoice PIP documentation. It’s very important that you communicate these settings to your trading partner as well since they must be the same on both messaging systems. Once you are complete the &lt;strong&gt;Initiator&lt;/strong&gt; tab should look exactly like this.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/180998/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5. The same goes for the &lt;strong&gt;Responder&lt;/strong&gt; tab as shown here. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/180999/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;There are a lot of parameters to set when creating a new Process Configuration in the BizTalk Accelerator for RosettaNet. Almost all of these are used by the &lt;a href="http://msdn.microsoft.com/en-us/library/bb950346.aspx" target="_blank"&gt;Initiator Private Process&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/bb950194.aspx" target="_blank"&gt;Initiator Public Process&lt;/a&gt; to create the outbound RNIF headers and message so it’s vital that you and your trading partner agree on all these before you begin testing.&lt;/p&gt;
&lt;p&gt;It’s pretty sad how complicated this is compared to an alternative such as AS2. As I’ve said before using RosettaNet is like “swatting a fly with an atom bomb”.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Currently listening to Eric Marienthal’s Just Around the Corner.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=181003" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /><category term="PIDX" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/PIDX/default.aspx" /></entry><entry><title>Creating Home Organizations &amp; Partners in BTARN 3.5</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/07/10/creating-home-organizations-amp-partners-in-btarn-3-5.aspx" /><id>/blogs/jeff.lynch/archive/2008/07/10/creating-home-organizations-amp-partners-in-btarn-3-5.aspx</id><published>2008-07-10T20:52:00Z</published><updated>2008-07-10T20:52:00Z</updated><content type="html">&lt;p&gt;This is a fairly straight-forward task but since it’s the first thing you’ll need to configure in the &lt;a href="http://www.microsoft.com/biztalk/en/us/accelerator-rosettanet.aspx" target="_blank"&gt;BizTalk Accelerator for RosettaNet 3.5&lt;/a&gt; (BTARN 3.5), I thought I’d walk through it anyway.&lt;/p&gt;
&lt;h4&gt;Creating a Home Organization&lt;/h4&gt;
&lt;p&gt;1. You begin by opening the BTARN Management Console and right-clicking on the &lt;strong&gt;Home Organization&lt;/strong&gt; node in the left-hand pane.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179923/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;2. Next you’ll need to add the home organization’s name, DUNS number (circled in red below), a brief description and then choose a Home organization classification from the drop-down menu.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179924/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;3. Next you’ll need to add some contact information as shown here below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179925/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;4. Click &lt;strong&gt;Apply&lt;/strong&gt; and &lt;strong&gt;OK&lt;/strong&gt; to save your new Home Organization. It’s that simple.&lt;/p&gt;
&lt;h3&gt;Creating a Partner&lt;/h3&gt;
&lt;p&gt;1. This is virtually the same as creating a Home Organization and you’ll first create the Partner and then the partners’s name, DUNS number (circled in red below), a brief description and then choose a Partner classification from the drop-down menu. This also where you’ll set the Partner’s signature and encryption keys (certificates).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179926/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;2. Next you’ll need to add some contact information as shown here below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179927/original.aspx" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;3. Click &lt;strong&gt;Apply&lt;/strong&gt; and &lt;strong&gt;OK&lt;/strong&gt; to save your new Partner. Again, it’s that simple.&lt;/p&gt;
&lt;p&gt;If you take a look at the BizTalk Server 2006 Administration Console under the &lt;strong&gt;Parties&lt;/strong&gt; node, you’ll see your new Home Organization and Partner in the list just as you would expect. &lt;/p&gt;
&lt;p&gt;As I said, all very straight-forward! Don’t let this fool you however, later I’ll post about how to create a new Agreement and you’ll probably end up just as confused as I was the first time!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Currently listening to: Martina McBride’s For These Times&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=180667" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /></entry><entry><title>Understanding RosettaNet Message Flow in BizTalk Server 2006</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/06/26/understanding-rosettanet-message-flow-in-biztalk-server-2006.aspx" /><id>/blogs/jeff.lynch/archive/2008/06/26/understanding-rosettanet-message-flow-in-biztalk-server-2006.aspx</id><published>2008-06-26T21:54:00Z</published><updated>2008-06-26T21:54:00Z</updated><content type="html">
&lt;p&gt;&lt;font face="Verdana"&gt;If a picture is worth a thousand words, then these two diagrams (courtesy &amp;amp; copyright Microsoft) are worth millions! At least they are to anyone desperate to understand how the &lt;a href="http://www.microsoft.com/biztalk/en/us/accelerator-rosettanet.aspx" target="_blank"&gt;BizTalk Accelerator for RosettaNet (BTARN 3.5)&lt;/a&gt; really works.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179853/original.aspx" alt="" /&gt;&lt;/p&gt;

&lt;h3&gt;&lt;font face="Verdana"&gt;Initiator Message Flow&lt;/font&gt;&lt;/h3&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;Don’t let the complexity of this diagram scare you. The message flow for an outbound RNIF (or PIDX) message consists of four key areas.&lt;/font&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/bb886925.aspx" target="_blank"&gt;SQL Server BTARN Databases&lt;/a&gt; where all “lob” messages (such as a P21 – PIDX Invoice) and any attachments are stored BEFORE the outbound RNIF message flow actually begins, and the SQL Receive Location used to process the message content and attachments into the MessageBox. 
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;font color="#808000"&gt;Note: If you’re not sending attachments you may elect not to use SQL for this and can substitute FILE receive locations. The SDK contains sample code and a pretty good explanation of how this may work.&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;&lt;font face="Verdana"&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/bb950346.aspx" target="_blank"&gt;Initiator Private Process&lt;/a&gt; orchestration where the actual messages and attachments are “prepared” (usually transformed into XML) for further processing by the initiator public process.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;&lt;font face="Verdana"&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/bb950194.aspx" target="_blank"&gt;Initiator Public Process&lt;/a&gt; orchestration where the outbound message is actually formatted to meet the RNIF standard. This includes adding the required RNIF headers and other such tasks. Consider this a “Black Box” since you can’t change how this works without invalidating the RosettaNet certification.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;&lt;font face="Verdana"&gt;The HTTP/HTTPS Send Ports and the &lt;a href="http://msdn.microsoft.com/en-us/library/bb950146.aspx" target="_blank"&gt;RNIFSend.aspx&lt;/a&gt; web application that are CRITICAL to the correct processing of the outbound messages. This is where the real work is done to validate the messages, create the correct MIME headers and add the required RNIF DOCTYPE declarations.
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;font color="#808000"&gt;Just a side note. If you’re really interested in how this all works, you can look at the source code for this web application using Lutz Roeder’s &lt;/font&gt;&lt;/em&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/" target="_blank"&gt;&lt;em&gt;&lt;font color="#808000"&gt;Reflector&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;font color="#808000"&gt;. I think you’ll be amazed at how much Regex is used to “craft” these RNIF messages.&lt;/font&gt;&lt;/em&gt;
&lt;/font&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179854/original.aspx" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;

&lt;h3&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;Responder Message Flow&lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;The message flow for an inbound RNIF message (whether it’s a new message or an asynchronous response to a message you’ve already sent) consists of three key areas.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;font face="Verdana"&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/bb950146.aspx" target="_blank"&gt;RNIFReceive.aspx&lt;/a&gt; web application which processes the inbound message, validates it and then removes all the RNIF specific headers and DOCTYPE declarations. This then passes the message along to the &lt;a href="http://msdn.microsoft.com/en-us/library/bb950340.aspx" target="_blank"&gt;HTTP/HTTPS Receive Port and Pipeline&lt;/a&gt; which handles the non-repudiation, decodes the message, parses the message and resolves which Party it came from.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;&lt;font face="Verdana"&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/bb950334.aspx" target="_blank"&gt;Responder Public Process&lt;/a&gt; receive the RNIF message from the MessageBox and extracts the content and attachments and sends them to the responder private process for further processing. Just like the initiator public process, the Responder Public Process should be considered a “Black Box” and left unchanged.&lt;/font&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;&lt;font face="Verdana"&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/bb950308.aspx" target="_blank"&gt;Responder Private Process&lt;/a&gt; then routes the inbound messages and any attachments to the &lt;a href="http://msdn.microsoft.com/en-us/library/bb886925.aspx" target="_blank"&gt;SQL Server BTARN Databases&lt;/a&gt; where it can be further processed and sent to some “lob” back-end system.&lt;/font&gt;
&lt;/li&gt;
&lt;/font&gt;&lt;/ol&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;There are a few other details involved in the message flow (signals) depending upon whether your transmission is synchronous or asynchronous, but the basics are fairly straight-forward. The best thing is that this workflow is almost entirely “configured” using the BTARN Management Console and is “message agnostic”, meaning that you can use any standard RNIF, CIDX or PIDX “PIP” (Partner Interface Process) that you and your trading partner both support.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Best of all, it’s included in the price of BizTalk Server 2006 R2!&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;&lt;font color="#808000" face="Verdana"&gt;&lt;em&gt;Currently listening to Carrie Underwood’s Carnival Ride&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179863" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="Microsoft" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Microsoft/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /><category term="PIDX" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/PIDX/default.aspx" /></entry><entry><title>PIDX Schemas Solution for BizTalk Server 2006</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/06/25/pidx-schemas-solution-for-biztalk-server-2006.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="143790" href="http://codebetter.com/blogs/jeff.lynch/downloads/PIDX%20Schemas.zip" /><id>/blogs/jeff.lynch/archive/2008/06/25/pidx-schemas-solution-for-biztalk-server-2006.aspx</id><published>2008-06-25T21:05:00Z</published><updated>2008-06-25T21:05:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;One of the things you’ll need when working with PIDX / RNIF / BTARN projects in BizTalk Server 2006 is the actual PIDX schemas (.xsd) to be used. Luckily the &lt;/font&gt;&lt;a href="http://www.api.org/" target="_blank"&gt;&lt;font face="Verdana"&gt;American Petroleum Institute&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; (API) has a public web site for the &lt;/font&gt;&lt;a href="http://www.pidx.org/" target="_blank"&gt;&lt;font face="Verdana"&gt;Petroleum Industry Data Exchange&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; (PIDX) committee which contains links to the various versions of their schemas. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Once you and your trading partner decide on which version you’ll be using, you can download the schemas and add them to your BizTalk solution in Visual Studio. When you attempt to open these schemas you’ll notice an error message that pops up as shown here.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/original/pidx01.aspx" alt="" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;This is a fairly common error and usually occurs when the schema you are attempting to open contains a reference to another “imported” or “included” schema and the BizTalk Schema Editor tool cannot find the file in question. The work-around for this is fairly simple and all you’ll need to do is change these two attributes.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/original/PIDX-Schema-Issues.aspx" alt="" /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;First you’ll need to click on the &lt;strong&gt;Imports&lt;/strong&gt; attribute collection and delete the reference to the PIDX Library schema which contains the hard-coded location which is incorrect.&lt;br /&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/original/Delete-Reference-To-Included-Schema.aspx" alt="" /&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;Next you’ll need to import a new schema as an &lt;strong&gt;XSD Include&lt;/strong&gt; and select the &lt;strong&gt;PIDXLib&lt;/strong&gt; from the picker as shown here.&lt;br /&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/original/Add-Reference-to-PIDXLib-Schema.aspx" alt="" /&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;Once that step is complete, you’ll also need to change the &lt;strong&gt;Root Reference&lt;/strong&gt; attribute so that the BizTalk Schema Editor knows how to correctly identify your schema.&lt;br /&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/original/Correct-Root-Reference-Attribute.aspx" alt="" /&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;And that&amp;#39;s really all there is to it, except you&amp;#39;ll have to do this for every PIDX schema and every version.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font face="Verdana"&gt;Good thing I&amp;#39;ve already done this and you can download the BizTalk Solution containing all the PIDX schemas right here!&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a class="" style="TEXT-DECORATION:none;" href="http://codebetter.com/blogs/jeff.lynch/downloads/PIDX%20Schemas.zip"&gt;&lt;img style="TEXT-DECORATION:none;" src="http://codebetter.com/utility/filethumbnails/zip.gif" alt="" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179789" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="Microsoft" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Microsoft/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /><category term="PIDX" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/PIDX/default.aspx" /><category term="Rosetta Net" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Rosetta+Net/default.aspx" /></entry><entry><title>BizTalk Server 2006 - BTARN 3.5 Configuration Tips</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/06/18/biztalk-server-2006-btarn-3-5-configuration-tips.aspx" /><id>/blogs/jeff.lynch/archive/2008/06/18/biztalk-server-2006-btarn-3-5-configuration-tips.aspx</id><published>2008-06-18T14:42:00Z</published><updated>2008-06-18T14:42:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;Just a quick post to those of you planning to use the &lt;a href="http://www.microsoft.com/biztalk/en/us/accelerator-rosettanet.aspx" target="_blank"&gt;BizTalk Accelerator for RosettaNet 3.5&lt;/a&gt;. There are a few little “issues” that you need to know about before you get started.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;u&gt;Accounts, Hosts &amp;amp; Host Instances&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;BTARN 3.5 requires the use of &lt;strong&gt;Hosts&lt;/strong&gt; that have the &lt;strong&gt;Authentication Trusted&lt;/strong&gt; option enabled. This has to be configured BEFORE you create any &lt;strong&gt;Host Instances&lt;/strong&gt;. I recommend creating a new &lt;strong&gt;Service Account, &lt;/strong&gt;a new &lt;strong&gt;In-Process Host&lt;/strong&gt;, a new &lt;strong&gt;Isolated Host&lt;/strong&gt; and then a new &lt;strong&gt;Host Instance&lt;/strong&gt; for each of these as shown in the table below. You will also need to create new HTTP and SQL &lt;strong&gt;Send Handlers&lt;/strong&gt; and &lt;strong&gt;Receive Handlers&lt;/strong&gt; as well.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Note: The In-Process Host Instance account and Isolated Host Instance account must be the same for BTARN to work properly! &lt;/font&gt;&lt;/p&gt;
&lt;table class="" cellspacing="0" cellpadding="5"&gt;

&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;Service Account:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;Domain\AccountName&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;In-Process Host:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetApplication&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;In-Process Host Instance:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetApplication&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;Isolated Host:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetIsolatedHost&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;Isolated Host Instance:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetIsolatedHost&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;SQL Send Handler:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetApplication&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;SQL Receive Handler:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetApplication&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;HTTP Receive Handler:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetIsolatedHost&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;HTTP Send Handler:&lt;/font&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;font face="Verdana"&gt;RosettaNetApplication&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;u&gt;Installation &amp;amp; Configuration&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Don’t use “localhost” for your BizTalk Server or Web Server name when running the Configuration Wizard. Use the NetBIOS name of your BizTalk Server machine and the NetBIOS name of your Web Server machine instead. The Configuration Wizard will fail with a strange error if you use default “localhost”. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Why? I have no earthly idea but I will be submitting this to the BizTalk team as a bug!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179418/original.aspx" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/179419/original.aspx" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;u&gt;One final note&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;All the BTARN bits are deployed to the BizTalk Application 1 by default. I’m still trying to find a way to isolate the RosettaNet bits (schemas, maps, pipelines, ports and orchestrations) in their own BizTalk Apllication much like the new EDI/AS2 bits are. I’ll post if I find an easy way to accomplish this.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Happy Integrations!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;u&gt;Update&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" color="red"&gt;&lt;em&gt;I just want everyone to know that I&amp;#39;m not really all that smart. I had a ton of help setting up BTARN 3.5 and getting things working properly! I hired the folks from Microsoft Consulting Services to come in and teach me everything I could learn about using RosettaNet&amp;nbsp;in BizTalk Server 2006. Special thanks to Ross Santee! A great consultant.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;&lt;font face="Verdana" color="#008000" size="1"&gt;Currently listening to: Dave Koz – Castle of Dreams&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179424" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /><category term="PIDX" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/PIDX/default.aspx" /></entry><entry><title>Tips for Using PIDX Schemas in BizTalk Server 2006</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/06/13/tips-for-using-pidx-schemas-in-biztalk-server-2006.aspx" /><id>/blogs/jeff.lynch/archive/2008/06/13/tips-for-using-pidx-schemas-in-biztalk-server-2006.aspx</id><published>2008-06-13T19:18:00Z</published><updated>2008-06-13T19:18:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;Day 3 in my &lt;a href="http://www.rosettanet.org/"&gt;RosettaNet&lt;/a&gt; implementation nightmare and I still can’t see the end of the road!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;As you may or may not know, the American Petroleum Institute (&lt;a href="http://www.api.org/"&gt;API&lt;/a&gt;) has it’s own set of XML schemas and transport standards know as the Petroleum Industry Data Exchange or &lt;a href="http://www.pidx.org/"&gt;PIDX&lt;/a&gt; for short. This is the actual “standard” that my current RosettaNet project is really all about. The interesting about these schemas is the fact that they use their own unique namespace and prefix as shown below:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#ff0000"&gt;xmlns:pidx&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&lt;a href="http://www.api.org/pidXML/1.0"&gt;http://www.api.org/pidXML/1.0&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Since the BizTalk Mapper tool always generates XML document with the “ns0″ prefix and there is no property you can set to change this, you’ll need to use a little “XSLT slight-of-hand” to get this to work.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Create your BizTalk Map as you normally would using the mapper tool.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Validate your map and open the xslt generated by BizTalk Server 2006 in your favorite text editor. This file can usually be found in the “\temp\_mapdata” folder.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Replace all instances of the namespace prefix “ns0″ with the prefix you require (which in this case is “pidx”) as shown below.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://jefflynchdev.files.wordpress.com/2008/06/prefix01.gif" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Save the result as an .xslt file and include it (or add it) into your BizTalk project.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Create a new map using the same source and destination schemas you used in Step 1 but use the external xslt you generated by setting the “Custom XSLT Path” property on your new map.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;The results are shown in the figure below. Viola! The “ns0″ namespace prefix has been replaced by the desired “pidx” prefix.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://jefflynchdev.files.wordpress.com/2008/06/prefix02.gif" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Click below for more information about using external xslt in your maps.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa561557.aspx"&gt;Custom XSLT in BizTalk Maps&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Take Away:&lt;/strong&gt; There is always more than one way to skin a cat! In BTS2006 it may not be obvious how to do something a little unusual.&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179346" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /><category term="PIDX" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/PIDX/default.aspx" /></entry><entry><title>Business Process Automation – Don’t Just Shift the Costs!</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/06/12/business-process-automation-don-t-just-shift-the-costs.aspx" /><id>/blogs/jeff.lynch/archive/2008/06/12/business-process-automation-don-t-just-shift-the-costs.aspx</id><published>2008-06-12T21:30:00Z</published><updated>2008-06-12T21:30:00Z</updated><content type="html">&lt;p&gt;&lt;em&gt;&lt;font face="Verdana" color="#ff0000"&gt;I&amp;#39;m stepping on my soapbox again so be warned!&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;I&amp;#39;ve recently encountered a number of well-intentioned (or perhaps not so well-intentioned) companies looking to reduce their internal costs for processing orders and invoices through some sort of &amp;quot;business process automation&amp;quot; system. Being an avid BPA developer I applaud these efforts so long as they bring &amp;quot;value&amp;quot; to everyone in the supply chain. What I see all too often is companies spending thousands and thousands of dollars on web-based initiatives where the main goal is to shift the transaction processing from themselves to their suppliers. From a business perspective, this just isn&amp;#39;t a wise choice and from a technological perspective, it just isn&amp;#39;t necessary. Having your suppliers enter their invoices first on their ERP system and then on your web-based system does not reduce the &amp;quot;transaction cost&amp;quot; it just shifts the labor from yourself to your supplier.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;True B2B Integration Doesn&amp;#39;t Just Shift Costs, It Eliminates Them!&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;The Internet offers developers the unparalleled opportunity to connect disparate systems together without paying EDI &amp;quot;VAN&amp;quot; (Value Added Private Network) charges, telecom &amp;quot;WAN&amp;quot; (wide area network) charges or even leased-line charges. Basically, all the infrastructure costs are essentially free or paid for though corporate web access. All the developer (and business analyst) has to do is &amp;quot;connect-the-dots&amp;quot; using products like Microsoft’s BizTalk Server, Tibco’s iProcess Suite or Software AG’s WebMethods product to eliminate the real transaction costs. It&amp;#39;s never been easier or more affordable to do this and the benefits to the entire supply chain are enormous! Automating the transaction processing so that the document (purchase order or invoice) is &amp;quot;touched&amp;quot; by human hands only during it&amp;#39;s creation doesn&amp;#39;t just shift costs, it eliminates them!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Yes, I&amp;#39;ve heard all the arguments about how &amp;quot;costly&amp;quot; B2B integration can be and how smaller companies really can&amp;#39;t afford to participate but &lt;strong&gt;IT JUST ISN&amp;#39;T TRUE!&lt;/strong&gt; Products like BizTalk Server 2006 make BPA truly affordable for companies of any size. I know of at least one very small company that used this product to integrate QuickBooks (their &amp;quot;ERP&amp;quot; system) to their much larger suppliers and customers. If they can do this without breaking the bank, anyone can!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;em&gt;Developer Call To Action:&lt;/em&gt;&lt;/strong&gt; The next time your senior management talks about automating business processes with customers and suppliers, don&amp;#39;t just develop a BPA system that shifts the costs, work to eliminate them altogether!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179260" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="Microsoft" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Microsoft/default.aspx" /><category term="B2B" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/B2B/default.aspx" /><category term="Business Process Interation" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Business+Process+Interation/default.aspx" /></entry><entry><title>RosettaNet: Who Invents This Stuff?</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/06/11/rosettanet-who-invents-this-stuff.aspx" /><id>/blogs/jeff.lynch/archive/2008/06/11/rosettanet-who-invents-this-stuff.aspx</id><published>2008-06-11T14:24:00Z</published><updated>2008-06-11T14:24:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana" color="#ff0000" size="2"&gt;&lt;em&gt;Captain Picard - “Admiral, we’ve engaged the Borg”&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Day 2 in my &lt;a href="http://codebetter.com/blogs/jeff.lynch/archive/2008/06/09/biztalk-server-2006-r2-to-boldly-go-where-no-man-has-gone-before.aspx" target="_blank"&gt;RosettaNet development project&lt;/a&gt; and all I can say is “Who Invents This Stuff”?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Yes, it’s been a glorious two days of trying to comprehend the world’s most complicated business-to-business process. Only the electronics industry could conceive of something so overly complex. Secure, internet-based transactions were never meant to be this difficult. It’s like swatting a fly with an atom bomb! After ten years of B2B development I though I had seen it all. Boy, was I wrong!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;And the worse thing is that you have to pay for the privilege of enduring this torture. Every other xml standards organization I’ve ever dealt with freely distributes their schemas and specifications for everyone to use. Not so for the folks at &lt;a href="http://www.rosettanet.org/" target="_blank"&gt;RosettaNet.org&lt;/a&gt;! You’ll have to pay anywhere from several hundred to several thousand dollars for the rights to use their “PIP”s (Partner Interface Process) which is really nothing for than an XML DTD or XSD (schema) and a process guide explaining the message flow. It looks like RosettaNet.org used to publish these on their web site but now you’ll have to pay for a subscription to get these.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Why on earth would so many smart B2B developers adopt such an overly complex, expensive and time consuming standard is beyond my understanding. Folks, business-to-business transactions do NOT have to be this difficult.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Stay tuned for more fun &amp;amp; games!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179194" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /></entry><entry><title>BizTalk Server 2006 R2: To Boldly Go Where No Man Has Gone Before!</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/06/09/biztalk-server-2006-r2-to-boldly-go-where-no-man-has-gone-before.aspx" /><id>/blogs/jeff.lynch/archive/2008/06/09/biztalk-server-2006-r2-to-boldly-go-where-no-man-has-gone-before.aspx</id><published>2008-06-09T14:53:00Z</published><updated>2008-06-09T14:53:00Z</updated><content type="html">&lt;p&gt;&lt;font face="verdana"&gt;This week I’m going to embark on a dark and mysterious journey, fraught with great danger, both real and imagined. I’m about to begin development of a &lt;a href="http://www.microsoft.com/biztalk/en/us/accelerator-rosettanet.aspx" target="_blank"&gt;BizTalk Accelerator for RosettaNet&lt;/a&gt; (BTARN 3.5) project with the assistance of Microsoft Consulting Services. For those of you experienced in BizTalk development, you’ll understand my trepidation. For those of you familiar with &lt;a href="http://www.rosettanet.org/" target="_blank"&gt;RosettaNet&lt;/a&gt; (RNIF), you’ll understand my sheer terror!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana"&gt;If I survive this ordeal, I promise to post about my experiences, so that future generations of BizTalk developers don’t make the same mistakes, don’t fall into the same traps and don’t lose what little is left of their rapidly graying hair!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="verdana"&gt;Stay tuned!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179130" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="RosettaNet" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/RosettaNet/default.aspx" /></entry><entry><title>Finding Freelance Work</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/05/20/finding-freelance-work.aspx" /><id>/blogs/jeff.lynch/archive/2008/05/20/finding-freelance-work.aspx</id><published>2008-05-20T13:14:00Z</published><updated>2008-05-20T13:14:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;I received a recent comment from Paul, asking how I found my &amp;quot;weekend gigs&amp;quot; or freelance development work. That&amp;#39;s a pretty good question and the short answer (without sounding too presumptuous) is that God provides! The long answer is &amp;quot;I don&amp;#39;t really know, it just seems to happen&amp;quot;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;I started my career many years ago as a degreed mechanical engineer, fresh from college and looking for fame and fortune in the &amp;quot;oil business&amp;quot; (which in Texas is correctly pronounced &amp;quot;Awl Bidness&amp;quot;). Unfortunately, I arrived on the scene just in time to watch oil drop from $40 per barrel down to $7 per barrel which left myself and about 100,000 other engineers scrambling for any work we could find. (If you&amp;#39;re a history buff or just follow the price of oil, you should be able to place my age within +/- 2 years from this information) Luckily, I landed a real engineering job for a valve manufacturer in Houston. I worked for that company for 18 years and watched it grow from $50 million in revenue to over $40 billion as it was acquired and reacquired over the next ten years. When I began with the company we had 300 employees and when I left the &amp;quot;company&amp;quot; we had over 240,000 employees and our CEO and CFO had just been indicted for tax evasion and securities fraud among other things. Care to guess the name of that company?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;I held a number of engineering, product management and sales &amp;amp; marketing positions in that 18 year period and finally got tired of all the politics and corporate ladder climbing. So I asked the IT Director (a good friend) if he could find a position for me somewhere in the IT programming or operations area so that I could explore my love of computers, software and e-commerce. My friend and new boss gave me the opportunity to learn, do, and learn by doing and we had a blast. We put together that company&amp;#39;s first web site, first e-commerce site and first B2B system using pre-release versions of Microsoft&amp;#39;s SQL Server, BizTalk Server and Commerce Server. Over the next two years, with the help of some great people at Microsoft (yes, the Blue Monster really does have some great people) we designed and built a world-class B2B e-commerce system for (you guessed it) Tyco. One that has transacted literally hundreds of millions of dollars in transactions and is still in use almost ten years later. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;My boss and I left Tyco, formed our own B2B consulting firm and as we had hoped, got Tyco as a client. The first year was great. We had lots of projects, worked 70 hour weeks and made good money. The second year taught us the lesson that most consultants come to call &amp;quot;going from feast to famine&amp;quot;. We called it something else (mostly unprintable) but learned several valuable lessons from the experience. I learned that I&amp;#39;m not cut out to be a full-time consultant and for me, it&amp;#39;s tremendously important to see &amp;quot;the fruits of my labors&amp;quot;. Which is why I work for a great medium-size &amp;quot;private&amp;quot; company today and do my &amp;quot;freelance&amp;quot; work in the evenings and on the weekends &amp;quot;as my time and energy permits&amp;quot;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;How do I find the work?&lt;/strong&gt; I don&amp;#39;t really. It just seems to find me somehow, but I can give you a few tips to get started!&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Do volunteer work!&lt;/strong&gt; It&amp;#39;s good for the soul and opens you to all sorts of opportunities.&lt;br /&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Give back to the community!&lt;/strong&gt; Share your best work, start a blog or two. Post in the community forums. &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Answer your email and every (non-spam) blog comment!&lt;/strong&gt; It&amp;#39;s amazing how word gets around the Internet. &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Try something new!&lt;/strong&gt; Life is way too short to always take the safe road. Learn a new programming language. Hell, learn a new language period. &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Be courageous!&lt;/strong&gt; Buy a Mac. Become a fanboy! Put an Apple sticker on your car. &lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;em&gt;Currently listening to Diana Krall&amp;#39;s &amp;quot;The Look of Love&amp;quot;.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178489" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Server/default.aspx" /><category term="Commerce Server" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Commerce+Server/default.aspx" /><category term="Apple" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Apple/default.aspx" /><category term="Microsoft" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Microsoft/default.aspx" /><category term="Work" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Work/default.aspx" /><category term="Life" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Life/default.aspx" /></entry><entry><title>My Double Life!</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/05/15/my-double-life.aspx" /><id>/blogs/jeff.lynch/archive/2008/05/15/my-double-life.aspx</id><published>2008-05-15T06:41:00Z</published><updated>2008-05-15T06:41:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;As most of you know, during the day I’m a mild-mannered .NET developer using all things Microsoft. But I lead a double life!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Before my (still undiagnosed) illness came upon me suddenly last year, most of my free time was spent with my family or playing golf at some of the country&amp;#39;s best daily-fee courses here in Houston. I really enjoyed the fresh air, exercise and competitive nature of the sport. Unfortunately, my current condition makes playing golf almost impossible and much too risky. This situation has left me with much more free time than I&amp;#39;m normally used to having and after several months of rest and recuperation, I&amp;#39;ve decided to do some &amp;quot;after-hours&amp;quot; consulting.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Now in the evenings and on the weekends I do freelance development work using mostly “other technologies” such as Javascript, Ajax, PHP and mySQL on OS X Leopard. I also do some freelance photography in my local area and occasionally work on native and web iPhone applications. Since this part-time activity has begun to generate income, I&amp;#39;ve also started a new part-time company called Jeff Lynch Development, Ltd. and launched a new blog at &lt;/font&gt;&lt;a href="http://blog.jefflynchdev.com/"&gt;&lt;font face="Verdana"&gt;http://blog.jefflynchdev.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; (wordpress.com) to post about Mac &amp;amp; iPhone development, my new business and life in general.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;I still plan to post regularly on this blog about all things Microsoft, so don&amp;#39;t fret! But if you&amp;#39;re like many of us and have a foot on both sides of the Microsoft and Apple fence, please join me at &lt;/font&gt;&lt;a href="http://blog.jefflynchdev.com/"&gt;&lt;font face="Verdana"&gt;http://blog.jefflynchdev.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; and have a good read! I&amp;#39;ll also let you know when my new web site is up and running!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;font face="Verdana" color="#800080" size="1"&gt;Currently reading: Inside Steve&amp;#39;s Brain by Leander Kahney&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178291" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="Apple" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Apple/default.aspx" /></entry><entry><title>Commerce Server 2007: Importing Excel Catalog Data</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/05/08/commerce-server-2007-importing-excel-catalog-data.aspx" /><id>/blogs/jeff.lynch/archive/2008/05/08/commerce-server-2007-importing-excel-catalog-data.aspx</id><published>2008-05-08T14:07:00Z</published><updated>2008-05-08T14:07:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;This just came up in the Commerce Server forums and I wanted to remind everyone that FarPoint Technologies has an Excel parser component (&lt;a href="http://www.farpointspread.com/biztalk/default.aspx" target="_blank"&gt; FarPoint Spread for BizTalk Server 2006&lt;/a&gt;) that can be used to create a simple process for uploading Excel catalog data into Commerce Server 2007.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;The FarPoint website contains training videos, the case study I participated in, and lots of other technical information on this very cool tool!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;If you missed my previous posts, you should take a look!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a title="BizTalk Server 2006- Excel Parser News!" href="http://codebetter.com/blogs/jeff.lynch/archive/2006/05/06/144182.aspx"&gt;BizTalk Server 2006- Excel Parser News!&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a title="BizTalk Server 2006- FarPoint XLS File Pipeline Component Schema Wizard" href="http://codebetter.com/blogs/jeff.lynch/archive/2006/05/09/144344.aspx"&gt;BizTalk Server 2006- FarPoint XLS File Pipeline Component Schema Wizard&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a title="BizTalk Server 2006- FarPoint Spread for BizTalk Server 2006 Beta" href="http://codebetter.com/blogs/jeff.lynch/archive/2006/06/08/146245.aspx"&gt;BizTalk Server 2006- FarPoint Spread for BizTalk Server 2006 Beta&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a title="BizTalk Server 2006- FarPoint&amp;#39;s Spread for BizTalk Server 2006 Released!" href="http://codebetter.com/blogs/jeff.lynch/archive/2006/09/09/BizTalk-Server-2006_3A00_-FarPoint_2700_s-Spread-for-BizTalk-Server-2006-Released_2100_.aspx"&gt;BizTalk Server 2006- FarPoint&amp;#39;s Spread for BizTalk Server 2006 Released!&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Just ping me at &lt;a href="mailto:jeffrey.t.lynch@[nospam]comcast.net"&gt;jeffrey.t.lynch@[nospam]comcast.net&lt;/font&gt;&lt;/a&gt; if you need a copy of my entire BizTalk solution for this. It&amp;#39;s free of charge for any existing Commerce Server customer that buys the FarPoint Spread for BizTalk Server 2006 component as my way of saying thanks!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Best regards,&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Jeff&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177887" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="BizTalk Samples" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/BizTalk+Samples/default.aspx" /><category term="Commerce Server 2007" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Commerce+Server+2007/default.aspx" /></entry><entry><title>ASP.NET "Head" Rendering Issues!</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/05/02/asp-net-quot-head-quot-rendering-issues.aspx" /><id>/blogs/jeff.lynch/archive/2008/05/02/asp-net-quot-head-quot-rendering-issues.aspx</id><published>2008-05-02T22:05:00Z</published><updated>2008-05-02T22:05:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;Are you one of &amp;quot;those&amp;quot; ASP.NET web developers that care passionately about not only about writing &amp;quot;good&amp;quot; code, but writing &amp;quot;easily&amp;quot; understood and &amp;quot;readable&amp;quot; code? Are you looked upon as perhaps a little bit &amp;quot;obsessive&amp;quot; about your code? Do you understand what &amp;quot;semantic&amp;quot; really means?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;If the answer is yes, have you ever looked closely at the HTML markup your ASP.NET code generates? I mean taken a really, REALLY close-up look?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;If you have and you&amp;#39;re anything like me, it bugs the hell out of you when adding something as simple as &lt;font color="#800080"&gt;&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;/font&gt; produces this mess in the &lt;font color="#800080"&gt;&amp;lt;head&amp;gt;&lt;/font&gt; of your otherwise beautiful HTML markup.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/177370/original.aspx" alt="" /&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Of course, there are ways to fix this mess. You could always forget using Master Pages and code each .aspx page by hand or even write your own base-page class like I&amp;#39;ve seen done. You could even revert to using &amp;quot;static&amp;quot; .html pages with JavaScript and forget about all the great features .NET brings to web development. Or you could just forget about ever creating truly &amp;quot;semantic&amp;quot; HTML markup using ASP.NET!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;However, if you Google (or Live Search) long enough, you&amp;#39;ll find a few posts about something called &lt;a href="http://msdn.microsoft.com/en-us/library/67276kc5.aspx" target="_blank"&gt;Adaptive Control Behavior&lt;/a&gt; in the MSDN Library and three very well hidden posts by &lt;a href="http://blogs.x2line.com/al/" target="_blank"&gt;Anatoly Lubarsky&lt;/a&gt; with some great sample code!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a title="http://blogs.x2line.com/al/archive/2007/01/10/2773.aspx" href="http://blogs.x2line.com/al/archive/2007/01/10/2773.aspx"&gt;http://blogs.x2line.com/al/archive/2007/01/10/2773.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a title="http://blogs.x2line.com/al/archive/2007/01/31/2814.aspx" href="http://blogs.x2line.com/al/archive/2007/01/31/2814.aspx"&gt;http://blogs.x2line.com/al/archive/2007/01/31/2814.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a title="http://blogs.x2line.com/al/archive/2007/01/31/2816.aspx" href="http://blogs.x2line.com/al/archive/2007/01/31/2816.aspx"&gt;http://blogs.x2line.com/al/archive/2007/01/31/2816.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;These three posts and the sample code you can &lt;a href="http://codebetter.com/files/folders/177578/download.aspx" target="_blank"&gt;download here&lt;/a&gt;, turn this code ...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/177369/original.aspx" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;into this markup ...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/177371/original.aspx" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;which is exactly what the &lt;font face="Consolas" color="#800080"&gt;&amp;lt;head&amp;gt;&lt;/font&gt; element of any respectable HTML markup should look like! And yes, I know it doesn&amp;#39;t matter one hoot to the browser (even IE6) which will faithfully render the web page correctly, but IT MATTERS TO ME.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;I use &amp;quot;View Source&amp;quot; and Firebug almost every day to look at my own markup as well as the markup of sites who&amp;#39;s authors I respect. I want my markup to look every bit as professional as the markup of a professional web &amp;quot;designer&amp;quot; such as &lt;a href="http://www.simplebits.com/" target="_blank"&gt;Dan Cederholm&lt;/a&gt;, &lt;a href="http://daringfireball.net/" target="_blank"&gt;John Gruber&lt;/a&gt; or &lt;a href="http://www.stuffandnonsense.co.uk/" target="_blank"&gt;Andy Clarke&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Don&amp;#39;t you?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" color="#008000" size="1"&gt;&lt;em&gt;Currently listening to: &amp;quot;Caravan of Dreams&amp;quot; by Peter White&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177580" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="ASP.NET" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/ASP.NET/default.aspx" /><category term="Web 2.0" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Web+2.0/default.aspx" /></entry><entry><title>More Thoughts on HTML5, CSS3 &amp; WebKit Advances!</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/04/25/more-thoughts-on-html5-css3-amp-webkit-advances.aspx" /><id>/blogs/jeff.lynch/archive/2008/04/25/more-thoughts-on-html5-css3-amp-webkit-advances.aspx</id><published>2008-04-25T17:28:00Z</published><updated>2008-04-25T17:28:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana"&gt;Yesterday I wrote a post on &lt;a href="http://codebetter.com/blogs/jeff.lynch/archive/2008/04/24/why-safari-may-become-the-browser-of-choice.aspx" target="_blank"&gt;Why Safari May Become the Browser of Choice&lt;/a&gt; and got some great feedback (both positive and negative) in the comments and several emails. I thought I&amp;#39;d take this opportunity to address this feedback and explain a little bit more about why I believe these new &amp;quot;features&amp;quot; in &lt;a href="http://webkit.org/" target="_blank"&gt;WebKit&lt;/a&gt; are so important to the future of web development and design.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;First off, let me set the record straight and tell you that I am an unqualified supporter of Microsoft technologies such as SQL Server, BizTalk Server, Commerce Server and the .NET Framework. I&amp;#39;m also a Microsoft MVP for Commerce Server and an avid C#, ASP.NET and BizTalk developer. In my day job, I use these Microsoft technologies to create business-to-business e-commerce applications for the company that I work for.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;But at night and on the weekends, I moonlight as a free-lance web designer/developer using mostly non-Microsoft technologies such as Ajax, PHP &amp;amp; mySQL. In both areas I strive to create &amp;quot;standards&amp;quot; based web sites and applications and my overriding goal is always to &amp;quot;create the best user experience requiring the least bandwidth&amp;quot; and this is where WebKit comes in.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Think about how we (ASP.NET) developers create great user experiences today and two things come to mind; &lt;a href="http://www.asp.net/ajax/" target="_blank"&gt;ASP.NET AJAX&lt;/a&gt; and &lt;a href="http://silverlight.net/" target="_blank"&gt;Silverlight&lt;/a&gt;. Both technologies allow you to create really great user experiences on the web but only at the cost of bandwidth (download time, initial or otherwise). The same rule holds true for &lt;a href="http://www.adobe.com/products/flash/" target="_blank"&gt;Flash&lt;/a&gt; and any Ajax library such as &lt;a href="http://www.prototypejs.org/" target="_blank"&gt;Prototype&lt;/a&gt;, &lt;a href="http://script.aculo.us/" target="_blank"&gt;script.aculo.us&lt;/a&gt; or &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt; (all of which are excellent Javascript frameworks).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Now think about our potential to create great user experiences using nothing more than the new HTML5 and CSS3 capabilities found in the latest WebKit builds. Gradients, shadows and rounded-corners without images, transforms and animation without Javascript, client-side data that goes way beyond cookies and support for highly compressible vector graphics (SVG). All in a fully &amp;quot;standards&amp;quot; based HTML/XHTML/CSS framework that (hopefully) renders the same in all browsers, both desktop and mobile.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;Now we&amp;#39;re talking about actually having the tools to &amp;quot;create the best possible user experience requiring the least bandwidth&amp;quot;. This may be a pipe dream but it looks like the WebKit folks and I are drinking the same &lt;a href="http://en.wikipedia.org/wiki/Kool-Aid" target="_blank"&gt;Kool-Aid&lt;/a&gt; at the moment!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" color="#408080" size="1"&gt;Currently listening to: &amp;quot;Still Feels Good&amp;quot; by Rascal Flatts&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177130" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="Web 2.0" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Web+2.0/default.aspx" /></entry><entry><title>Why Safari May Become the Browser of Choice!</title><link rel="alternate" type="text/html" href="/blogs/jeff.lynch/archive/2008/04/24/why-safari-may-become-the-browser-of-choice.aspx" /><id>/blogs/jeff.lynch/archive/2008/04/24/why-safari-may-become-the-browser-of-choice.aspx</id><published>2008-04-24T17:04:23Z</published><updated>2008-04-24T17:04:23Z</updated><content type="html">&lt;p&gt;&lt;font face="Segoe UI" size="2"&gt;If you&amp;#39;re a web designer, web developer or just someone that keeps up with the latest &amp;quot;Web 2.0&amp;quot; technologies, you know that a lot of progress is being made by ALL the major browsers to become &amp;quot;standards compliant&amp;quot;. You also know that the &lt;a href="http://www.webstandards.org/" target="_blank"&gt;Web Standards Project&lt;/a&gt; has created a number of &amp;quot;Acid&amp;quot; tests that help all the browser developers ensure that their browser works as &amp;quot;expected&amp;quot;. &lt;/font&gt;&lt;font face="Segoe UI" size="2"&gt;If you&amp;#39;re an experienced web designer or developer, you probably use several different browsers (IE, Firefox, Opera, Camino, Safari, etc.) to test your sites against everyday.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI" size="2"&gt;What you may not be aware of is some of the very &amp;quot;advanced&amp;quot; features Safari (WebKit actually) has in the works which may well change the way we think about developing Web 2.0 applications.&lt;/font&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;&lt;a href="http://webkit.org/blog/124/downloadable-fonts/" target="_blank"&gt;Web Fonts&lt;/a&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;&lt;a href="http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/" target="_blank"&gt;Client-Side Database Storage&lt;/a&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;&lt;a href="http://webkit.org/blog/130/css-transforms/" target="_blank"&gt;CSS3 Transforms&lt;/a&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;&lt;a href="http://webkit.org/blog/138/css-animation/" target="_blank"&gt;CSS3 Animation&lt;/a&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;&lt;a href="http://webkit.org/blog/122/webkit-3-10-new-things/" target="_blank"&gt;SVG Support&lt;/a&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;&lt;a href="http://webkit.org/blog/175/introducing-css-gradients/" target="_blank"&gt;CSS Gradients&lt;/a&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;&lt;a href="http://webkit.org/blog/86/box-shadow/" target="_blank"&gt;CSS Box Shadow&lt;/a&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Segoe UI" size="2"&gt;And Many, Many More...       &lt;br /&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;font face="Segoe UI" size="2"&gt;If you look at any one of these new features individually, they are very cool! If you look at integrating these new features together, you begin to see the potential for replacing today&amp;#39;s Javascript (Ajax) &amp;quot;eye-candy&amp;quot; with native browser rendering support! &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI" size="2"&gt;And why you ask, is WebKit (and Safari) pushing these advanced features out the door so quickly?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://codebetter.com/photos/jeff.lynch/images/177032/original.aspx" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI" size="4"&gt;Safari on iPhone!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI" size="2"&gt;Starts you thinking, doesn&amp;#39;t it!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI" color="#408080" size="1"&gt;&lt;em&gt;Currently listening to: Eric Merienthal&amp;#39;s &amp;quot;Just Around the Corner&amp;quot;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177033" width="1" height="1"&gt;</content><author><name>jlynch</name><uri>http://codebetter.com/members/jlynch/default.aspx</uri></author><category term="Web 2.0" scheme="http://codebetter.com/blogs/jeff.lynch/archive/tags/Web+2.0/default.aspx" /></entry></feed>