<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Krish's BizTalk RFID Blog</title><link>http://blogs.msdn.com/krishg/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>EPCIS Support in BizTalk RFID – Part 2</title><link>http://blogs.msdn.com/krishg/archive/2009/04/20/epcis-support-in-biztalk-rfid-part-2.aspx</link><pubDate>Tue, 21 Apr 2009 07:43:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9558251</guid><dc:creator>KrishG</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9558251.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9558251</wfw:commentRss><description>&lt;p&gt;Please refer to Arpit’s &lt;a href="http://blogs.msdn.com/arpitn/archive/2009/04/20/sample-epcis-capture-service.aspx" target="_blank"&gt;post&lt;/a&gt; here, where he talks about writing a sample capture service.&lt;/p&gt;  &lt;p&gt;Part 3 – a write up of BizTalk RFID EPCIS OM is coming up shortly.&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;  &lt;p&gt;Krish&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9558251" width="1" height="1"&gt;</description></item><item><title>EPCIS support in BizTalk RFID 2009 - Part 1</title><link>http://blogs.msdn.com/krishg/archive/2009/04/13/epcis-support-in-biztalk-rfid-2009-part-1.aspx</link><pubDate>Mon, 13 Apr 2009 11:57:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9546806</guid><dc:creator>KrishG</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9546806.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9546806</wfw:commentRss><description>&lt;p&gt;&lt;font size="3" face="Verdana"&gt;BizTalk RFID 2009 provides support for generating EPCIS events and converting the EPCIS events into EPCIS documents. We will start with a pictorial of the EPCIS support in this release. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/Foo_AED7/image_4.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/Foo_AED7/image_thumb_1.png" width="338" height="261" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;As you see, there is good support to generate EPCIS compliant documents with the EPCIS Object Model and with the set of samples provided in the product&lt;/font&gt;.&lt;/p&gt;  &lt;h4&gt;&lt;font face="Verdana"&gt;Generating EPCIS Documents from a RFID Business Process&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;The RFID Business process is designed to receive Tag Read Events or Tag List Events asynchronously and components within the business may transform such events appropriate to their business logic. In BizTalk RFID 2009, we provide two sample event handlers to generate EPCIS events (not EPCIS documents) from within a process.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Verdana"&gt;Transform EH &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;Using this EH, you may transform a raw tag read event into an EPCIS event. This sample generates only EPCIS Object events. You will need to extend this event handler to generate EPCIS Aggregation or EPCIS Quantity events. The configuration screen for the event handler is shown below.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/Foo_AED7/clip_image003_2.jpg"&gt;&lt;font size="3" face="Verdana"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="clip_image003" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/Foo_AED7/clip_image003_thumb.jpg" width="244" height="211" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;If you have static data for the properties, you may enter it in the configuration dialog. The properties need to be entered in the URN format and some examples are shown below&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;BizLocation: urn:epc:id:sgln:0614141.12345.0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;Business Step: urn:shipping&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;Disposition:urn: active &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;ReadLocation: urn:Contoso:ReceivePortal1&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Verdana"&gt;MSMQ EH&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;The MSMQ Sample EH that ships with BizTalk RFID 2009 enables you to store any object into a user specified queue. When you provide the Queue name, please make sure to provide the full path to the Q, such as .\PRIVATE$\&amp;lt;Queue Name&amp;gt;. If you omit the full path and just provide the Queue name, the sample will be unable to post to the Queue.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;Using the above 2 event handlers, you now have EPCIS events in a queue. The next step is to take the events out of this queue and post it to a capture service, which we shall describe in the EPCIS Posting application.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Verdana"&gt;Generating EPCIS Documents from a .NET Application&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;In this scenario, we look at a .net application receiving Tag Read Events from BizTalk RFID and needs to generate EPCIS Documents. The application would use the EPCIS Object Model (implemented in the namespace Microsoft.Rfid.Epcis) to first convert the raw events to EPCIS events. The application would then use the Capture client classes in the EPCIS OM to serialize the events into an EPCIS document and forward it to the capture service. We illustrate this via some sample code&lt;/font&gt;&lt;/p&gt;  &lt;h5&gt;&lt;font size="3" face="Verdana"&gt;Sample code &lt;/font&gt;&lt;/h5&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;This sample code illustrates&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="3" face="Verdana"&gt;Creation of a custom EPCIS event &amp;quot;TemperatureEvent&amp;quot; using the BizTalk RFID EPCIS OM&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font size="3" face="Verdana"&gt;Forwarding the custom EPCIS event to a capture service&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3" face="Verdana"&gt;You could modify this code sample to send base EPCIS events to the capture service instead of the temperature event.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; Microsoft.SensorServices.Rfid.Epcis;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; Microsoft.SensorServices.Rfid.Epcis.Serialization;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.ServiceModel;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.ServiceModel.Description;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.IO.SensorServices.Rfid.Client;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.ObjectModel;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; Microsoft.SensorServices.Rfid;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; Microsoft.SensorServices.Rfid.TagDataTranslation;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// Assumptions:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// You have a  real/simulated  device 'DockDoor1'  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// You are running the  sample Capture Service&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; EPCISOMSamples&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #008000"&gt;// We are creating a user defined event - TemperatureEvent” with an extra xml element &lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;// - Temperature and an extra xml attribute SensordeviceID&lt;/span&gt;&lt;br /&gt;    [EpcisSerializable]&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; TemperatureEvent : ObjectEvent&lt;br /&gt;    {&lt;br /&gt;        [EpcisElement(Name = &lt;span style="color: #006080"&gt;&amp;quot;Temperature&amp;quot;&lt;/span&gt;)]&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; Temperature;&lt;br /&gt;&lt;br /&gt;        [EpcisAttribute(Name = &lt;span style="color: #006080"&gt;&amp;quot;SensorDeviceID&amp;quot;&lt;/span&gt;, Namespace = &lt;span style="color: #006080"&gt;&amp;quot;Contoso&amp;quot;&lt;/span&gt;)]&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; SensorDeviceID;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;     &lt;span style="color: #008000"&gt;// create the temperature event&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// This client picks up the configuration from app.config&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// The client gets the endpoint where the service resides as well as how (WCF binding) it has to &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// use from the configuration file. It also gets the configuration of using &amp;quot;TemperatureEvent&amp;quot;  &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// in place of &amp;quot;ObjectEvent&amp;quot; from the config file. Thus, with this client you can send  &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// TemperatureEvent in place of ObjectEvent. &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// You may use the capture client configuration defined in app.config or set it up programmatically. &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// The line of code that gets configuration from the config file is below&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     CaptureClient client = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CaptureClient(&lt;span style="color: #006080"&gt;&amp;quot;EPCISRestClient&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;//  If you want to set the client configuration programmatically, uncomment the lines of code below &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;//  and comment the above line&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;     &lt;span style="color: #008000"&gt;// NOTE : All 'TemperatureEvents' are serialized as 'ObjectEvents' , with the extra fields going &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// into the 'ObjectEvent' extension fields. Once overridden,you will not be able to send an &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// ObjectEvent or any   sub class of the ObjectEvent other than the TemperatureEvent &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// through this Capture Client instance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// Dictionary&amp;lt;string, Type&amp;gt; eventOverridesDictionary = new Dictionary&amp;lt;string, Type&amp;gt;();&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// eventOverridesDictionary.Add(typeof(ObjectEvent).Name, typeof(TemperatureEvent));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// EpcisBehavior epcisBehavior = new EpcisBehavior(eventOverridesDictionary);&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// CaptureClient client = new CaptureClient(new WebHttpBinding(),    // new EndpointAddress(&amp;quot;http://localhost:9998/Epcis/rest/&amp;quot;));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// client.Endpoint.Behaviors.Add(new WebHttpBehavior());&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// client.Endpoint.Behaviors.Add(epcisBehavior);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;         &lt;br /&gt;      client.Capture(GetTemperatureEventList());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; IEnumerable&amp;lt;EpcisEvent&amp;gt; GetTemperatureEventList()&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            DeviceConnection dc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DeviceConnection(&lt;span style="color: #006080"&gt;&amp;quot;DockDoor1&amp;quot;&lt;/span&gt;);&lt;br /&gt;            dc.Open();&lt;br /&gt;            ICollection&amp;lt;TagReadEvent&amp;gt; treCollection = dc.GetTags(TagDataSelector.All);&lt;br /&gt;            List&amp;lt;EpcisEvent&amp;gt; temperatureEventList = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;EpcisEvent&amp;gt;();&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (TagReadEvent tre &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; treCollection)&lt;br /&gt;            {&lt;br /&gt;              &lt;span style="color: #008000"&gt;// Typically you will make a external call (Web Service/LOB) to get the business  &lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #008000"&gt;// context such as location and the BusinessTransactionList&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;              TemperatureEvent temperatureEvent = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TemperatureEvent();&lt;br /&gt;              temperatureEvent.Action = EpcisAction.Add;&lt;br /&gt;              temperatureEvent.BizLocation = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BusinessLocation() { Name = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;span style="color: #006080"&gt;&amp;quot;Contoso:Shanghai&amp;quot;&lt;/span&gt;) };&lt;br /&gt;              temperatureEvent.EventTime = DateTime.Now;&lt;br /&gt;              &lt;span style="color: #008000"&gt;// Ideally one should use CommonUtilities defined in ObjectModelExtension &lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #008000"&gt;// to fill Uri from TRE/TLE&lt;/span&gt;&lt;br /&gt;              temperatureEvent.EpcList.Add(CommonUtilities.GetEpcForTagID(tre.GetId()));&lt;br /&gt;              temperatureEvent.ReadLocation = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ReadPoint() { Name = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;span style="color: #006080"&gt;&amp;quot;Contoso:Dockdoor1&amp;quot;&lt;/span&gt;) };&lt;br /&gt;              temperatureEvent.SensorDeviceID = &lt;span style="color: #006080"&gt;&amp;quot;Sensordevice1&amp;quot;&lt;/span&gt;;&lt;br /&gt;              temperatureEvent.Temperature = 99.98;&lt;br /&gt;              temperatureEventList.Add(temperatureEvent);&lt;br /&gt;           }&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; temperatureEventList;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;App.Config&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&lt;span style="color: #006080"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; encoding=&lt;span style="color: #006080"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;  &lt;br /&gt;  &amp;lt;system.serviceModel&amp;gt;&lt;br /&gt;    &amp;lt;bindings&amp;gt;&lt;br /&gt;      &amp;lt;webHttpBinding&amp;gt;&lt;br /&gt;        &amp;lt;binding name=&lt;span style="color: #006080"&gt;&amp;quot;WebHttpBinding_IEpcisService&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;          &amp;lt;readerQuotas maxDepth=&lt;span style="color: #006080"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; maxStringContentLength=&lt;span style="color: #006080"&gt;&amp;quot;8192&amp;quot;&lt;/span&gt; maxArrayLength=&lt;span style="color: #006080"&gt;&amp;quot;16384&amp;quot;&lt;/span&gt;            maxBytesPerRead=&lt;span style="color: #006080"&gt;&amp;quot;4096&amp;quot;&lt;/span&gt; maxNameTableCharCount=&lt;span style="color: #006080"&gt;&amp;quot;16384&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;        &amp;lt;/binding&amp;gt;&lt;br /&gt;      &amp;lt;/webHttpBinding&amp;gt;&lt;br /&gt;    &amp;lt;/bindings&amp;gt;&lt;br /&gt;    &amp;lt;client&amp;gt;&lt;br /&gt;      &amp;lt;endpoint address=&lt;span style="color: #006080"&gt;&amp;quot;http://localhost:9998/Epcis/rest/&amp;quot;&lt;/span&gt; binding=&lt;span style="color: #006080"&gt;&amp;quot;webHttpBinding&amp;quot;&lt;/span&gt;       bindingConfiguration=&lt;span style="color: #006080"&gt;&amp;quot;WebHttpBinding_IEpcisService&amp;quot;&lt;/span&gt; contract=&lt;span style="color: #006080"&gt;&amp;quot;EpcisCaptureClient&amp;quot;&lt;/span&gt;        behaviorConfiguration=&lt;span style="color: #006080"&gt;&amp;quot;EpcisArrayItemBehavior&amp;quot;&lt;/span&gt; name=&lt;span style="color: #006080"&gt;&amp;quot;EPCISRestClient&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;      &amp;lt;/client&amp;gt;&lt;br /&gt;    &amp;lt;behaviors&amp;gt;&lt;br /&gt;      &amp;lt;endpointBehaviors&amp;gt;&lt;br /&gt;        &amp;lt;behavior name=&lt;span style="color: #006080"&gt;&amp;quot;EpcisArrayItemBehavior&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;          &amp;lt;webHttp /&amp;gt;&lt;br /&gt;          &amp;lt;epcis&amp;gt;&lt;br /&gt;            &amp;lt;epcisArrayItems&amp;gt;&lt;br /&gt;              &amp;lt;add clrType=&lt;span style="color: #006080"&gt;&amp;quot;EPCISOMSamples.TemperatureEvent, EPCISOMSamples, Version=1.0.0.0,                 Culture=neutral, PublicKeyToken=null&amp;quot;&lt;/span&gt; tagName=&lt;span style="color: #006080"&gt;&amp;quot;ObjectEvent&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;                &amp;lt;/epcisArrayItems&amp;gt;&lt;br /&gt;          &amp;lt;/epcis&amp;gt;&lt;br /&gt;        &amp;lt;/behavior&amp;gt;&lt;br /&gt;      &amp;lt;/endpointBehaviors&amp;gt;&lt;br /&gt;    &amp;lt;/behaviors&amp;gt;&lt;br /&gt;  &amp;lt;/system.serviceModel&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/pre&gt;

  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;vent : ObjectEvent&lt;br /&gt;    {&lt;br /&gt;        [EpcisElement(Name = &lt;span style="color: #006080"&gt;&amp;quot;Temperature&amp;quot;&lt;/span&gt;)]&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; Temperature;&lt;br /&gt;&lt;br /&gt;        [EpcisAttribute(Name = &lt;span style="color: #006080"&gt;&amp;quot;SensorDeviceID&amp;quot;&lt;/span&gt;, Namespace = &lt;span style="color: #006080"&gt;&amp;quot;Contoso&amp;quot;&lt;/span&gt;)]&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; SensorDeviceID;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;     &lt;span style="color: #008000"&gt;// create the temperature event&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// This client picks up the configuration from app.config&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// The client gets the endpoint where the service resides as well as how (WCF binding) it has to &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// use from the configuration file. It also gets the configuration of using &amp;quot;TemperatureEvent&amp;quot;  &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// in place of &amp;quot;ObjectEvent&amp;quot; from the config file. Thus, with this client you can send  &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// TemperatureEvent in place of ObjectEvent. &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// You may use the capture client configuration defined in app.config or set it up programmatically. &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// The line of code that gets configuration from the config file is below&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     CaptureClient client = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CaptureClient(&lt;span style="color: #006080"&gt;&amp;quot;EPCISRestClient&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;//  If you want to set the client configuration programmatically, uncomment the lines of code below &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;//  and comment the above line&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;     &lt;span style="color: #008000"&gt;// NOTE : All 'TemperatureEvents' are serialized as 'ObjectEvents' , with the extra fields going &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// into the 'ObjectEvent' extension fields. Once overridden,you will not be able to send an &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// ObjectEvent or any   sub class of the ObjectEvent other than the TemperatureEvent &lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// through this Capture Client instance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// Dictionary&amp;lt;string, Type&amp;gt; eventOverridesDictionary = new Dictionary&amp;lt;string, Type&amp;gt;();&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// eventOverridesDictionary.Add(typeof(ObjectEvent).Name, typeof(TemperatureEvent));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// EpcisBehavior epcisBehavior = new EpcisBehavior(eventOverridesDictionary);&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// CaptureClient client = new CaptureClient(new WebHttpBinding(),    // new EndpointAddress(&amp;quot;http://localhost:9998/Epcis/rest/&amp;quot;));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// client.Endpoint.Behaviors.Add(new WebHttpBehavior());&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: #008000"&gt;// client.Endpoint.Behaviors.Add(epcisBehavior);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;         &lt;br /&gt;      client.Capture(GetTemperatureEventList());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; IEnumerable&amp;lt;EpcisEvent&amp;gt; GetTemperatureEventList()&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            DeviceConnection dc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DeviceConnection(&lt;span style="color: #006080"&gt;&amp;quot;DockDoor1&amp;quot;&lt;/span&gt;);&lt;br /&gt;            dc.Open();&lt;br /&gt;            ICollection&amp;lt;TagReadEvent&amp;gt; treCollection = dc.GetTags(TagDataSelector.All);&lt;br /&gt;            List&amp;lt;EpcisEvent&amp;gt; temperatureEventList = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;EpcisEvent&amp;gt;();&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (TagReadEvent tre &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; treCollection)&lt;br /&gt;            {&lt;br /&gt;              &lt;span style="color: #008000"&gt;// Typically you will make a external call (Web Service/LOB) to get the business  &lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #008000"&gt;// context such as location and the BusinessTransactionList&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;              TemperatureEvent temperatureEvent = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TemperatureEvent();&lt;br /&gt;              temperatureEvent.Action = EpcisAction.Add;&lt;br /&gt;              temperatureEvent.BizLocation = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BusinessLocation() { Name = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;span style="color: #006080"&gt;&amp;quot;Contoso:Shanghai&amp;quot;&lt;/span&gt;) };&lt;br /&gt;              temperatureEvent.EventTime = DateTime.Now;&lt;br /&gt;              &lt;span style="color: #008000"&gt;// Ideally one should use CommonUtilities defined in ObjectModelExtension &lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #008000"&gt;// to fill Uri from TRE/TLE&lt;/span&gt;&lt;br /&gt;              temperatureEvent.EpcList.Add(CommonUtilities.GetEpcForTagID(tre.GetId()));&lt;br /&gt;              temperatureEvent.ReadLocation = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ReadPoint() { Name = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;span style="color: #006080"&gt;&amp;quot;Contoso:Dockdoor1&amp;quot;&lt;/span&gt;) };&lt;br /&gt;              temperatureEvent.SensorDeviceID = &lt;span style="color: #006080"&gt;&amp;quot;Sensordevice1&amp;quot;&lt;/span&gt;;&lt;br /&gt;              temperatureEvent.Temperature = 99.98;&lt;br /&gt;              temperatureEventList.Add(temperatureEvent);&lt;br /&gt;           }&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; temperatureEventList;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;App.Config&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&lt;span style="color: #006080"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; encoding=&lt;span style="color: #006080"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;  &lt;br /&gt;  &amp;lt;system.serviceModel&amp;gt;&lt;br /&gt;    &amp;lt;bindings&amp;gt;&lt;br /&gt;      &amp;lt;webHttpBinding&amp;gt;&lt;br /&gt;        &amp;lt;binding name=&lt;span style="color: #006080"&gt;&amp;quot;WebHttpBinding_IEpcisService&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;          &amp;lt;readerQuotas maxDepth=&lt;span style="color: #006080"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; maxStringContentLength=&lt;span style="color: #006080"&gt;&amp;quot;8192&amp;quot;&lt;/span&gt; maxArrayLength=&lt;span style="color: #006080"&gt;&amp;quot;16384&amp;quot;&lt;/span&gt;            maxBytesPerRead=&lt;span style="color: #006080"&gt;&amp;quot;4096&amp;quot;&lt;/span&gt; maxNameTableCharCount=&lt;span style="color: #006080"&gt;&amp;quot;16384&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;        &amp;lt;/binding&amp;gt;&lt;br /&gt;      &amp;lt;/webHttpBinding&amp;gt;&lt;br /&gt;    &amp;lt;/bindings&amp;gt;&lt;br /&gt;    &amp;lt;client&amp;gt;&lt;br /&gt;      &amp;lt;endpoint address=&lt;span style="color: #006080"&gt;&amp;quot;http://localhost:9998/Epcis/rest/&amp;quot;&lt;/span&gt; binding=&lt;span style="color: #006080"&gt;&amp;quot;webHttpBinding&amp;quot;&lt;/span&gt;       bindingConfiguration=&lt;span style="color: #006080"&gt;&amp;quot;WebHttpBinding_IEpcisService&amp;quot;&lt;/span&gt; contract=&lt;span style="color: #006080"&gt;&amp;quot;EpcisCaptureClient&amp;quot;&lt;/span&gt;        behaviorConfiguration=&lt;span style="color: #006080"&gt;&amp;quot;EpcisArrayItemBehavior&amp;quot;&lt;/span&gt; name=&lt;span style="color: #006080"&gt;&amp;quot;EPCISRestClient&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;      &amp;lt;/client&amp;gt;&lt;br /&gt;    &amp;lt;behaviors&amp;gt;&lt;br /&gt;      &amp;lt;endpointBehaviors&amp;gt;&lt;br /&gt;        &amp;lt;behavior name=&lt;span style="color: #006080"&gt;&amp;quot;EpcisArrayItemBehavior&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;          &amp;lt;webHttp /&amp;gt;&lt;br /&gt;          &amp;lt;epcis&amp;gt;&lt;br /&gt;            &amp;lt;epcisArrayItems&amp;gt;&lt;br /&gt;              &amp;lt;add clrType=&lt;span style="color: #006080"&gt;&amp;quot;EPCISOMSamples.TemperatureEvent, EPCISOMSamples, Version=1.0.0.0,                 Culture=neutral, PublicKeyToken=null&amp;quot;&lt;/span&gt; tagName=&lt;span style="color: #006080"&gt;&amp;quot;ObjectEvent&amp;quot;&lt;/span&gt; /&amp;gt;&lt;br /&gt;                &amp;lt;/epcisArrayItems&amp;gt;&lt;br /&gt;          &amp;lt;/epcis&amp;gt;&lt;br /&gt;        &amp;lt;/behavior&amp;gt;&lt;br /&gt;      &amp;lt;/endpointBehaviors&amp;gt;&lt;br /&gt;    &amp;lt;/behaviors&amp;gt;&lt;br /&gt;  &amp;lt;/system.serviceModel&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;pre class="code"&gt;In the next post, we will cover the EPCIS Object Model and provide a sample capture service.&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;Amar Sagare contributed the sample code for this article. Thanks Amar.&lt;/pre&gt;
&lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9546806" width="1" height="1"&gt;</description></item><item><title>BizTalk RFID and Standards Support</title><link>http://blogs.msdn.com/krishg/archive/2009/03/26/biztalk-rfid-and-standards-support.aspx</link><pubDate>Thu, 26 Mar 2009 18:58:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9511171</guid><dc:creator>KrishG</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9511171.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9511171</wfw:commentRss><description>&lt;p&gt;With the imminent release of BizTalk Server 2009, the BizTalk RFID team is proud of the products' growing support for industry standards. In this emerging technology, standards are critical to mass adoption. Enterprises can confidently adopt the technology without fear of being locked into one vendor. One could envision multiple software and service layers being supplied by various vendors that inter-operate well due to support for existing standards. Customers have become very well informed of the existing standards in this space.&lt;/p&gt;  &lt;p&gt;On that general note, BizTalk RFID is rapidly becoming best of breed for support for many industry standards. &lt;/p&gt;  &lt;p&gt;Our LLRP implementation is shipped out of box in BTS 2009 as a LLRP Provider and is compatible with many industry heavyweight LLRP implementations such as Impinj, Motorola and Intermec. Not only do we use LLRP to communicate with fixed UHF readers, but we also use the protocol in our store and forward service on BizTalk RFID Mobile and for remote management of RF modules on mobile devices. Very innovative way of finding another use case for the LLRP protocol.&lt;/p&gt;  &lt;p&gt;On the device management side, discovery of devices is a major pain for adoption. How many times have you had to manually enter IP addresses of devices to provision them to some middleware? Don't you wish that device discovery is truly plug and play. With the emerging &lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ws-dd" target="_blank"&gt;WS-Discovery standard&lt;/a&gt; [OASIS will ratify this standard in June 2009], discovery of devices in the same subnet will be truly plug and play. With the Discovery proxy support in Windows 7, one could extend this to discover devices across the entire enterprise. What does BizTalk RFID do to enable discovery? We ship a discovery library in BizTalk RFID 2009 that enables any device provider to use it and discover WS-Discovery enabled devices. The device developer would have to implement WS-Discovery on the device. There are freely available DPWS (Device Profile for Web Services stacks) on the web today. &lt;a href="https://forge.soa4d.org/" target="_blank"&gt;DPWSCORE&lt;/a&gt; is a popular open source DPWS stack that works on Windows, Linux etc.&amp;#160; In the future, we do plan to build discovery in the platform as we believe it is a core platform feature. &lt;/p&gt;  &lt;p&gt;While discovery is a start, there are other aspects of device management such as initialization (firmware update), configuration and monitoring that scream for standardization. Why should customers pay the price for having to learn to multiple different ways of doing the same thing, especially if they have a multi vendor policy. We are hard at work in ISO/SC31/WG4/SG1 with our partners to define a web service standard for RFID device management. This is called RFID Device Management Profile (RDMP) and is layered on top of DPWS and WS-Discovery. More to come later, when I am allowed to share details...&lt;/p&gt;  &lt;p&gt;Leaving the device world for a bit, EPCIS has been making waves in the industry. BizTalk RFID steps into EPCIS by providing solid support to build a capture client application. We ship a powerful Object Model for EPCIS that has support for base EPCIS events (object etc) and user extensions of base events. There are two samples that ship as well - the EPCIS transform event handler enables a developer to add business context to a Tag Read Event and generate an EPCIS event. The MSMQ event handler then enables EPCIS events to be persisted in a MSMQ to be then consumed by a capture client to forward to a capture service. The capture client would use the capture client SDK to post to a capture service. I will post a follow up with more details on EPCIS OM and our roadmap for rounding out our EPCIS support. &lt;/p&gt;  &lt;p&gt;Thanks for reading and if you have any questions, leave a comment and I will be glad to reply&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;  &lt;p&gt;Krish&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9511171" width="1" height="1"&gt;</description></item><item><title>.net CF 3.5 and BizTalk RFID Mobile</title><link>http://blogs.msdn.com/krishg/archive/2009/03/23/net-cf-3-5-and-biztalk-rfid-mobile.aspx</link><pubDate>Mon, 23 Mar 2009 13:10:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9500891</guid><dc:creator>KrishG</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9500891.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9500891</wfw:commentRss><description>&lt;p&gt;A number of BizTalk RFID Mobile developers have asked us about support for .net CF 3.5 in BizTalk RFID Mobile.&amp;#160; This post seeks to address this issue and provides information to enable .net 3.5 CF based applications to work with the BizTalk RFID Mobile platform.&lt;/p&gt;  &lt;p&gt;The BizTalk RFID Mobile platform itself is a .net CF 2.0 based platform. Hence, the minimum requirement is a device that has .net CF 2.0 loaded. However, with .net CF 3.5 being the latest version of the compact framework, how do applications work with BizTalk Mobile platform and providers that could have been built with potentially different .net CF versions?&lt;/p&gt;  &lt;p&gt;Permutations to consider:-&lt;/p&gt;  &lt;p&gt;1) Provider built for .net CF 3.5&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Mobile Application Target&lt;/td&gt;        &lt;td valign="top" width="200"&gt;2.0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Provider Target&lt;/td&gt;        &lt;td valign="top" width="200"&gt;3.5&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;BizTalk Mobile Platform&lt;/td&gt;        &lt;td valign="top" width="200"&gt;2.0&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt; 2) App and provider built for .net CF 3.5&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Mobile Application Target&lt;/td&gt;        &lt;td valign="top" width="200"&gt;3.5&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Provider Target&lt;/td&gt;        &lt;td valign="top" width="200"&gt;3.5&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;BizTalk Mobile Platform&lt;/td&gt;        &lt;td valign="top" width="200"&gt;2.0&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt; 3) Only app is built for .net CF 3.5&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Mobile Application Target&lt;/td&gt;        &lt;td valign="top" width="200"&gt;3.5&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Provider Target&lt;/td&gt;        &lt;td valign="top" width="200"&gt;2.0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;BizTalk Mobile Platform&lt;/td&gt;        &lt;td valign="top" width="200"&gt;2.0&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;In scenario 1), let us say the application has been built for .net CF 2.0 and the provider is built for .net CF 3.5. Since the BizTalk RFID platform and provider are executing in the application context, the application developer is required to include a configuration file that sets the execution environment to 3.5. Please see &lt;a title="http://msdn.microsoft.com/en-us/library/d5cd9b2c.aspx" href="http://msdn.microsoft.com/en-us/library/d5cd9b2c.aspx"&gt;http://msdn.microsoft.com/en-us/library/d5cd9b2c.aspx&lt;/a&gt; for how to do this. If you are running a provider that is built for .net 3.5 CF, you are required to provide this configuration file for the management app and the read tags app that ship with BizTalk RFID Mobile. For example, for the management app, you would include managementapp.exe.config that would look thus&lt;/p&gt;  &lt;p&gt;&amp;lt;configuration&amp;gt;   &lt;br /&gt;&amp;#160; &amp;lt;startup&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;supportedRuntime version=&amp;quot;v3.5.7283&amp;quot;/&amp;gt;    &lt;br /&gt;&amp;#160; &amp;lt;/startup&amp;gt;    &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt;  &lt;p&gt;To get the supportedRuntime version, please follow the steps in the link above. &lt;/p&gt;  &lt;p&gt;For scenario 2) there is no additional steps required, since the application and the provider are .net CF 3.5 based.&lt;/p&gt;  &lt;p&gt;For scenario 3), if you are building an application that is .net CF 3.5 based, a configuration file is not required as the native target for the application is .net CF 3.5. &lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;  &lt;p&gt;Krish&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9500891" width="1" height="1"&gt;</description></item><item><title>RFID Tray - an useful monitoring tool in BizTalk RFID</title><link>http://blogs.msdn.com/krishg/archive/2009/01/08/rfid-tray-an-useful-monitoring-tool-in-biztalk-rfid.aspx</link><pubDate>Thu, 08 Jan 2009 14:22:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9296598</guid><dc:creator>KrishG</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9296598.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9296598</wfw:commentRss><description>&lt;p&gt;I wondered how many BizTalk RFID users really know about RFID Tray. The RFID Manager gets used all the time, but the RFID Tray is a useful tool for monitoring. &lt;/p&gt;  &lt;p&gt;The RFID Tray is not added to the tray by Setup. The administrator has to launch it from the BizTalk RFID Program Group. &lt;/p&gt;  &lt;p&gt;Once launched, the RFID Tray adds itself to the desktop tray and starts monitoring events from the local server. You may add more BizTalk RFID Servers for the tray to monitor.&lt;/p&gt;  &lt;p&gt;When you right click on the RFID Tray Icon, you have four items&lt;/p&gt;  &lt;p&gt;1) Servers...&lt;/p&gt;  &lt;p&gt;2) Alerts...&lt;/p&gt;  &lt;p&gt;3) Show Popup&lt;/p&gt;  &lt;p&gt;4) Exit&lt;/p&gt;  &lt;h1&gt;Servers&lt;/h1&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;p&gt;Clicking the servers item displays this servers window&lt;/p&gt;  &lt;h1&gt;&lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_thumb.png" width="244" height="215" /&gt;&lt;/a&gt; &lt;/h1&gt;  &lt;p&gt;You may add a new server, remove an existing server or refresh the status of a server. I stopped the BizTalk RFID Service on my machine. and hit refresh and RFID Tray changed status to Service Stopped. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_thumb_1.png" width="244" height="215" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h1&gt;Alerts&lt;/h1&gt;  &lt;p&gt;In normal operation, as soon as an alert is received, the RFID Tray displays a popup (like the Outlook message alert) and gradually fades away. You can disable pop-ups by toggling the Show Popup check mark. If you take a coffee break and missed the pop-ups, no worries. If there are alerts that you have not seen, RFID tray changes its icon state to this&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_10.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_thumb_4.png" width="38" height="33" /&gt;&lt;/a&gt;to show that there are new alerts to be seen. &lt;/p&gt;  &lt;p&gt;The alerts window displays a history of alerts from one or more BizTalk RFID servers. Here is an example of a few alerts &lt;/p&gt;  &lt;p&gt;I started a process named Inventory Management. It was bound to the RootDeviceGroup, but none of the devices were up. I started the Contoso device simulator to simulate the Inventory Reader and the Receiving Reader. You can see the change in status of process to started and of the devices from retrying to open.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_thumb_2.png" width="532" height="380" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The alerts window lets you see alerts from various servers in a single window, which is very convenient. &lt;/p&gt;  &lt;p&gt;In the next example, I changed the binding for a process by removing its binding to a logical device. Here is what RFID Tray displayed&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/RFIDTrayanusefulmonitoringtoolinBizTalkR_ECE8/image_thumb_3.png" width="604" height="97" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As a part of the process stopping, the connection to the device was closed. The process went into event collecting mode to ensure no tags were lost. The process restarted, but you don't see the device state changing from closed, because I had unbound the process from all devices.&lt;/p&gt;  &lt;p&gt;RFID Tray is a WMI listener and listens to specific WMI events generated by the BizTalk RFID Service. &lt;/p&gt;  &lt;p&gt;Hope you try out this tool and let us know if you find it useful. &lt;/p&gt;  &lt;p&gt;Happy New Year!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9296598" width="1" height="1"&gt;</description></item><item><title>BizTalk RFID Standards Pack and Mobile - Online Documentation</title><link>http://blogs.msdn.com/krishg/archive/2008/12/07/biztalk-rfid-standards-pack-and-mobile-online-documentation.aspx</link><pubDate>Mon, 08 Dec 2008 10:06:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9183767</guid><dc:creator>KrishG</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9183767.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9183767</wfw:commentRss><description>&lt;p&gt;&lt;font size="3" face="Tahoma"&gt;Our documentation team has recently released online documentation for BizTalk RFID Standards Pack and BizTalk RFID Mobile.&amp;#160; The documentation may be accessed at the links below. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3" face="Tahoma"&gt;BizTalk RFID Standards Pack:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=96cf68ff-dcba-4043-a04a-30b748c90105%20"&gt;&lt;font size="3" face="Tahoma"&gt;Installation Guides and Readme&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fe56c233-406e-4579-bc87-78dc0529e52a"&gt;&lt;font size="3" face="Tahoma"&gt;Downloadable Documentation&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd352559.aspx"&gt;&lt;font size="3" face="Tahoma"&gt;MSDN Documentation&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/biztalk/aa937646.aspx"&gt;&lt;font size="3" face="Tahoma"&gt;Trial Software&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/biztalk/bb608378.aspx"&gt;&lt;font size="3" face="Tahoma"&gt;Code Samples&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;&lt;font size="3" face="Tahoma"&gt;BizTalk RFID Mobile:&lt;/font&gt;&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fad06953-7bfa-477c-97c4-79972923bc46"&gt;&lt;font size="3" face="Tahoma"&gt;Installation Guides and Readme&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f1d216c4-03c1-4add-bfb7-2abafcbaabfb"&gt;&lt;font size="3" face="Tahoma"&gt;Downloadable Documentation&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd351599.aspx"&gt;&lt;font size="3" face="Tahoma"&gt;MSDN Documentation&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/biztalk/aa937646.aspx"&gt;&lt;font size="3" face="Tahoma"&gt;Trial Software&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/biztalk/bb608378.aspx"&gt;&lt;font size="3" face="Tahoma"&gt;Code Samples&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Tahoma"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Tahoma"&gt;Here is hoping that you will find the documentation invaluable. Keep sending us feedback on the content.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Tahoma"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Tahoma"&gt;Cheers&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Tahoma"&gt;Krish&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9183767" width="1" height="1"&gt;</description></item><item><title>RFID usage in Hyderabad 10K and Half Marathon +  Countering Terrorism using RFID</title><link>http://blogs.msdn.com/krishg/archive/2008/12/02/rfid-usage-in-hyderabad-10k-and-half-marathon-countering-terrorism-using-rfid.aspx</link><pubDate>Tue, 02 Dec 2008 16:28:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9164490</guid><dc:creator>KrishG</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9164490.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9164490</wfw:commentRss><description>&lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Couple of days ago, I participated in the Hyderabad 10K run and for the 2nd year in a row, RFID tags were used to clock runners. My analog watch said 54 minutes, but the RFID measurement clocked me at 00:57:35. I guess technology deflated my short lived feeling of euphoria. I also expected to get segment times, to find out where I started slowing down or picking up speed, but alas, that was not to be. I guess there was not enough funding to place readers at&amp;#160; intermediate points. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;This time, the organizers used a RFID tagged bib. In last year's run, a plastic tag was used and one had to attach it to the sneaker. I wonder about the pros and cons of each approach. I also noticed that a cable was strung across the start and finish areas. It was placed about 10 feet high and sure enough all finishers jumped up to touch it as if to indicate that they finished. Organizers had a tough time stopping people from destroying the cable :-). &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Another trivia - last year a company from Netherlands provided the RFID Solution. This year, it was a French Company. Whose turn will it be next? No points for guessing Senor! &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Is there any other sport where RFID technology is used? &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;It was also a sad week for folks in Mumbai, who were crushed by terrorism.&amp;#160; Is it possible to use RFID technology to counter terrorists while they are causing damage? With hotels becoming targets, how may they be able to use RFID to counter the threat? If you have any thoughts, please share. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Cheers&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Krish&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9164490" width="1" height="1"&gt;</description></item><item><title>BizTalk RFID 2009 - EPCIS Unveiled</title><link>http://blogs.msdn.com/krishg/archive/2008/11/10/biztalk-rfid-2009-epcis-unveiled.aspx</link><pubDate>Tue, 11 Nov 2008 07:25:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9059235</guid><dc:creator>KrishG</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/krishg/comments/9059235.aspx</comments><wfw:commentRss>http://blogs.msdn.com/krishg/commentrss.aspx?PostID=9059235</wfw:commentRss><description>&lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Over this year, we have been talking to a number of partners and customers on the usage of EPCIS. It appears that many companies are in the process of evaluating EPCIS in the form of pilots. Many customers have also insisted on the availability of EPCIS in the middleware platforms that they evaluate. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;In the BizTalk RFID 2009 release, we will be releasing client components to enable building of EPCIS Services. What does this mean and why should you care?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;EPCIS, in broad terms, consists of a capture service, a query service and a repository. An EPCIS event is posted to a capture service (typically from multiple RFID deployments) and these events are saved to a repository. A standard query interface enables applications to query and retrieve observation events from the repository. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;In this release, we will provide the following functionality:-&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;&lt;strong&gt;EPCIS Object Model&lt;/strong&gt; - This is the CLR object used to represent EPCIS events and EPCIS master data. This object model will be used by BizTalk RFID developers to add context to EPCIS events as well as post it to the Capture Services&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;&lt;strong&gt;The Capture client&lt;/strong&gt; - The capture client serializes the EPCIS event and posts it to the capture service. It is the responsibility of the capture service to de serialize the EPCIS event &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;&lt;strong&gt;Out of the Box Event Handlers&lt;/strong&gt; - We will provide two event handlers. The transformation event handler transforms Tag Read/Tag List Events into EPCIS events. An ISV may extend the transformation event handler to add business context (such as bizStep, bizLocation etc) to the EPCIS event. Once the EPCIS event is formed, the Post Event Handler uses the capture client to post the events to the capture service.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;&lt;strong&gt;Support for .NET Applications&lt;/strong&gt; - A .net Application may wish to generate EPCIS events. Using the EPCIS OM and the capture client, a .net Application can successfully generate an EPCIS event and post it to the capture service&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;&lt;strong&gt;Extending EPCIS Events&lt;/strong&gt; - We will also provide the ability to extend pre-defined EPCIS events to enable custom attributes to be added as the ISV chooses.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;This infrastructure enables ISVs to build EPCIS applications on top of the BizTalk Server RFID 2009 release. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;To illustrate with a diagram:-&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/BizTalkRFID2009EPCISUnveiled_8B76/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/krishg/WindowsLiveWriter/BizTalkRFID2009EPCISUnveiled_8B76/image_thumb.png" width="381" height="334" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Over the next few weeks, we will provide more details of the EPCIS functionality. Let us know if you are working on EPCIS based applications and your thoughts or questions on our offering.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Regards&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Tahoma"&gt;Krish&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9059235" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/krishg/archive/tags/EPCIS+BizTalk/default.aspx">EPCIS BizTalk</category></item></channel></rss>