<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Blog</title><link>http://www.net-aspect.com:80/blog/</link><description>Blog</description><item><title>Biztalk Developer Yorkshire, Leeds, Manchester, Sheffield, York</title><link>http://www.net-aspect.com:80/blog/biztalk-developer-yorkshire-leeds-manchester-sheffield-york</link><description>&lt;p&gt;If you require Biztalk expertise on a consultancy basis&amp;nbsp;in your organisation in the Yorkshire region, please do not hesitate to contact me. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am a qualified MCTS (Microsoft Certified Technology Specialist) on Biztalk 2010 with numerous years experience of developing integration solutions.&lt;/p&gt;
&lt;p&gt;Serving&amp;nbsp;&lt;strong&gt;Leeds&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;Wakefield&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;York&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;Sheffield&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;Barnsley&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;Bradford, Manchester,&amp;nbsp;Huddersfield&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BizTalk 2006-2010, XSLT, C#, WCF Services, Windows Services.&lt;/li&gt;
&lt;li&gt;Design and build of software using appropriate toolsets, following the software life cycle and IT Design/Development procedures.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Delivering solution design and code from functional specifications. You will perform unit and integration testing to system specification.&lt;/li&gt;
&lt;li&gt;Extensive experience of BizTalk and &amp;nbsp;solid experience of creating technical design solutions and functional requirement documents.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Full development life cycle&lt;/li&gt;
&lt;li&gt;Architectural consulting&lt;/li&gt;
&lt;li&gt;Development of Orchestrations, Schemas, Maps, Pipelines&lt;/li&gt;
&lt;li&gt;Development of Custom pipeline components, adapters etc.&lt;/li&gt;
&lt;li&gt;Performance tuning including high throughput and low latency&lt;/li&gt;
&lt;li&gt;Production reviews&lt;/li&gt;
&lt;li&gt;High availability &amp;amp; Disaster recovery&lt;/li&gt;
&lt;li&gt;BizTalk Installation and Clustering&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Services provided:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Assessment, analysis, architecture, development, test, operate: EDI, EAI, B2B, B2C, ESB, SOA, BPM&lt;/li&gt;
&lt;li&gt;proof of concept and prototyping&lt;/li&gt;
&lt;li&gt;Back-end integration&lt;/li&gt;
&lt;li&gt;Tools for development, deployment, monitoring, acceleration&lt;/li&gt;
&lt;li&gt;CRM: MS Dynamics CRM, Siebel&lt;/li&gt;
&lt;li&gt;Middleware optimization: on premise, hybrid, cloud&lt;/li&gt;
&lt;li&gt;Mission critical services: high-available application integration&lt;/li&gt;
&lt;li&gt;Microsoft BizTalk Server expertise&lt;/li&gt;
&lt;li&gt;Training&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Please email myself, Bill Winder contact@net-aspect.com.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/blog/Media/Default/Page/about-this-blog-2/billwinderpic.jpg" alt="" width="300" height="345" /&gt;&lt;/p&gt;</description><pubDate>Tue, 28 May 2013 20:47:03 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/biztalk-developer-yorkshire-leeds-manchester-sheffield-york</guid></item><item><title>Hemmed in a Closed Cirque of Our Own Creating</title><link>http://www.net-aspect.com:80/blog/hemmed-in-a-closed-cirque-of-our-own-creating</link><description>&lt;p&gt;The vast majority of this blog is all about technology, but occasionally I like to drop in some interesting quotes.&lt;/p&gt;
&lt;p&gt;Today's is one from Dorothy Rowe's "What Should I Believe", from the chapter "Hemmed in a Closed Cirque of Our Own Creating".&lt;/p&gt;
&lt;p&gt;"We each live in our own individual prison. Freedom consists of chossing, consciously, the prison in which we live, and making our prison large and variable, with flexible walls, a spacoius house with wide doors and windows open to heaven and earth. &amp;nbsp;Unfortunately, so many of reject freedom, for freedom means insecurity, openness to the unknown. Instead we build our prison as an impregnable fortress, enclosing a meagre, empty space, and shutting out the myriad possibilities of heaven and earth. &amp;nbsp;Morever, we regard our fortress not as a something we have chosen, but as an absoluate and immutable fact of of reality. &amp;nbsp;Trapped and helpless, we cannot be happy."&lt;/p&gt;</description><pubDate>Sun, 19 May 2013 20:25:35 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/hemmed-in-a-closed-cirque-of-our-own-creating</guid></item><item><title>The burying of our talents</title><link>http://www.net-aspect.com:80/blog/the-discover-of-our-powers</link><description>&lt;p&gt;When we are children we discover in ourselves talents, powers, that we know are truly an essential part of ourselves and, being so, can become the source of the greatest meaning we can find in life. &amp;nbsp;We feel impelled to explore our world through our powers, but most of use are stopped from doing this. Poverty, rigid education, the demands that we fill certain roles in society block us so that sometimes we have to forget the possibilities we once glimpsed, or, not forgetting, suffer punishment like the servant in the &lt;a href="http://en.wikipedia.org/wiki/Parable_of_the_talents_or_minas"&gt;parable who buried his talent&lt;/a&gt;. &amp;nbsp;When, so Jesus said, his lord discovered this, he commanded that the servant be cast "out into the darkness: there shall be weeping and gnashing of teeth". &amp;nbsp;The gap between what we know we could have achieved and what we have achieved is usually filled with much weeping and gnashing of teeth."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;from Dorothy Rowe (What Should I Believe?)&lt;/strong&gt;&lt;/p&gt;</description><pubDate>Fri, 08 Mar 2013 20:41:17 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/the-discover-of-our-powers</guid></item><item><title>Creating New Annotation/Note Record in Dynamics CRM, Late Binding</title><link>http://www.net-aspect.com:80/blog/creating-new-annotation-note-record-in-dynamics-crm-late-binding</link><description>&lt;p&gt;There's a minimum amount of data you'll need to creation a new annotation/note record in Dynamics CRM. &amp;nbsp; Below is a sample of how you might do it with late binding.&lt;/p&gt;
&lt;p&gt;using (proxy)&lt;br /&gt;{&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;// create a new note for the incident in the notes entity&lt;br /&gt;&amp;nbsp;Entity note = new Entity("annotation");&lt;br /&gt;&amp;nbsp;note["notetext"] = "notes text notes text";&lt;br /&gt;&amp;nbsp;note["subject"] = "Note";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;note["isdocument"] = false;&lt;br /&gt;&amp;nbsp;Guid annotationId = Guid.NewGuid();&lt;br /&gt;&amp;nbsp;note["annotationid"] = annotationId;&lt;br /&gt;&amp;nbsp;note["objectid"] = new EntityReference("incident",new Guid("yourguid"));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;proxy.Create(note); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;</description><pubDate>Wed, 20 Feb 2013 22:22:34 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/creating-new-annotation-note-record-in-dynamics-crm-late-binding</guid></item><item><title>Microsoft Dynamics WCF Web Services - Early vs Late Binding Comparison</title><link>http://www.net-aspect.com:80/blog/microsoft-dynamics-wcf-web-services---early-vs-late-binding-comparison</link><description>&lt;p&gt;There are two options when programming against the Dynamics SDK - early binding and late binding, as outlined in the Microsoft SDK documentation (see the two links below).&lt;/p&gt;
&lt;h3&gt;Use the Early Bound Entity Classes in Code&lt;/h3&gt;
&lt;p&gt;Contact contact = New Contact(); &lt;br /&gt; contact.EMailAddress1 = "&lt;a&gt;marykay@contoso.com&lt;/a&gt;";&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg328210.aspx"&gt;See Use the Early Bound Entity Classes in Code&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Use the Late Bound Entity Classes in Code&lt;/h3&gt;
&lt;p&gt;Entity account = new Entity("account"); &lt;br /&gt; account["name"] = "Fourth Coffee"; &lt;br /&gt; _accountId = _orgService.Create(account);&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg309272.aspx"&gt;See Use the Late Bound Entity Class in Code&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Comparison of the two methods&lt;/h3&gt;
&lt;p&gt;The key difference between early and late binding involves type conversion. While early binding provides compile-time checking of all types so that no implicit casts occur, late binding checks types only when the object is created or an action is performed on the type. The Entity class requires types to be explicitly specified to prevent implicit casts.&lt;/p&gt;
&lt;h3&gt;Advantages/Disadvantages of Early Binding&lt;/h3&gt;
&lt;p&gt;The advantages to using early-bound entity classes is that all type references are checked at compile time. The compiled executable contains the code necessary to invoke the types&amp;rsquo; properties, methods, and events.&amp;nbsp; This results in the detection of issues more quickly since you will find them when you compile rather than run your application.&lt;/p&gt;
&lt;p&gt;Early binding comes with a slight performance degradation however (although there is not much difference), according to &lt;a href="http://msdn.microsoft.com/en-us/library/gg509027.aspx"&gt;Microsoft's Dynamics best practices page&lt;/a&gt;. If your entities are already defined at code time and slight performance degradation is acceptable, you should use the early-bound types that you can generate by using the CrmSvcUtil tool.&lt;/p&gt;
&lt;p&gt;Obviously if the entities are being changed frequently at design stage are you are developing against early bound classes, then you will keep having to update your early bound types using the CrmSvcUtil tool.&lt;/p&gt;
&lt;h3&gt;Advantages/Disadvantages of Late Binding&lt;/h3&gt;
&lt;p&gt;Use the Entity class when your code must work on entities and attributes that are not known at the time the code is written. You may need to use this approach if the CRM entities are being designed in tandem with when you are developing your own applications that utilizes them.&lt;/p&gt;
&lt;p&gt;With respect to performance view point late binding is marginally more preferable option, as per the &lt;a href="http://msdn.microsoft.com/en-us/library/gg509027.aspx"&gt; Microsoft best practices page for developing with Dynamics&lt;/a&gt;: "If your custom code works with thousands of entity records, use of the Entity class results in slightly better performance than the early-bound entity types".&lt;/p&gt;
&lt;p&gt;The principle disadvantages of using late binding is that you cannot verify entity and attribute names at compile time.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Conclusion is you might want to try both, you want to know the advtanges and disadvantages of both first hand, and you can only do that through your own experience.&lt;/p&gt;
&lt;h3&gt;Other Reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg309586.aspx"&gt;Mixing Early and Late Bound Entities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg509027.aspx"&gt;Best Practices for Developing with Microsoft Dynamics CRM 2011&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fourbusyxrmarchitects.wordpress.com/2012/08/09/filtering-the-list-of-early-bound-classes-generated-by-the-code-generation-tool-crmsvcutil-for-crm-2011-2/"&gt;Filtering the List of Early-Bound Classes Generated by the Code Generation Tool &lt;/a&gt;- Could be useful for early bound classes if you don't want to create a monster of a class (as a standard you generated early bound class can be 200,000 lines long with ease)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Comments?&lt;/h2&gt;
&lt;p&gt;Please add any comments if you have any experiences with using one or the other to add to the debate.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Wed, 06 Feb 2013 20:48:42 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/microsoft-dynamics-wcf-web-services---early-vs-late-binding-comparison</guid></item><item><title>Linq Cheat Sheet Examples</title><link>http://www.net-aspect.com:80/blog/linq-cheat-sheet-examples</link><description>&lt;p&gt;A few sample using query syntax. &amp;nbsp;Here's a &lt;a href="http://msdn.microsoft.com/en-us/library/bb399367.aspx"&gt;page on the Microsoft site that you might actually find more useful&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/246861/LINQ-to-Entities-Basic-Concepts-and-Features"&gt;Linq to Entities Basic Concepts and Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b"&gt;101 Linq Samples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Filtering&lt;/h2&gt;
&lt;p&gt;var col = from o in Orders&amp;nbsp;where o.CustomerID == 12&amp;nbsp;select o;&lt;/p&gt;
&lt;h2&gt;Ordering&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;var col = from o in orders&amp;nbsp;orderby o.Cost ascending&amp;nbsp;select o;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;var col9 = from o in orders&amp;nbsp;orderby o.CustomerID, o.Cost descending&amp;nbsp;select o;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h2&gt;Joining&lt;/h2&gt;
&lt;h3&gt;Example 1&lt;/h3&gt;
&lt;p&gt;var col = from c in customers&amp;nbsp;join o in orders on&amp;nbsp;c.CustomerID equals o.CustomerID&lt;/p&gt;
&lt;p&gt;select new&amp;nbsp;{c.CustomerID,&amp;nbsp;c.Name,&amp;nbsp;o.OrderID,&amp;nbsp;o.Cost};&lt;/p&gt;
&lt;h3&gt;Example 2&lt;/h3&gt;
&lt;p&gt;NorthwindEntities NWEntities = new NorthwindEntities();&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; var categoryProducts =&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from c in NWEntities.Categories&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; join p in NWEntities.Products&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; on c.CategoryID equals p.CategoryID&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; into productsByCategory&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select new {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; c.CategoryName,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; productCount = productsByCategory.Count()&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; foreach (var cp in categoryProducts)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine("There are {0} products in category {1}",&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cp.productCount, cp.CategoryName);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; NWEntities.Dispose();&lt;/p&gt;
&lt;h2&gt;Grouping&lt;/h2&gt;
&lt;p&gt;var OrderCounts = from o in orders&amp;nbsp;group o by o.CustomerID into g&lt;/p&gt;
&lt;p&gt;select new&amp;nbsp;{CustomerID = g.Key,TotalOrders = g.Count()};&lt;/p&gt;
&lt;p&gt;&lt;em&gt;another...&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;var list = from d in db.Fee&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;group d.FeeDate by new {d.ReceivedFrom, d.FeeDate} into g&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;select g;&lt;/p&gt;
&lt;h3&gt;Group with a count&lt;/h3&gt;
&lt;p&gt;&amp;nbsp; var topRankedShares = from sd in shareContext.ShareDatas&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where sd.RecordDate == rankingDate&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; group sd by&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new { sd.RecordDate, sd.Code } into groupings&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select new {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; recordDate = groupings.Key.RecordDate,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; code = groupings.Key.Code,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; postsCount = groupings.Count()&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // insert the rows into the table&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foreach (var countRow in topRankedShares)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(countRow.code + ":" + countRow.postsCount);&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;h3&gt;Group with Count and OrderBy&lt;/h3&gt;
&lt;p&gt;(from p in DataContext.Hits&lt;/p&gt;
&lt;p&gt;where (p.Date &amp;gt;= minDate) &amp;amp;&amp;amp; (p.Date &amp;lt; maxDate)&lt;/p&gt;
&lt;p&gt;group p by p.Page into g&lt;/p&gt;
&lt;p&gt;select new { Page = g.Key, Number = g.Count() }).OrderByDescending(x =&amp;gt; x.Number).Take(10);&lt;/p&gt;
&lt;h3&gt;Another grouping&lt;/h3&gt;
&lt;p&gt;db.Users.SelectMany(&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; x=&amp;gt; x.Projects&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.Select(i=&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;User = x.Name,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project = i.Name,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WorkTime = (int?)i.UserWorkTimes.Sum(t=&amp;gt;t.WorkTime)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;})&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; );&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Paging&lt;/h2&gt;
&lt;p&gt;//select top 3&lt;/p&gt;
&lt;p&gt;var col = (from o in orders&amp;nbsp;where o.CustomerID == 84&amp;nbsp;select o).Take(3);&lt;/p&gt;
&lt;p&gt;//skip first 2 and return the 2 after&lt;/p&gt;
&lt;p&gt;var col3 = (from o in orders&amp;nbsp;where o.CustomerID == 84&amp;nbsp;orderby o.Cost&amp;nbsp;select o).Skip(2).Take(2);&lt;/p&gt;
&lt;h2&gt;Element Operators&lt;/h2&gt;
&lt;p&gt;//throws exception if no elements&lt;/p&gt;
&lt;p&gt;var cust = (from c in customers&amp;nbsp;where c.CustomerID == 84&amp;nbsp;select c).Single();&lt;/p&gt;
&lt;p&gt;//returns null if no elements&lt;/p&gt;
&lt;p&gt;var cust = (from c in customers&amp;nbsp;where c.CustomerID == 84&amp;nbsp;select c).SingleOrDefault();&lt;/p&gt;
&lt;p&gt;//returns a new customer instance if no elements&lt;/p&gt;
&lt;p&gt;var cust = (from c in customers&amp;nbsp;where c.CustomerID == 85&amp;nbsp;select c).DefaultIfEmpty(new Customer()).Single();&lt;/p&gt;
&lt;p&gt;//First, Last and ElementAt used in same way&lt;/p&gt;
&lt;p&gt;var cust4 = (from o in orders&amp;nbsp;where o.CustomerID == 84&amp;nbsp;orderby o.Cost&amp;nbsp;select o).Last();&lt;/p&gt;
&lt;p&gt;//returns 0 if no elements&lt;/p&gt;
&lt;p&gt;var i = (from c in customers&amp;nbsp;where c.CustomerID == 85&amp;nbsp;select c.CustomerID).SingleOrDefault();&lt;/p&gt;
&lt;h3&gt;Random Finds&lt;/h3&gt;
&lt;p&gt;var vendors = GetWamVendorInfo().AsEnumerable()&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .Where(x =&amp;gt; x.vendor_name != null &amp;amp;&amp;amp; x.vendor_id != null)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .Select(new {x.vendor_id, x.vendor_name})&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .Take(2)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;</description><pubDate>Mon, 04 Feb 2013 17:02:05 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/linq-cheat-sheet-examples</guid></item><item><title>Using DebugView with Biztalk</title><link>http://www.net-aspect.com:80/blog/using-debugview-with-biztalk</link><description>&lt;p&gt;You can output traces from within a Biztalk orchestration using a product called Microsoft DebugView.&amp;nbsp; Here's what you need to do:&lt;/p&gt;
&lt;p&gt;Download a copy of debugview and put in on your Biztalk runttime server/machine.&amp;nbsp; &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx"&gt;You can download it from here&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In your orchestration use Expression shapes where you want to output some text to debugview and use the following syntax in your expression shapes:&lt;br /&gt;&lt;br /&gt;System.Diagnostics.Trace.WriteLine("This message will appear in debug view.");&lt;/li&gt;
&lt;li&gt;Build your Biztalk solution and deploy it to Biztalk, restart the host instances if needed.&lt;br /&gt;According to this article it says you must build in debug mode not release mode, but I found it not be the case (&lt;a href="http://blogs.biztalk360.com/can-t-see-debug-statements-in-debugview-/"&gt;see this article&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Launch Debugview.&amp;nbsp; Ensure that the following are selected - under Capture menu check that CaptureWin32, Capture Global Win32 and Capture Events are all ticked.&lt;/li&gt;
&lt;li&gt;Drop your message into Biztalk to initiate the orchestration - you should see any messages that you have written out from the orchestration appear in debug view.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Tue, 29 Jan 2013 13:06:21 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/using-debugview-with-biztalk</guid></item><item><title>Removing tempuri.org references in your WCF WSDL</title><link>http://www.net-aspect.com:80/blog/remn</link><description>&lt;p&gt;When you create a WCF project, Visual Studio does not assign namespace and therefore libraries WCF automatically assign the value of http://tempuri.org. You're trying to remove the "tempuri" references from a wsdl file for a service you've created in WCF but having trouble? Personally I don't like these tempuri's hanging around on the WCF services I create, it just looks messy and incomplete. Deploying a service with this namespace is a bad practice and changing it at a later time may become a nightmare because all proxies must be regenerated. It seems clear, therefore, that the assignment of a meaningful namespace is very important.&lt;/p&gt;
&lt;p&gt;Please note that the resolution for this problem comes from&amp;nbsp;&lt;a href="http://blogs.ugidotnet.org/raffaele/archive/2011/02/10/la-soluzione-definitiva-al-namespace-tempuri.org-in-wcf-4.aspx"&gt;this Italian language web site&lt;/a&gt;, however I have done my own translation for English speaking folk, but all attribute goes to this web site.&lt;/p&gt;
&lt;p&gt;But then how do you remove tempuri.org?&lt;/p&gt;
&lt;p&gt;To delete just assign our namespace, and WCF there are three distinct assignments namespace.&lt;/p&gt;
&lt;h3&gt;The ServiceContract, typically the service interface:&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ServiceContract(Namespace = "http://www.yournamespace.com/xxxxx")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public interface IYourService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {...}&lt;/p&gt;
&lt;h3&gt;On deploying the service, by applying a behavior type ServiceBehavior:&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ServiceBehavior(Namespace = "http://www.yournamespace.com/xxxxx")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class YourService : IYourService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { ... }&lt;/p&gt;
&lt;h3&gt;Endpoint must assign the namespace of Binding&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint address="net.pipe://localhost/YourService"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding="netNamedPipeBinding" bindingConfiguration="Binding1"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name="PipeEndpoint" bindingNamespace="http://www.yournamespace.com/xxxxx"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; contract="..." /&amp;gt;&lt;/p&gt;
&lt;h3&gt;Write a Service Behavior to replace the namespace on the fly&lt;/h3&gt;
&lt;p&gt;Unfortunately you will still however find tempuri.org in your WSDL. Therefore you have to take extra custom steps&lt;/p&gt;
&lt;p&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ServiceModel.Description;&lt;br /&gt;using System.ServiceModel;&lt;br /&gt;using System.Collections.ObjectModel;&lt;br /&gt;using System.ServiceModel.Channels;&lt;/p&gt;
&lt;p&gt;namespace YourProjectNamespace&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [AttributeUsage(AttributeTargets.Class)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class BindingNamespaceBehavior : Attribute, IServiceBehavior&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string bindingNamespace { get; set; }&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public BindingNamespaceBehavior(string bindingNamespace)&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.bindingNamespace = bindingNamespace;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string BindingNamespace&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.bindingNamespace;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void AddBindingParameters(ServiceDescription serviceDescription, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServiceHostBase serviceHostBase, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Collection&amp;lt;ServiceEndpoint&amp;gt; endpoints, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BindingParameterCollection bindingParameters)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void ApplyDispatchBehavior(ServiceDescription serviceDescription, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServiceHostBase serviceHostBase)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Validate(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (serviceHostBase == null)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ArgumentNullException("serviceHostBase");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var endpoint in serviceHostBase.Description.Endpoints)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endpoint.Binding.Namespace = bindingNamespace;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Without this, it is sufficient to apply the attribute on the implementation of the service (without touching the configuration in any&lt;/p&gt;
&lt;p&gt;way) that thus becomes:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ServiceBehavior(Namespace = "http://www.yournamespace.com/xxxxx")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [BindingNamespaceBehavior(bindingNamespace = "http://www.yournamespace.com/xxxxx")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class YourService : IYourService&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { ... }&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Then simply re-download the metadata with svcutil to verify that tempuri.org is finally gone.&lt;/p&gt;</description><pubDate>Thu, 24 Jan 2013 13:30:38 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/remn</guid></item><item><title>WCF Endpoints, Bindings, Contracts and Behaviours</title><link>http://www.net-aspect.com:80/blog/wcf-endpoints-bindings-contracts-and-behaviours</link><description>&lt;h2&gt;ENDPOINT&lt;/h2&gt;
&lt;p&gt;Specifies an actual running instance of the service.&amp;nbsp;A service endpoint has an address a binding and a contract.&lt;/p&gt;
&lt;h2&gt;BINDING&lt;/h2&gt;
&lt;p&gt;Specifies how the endpoint communicates with the world including things like TCP, HTTP, encoding (text, binary) and security requirements (SSL, SOAP message security).&lt;/p&gt;
&lt;h2&gt;CONTRACT&lt;/h2&gt;
&lt;p&gt;What the service actually does ie what operations are valid. eg what the endpoint communicates, it is essentially a collection of messages organized in operations that have message exchange pattersn (MEPs) such as one-way, duplex, request-reply.&lt;/p&gt;
&lt;h3&gt;CONTRACT DESCRIPTION&lt;/h3&gt;
&lt;p&gt;Represents a WCF contract.&lt;/p&gt;
&lt;h2&gt;SERVICE BEHAVIOUR&lt;/h2&gt;
&lt;p&gt;How the end point interacts with clients get security, concurrency, cacheing, logging etc.&lt;/p&gt;
&lt;h2&gt;OPERATION BEHAVIOUR&lt;/h2&gt;
&lt;p&gt;Similar to service behaviour but only gets applied when a specific operation is run.&lt;/p&gt;
&lt;h4&gt;See: WCF Archicture overview&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480210.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa480210.aspx&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;See: Endpoints: Addresses, Bindings and Contracts&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms733107.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms733107.aspx&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;br /&gt;WCF Sections in the Web.config file&lt;/h2&gt;
&lt;p&gt;&amp;lt;system.ServiceModel&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;lt;services&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;!&amp;mdash;- Define the service endpoints. This section is optional in the new&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default configuration model in .NET Framework 4. --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;service&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endpoint/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/service&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/services&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;lt;bindings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Specify one or more of the system-provided binding elements,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for example, &amp;lt;basicHttpBinding&amp;gt; --&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Alternatively, &amp;lt;customBinding&amp;gt; elements. --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;binding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- For example, a &amp;lt;BasicHttpBinding&amp;gt; element. --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/binding&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/bindings&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;lt;behaviors&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;!-- One or more of the system-provided or custom behavior elements. --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;behavior&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- For example, a &amp;lt;throttling&amp;gt; element. --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/behavior&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/behaviors&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/system.ServiceModel&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;br /&gt;Configure services using configuration files&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms733932.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms733932.aspx&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 24 Jan 2013 09:38:35 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/wcf-endpoints-bindings-contracts-and-behaviours</guid></item><item><title>Biztalk Development Best Practices: Directory of Sites</title><link>http://www.net-aspect.com:80/blog/biztalk-development-best-practices</link><description>&lt;p&gt;I was going to write an article about the best practices in developing with Biztalk.&amp;nbsp; I am quite new to the platform so the purpose of this would have been to imprint some development methodologies in my mind going forwards.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, I felt that I was a little inexperienced at this stage to do this, and secondly I have found alot of other best practice articles on the internet.&amp;nbsp; This article then, is a list of the Biztalk best practice web articles I have found, and it serves as much as anything a bookmark page for my own use - you might find it a useful page also.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Articles&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://grounding.co.za/blogs/romiko/archive/2010/03/14/designing-biztalk-solutions-tips.aspx"&gt;Romiko's Blog - Designing BizTalk Solutions Tips&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geekswithblogs.net/VishnuTiwariBlog/Default.aspx"&gt;Vishnu Tiwari Blog BizTalk Server Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=683"&gt;DotNet Curry&amp;nbsp;- BizTalk Best Practices &amp;amp; Coding Guidelines for the IT Services Industry &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163423.aspx"&gt;MSDN - 8 Tips And Tricks For Better BizTalk Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://artofbabel.com/columns/top-x/49-top-10-biztalk-server-mistakes.html"&gt;Top 10 Biztalk Mistakes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://esb.stottcreations.com/biztalk-esb-toolkit-2-1-and-real-world-best-practices/"&gt;BizTalk ESB Toolkit 2.1 and Real World Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Videos&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/johanlindfors/BizTalk-Server-Development-Best-Practices-12"&gt;Microsoft Channel 9 - BizTalk Server - Development Best Practices&amp;nbsp;(1/2)&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/johanlindfors/BizTalk-Server-Development-and-Administration-Best-Practices-12"&gt;Microsoft Channel 9 - BizTalk Server - Development and Administration Best Practices (2/2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.biztalk247.com/videos.aspx"&gt;Various Biztalk Videos on Biztalk247&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Orchestrations&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/5210.biztalk-server-2010-orchestration-best-practices.aspx"&gt;Microsoft Technet - BizTalk Server 2010 - Orchestration Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Schemas&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jason.agostoni.net/2011/06/03/biztalk-schema-inheritance-practices-examples/"&gt;Jason Agostoni - BizTalk Schema Inheritance Practices / Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pipelines&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://it-tutorials.us/application_server/biztalk-2009---pipeline-component-best-practices-and-examples---using-biztalk-streams.aspx"&gt;Pipeline Component Best Practices and Examples - Using BizTalk Streams &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogical.se/blogs/johan/archive/2008/01/02/custom-pipeline-components-development-best-practices.aspx"&gt;Pipeline Component Development Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa577468(v=bts.10).aspx"&gt;MSDN - Best Practices for Deploying a BizTalk Application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Instrumentation&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=11412"&gt;Instrumentation Best Practices for High Performance BizTalk Solutions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6845.installing-biztalk-server-2010-in-a-basic-multi-computer-environment-en-us.aspx?Sort=MostUseful&amp;amp;PageIndex=1"&gt;Instructions for Installing Biztalk Server 2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/629.aspx"&gt;BizTalk Administrator's Checklist Compiled by Microsoft BizTalk Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee308949(v=bts.10).aspx"&gt;Best Practices for Maintaining BizTalk Server Databases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/7248.biztalk-server-2010-sql-agent-jobs.aspx"&gt;Biztalk SQL Server Agent Jobs that should be run&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.biztalk360.com/post/2012/05/16/BizTalk-Monitoring-Top-15-Best-Practices.aspx"&gt;Monitoring Biztalk 15 Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc615045(v=bts.10).aspx"&gt;Optimizing Performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.biztalkadminsblogging.com/index.php/item/83-best-practices-for-tracking"&gt;Best Practices for Tracking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.biztalk360.com/biztalk-monitoring-top-15-best-practices/"&gt;BizTalk Monitoring &amp;ndash; Top 15 Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;I will keep updating this list as I find new and useful articles.&amp;nbsp;&lt;/p&gt;</description><pubDate>Wed, 16 Jan 2013 14:52:03 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/biztalk-development-best-practices</guid></item><item><title>There was a failure executing the receive pipeline </title><link>http://www.net-aspect.com:80/blog/there-was-a-failure-executing-the-receive-pipeline</link><description>&lt;h2&gt;Problem&lt;/h2&gt;
&lt;p&gt;There was a failure executing the receive pipeline: "xxx" Source: "Unknown " Receive Port: "ReceivePort1" URI: "/httpreceive/BTSHTTPReceive.dll" Reason: Failed to get pipeline: xxx. Please verify that the pipeline strong name is correct and that the pipeline assembly is in the GAC.&lt;/p&gt;
&lt;p&gt;I was using a custom pipeline with just some standard pipeline component on it (ie flat file disassembler), with messages coming from a HTTP adapter, and I kept getting the above message.&lt;/p&gt;
&lt;p&gt;I double checked that the pipeline artefact was visible in both Biztalk admin console aswell as the GAC (C:\Windows\Microsoft.NET\assembly\GAC_MSIL), and they were. Despite repeatedly redeploying and trying different things, I still got the same message.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In the end the solution was that the IIS application pool that the HTTP adapter was receiving messages on was using .net 2 - I changed this to .net 4 and it all worked fine. I guess this is because the GAC location for .net 2 and .net 4 are completely different so .net 2 process would not be able to locate a .net 4 assembly.&lt;/p&gt;
&lt;p&gt;If this doesn't solve your particular problem there are some other steps you could take.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check that the assembly is definitely in the GAC - under C:\Windows\Microsoft.NET\assembly\GAC_MSIL&lt;/li&gt;
&lt;li&gt;If you are deploying on dev from Visual Studio check that "Install to Global Assembly Cache" is set to true on the project properties. Also check that Redeploy is set to true&lt;/li&gt;
&lt;li&gt;Restart the host instances to pickup the new artefacts Ensure there are multiple copies or version of the same assembly in Biztalk or the GAC.&lt;/li&gt;
&lt;li&gt;Check the assemblies are in the correct Biztalk application and that any dependent artefacts that might be in other Biztalk project are set as Reference in the Biztalk application's properties&lt;/li&gt;
&lt;li&gt;Check the event log for any additional errors that may be occurring before the references one&lt;/li&gt;
&lt;li&gt;Use Fusion Log Viewer to tell you what is wrong. It is a very simply GUI application and you can copy it from you machine onto the target if you need to (just an exe, very easy). Turn on Log Failures and it will soon tell you exactly which dependency is not found&lt;/li&gt;
&lt;li&gt;Remove the application completely, then double check that everything is removed from both the GAC and the Biztalk management console (by going Biztalk admin console &amp;gt; Applications &amp;gt; All artefacts). Then deploy everything&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Tue, 15 Jan 2013 11:16:54 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/there-was-a-failure-executing-the-receive-pipeline</guid></item><item><title>Integrating Sharepoint 2010 and Dynamics 2011</title><link>http://www.net-aspect.com:80/blog/integrating-sharepoint-2010-and-dynamics-2011</link><description>&lt;p&gt;Just so you know&amp;nbsp;when I&amp;nbsp;say "Integrating Sharepoint 2010 and Dynamics 2011",&amp;nbsp;I mean displaying data from Dynamics CRM entities in a Sharepoint 2010 front end (rather than displaying a Sharepoint document library from the Dynamics interface which is also possible), and enabling those entities to be edited, deleted, added to from Sharepoint.&lt;/p&gt;
&lt;p&gt;There are a number of means of achieving this, I have tried to assess my own opinion and experiences of them below...&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;List web part&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;There is a custom list web part which was initially aimed at Dynamics 4.0, which you could use.&amp;nbsp; Personally I decided not to bother with this or investigate it in any depth, since whilst it may have worked I considered it "legacy" and it may only provided view functionality.&amp;nbsp; I think it uses the asmx web service provided by Dynamics CRM, rather than the more up to date WCF web service.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Write a custom web part that queries the Dynamics CRM WCF Web Service&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;You could write your own custom web part which queries the Dyanmics&amp;nbsp;WCF web service - using the WCF service you can do everything you need to such as add records, get an entity or entities, update&amp;nbsp;and delete.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;You would have to use .net 3.5 of course since Sharepoint runs on this version of the framework - this limits you in that you cannot use the Dynamics SDK which is built on .net 4.0 - you must use the pure WCF service.&amp;nbsp; The Dynamics SDK makes things easier and quicker to program against the WCF service, so you may run into the occasional issue when developing and looking up some of the more complex CRM datatypes such as lookups and option sets etc.&lt;/p&gt;
&lt;p&gt;Using the CRM WCF service seems to be a pretty viable option, I did some initial investigation with this myself - view entities, adding and updating. &amp;nbsp;I personally had a few issues with getting "option set" values and some other issues so I decided after that to investigate using BCS instead as a possibility. I did not try out the RESTful web service that CRM provides, though you might find this of use.&lt;/p&gt;
&lt;h2&gt;Write a WCF Proxy Service (in .net 4) and write a custom web part that queries this&lt;/h2&gt;
&lt;p&gt;If you have some issues, as I did, with querying the Dynamics WCF service using .net 3.5 (without the Dynamics SDK), then one option could be to write a .net 4 proxy WCF service.&amp;nbsp; If you write it in .net 4 you can take full advantage of the CRM SDK and the ease that it provides in getting entities.&amp;nbsp; You could then write you custom web part to make queries against your proxy service.&amp;nbsp; The proxy service would do most of the hard work in getting the data, thus minimizing the amount of code you have to write in your custom web part.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Using Business Connectivity Services&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;BCS is a part of Sharepoint that enables you to connect lists and forms to external data such as SQL databases etc.&amp;nbsp; Unfortunately, probably because of the complexity of the Dynamics data types and structures I guess, BCS will not work out of the box with Dynamics data.&amp;nbsp; You cannot just point BCS at a Dynamics WCF service and expect it to work, it won't.&amp;nbsp; Fortunately the folks at Microsoft&amp;nbsp;have provided an open source custom connector project that enables you to do just this.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/girishr/archive/2011/05/16/source-code-from-my-teched-osp309-session.aspx"&gt;Download the source code and white paper for the BCS service here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;NB It is well worth looking at the two videos&amp;nbsp;at the bottom of this post&amp;nbsp;first though which explain some of the options available to you and provide an overview of integration between Sharepoint and CRM, with a particular focus on the BCS method and looking at the customer connector provided.&lt;/p&gt;
&lt;h3&gt;Advantages&lt;/h3&gt;
&lt;p&gt;One of the main advantages of using the BCS method is that once it is setup it is fairly quick to link entities to Sharepoint lists, and provide the ability to list data, update and delete existing and add new records to entities.&amp;nbsp; Therefore if you have lots of entities to expose via Sharepoint this is going to be the quickest method, since it would take a bit longer to program custom web parts to perform CRUD operations.&lt;/p&gt;
&lt;h3&gt;Disadvantages&lt;/h3&gt;
&lt;p&gt;I found the BCS method best worked when you wanted to view/update a singe entity at a time - when I had to had functionality that allowed a form to make changes to multiple entities at once then I had to write custom C# code and&amp;nbsp;web controls&amp;nbsp;to do this.&amp;nbsp; Displaying CRM data via BCS in a list appears to be aimed at just displaying and updating one entity table at a time - if there is more complex functionality then you need to start writing your own custom web parts to do it (see the Extending section below).&lt;/p&gt;
&lt;h3&gt;Setting Up&lt;/h3&gt;
&lt;p&gt;Setting it up is the most fiddly bit, I had some initial issues but if you follow the instructions in the white paper provided in the link above you should be ok.&amp;nbsp; Note that while the white paper talks about integrating with Dynamics CRM online, it also works with on premise &amp;ndash; however the connector asks you to enter a &amp;ldquo;device name and id&amp;rdquo; as part of the configuration but these are only valid for Dynamics Online, not on premise, so you can just enter any value in these (it does insist a value to be entered!).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The connector facility provides a WCF proxy service that sits between Sharepoint and the CRM data (a .net 4 project so takes advantages of the Dynamics CRM SDK).&amp;nbsp; There is also a BCS connector facility (a .net 3.5 project) that runs in Sharepoint and talks to the proxy service to get the data from Dynamics and present it to Sharepoint.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Exending&lt;/h3&gt;
&lt;p&gt;One&amp;nbsp;good thing about the connector facility and proxy service provided is that it is open source and you can get under the bonnet and make your own changes &amp;ndash; I found I needed to do quite a bit of this for certain additional functionality I required.&amp;nbsp; Also if you want to develop your own custom web parts, you could additionally program them against this .net 4 proxy service provided to get the entities etc rather than directly to the CRM WCF web service &amp;ndash; personally I found this the easier method of doing my custom web part programming since the proxy service provides all the main operations required ie get entity, get entities, add, edit, delete.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Presentation by Girish Raja on Channel9.&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/OSP309"&gt;View the full link here.&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe style="height: 540px; width: 960px;" src="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/OSP309/player?w=960&amp;amp;h=540" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h3&gt;Presentation by Chris Auld on Channel9.&lt;/h3&gt;
&lt;p&gt;Similar sort of presentation to the above but both worth a look.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/OSP309/"&gt;View the full link here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/TechEd/NewZealand/2011/DYN301/"&gt;&lt;iframe style="height: 540px; width: 960px;" src="http://channel9.msdn.com/Events/TechEd/NewZealand/2011/DYN301/player?w=960&amp;amp;h=540" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 11 Jan 2013 10:29:22 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/integrating-sharepoint-2010-and-dynamics-2011</guid></item><item><title>Polling a Web Service/WCF from Biztalk</title><link>http://www.net-aspect.com:80/blog/polling-a-web-service-wcf-from-biztalk</link><description>&lt;p&gt;&lt;br /&gt;One of the requirements on a project I was working on was to use Biztalk to poll a web service using it's WCF adapters on a regular basis eg every few minutes.&amp;nbsp; I set off looking at the possibilities of how to develop this only to find that the Biztalk WCF receive adapters to not have configuration to allow you to poll at intervals.&amp;nbsp; BizTalk does nothing unless somebody "knocks on the door", so out-of-the-box BizTalk cannot call a WCF Service on a scheduled basic (the WCF http Receive Adapter actually works the other way around, somebody has to call "our" Service for something to happen). BizTalk is not a job scheduler, but this sort of workflow does comes up a lot when organizations already use BizTalk. so the best bet was to find a reliable (and resilient, monitored, logged, etc.) means of triggering the process, telling BizTalk when it is time to call the WCF service.&lt;/p&gt;
&lt;p&gt;To achieve the requirement, there needed to be some sort of schedule mechanism in BizTalk (SQL Receive or the 3rd party Schedule Adapter) that starts a Socilit-Response Send Port that calls the Service and returns the response.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;The were the options:&lt;/p&gt;
&lt;h2&gt;Scheduled Task Adapter&lt;/h2&gt;
&lt;p&gt;Use the Schedule Task Adapter (&lt;a href="http://biztalkscheduledtask.codeplex.com/"&gt;http://biztalkscheduledtask.codeplex.com/&lt;/a&gt;) to receive a message that an orchestration subscribes to.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Windows Scheduled Task&lt;/h2&gt;
&lt;p&gt;Run a scheduled task (under the Windows scheduler, but you could use any scheduling tool) that creates a "control message" and drops it in a folder.&amp;nbsp; BizTalk watches the folder, and when it sees the control message it calls the web service.&amp;nbsp; This allows for very flexible scheduling.&amp;nbsp; You could poll the web service every other Wednesday at 3:00 PM if you want to.&amp;nbsp; You can user Powershell to write a file or to a message queue that BizTalk sucks in to kick off its process&lt;/p&gt;
&lt;h2&gt;Write a Windows Service&lt;/h2&gt;
&lt;p&gt;Create a basic windows service which runs at scheduled time and drops a message into BizTalk and Biztalk picks up.&lt;/p&gt;
&lt;p&gt;Third-party job scheduling software (particularly if already in use; even SQL Server can do this for you).&lt;/p&gt;
&lt;h2&gt;SQL Adapter&lt;/h2&gt;
&lt;p&gt;The SQL adapter can be configured to poll a stored procedure every few minutes, then creata an orchestraion instance on any received message. If the stored proc always returns a message, you can then get the orchestration to call the web service then process the message.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Singleton Orchestration&lt;/h2&gt;
&lt;p&gt;Have a singleton orchestration that calls the web service, then delays 10 minutes, in a while-true loop. Use a control message to start the orchestration.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Build a Custom&amp;nbsp;Adapter&lt;/h2&gt;
&lt;p&gt;More difficult - either: Build a web service polling adapter using the LOB adapter SDK, or build a web service polling adapter using the BizTalk Adapter framework. Building an adapter is not an easy task, but it's easyer with the LOB SDK than the BizTalk Adapter framework.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Wed, 09 Jan 2013 09:25:37 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/polling-a-web-service-wcf-from-biztalk</guid></item><item><title>Windows Server AppFabric and Windows Workflow Foundation: Brief Introduction</title><link>http://www.net-aspect.com:80/blog/windows-server-appfabric-and-windows-workflow-foundation-brief-introduction</link><description>&lt;p&gt;&lt;object classid="clsid:dfeaf541-f3e1-4c24-acac-99c30715084a" width="600" height="338"&gt;&lt;param name="minRuntimeVersion" value="5.0.61118.0" /&gt;&lt;param name="source" value="http://channel9.msdn.com/scripts/Channel9.xap?v=1.15" /&gt;&lt;param name="initParams" value="mediaurl=http://ecn.channel9.msdn.com/o9/ch9/e74d/909dfd13-7873-4ae9-bf51-9e0d00cfe74d/BizTalkWCFWFAppFabric_ch9.wmv,thumbnail=http://ecn.channel9.msdn.com/o9/ch9/e74d/909dfd13-7873-4ae9-bf51-9e0d00cfe74d/BizTalkWCFWFAppFabric_512_ch9.jpg,deliverymethod=progressivedownload,autoplay=false,entryid=909dfd1378734ae9bf519e0d00cfe74d" /&gt;&lt;param name="src" value="data:application/x-silverlight-2," /&gt;&lt;param name="minruntimeversion" value="5.0.61118.0" /&gt;&lt;param name="initparams" value="mediaurl=http://ecn.channel9.msdn.com/o9/ch9/e74d/909dfd13-7873-4ae9-bf51-9e0d00cfe74d/BizTalkWCFWFAppFabric_ch9.wmv,thumbnail=http://ecn.channel9.msdn.com/o9/ch9/e74d/909dfd13-7873-4ae9-bf51-9e0d00cfe74d/BizTalkWCFWFAppFabric_512_ch9.jpg,deliverymethod=progressivedownload,autoplay=false,entryid=909dfd1378734ae9bf519e0d00cfe74d" /&gt;&lt;embed height="338" type="application/x-silverlight-2" width="600" src="data:application/x-silverlight-2," initparams="mediaurl=http://ecn.channel9.msdn.com/o9/ch9/e74d/909dfd13-7873-4ae9-bf51-9e0d00cfe74d/BizTalkWCFWFAppFabric_ch9.wmv,thumbnail=http://ecn.channel9.msdn.com/o9/ch9/e74d/909dfd13-7873-4ae9-bf51-9e0d00cfe74d/BizTalkWCFWFAppFabric_512_ch9.jpg,deliverymethod=progressivedownload,autoplay=false,entryid=909dfd1378734ae9bf519e0d00cfe74d" source="http://channel9.msdn.com/scripts/Channel9.xap?v=1.15" minruntimeversion="5.0.61118.0" /&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Windows Server AppFabric is a set of extensions on top of Windows Server improving the application infrastructure allowing to build, scale and manage Web and composite applications. AppFabric comes with the following capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enhanced hosting and management: AppFabric enhances IIS Web Server features with the possibility to monitor and track WCF services. It provides the capability to monitor activities of hosted WCF and WF servers. Additionally it provides a way to save the state of hosted running workflows making it easing to create long-running workflow processes.&lt;/li&gt;
&lt;li&gt;Caching: adds a distributed, in-memory object cache to Windows Server making it easier to scale out services.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Windows Workflow Foundation&lt;/h3&gt;
&lt;p&gt;Windows Workflow Foundation (WF) is a technology that allows to describe a business process as a workflow comprised of a discrete series of steps that involves people and software. It allows any .NET application to implement maintainable long-running processes and encapsulate blocks of functionality into Common Language Runtime object. This approach enables the enterprise developer to create more maintainable applications thus improving both the stability of the application as decrease the development effort. The latest version of WF supports the following workflow types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sequential workflows: allows for the execution of activities in a pre-defined pattern. This type of workflow is mostly used in situations where no human intervention occurs and a structured set of steps can be executed.&lt;/li&gt;
&lt;li&gt;State machine workflows: these are behavior based workflows where the activities change from state based on incoming events. This type of workflow is suited best for situations where human interaction occurs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows WF are supported as durable (state full) and non-durable (stateless) services on premise.&lt;/p&gt;</description><pubDate>Wed, 02 Jan 2013 21:55:08 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/windows-server-appfabric-and-windows-workflow-foundation-brief-introduction</guid></item><item><title>Biztalk vs Workflow Foundation 4</title><link>http://www.net-aspect.com:80/blog/biztalk-vs-workflow-foundation-4</link><description>&lt;p&gt;Architects and developers have to choose carefully in which technology to invest.&amp;nbsp; With this in mind, for some recent developments I was looking at putting together an architecture for a service bus and assessing which technology would be the best to use - Biztalk or Workflow Foundation/WCF.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The service bus I was to develop would need to handle a number of different message patterns for example low latency request-responses, as well as picking up data from file and ftp locations and just sending them straight to&amp;nbsp;other systems without responses back (ie fire-and-forget).&amp;nbsp; Both of these message patterns could be easily handle by a pure Biztalk approach, although I&amp;nbsp;considered that&amp;nbsp;Biztalk is not known for low latency request-responses - whilst it can fulfill these rapid requests-responses there are time lags caused within Biztalk as it records messages to its message database etc for persistence, so other methods such as WCF/Workflow would&amp;nbsp;provde to be quicker.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I started to consider a more hybrid approach - ie utilizing a combination of both Biztalk and WF/WCF and using the right tool for the particular job,&amp;nbsp;however I realised I needed some sort of framework for assessing which tool would be best for the different parts of the project.&lt;/p&gt;
&lt;h3&gt;Project Technical Requirements&lt;/h3&gt;
&lt;p&gt;Here is an idea of the functionality the service bus I was working on required:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Request-responses to 3rd party systems for data, message persistence and retrys not required - perhaps an ideal candidate for WF/WCF&lt;/li&gt;
&lt;li&gt;Regular flat file and xml data drops - data would need to be picked up and routed to systems.&amp;nbsp; An ideal candidate would be Biztalk as it provides lots of adapters (FTP, file etc) which would make retrieving the data easy, whereas WF only really allows for web services&lt;/li&gt;
&lt;li&gt;Message transformations - xml would need to be transformed into formats suitable for recipient systems.&amp;nbsp; Again Biztalk is great at this, but this could equally be done in WF if it is sending the data via web services&lt;/li&gt;
&lt;li&gt;Message persistence - alot of&amp;nbsp;the messages we didn't want to lose&amp;nbsp;-&amp;nbsp;Biztalk provides message persistence, retries etc&amp;nbsp;out-of-the-box, but also WF/Appfabric provides a persistence facility of its own&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;An overview of the technologies&lt;/h3&gt;
&lt;h3&gt;Biztalk&lt;/h3&gt;
&lt;p&gt;BizTalk is used for system integration. for example, you run a factory, you may have a ERP system. when you order product parts from other factories, your system need to communicate with other systems. Now, it is time to use BizTalk. BizTalk can connect different system together, map message schemas. route messages(Orchestration). BizTalk Orchestration is a message driven workflow that can coorinate different systems work together to get things done.&amp;nbsp; A brief summary of features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Publish / Subscribe model (messagebox)&lt;/li&gt;
&lt;li&gt;Adapters (Legacy application access, non based WCF ones)&lt;/li&gt;
&lt;li&gt;Configurable retry logic with send and receive of messages&lt;/li&gt;
&lt;li&gt;Flat file parsing&lt;/li&gt;
&lt;li&gt;Debatching of messages&lt;/li&gt;
&lt;li&gt;Business Activity Monitoring (BAM)&lt;/li&gt;
&lt;li&gt;Visual mapper (BizTalk mapper). Transformation defined graphically and performed in XSLT&lt;/li&gt;
&lt;li&gt;Business Rules Engine (BRE)&lt;/li&gt;
&lt;li&gt;Consuming External Web Services &amp;ndash; Reference WS and contract is generated&lt;/li&gt;
&lt;li&gt;Debugging &amp;ndash; Can be done from Visual Studio but you need to use and read the compiler&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Workflow Foundation&lt;/h3&gt;
&lt;p&gt;WF4 is a workflow platform you can use WF4 to develop any system that involve human interaction, long running feature. However, WF4 doesn't provde any adatper&amp;nbsp;like ftp, file&amp;nbsp;that can connect different system together. WF4 does't provide mapper and schema editor either. Simply put. WF4 is a platform by which you can create orchestration kind workflow in any system installed .net 4.0.&lt;/p&gt;
&lt;p&gt;The new things in the WCF4, WF4 and AppFabric space that where previously unique to BizTalk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Host out of the Box: Scalable, reliable, load balancedmonitorable&lt;/li&gt;
&lt;li&gt;Durability and persistence&lt;/li&gt;
&lt;li&gt;Suspend / resume functionality&lt;/li&gt;
&lt;li&gt;Extensive set of tools provided for IT pros to administer and track execution&lt;/li&gt;
&lt;li&gt;Health monitoring&lt;/li&gt;
&lt;li&gt;Failed-message management&lt;/li&gt;
&lt;li&gt;Message tracking + archiving and purging&lt;/li&gt;
&lt;li&gt;Long running and atomic (ACID) transactions with compensation mechanisms&lt;/li&gt;
&lt;li&gt;Consuming External Web Services &amp;ndash; Need to write some code and we&amp;rsquo;re tightly coupled&lt;/li&gt;
&lt;li&gt;Transformations - .NET Code based&lt;/li&gt;
&lt;li&gt;Debugging &amp;ndash; More natural in Visual Studio then BizTalk&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Appfabric is a enhanced WCF/WF4 service host, a place where you can host your WF and WCF application. it is kind of a plug-in for IIS7/7.5. You will gain a lot of benefit by using Appfabric. if you don't use Appfabric. IIS7 Installed with .NET 4.0 can also serve as a WF4 service host.&lt;/p&gt;
&lt;h3&gt;A Decision Matrix&lt;/h3&gt;
&lt;p&gt;When deciding on which technology to use, a decision matrix whereby the most features wins is not always the best way to go.&amp;nbsp;&amp;nbsp;You can end up with an apples-to-oranges comparison, if those features do not relate to the funtionality that you are targeting.&amp;nbsp; That being said, there is definitely overlap in what the two products provide so I considered it would be useful to have a look at the two technologies and compare the features available.&lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Biztalk&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Workflow foundation&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Latency&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;BizTalk processes are considered heavyweight and it is usually difficult to achieve very low latency with BizTalk.&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;WF workflows hosted in IIS do usually provide lower latencies than BizTalk equivalent&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Persistence&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Provides real messaging reliability. includes a SQL Server database that, among other things, provide persistance to ensure resilience in the face or hardware failures or software crash&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;The WF runtime provides services and features important when writing application logic such persistence of state, bookmarking and resumption of business logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Performance&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Streaming for large messages throttling happens automatically.&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;WF does not provide, out of the box, a streaming XSLT transform engine, suitable for processing large messages without exhausting all available server resources.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Customisable Business Rules&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;Rule engine is still the most powerfull&lt;/li&gt;
&lt;li&gt;BizTalk&amp;rsquo;s Rule Engine (BRE) is a complex and powerful Rules Engine that has many advanced features&lt;/li&gt;
&lt;li&gt;compared to the WF Rules Engine. A few of these are:&lt;/li&gt;
&lt;li&gt;An external Rules Composer application&lt;/li&gt;
&lt;li&gt;Support for forward-chaining&lt;/li&gt;
&lt;li&gt;Support for Vocabulary, which is a way to abstract the rules into domain specific (business)language.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Support for multiple fact types: XML, .NET Objects and SQL Database structures&lt;/li&gt;
&lt;li&gt;Support for multiple facts going into and coming out of the BRE&lt;/li&gt;
&lt;li&gt;A testing tool within the Rules Composer&lt;/li&gt;
&lt;li&gt;Support for versioning Rules&lt;/li&gt;
&lt;li&gt;A database rules store&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;The WF Rules Engine has:&lt;/li&gt;
&lt;li&gt;A Rules Editor that resides within Visual Studio&lt;/li&gt;
&lt;li&gt;Support for forward chaining as well as options for defining how dependencies are defined&lt;/li&gt;
&lt;li&gt;Supports .NET Objects as Facts&lt;/li&gt;
&lt;li&gt;Supports one fact going into the Rules Engine and one fact coming out&lt;/li&gt;
&lt;li&gt;No support for versioning Rules&lt;/li&gt;
&lt;li&gt;Compiled (within the workflow&amp;rsquo;s assembly) rule store (although rules can be stored in external rule stores if you build the support yourself)&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Mapping&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;BizTalk natively supports, with enhanced designers to boot, the ability to produce schemas and maps.&lt;/p&gt;
&lt;p&gt;undoubtedly a good thing in BizTalk - given that you can map either visually or directly in XSLT, you can quickly transform message formats on Ports or Orchestrations&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;you did needed a full BizTalk license for consuming a BizTalk Mapper Activity which seems to be a limiting factor in its adoption&lt;/p&gt;
&lt;p&gt;install and use the BizTalk runtime, even just for the ability to run maps inside a workflow, you have to have a BizTalk license&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Adapters&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Leave the physical technology used as an afterthought - i.e. you can implement your design at a logical level and woun't get 'bogged down' in any specific technology (MQ, WCF, SQL, FTP etc). Switching from say at file to MQ Series is as simple as changing the port configuration&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;You can, currently, use the BizTalk LOB Adapters with WF (once again with a BizTalk license).&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Operational&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;BizTalk has the following operational benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operational Management - Tracking / tracing, management of Suspended messages, SCOM integration packs, etc&lt;/li&gt;
&lt;li&gt;Scalability / Clustering / Failover capabilities, adapter retries, automated throttling, etc&lt;/li&gt;
&lt;li&gt;Business Monitoring and Eventing - BAM&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;Windows Server AppFabric provides a set of Windows Server extensions that act as an infrastructure for managing WF/WCF operations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Future&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Going forward, I anticipate that we will see more and more BizTalk functionality ported over to the IIS/AppFabric world&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;People have been predicting the end of the Biztalk product for a number of years now (I recently read a 5 year old article discussing this).&amp;nbsp; However Microsoft will soon be releasing 2013 edition so it will be here, and supported for a long time to come.&amp;nbsp; Biztalk is still the most comprehensive integration solution available.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;Useful Related Reading&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/38609/Comparison-between-Windows-Workflow-Foundation-and"&gt;Code Project -&amp;nbsp; WF vs Biztalk&lt;/a&gt;&lt;br /&gt;Comparison between Windows Workflow Foundation and Biz Talk Server&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.packtpub.com/applied-architecture-patterns-microsoft-platform/book"&gt;Applied Architecture Patterns on the Microsoft Platform&lt;/a&gt;&lt;br /&gt;Useful book that provides an architectural methodology for choosing Microsoft application platform technologies to meet the requirements of your solution.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/1480.whether-or-not-to-use-biztalk-server-or-appfabric-to-host-net-4-wcfwf-services.aspx"&gt;Hosting Comparison&lt;/a&gt;&lt;br /&gt;Whether or Not to Use Biztalk Server or AppFabric to Host .NET 4 WCF/WF Services&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cloudcasts.net/"&gt;Cloud Casts on Biztalk and AppFabric&lt;/a&gt;&lt;br /&gt;Lots of Interesting Web Casts on both Biztalk and AppFabric&lt;/li&gt;
&lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/903.aspx"&gt;Microsoft Technet - BizTalk + WF/WCF, Better Together&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://biztalkhotrod.com/Documents/BizTalk%20Smack%20Down%20Full.pdf"&gt;BizTalk vs. WF/WCF Smack Down&lt;/a&gt;&lt;br /&gt;An assessment of the technologies but on previous versions.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc303238.aspx"&gt;BizTalk Server 2006 or WF?&lt;/a&gt; &lt;br /&gt;Choosing the right workflow tool for your project - again on older versionfs of Biztalk and WF.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://seroter.wordpress.com/2011/04/03/using-the-biztalk-adapter-pack-and-appfabric-connect-in-a-workflow-service/"&gt;Using the BizTalk Adapter Pack and AppFabric Connect in a Workflow Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://seroter.wordpress.com/2010/05/24/using-the-new-biztalk-mapper-shape-in-a-windows-workflow-service/"&gt;Using the New BizTalk Mapper Shape in a Windows Workflow Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee342461.aspx"&gt;A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/107060/Managing-Workflow-Services-with-Windows-Server-App"&gt;Managing Workflow Services with Windows Server AppFabric&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Sat, 29 Dec 2012 21:56:06 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/biztalk-vs-workflow-foundation-4</guid></item><item><title>Training Resources for Biztalk Developers</title><link>http://www.net-aspect.com:80/blog/training-resources-for-biztalk-developers</link><description>&lt;p&gt;This is just a useful list of learning resources for any new or experienced Biztalk developers.&amp;nbsp; It includes virtual labs, Microsoft documentation for all recent versions, useful video tutorials and web casts, forums, blogs, white papers and courses - just about everything you will need!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/14601.training-resources-for-biztalk-administrators.aspx"&gt;Training Resources for BizTalk Administrators&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Tue, 18 Dec 2012 15:49:04 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/training-resources-for-biztalk-developers</guid></item><item><title>Stock Market/Share Sentiment Analysis Software</title><link>http://www.net-aspect.com:80/blog/stock-market-share-sentiment-analysis-software</link><description>&lt;p&gt;I have been working on a side interest project lately called &lt;a href="http://www.sentiman.co.uk/"&gt;Sentiman, which is going to analysis stock market sentiment&lt;/a&gt;. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;The web site for the site has been set up and should be launching in early in 2013.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If this is something that interests you, please follow the twitter account on the web site!&lt;/p&gt;</description><pubDate>Thu, 06 Dec 2012 23:22:43 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/stock-market-share-sentiment-analysis-software</guid></item><item><title>File receive port - files not being picked up Biztalk</title><link>http://www.net-aspect.com:80/blog/file-receive-port-files-not-being-picked-up-biztalk</link><description>&lt;p&gt;So you are dropping files to a file receive location but they are just not going anywhere.&amp;nbsp; Here are a few things to check&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The host instance associated with file adapter receive is running.&amp;nbsp; Make sure receive location is enabled.&lt;/li&gt;
&lt;li&gt;The user associated with host instance has sufficient rights to the file location. The File receive adapter also does not pick up files for which it has insufficient rights and files that cannot be exclusively locked. To correct these problems, verify the security settings of the receive location and ensure that any files present are not being held by other processes. Ensure that the service account for the BizTalk Host that picks up the file must have proper permissions&lt;/li&gt;
&lt;li&gt;The file is not read only&lt;/li&gt;
&lt;li&gt;The correct file path is specified in the receive location.&lt;/li&gt;
&lt;li&gt;The correct filter for file extention is applied in receive location configuration i.e if it set as *.txt, then this will not pick xml files.&lt;/li&gt;
&lt;li&gt;Do you see any info in event log?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A few other things to try&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The file which does not get copied, Try to cut And paste again in the same folder and see if it makes them to picked by BizTalk. Instead of copying an existing file, try creating a new file and dropping that in&lt;/li&gt;
&lt;li&gt;Try creating a new folder for receive location and put those files which does not gets copied.&lt;/li&gt;
&lt;li&gt;Try out adding another receive port at a different location and see if the files are picked up from there&lt;/li&gt;
&lt;li&gt;Check which host instance the receive port runs under, try out running your receive port under a different host instance.&amp;nbsp; Sometimes people configure all receives ports to run in one host instance, and all send ports, for instance to run in another.&lt;/li&gt;
&lt;li&gt;Have you created a new host for the adapter - make sure you've also created a host instance for it too&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also check the application you have written, have a look at any elements of it that might cause a problem eg the schemas, pipelines etc.&amp;nbsp; I recently did a flat file schema for instance that wasn't correct, it meant that the file didn't disappear from the receive location and actually caused my test version of Biztalk to seize up!&amp;nbsp; Check also that the application is not in some sort of erroneous cycle that is picking up and dropping files incorrectly to the same location or message box.&lt;/p&gt;
&lt;p&gt;If you have any other suggestions to check please post them...&lt;/p&gt;</description><pubDate>Wed, 24 Oct 2012 14:47:49 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/file-receive-port-files-not-being-picked-up-biztalk</guid></item><item><title>Failed to configure with error message [Exception of type 'System.EnterpriseServices.TransactionProxyException' was thrown.]</title><link>http://www.net-aspect.com:80/blog/failed-to-configure-with-error-message-exception-of-type-system.enterpriseservices.transactionproxyexception-was-thrown</link><description>&lt;p&gt;You may get this error when configuring Biztalk 2010 Group section in a distributed environment with Biztalk on one server and SQL server on another.&lt;/p&gt;
&lt;p&gt;There are two things you need to check first, which is that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configure Microsoft Distributed Transaction Coordinator (MS DTC) is configured.&lt;/li&gt;
&lt;li&gt;Network COM+ access considerations is enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;as per the &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6845.installing-biztalk-server-2010-in-a-basic-multi-computer-environment-en-us.aspx?Sort=MostUseful&amp;amp;PageIndex=1#x"&gt;Biztalk 2010 installation instructions on this page&lt;/a&gt;.&amp;nbsp; These are essential parts of the Biztalk installation.&lt;/p&gt;
&lt;p&gt;There are also some useful diagnostic tools on that page, in particular performing a &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6845.installing-biztalk-server-2010-in-a-basic-multi-computer-environment-en-us.aspx?Sort=MostUseful&amp;amp;PageIndex=1#qqq"&gt;DTCPing&lt;/a&gt;, and using the &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6845.installing-biztalk-server-2010-in-a-basic-multi-computer-environment-en-us.aspx?Sort=MostUseful&amp;amp;PageIndex=1#eee"&gt;DTCTester&lt;/a&gt;.&amp;nbsp; These will help you diagnose connectivity issues between your servers.&lt;/p&gt;
&lt;p&gt;Plus on these pages there is important information on configuring your Windows Firewall correctly if you have this enabled - these can cause the same error message to occur.&lt;/p&gt;
&lt;h2&gt;Issues when working in a virtualised environment.&lt;/h2&gt;
&lt;p&gt;If you are installing Biztalk in a virtual environment where the machines have been cloned then you may find that even after doing all the above you get the same error message.&lt;/p&gt;
&lt;p&gt;A very useful tool for debugging DTC is the DTCPing package, as mentioned above, I recommend testing with those to identify any issues.&amp;nbsp; When you try DTCPing you may find the following warning in the DTCPing log file after performing tests between your Biztalk and SQL servers:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;WARNING: the CID values for both test machines are the same while this problem won&amp;rsquo;t stop DTCping test, MSDTC will fail for this &amp;hellip;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you then check the registry on both machines under the HKEY_CLASSES_ROOT\CID key, there should be a group of keys there - if they have identical keys under there in both the Biztalk server and the SQL Server there then this could be the source of your problem as they need to be unique, since the CID values must differ between the servers.&lt;/p&gt;
&lt;p&gt;You can fix this by reinstalling&amp;nbsp;MSDTC on either the Biztalk server or the SQL server, I chose to do it on Biztalk.&lt;/p&gt;
&lt;p&gt;From the command prompt&lt;/p&gt;
&lt;p&gt;&lt;em&gt;msdtc -uninstall&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Reboot your machine, then...&lt;/p&gt;
&lt;p&gt;&lt;em&gt;msdtc -install&lt;/em&gt;&lt;br /&gt;&lt;em&gt;net start msdtc&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I noticed by the way that after doing this my Enterprise SSO configuration had to be first unconfigured and then reconfigured before I could proceed.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Fri, 19 Oct 2012 15:38:45 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/failed-to-configure-with-error-message-exception-of-type-system.enterpriseservices.transactionproxyexception-was-thrown</guid></item><item><title>Biztalk Configuration Error for Enterprise SSO - Failed to add the user 'domain\myuseraccount' to the domain group</title><link>http://www.net-aspect.com:80/blog/biztalk-configuration-errorfor-enterprise-sso</link><description>&lt;p&gt;I had a problem with configuring Biztalk 2010 in a distributed environment which I thought I would share.&amp;nbsp; The problem was with assigning the SSO Administrators group when configuring the Windows accounts for Enterprise SSO.&amp;nbsp; Since I was using a distributed environment I had to replace the local group name with the domain group name.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Enterprise SSO Configuration" src="/blog/Media/Default/BlogPost/net-aspect-blog/ssopic.jpg" width="650" height="532" /&gt;&lt;/p&gt;
&lt;p&gt;When I did so I got the warning icon with the detail:&lt;/p&gt;
&lt;h4&gt;"Failed to add the user 'domain\myuseraccount' to the domain group 'domain\SSO Administrators'. To add members to domain groups you must have sufficient permissions in the domain."&lt;/h4&gt;
&lt;p&gt;The error message puzzles me because I don&amp;rsquo;t know why the group name could not be found. I found it when I browsed for it, so this error message must be misleading.&amp;nbsp; Also it appears to be wanting to add my own user account to that group.&lt;/p&gt;
&lt;p&gt;There were not many posts about this on the internet however I found the following being suggested (none of which worked for myself):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One suggested to delete the existing entry and manually type in the account name - DON'T click on the ellipses (...).&lt;/li&gt;
&lt;li&gt;Strangely another post suggested - make sure you click on the ellipses when selecting the SSO Adminstrators group!&lt;/li&gt;
&lt;li&gt;There are blogs that say you need to re-register SSOSQL.DLL that is located in C:\Program Files\Common Files\Enterprise Single Sign-On&amp;nbsp;&amp;nbsp; (and also in the sub-directory&amp;nbsp; \Win32).&amp;nbsp; I tried that but it didn't work.&lt;/li&gt;
&lt;li&gt;In addition to the above I also read about the same issue occuring in Biztalk 2006, for which a patch was provided by Microsoft so it was a known issue even then, but obviously I couldn't use this as it was for a previous version.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Reason&lt;/h3&gt;
&lt;p&gt;I believe the reason for this occuring is that, according to &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6845.installing-biztalk-server-2010-in-a-basic-multi-computer-environment-en-us.aspx?Sort=MostUseful&amp;amp;PageIndex=1"&gt;Microsoft Biztalk Installation guide&lt;/a&gt;, it&amp;nbsp;states that:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The user running the BizTalk Server configuration must belong to the following user groups:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;To the Administrators group on the local computer&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;To the System Administrators group on the SQL Server computer&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;To the domain group used for the BizTalk Server Administrators group&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;And to the domain group used for the SSO Administrators group&lt;/em&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I suggest that this may be occurring because the last bullet point hasn't been implemented.&lt;/p&gt;
&lt;h3&gt;Workaround solution?&lt;/h3&gt;
&lt;p&gt;In the end I had to opt for a workaround:&lt;/p&gt;
&lt;p&gt;I temporarily added the SSO Administrators group to the Administrator group on the server itself and to the remote desktop users group.&amp;nbsp; I then logged on to the machine using the SSO Admin domain user account which was already a part of that group.&amp;nbsp; I proceeded to run the Biztalk Configuration wizard under that account.&amp;nbsp; Under these circumstances the SSO would install, since the configuration wizard, did not try to add the logged on user account (SSO admin user) to the SSO Administrators group, because it was already a member of this group.&lt;/p&gt;
&lt;p&gt;Ok - its not an ideal workaround but this was the only method that appeared to work, if you have your own suggested method please comment.&lt;/p&gt;</description><pubDate>Fri, 19 Oct 2012 13:43:10 GMT</pubDate><guid isPermaLink="true">http://www.net-aspect.com:80/blog/biztalk-configuration-errorfor-enterprise-sso</guid></item></channel></rss>