Windows Server AppFabric http://rickgaribay.net/category/33.aspx Windows Server AppFabric en-US Rick G. Garibay rickgaribay@hotmail.com Subtext Version 1.9.5.176 Windows Server AppFabric Cookbook Giveaways http://rickgaribay.net/archive/2012/10/09/windows-server-appfabric-cookbook-giveaways.aspx <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Windows-Server-AppFabric-Cookbook-Giveaw_BD3E/image_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Windows-Server-AppFabric-Cookbook-Giveaw_BD3E/image_thumb.png" width="95" height="116" /></a>My friend, and fellow <a href="https://mvp.support.microsoft.com/profile=CDD45B0A-BB05-44F2-A674-B7874CA4D185" target="_blank">Microsoft Integration MVP</a> <a href="twitter.com/@steefjan" target="_blank">Steef-Jan Wiggers</a> has been kind enough to organize a giveaway for my new book <a href="http://www.packtpub.com/microsoft-windows-server-appfabric-cookbook/book" target="_blank">Windows Server AppFabric Cookbook</a>.<a href="http://www.packtpub.com/"><img style="display: inline; float: right" align="right" src="http://www.emanueleferonato.com/wp-content/uploads/2010/09/packt.png" width="115" height="64" /></a></p> <p>You can learn more details about the contest on his blog: <a title="http://soa-thoughts.blogspot.nl/2012/10/microsoft-windows-server-appfabric.html" href="http://soa-thoughts.blogspot.nl/2012/10/microsoft-windows-server-appfabric.html">http://soa-thoughts.blogspot.nl/2012/10/microsoft-windows-server-appfabric.html</a></p> <p>In addition, I’m happy to announce that <a href="http://neudesic.com" target="_blank">Neudesic</a> has teamed up with <a href="http://www.packtpub.com/">Packt Publishing</a> to give away one e-book each week from 10/22 – 11/12 for a total of 3 winners. Be sure to follow <a href="http://twitter.com/neudesic" target="_blank">Neudesic</a> on twitter and stay tuned for rules and regulations beginning on Monday, October 15th. </p> <p>As I shared in <a href="http://rickgaribay.net/archive/2012/07/26/windows-server-appfabric-cookbook-is-out.aspx">my thoughts</a> when I announced the first run of the book, our goal with this book was not to promote the latest shiny object but instead to apply nearly two years of experience into a concise reference that could benefit organizations and the community tasks with building lightweight integration solutions on-premise today. As such, my hope is that what you will find is a <a href="http://neudesic.com"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="neudesic" border="0" alt="neudesic" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Windows-Server-AppFabric-Cookbook-Giveaw_BD3E/neudesic_6.jpg" width="160" height="70" /></a>trusty field guide rich with simple to follow guidance for enhancing your career as a WCF and WF developer, architect or administrator. </p> <p>I’d like to thank Steef-Jan and the community for the overwhelmingly positive response to the book so far. Hammad and I worked very hard for nearly a year on this project and it is incredibly rewarding to see praise from world renowned thought leaders in the integration space like Steef-Jan, <a href="http://seroter.wordpress.com/2012/09/14/book-review-microsoft-windows-server-appfabric-cookbook/" target="_blank">Richard Seroter</a> and others who have been very kind in validating our efforts.</p> <p>You can learn more about the book on <a href="http://www.packtpub.com/microsoft-windows-server-appfabric-cookbook/book" target="_blank">Packt’s website</a> or <a href="http://www.amazon.com/Microsoft-Windows-Server-AppFabric-Cookbook/dp/1849684189/ref=sr_1_1?ie=UTF8&amp;qid=1349814924&amp;sr=8-1&amp;keywords=windows+server+appfabric+cookbook" target="_blank">Amazon.com</a>.</p><img src="http://rickgaribay.net/aggbug/346.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2012/10/09/windows-server-appfabric-cookbook-giveaways.aspx Tue, 09 Oct 2012 21:03:57 GMT http://rickgaribay.net/archive/2012/10/09/windows-server-appfabric-cookbook-giveaways.aspx#feedback http://rickgaribay.net/comments/commentRss/346.aspx http://rickgaribay.net/services/trackbacks/346.aspx NuCon 2012&ndash;Feb 16th, Irvine, CA http://rickgaribay.net/archive/2012/01/16/nucon-2012ndashfeb-16th-irvine-ca.aspx <p>I’d like to pass on some details regarding an event I will be speaking on in Irvine, CA on February 16th.</p> <p><a href="http://www.neudesic.com/nucon/" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="NU_logo" border="0" alt="NU_logo" align="left" src="http://rickgaribay.net/Images/customcontent/Announcing-NuCon-2012_A361/NU_logo.png" width="158" height="105" /></a>NuCon is a one day conference put on by my employer, <a href="http://neudesic.com" target="_blank">Neudesic</a> that features talks and content from fellow Neudesic colleagues like <a href="https://twitter.com/#!/davidpallmann" target="_blank">David Pallmann</a>, <a href="https://twitter.com/#!/tedneward" target="_blank">Ted Neward</a> and <a href="https://twitter.com/#!/simonguest" target="_blank">Simon Guest</a>, <a href="http://www.neudesic.com/nucon/speakers.html" target="_blank">just to name a few</a>. <a href="http://www.neudesic.com/nucon/" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/Images/customcontent/Announcing-NuCon-2012_A361/image.png" width="485" height="1043" /></a></p> <p>As Irvine is Neudesic’s headquarters, the event provides a great opportunity to gain insight into the future of technology as seen by my fellow colleagues as well as providing pragmatic guidance that you can put to use the following day while networking with other Neudesic customers,  executive management, partners and thought leaders to help guide your strategy on making the most of the tremendous opportunities that the Microsoft platform and Neudesic products have to offer.</p> <p>In my talk, <a href="http://www.neudesic.com/nucon/schedule.html" target="_blank">Hybrid Composition on the Microsoft Application Integration platform</a>, I’ll share how organizations of all shapes and sizes can benefit from the improvement, automation and streamlining of their business operations through hybrid composition.</p> <p><strong><em>Abstract</em></strong> <a href="http://rickgaribay.net/Images/customcontent/Announcing-NuCon-2012_A361/image_3.png"><img style="background-image: none; border-right-width: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/Images/customcontent/Announcing-NuCon-2012_A361/image_thumb.png" width="207" height="344" /></a></p> <p>In today’s technology landscape, exposing key functional areas as traditional services or other means has become the norm for achieving agility and is a requirement for taking advantage of the dramatic improvements that modern middleware capabilities both on-premise and in the cloud provide. </p> <p>As organizations adapt to this new hybrid model, a shift from a homogenous, single product, big iron approach to heterogeneous, best in class, capability-driven model is necessary for realizing the benefits of service-orientation and enabling the composition of these services on-premise, in the cloud and behind the firewall without making big spending commitments on a product that may only meet some of these needs.</p> <p>The Microsoft platform offers a number of capabilities for achieving these goals across common Hosting, Workflow, Rules, EAI and Messaging workloads that allow you to choose the right capabilities for delivering your intended business outcomes.</p> <p>BizTalk Server 2010 and Windows Server AppFabric 1.1 provide a comprehensive middleware platform for developing, deploying, and managing composite enterprise capabilities on-premise and Windows Azure Service Bus and Access Control Service allow you to extend your investments beyond traditional trust and network boundaries making the cloud and other partner/vendor endpoints merely an extension of your enterprise. </p> <p>Come learn how Windows Server AppFabric, WCF, WF Services, BizTalk Server and Windows Azure can benefit your approach to building and supporting application services at enterprise scale while transcending traditional trust boundaries and enabling the hybrid enterprise.</p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em></em></p> <p><em>To give you an idea of the breadth and depth of the sessions, in my talk, I’ll be talking about and showing live demos of the latest capabilities that enable you to build hybrid composite solutions to drive differentiation and innovation within your organization:</em></p> <p><strong>Windows Server AppFabric 1.1 Caching (On-Prem) Featuring:</strong></p> <ul> <li>AppFabric distributed caching including implementing the Cache-Aside caching pattern and Read-Through caching, new in AppFabric 1.1  </li> </ul> <p><strong>WF 4 Workflow Services (On-Prem) Featuring:</strong></p> <ul> <li>State Machine Activity, new in .NET 4.1 and .NET 4.5  </li> <li>AppFabric Connect BizTalk Mapper for WF 4 in AppFabric Connect </li> <li>Long-running workflows </li> <li>Workflow Correlation </li> <li>Composition with WCF services in Windows Azure <br /></li> </ul> <p><strong>Windows Server AppFabric Deployment (On-Prem) Featuring:</strong></p> <ul> <li>Easy deployment with Microsoft Web Deploy </li> <li>Windows Server AppFabric Configuration Experience </li> </ul> <p><strong>WCF hosting in Windows Azure Web Roles (Cloud) Featuring:</strong></p> <ul> <li>Azure Web Role hosting </li> <li>Azure Service Bus Topic client </li> </ul> <p><strong>Azure Service Bus Brokered Messaging (Hybrid) Featuring:</strong></p> <ul> <li>Brokered messaging from Azure to on-premise custom applications behind the firewall </li> <li>Topics and Subscriptions </li> </ul> <p><strong>BizTalk Server 2010 Orchestration &amp; Messaging (On-Prem) Featuring:</strong></p> <ul> <li>Custom WCF Adapter for consuming messages off an Azure Service Bus Topic </li> <li>Support for custom WCF behaviors </li> <li>Support for hybrid ERP integration such as Dynamics CRM or SAP </li> </ul> <p>So, if you are interested in attending, please consider yourself invited! Click on the links in the invitation below to register (save $100 if you register before Feb 1) and I look forward to seeing you at NuCon 12!</p><img src="http://rickgaribay.net/aggbug/325.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2012/01/16/nucon-2012ndashfeb-16th-irvine-ca.aspx Mon, 16 Jan 2012 19:44:34 GMT http://rickgaribay.net/archive/2012/01/16/nucon-2012ndashfeb-16th-irvine-ca.aspx#feedback http://rickgaribay.net/comments/commentRss/325.aspx http://rickgaribay.net/services/trackbacks/325.aspx Getting the Most out of WCF 4.0 REST Today http://rickgaribay.net/archive/2011/10/20/getting-the-most-out-of-wcf-4.0-rest-today-again.aspx <p>WCF has supported HTTP and RESTful approaches to service design for some time now, and while there are some exciting new enhancements being worked on as part of the <a href="http://wcf.codeplex.com/" target="_blank">WCF Web API project</a>, there is some pretty rich functionality in WCF 4.0 that is definitely worth taking advantage of if you need to build HTTP/REST services today, especially when hosting in Windows Server AppFabric. <a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/4187_04_25_4.png"><img style="background-image: none; border-right-width: 0px; margin: 2px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="4187_04_25" border="0" alt="4187_04_25" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/4187_04_25_thumb_1.png" width="240" height="131" /></a></p> <p>There a number of differences to consider when working with REST services that require some special attention as compared to traditional SOAP services, and those differences are definitely noticeable when working with WCF. In this post, I’d like to highlight some of the most common capabilities that REST developers ask for and how to accomplish them in general and when hosting in IIS or Windows Server AppFabric. The WCF Web API improves upon some of the techniques I cover here and introduces new ones which I’ll be discussing in future posts. </p> <p>The first thing you want to do when working with WCF REST is pick a project template. While WCF 4 supports REST out-of-the-box (including a number of improvements over previous versions and the alignment of out-of-band features first seen in the WCF Starter Kit), the default WCF templates are really designed for SOAP-based services and thus are rather lacking for supporting REST an an intuitive, F5 manner (again, this will get better). </p> <p>Microsoft provides the <a href="http://visualstudiogallery.msdn.microsoft.com/fbc7e5c1-a0d2-41bd-9d7b-e54c845394cd" target="_blank">WCF REST Service Application template</a>  via the Visual Studio 2010 Extension Manager. In addition to some useful scaffolding for providing an F5 experience, some fundamental code and configuration is provided as part of the template which is necessary for working with a host such as IIS or Windows Server AppFabric. <a href="http://twitter.com/ronljacobs" target="_blank">Ron Jacobs</a> also has a great template specifically designed for Server AppFabric that extends the functionality in this template to support end to end monitoring and provides a web-based test harness among other things. I definitely recommend that you <a href="http://visualstudiogallery.msdn.microsoft.com/a685f193-ed1e-4ad4-938f-f0bd8212d53d" target="_blank">check it out as well</a>. </p> <p>To keep things focused on the basic aspects of WCF REST 4.0, I’ve taken the <a href="http://visualstudiogallery.msdn.microsoft.com/fbc7e5c1-a0d2-41bd-9d7b-e54c845394cd" target="_blank">WCF REST Service Application template</a> with very minor modifications and created a simple read-only GET service to illustrate some of the most common things you’re likely to hit when starting out with REST in WCF 4. </p> <p>Out of the box, the WCF REST Service Application template provides some basic scaffolding including a functional read-only (GET) REST service. While “SampleItem” is certainly not the most interesting domain, I am going to leave the sample unaltered for simplicity sake as we are going to focus more on the hosting aspects of WCF REST than the design and the code.  </p> <p>Once you create a project with the WCF REST Service Application template, there are 4 files that are created in the project:</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_16.png"><img style="background-image: none; border-right-width: 0px; margin: 2px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_thumb_7.png" width="192" height="175" /></a></p> <ul> <li>The Service1.cs file includes the definition and implementation of the service. </li> <li>The SampleItem.cs file includes the Data Contract that models a resource. </li> <li>The Global.asax file defines some key events that we’ll hook into to enable dynamic routing. </li> <li>The Web.config file includes some key configuration for enabling dynamic routing and supporting extension-less (svc-less) URIs among other things. </li> </ul> <p>The first thing you’ll probably notice in the template is that its missing an .svc file. Most REST developers would rather work with clean URIs as opposed to having a file extension get in the way. Fortunately, with a little bit of help from ASP.NET, we can leverage some pretty sophisticated routing capabilities that not only allow us to eliminate the need for the .svc extension, but in addition enable us to factor our URIs across a number of services and have some pretty fine grained control over URI routes using a templated approach.</p> <p>If you hit F5 at this point, the service will run in Cassini, generating a rather glum response (note that you may not see XML immediately depending on the browser you are using; a brute force approach is to view source or, in the case of IE9, which I am using here, leverage the browser targeting capabilities provided by the F12 developer tools):</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_18.png"><img style="background-image: none; border-right-width: 0px; margin: 2px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_thumb_8.png" width="1187" height="229" /></a></p> <p> </p> <p>If you take a look inside the Global.asax.cs files, you’ll see what makes this magic happen:</p> <pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 1: RouteTable.Routes.Add(<span style="color: #0000ff">new</span> ServiceRoute("Service1<span style="color: #8b0000"></span>", <span style="color: #0000ff">new</span> WebServiceHostFactory(), <span style="color: #0000ff">typeof</span>(Service1))); </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 2: </pre></pre> <p> </p> <p>As shown above, the template automatically added an entry to the System.Web.Routing.RouteTable. The Add method takes a ServiceRoute instance for which we provide 3 parameters:</p> <ul> <li>The first parameter is known as a route prefix and signals the root path that will be mapped to a given WCF service type. In this case, the URI segment of “Service1” will route to the Service1 class as specified in the third parameter. </li> <li>The second parameter is also interesting. Unlike traditional SOAP services that use a ServiceHost, the WebServiceHostFactory was designed to deal with HTTP-based services exclusively. </li> </ul> <p>This default code can immediately be improved upon in my opinion by replacing the route prefix with a simple empty string. This will invoke the GetCollection method in the service implementation which provides a nice, intuitive user experience when interacting with the service without knowing much about it.</p> <p>Taking a look at the service class and the GetCollection method, you will see some familiar attributes, along with the AspNetCompatabilityRequirements attribute which, among other things enables support for routing:</p> <pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 1: [ServiceContract] </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 2: [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 3: [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 4: <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> Service1 </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 5: { </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 6: [WebGet(UriTemplate = "<span style="color: #8b0000"></span>")] </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 7: <span style="color: #0000ff">public</span> List&lt;SampleItem&gt; GetCollection() </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 8: { </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 9: <span style="color: #008000">// TODO: Replace the current implementation to return a collection of SampleItem instances</span> </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 10: <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span> List&lt;SampleItem&gt;() { <span style="color: #0000ff">new</span> SampleItem() { Id = 1, StringValue = "<span style="color: #8b0000">Hello</span>" } }; </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 11: } </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 12: }</pre></pre> <p> </p> <p>All of this also requires that ASP.NET compatibility is enabled declaratively in the Web.config by setting the aspNetCompatibilityEnabled attribute to true in the serviceHostingEnvironment element:</p> <pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 1: &lt;system.serviceModel&gt; </pre><pre style="background-color: #ffff00; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 2: &lt;serviceHostingEnvironment aspNetCompatibilityEnabled="<span style="color: #8b0000">true</span>"/&gt; </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 3: &lt;standardEndpoints&gt; </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 4: &lt;webHttpEndpoint&gt; </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 5: &lt;standardEndpoint name="<span style="color: #8b0000"></span>" helpEnabled="<span style="color: #8b0000">true</span>" automaticFormatSelectionEnabled="<span style="color: #8b0000">true</span>"/&gt; </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 6: &lt;/webHttpEndpoint&gt; </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 7: &lt;/standardEndpoints&gt; </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 8: &lt;/system.serviceModel&gt;</pre></pre> <p> </p> <p>You will also notice that the web.config is absent of the boilerplate service and endpoint configuration including the address, binding and contract attributes. WCF 4 introduces the concept of default endpoints to simplify the approach for hosting services in WCF 4, which in effect automates the creation of common endpoint configurations for getting your WCF services up and running quickly and easily. Standard Endpoints build on this simplicity by providing common configurations packaged into an element and exercising convention over configuration. By using the WebHttpEndpoint standard endpoint, you are provided some common configuration knobs such as supporting multiple encoding types and help documentation that is automatically generated provided you enable the helpEnabled attribute in line 5 above:</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_26.png"><img style="background-image: none; border-right-width: 0px; margin: 2px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_thumb_12.png" width="640" height="340" /></a></p> <p>While all of this works just fine in Cassini, it won’t work in IIS/Windows Server AppFabric as without the additional configuration I am going to cover next because it (rightfully) assumes that you are asking to browse the contents of the root directory which is fortunately forbidden unless you explicitly allow it:</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_20.png"><img style="background-image: none; border-right-width: 0px; margin: 2px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_thumb_9.png" width="640" height="399" /></a></p> <p>Note that had I left the route prefix with the default “Service1”, a 404 would instead be thrown because without the correct modules, IIS has no way of routing this to the class by the same name.</p> <p>The remedy to these problems is provided by setting the runAllManagedModulesForAllRequests attribute in the modules element to true, which ensures that any requests that come into the request pipeline that are not mapped to an extension are passed on to the modules in the pipeline for processing. Specifically, the  route that was added to the Application_Start method implementation in the Global class will be used to resolve to the Service1 class by the UrlRoutingModule managed module which is registered using the configuration below and enables this routing for services that do not use the .svc extension and are hosted in IIS/Windows Server AppFabric: </p> <pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 1: <span style="color: #0000ff">&lt;</span><span style="color: #800000">system.webServer</span><span style="color: #0000ff">&gt;</span> </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 2: <span style="color: #0000ff">&lt;</span><span style="color: #800000">modules</span> <span style="color: #ff0000">runAllManagedModulesForAllRequests</span>=<span style="color: #0000ff">"true"</span><span style="color: #0000ff">&gt;</span> </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 3: <span style="color: #0000ff">&lt;</span><span style="color: #800000">add</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">"UrlRoutingModule"</span> <span style="color: #ff0000">type</span>=<span style="color: #0000ff">"System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"</span> <span style="color: #0000ff">/&gt;</span> </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 4: <span style="color: #0000ff">&lt;/</span><span style="color: #800000">modules</span><span style="color: #0000ff">&gt;</span> </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 5: <span style="color: #0000ff">&lt;/</span><span style="color: #800000">system.webServer</span><span style="color: #0000ff">&gt;</span></pre></pre> <p>It is possible, depending on your IIS configuration that the UrlRoutingModule has already been registered, in which case line 3 above is superfluous. If you comment it out and re-deploy, things will continue to work as expected unless you either remove it declaratively in the web.config or explicitly remove it from the Modules manager.</p> <p>With this configuration in place, the service will result in the request being correctly routed and the response presented in the browser:</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_22.png"><img style="background-image: none; border-right-width: 0px; margin: 2px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_thumb_10.png" width="640" height="397" /></a></p> <p>If you’re like me, you likely find the XML, or at least the root node abhorrent. We can improve upon this significantly by creating a second class to represent the SampleItem that inherits from the original List&lt;SampleItem&gt; found in the template and decorate it with a CollectionDataContract attribute. </p> <pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 1: [CollectionDataContract(Name = "<span style="color: #8b0000">SampleItems</span>",Namespace = "<span style="color: #8b0000"></span>")] </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 2: <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> SampleItems : List&lt;SampleItem&gt; </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 3: { </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 4: </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 5: }</pre></pre> <p> </p> <p>Further, if we override the Namespace by setting the Namespace parameter of the attribute and setting it to an empty string, we get a much nice, cleaner result:</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_24.png"><img style="background-image: none; border-right-width: 0px; margin: 2px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_thumb_11.png" width="640" height="427" /></a></p> <p align="center"><font size="1">Note: I have to credit this technique to <a href="http://twitter.com/#!/jonflanders" target="_blank">Jon Flanders</a>, who’s excellent book </font><a href="http://www.amazon.com/RESTful-NET-Build-Consume-Services/dp/0596519206" target="_blank"><font size="1">“Restful .NET”</font></a><font size="1">  is where I first learned this technique a couple of years ago. </font></p> <p>Some developers and administrators may be concerned about the potential performance implications that enabling the runAllManagedModulesForAllRequests attribute introduces for static requests such as HTML pages, image files, etc. since each of these requests must run through all of the configured modules unnecessarily. Fortunately, Microsoft introduced an alternative to this approach in a QFE Hotfix which enables dynamic routing without impacting static requests. You can download and install the Hotfix from here: http://support.microsoft.com/kb/980368. After installing the hotfix, three new handlers with a name prefix of ExtnesionlessUrlHandler are installed in IIS which correspond to 32, 64 bit and integrated modes and applied to all applications. With these handlers installed, you can remove or disable the runAllManagedModulesForAllRequests attribute and all routing will continue to function as expected provided the handlers remain registered as shown below.</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/4187_04_31_2.png"><img style="background-image: none; border-right-width: 0px; margin: 2px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="4187_04_31" border="0" alt="4187_04_31" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/4187_04_31_thumb.png" width="640" height="357" /></a></p> <p>As I was walking through the standard endpoint configuration, you may have noticed an attribute on the standard endpoint element called automaticFormattingEnabled. When set to true, this allows you to manipulate whether the service should return XML or JSON. According to MSDN, the determination is based on the following in order:</p> <ol> <li>The media types in the request message’s Accept header. </li> <li>The content-type of the request message. </li> <li>The default format setting in the operation. </li> <li>The default format setting in the WebHttpBehavior. <br /></li> </ol> <p>Using Fiddler, I’ve set the Accept header to application/json which has the result of returning JSON without me having to do anything to the service itself:</p> <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_28.png"><img style="background-image: none; border-right-width: 0px; margin: 2px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/41cd8fc99175_1348A/image_thumb_13.png" width="640" height="367" /></a></p> <p>Of course, you can have the service return plain text or a stream, but to do so today, you need to implement a custom mechanism for passing the format you need such as a querystring  and then writing some code to read it and return the appropriate expected format.</p> <p>Finally, one of the biggest benefits of designing REST services, or services that leverage the HTTP protocol exclusively, is that you get all of the features inherent to the HTTP protocol including support for caching requests, or GET requests. By adding an attribute called AspNetCacheProfile to the GetCollection method and mapping the profile name in the web.config, I can leverage the caching capabilities in ASP.NET to cache GET requests:</p> <pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 1: [WebGet(UriTemplate = "<span style="color: #8b0000"></span>")] </pre><pre style="background-color: #ffff00; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 2: [AspNetCacheProfile("<span style="color: #8b0000">MyCacheProfile</span>")] </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 3: <span style="color: #0000ff">public</span> SingleTracks GetCollection() </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 4: { </pre><pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 5: <span style="color: #0000ff">return</span> GetSingleTracks(); </pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 6: } </pre></pre> <p> </p> <p>As I hope I’ve shown, there is pretty strong support for REST in WCF 4, both in the box and as provided by the WCF REST specific templates which allows you to easily host your WCF REST services on any host, including Windows Server AppFabric which allows you to take advantage of all of the great management and monitoring capabilities it provides. New features in the WCF Web API will make it even easier to host HTTP/REST services with WCF, so watch this space for some upcoming posts and be sure to keep up with the latest developments on the WCF Community Site at <a title="http://wcf.codeplex.com/" href="http://wcf.codeplex.com/">http://wcf.codeplex.com/</a>.</p><img src="http://rickgaribay.net/aggbug/319.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2011/10/20/getting-the-most-out-of-wcf-4.0-rest-today-again.aspx Fri, 21 Oct 2011 06:09:10 GMT http://rickgaribay.net/archive/2011/10/20/getting-the-most-out-of-wcf-4.0-rest-today-again.aspx#feedback http://rickgaribay.net/comments/commentRss/319.aspx http://rickgaribay.net/services/trackbacks/319.aspx Microsoft Business Integration Roadshow&ndash;The Goods http://rickgaribay.net/archive/2011/05/02/microsoft-business-integration-roadshowndashthe-goods.aspx <p><a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Microsoft-Business-Integration-Roadshow_8395/clip_image002_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" hspace="12" alt="clip_image002" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Microsoft-Business-Integration-Roadshow_8395/clip_image002_thumb.png" width="244" height="184" /></a></p> <p>We just wrapped up a great roadshow with Microsoft in 5 US cities including Philadelphia, Columbus, Houston, Phoenix and Mountain View highlighting the exciting new developments in the AppFabric platform.</p> <p>The event included a keynote briefing by a Microsoft Product Manager, a deep dive technical session led by our Connected Systems consultants and either a customer session or “Ask the Experts” panel to wrap things up.  </p> <p>The event was well received and there was lots of good discussion and questions.</p> <p>As promised, I am posting the deck as well as a link to a recorded version of the presentation for those who attended and would like to reference the material or those who were unable to attend. </p> <p>Abstract: <strong><em>Building Composite Application Services with AppFabric and BizTalk Server 2010</em></strong></p> <p>BizTalk Server 2010 and AppFabric provide a comprehensive middleware platform for developing, deploying, and managing composite enterprise capabilities both on-premise and in the cloud. Come learn how AppFabric and BizTalk Server can benefit your approach to building and supporting application services at enterprise scale while transcending traditional trust boundaries and enabling the hybrid enterprise.</p> <p>Special thanks to the Neudesic team, including Justin Yanta, Monish Nagisetty, Brendon Birdoes and Stuart Celearier for doing such a great job on the deep dive sessions!</p> <br /><iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 229px; padding-right: 0px; height: 66px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.office.live.com/embedrowdetail.aspx/Public/Talks/Microsoft%20Business%20Integration%20Roadshow/Building%20Composite%20Enterprise%20Hybrid%20Services%20with%20BizTalk%202010%20and%20AppFabric.pdf" frameborder="0" marginwidth="0" scrolling="no"></iframe><iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 229px; padding-right: 0px; height: 66px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.office.live.com/embedrowdetail.aspx/Public/Talks/Microsoft%20Business%20Integration%20Roadshow/livemeeting[1].wmv" frameborder="0" marginwidth="0" scrolling="no"></iframe> <p><font size="1">Note: Session starts at 2:30 mark.</font></p><img src="http://rickgaribay.net/aggbug/305.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2011/05/02/microsoft-business-integration-roadshowndashthe-goods.aspx Mon, 02 May 2011 18:03:56 GMT http://rickgaribay.net/archive/2011/05/02/microsoft-business-integration-roadshowndashthe-goods.aspx#feedback http://rickgaribay.net/comments/commentRss/305.aspx http://rickgaribay.net/services/trackbacks/305.aspx DB Tech Con 2011 http://rickgaribay.net/archive/2011/03/18/db-tech-con-2011.aspx <p><a href="https://www.vconferenceonline.com/event/regeventp.aspx?id=169"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="dbtechconbannerad" alt="dbtechconbannerad" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/5f7265b713fc_CA5A/dbtechconbannerad_3.gif" width="728" height="90" /></a></p> <p>I had the privilege of recording 3 sessions in the SSWUG studio this week for the upcoming DB Tech Con conference on April 20-22. This is the largest online conference in IT the world, with speakers covering topics ranging from .NET, SQL Server and cloud.</p> <p>The focus of my track is all about hybrid solutions in the enterprise and how you can take advantage of AppFabric and BizTalk as a comprehensive platform for building on-premise solutions that take advantage of the cloud in a pragmatic way.</p> <p>You can find the full session schedule by clicking <a href="http://www.vconferenceonline.com/event/sessions.aspx?id=169&amp;offset=7">here</a> and below is an abstract of my sessions that will air starting April 20th: </p> <p><strong>Building Occasionally Connected Hybrid Applications </strong></p> <p>Keeping applications and devices synchronized with a company’s back office is a common challenge. Retail, transportation and oil and gas are just a few industries that rely on the ability of software solution deployed outside of the data center to be respond to external events that may occur virtually anywhere. As organizations move certain assets to the cloud, occasionally connected applications are becoming the norm, creating a new breed of hybrid applications. In this session, learn how to implement a sophisticated pattern for enabling push synchronization across your applications and services using Microsoft Sync Framework, SQL Azure and WCF 4.</p> <p><strong>Building Composite Enterprise Hybrid Services with AppFabric and BizTalk 2010</strong> <a href="https://www.vconferenceonline.com/event/regeventp.aspx?id=169"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="" border="0" alt="" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/5f7265b713fc_CA5A/sswug_button_spring2011_3.png" width="240" height="80" /></a></p> <p>AppFabric and BizTalk 2010 provide a comprehensive middleware platform for developing, deploying, and managing composite enterprise capabilities both on-premise and in the cloud. Come learn how AppFabric and BizTalk Server can benefit your approach to building and supporting application services at enterprise scale while transcending traditional trust boundaries and enabling the hybrid enterprise. </p> <p><strong>Hosting WF Services in Windows Azure, Today &amp; Tomorrow </strong></p> <p>Workflow Services bring many benefits that help you build modern, responsive composite applications. Learn best practice for building and hosting Workflow Services on-premise as well as how you can take advantage of Windows Azure for hosting your workflow services today along with improvements coming to Windows Azure which will make hosting your workflow services in Azure more compelling than ever. </p> <p>The good folks at SSWUG are offering a $30 discount code on registration for anyone who provides a discount code of <strong>SP11DBTechRG </strong>during registration. If you’ve already registered, you can take advantage of this discount by updating your registration and providing the code.</p> <p>If you are planning on attending, drop me a line on <a href="http://twitter.com/rickggaribay" target="_blank">twitter</a> and be sure to say hi in the chat room when my sessions air.</p><img src="http://rickgaribay.net/aggbug/304.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2011/03/18/db-tech-con-2011.aspx Fri, 18 Mar 2011 21:38:03 GMT http://rickgaribay.net/archive/2011/03/18/db-tech-con-2011.aspx#feedback http://rickgaribay.net/comments/commentRss/304.aspx http://rickgaribay.net/services/trackbacks/304.aspx BizTalk &amp; AppFabric Interview on Computer Outlook Radio Show http://rickgaribay.net/archive/2011/02/26/biztalk-amp-appfabric-on-computer-outlook-radio-show.aspx <p>I was recently interviewed on The <a href="http://www.computeroutlook.com/index.php" target="_blank">Computer Outlook Radio Show</a> with John Iasiuolo, David Lynn, Neudesic colleague John Vogely  and Woody Pewitt and had a lot of fun talking briefly about BizTalk and AppFabric.</p> <p>Thanks to John Iasiuolo show host and David Lynn of Microsoft for bringing me on the show. I had a lot of fun and look forward to doing a more in depth show in the next few weeks.</p> <p>Here’s the link to the show for anyone interested: <a title="http://www.computeroutlook.com/_computeroutlookrts/z_station-CO.php?date=021611" href="http://www.computeroutlook.com/_computeroutlookrts/z_station-CO.php?date=021611">http://www.computeroutlook.com/_computeroutlookrts/z_station-CO.php?date=021611</a> </p> <p>Please see here for a list of archives:</p> <p><a title="http://www.computeroutlook.com/dailyshows.php" href="http://www.computeroutlook.com/dailyshows.php">http://www.computeroutlook.com/dailyshows.php</a></p><img src="http://rickgaribay.net/aggbug/302.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2011/02/26/biztalk-amp-appfabric-on-computer-outlook-radio-show.aspx Sat, 26 Feb 2011 18:52:48 GMT http://rickgaribay.net/archive/2011/02/26/biztalk-amp-appfabric-on-computer-outlook-radio-show.aspx#feedback http://rickgaribay.net/comments/commentRss/302.aspx http://rickgaribay.net/services/trackbacks/302.aspx Richard Seroter's Architecture Musings http://rickgaribay.net/archive/2011/02/01/richard-seroters-architecture-musings.aspx <p>I am honored to have been invited by Richard Seroter to participate in his 27th interview in his series on Connected Systems technology for February 2011.<a href="http://http://seroter.wordpress.com/" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/cfa0742d639f_A84D/image_3.png" width="240" height="65" /></a></p> <p>Richard is an absolute thought leader in the CSD space and epitomizes much of what we discussed in his day-to-day role as a Solution Architect for his very lucky employer. His blog posts, articles, speaking engagements and books cover the full breadth of the Microsoft middleware stack and his command of the technology and breadth is truly an achievement to aspire to.</p> <p>As we discuss, there really has never been a better time for the Microsoft platform, and I believe that AppFabric really is a unification of on-premise workloads while providing first-class tooling for cloud and hybrid.</p> <p>You can read the full interview here: <a title="http://seroter.wordpress.com/2011/01/31/interview-series-four-questions-with-rick-garibay/" href="http://seroter.wordpress.com/2011/01/31/interview-series-four-questions-with-rick-garibay/">http://seroter.wordpress.com/2011/01/31/interview-series-four-questions-with-rick-garibay/</a> </p> <p>I’d love your thoughts and comments and would also encourage you to read the other interviews in the series: <a title="http://seroter.wordpress.com/category/four-questions/" href="http://seroter.wordpress.com/category/four-questions/">http://seroter.wordpress.com/category/four-questions/</a></p><img src="http://rickgaribay.net/aggbug/300.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2011/02/01/richard-seroters-architecture-musings.aspx Tue, 01 Feb 2011 19:42:16 GMT http://rickgaribay.net/archive/2011/02/01/richard-seroters-architecture-musings.aspx#feedback http://rickgaribay.net/comments/commentRss/300.aspx http://rickgaribay.net/services/trackbacks/300.aspx Latest Talk on AppFabric Service Bus http://rickgaribay.net/archive/2011/01/12/neudesic-appfabric-webcast-series.aspx <p>AppFabric provides a comprehensive middleware platform for developin<a href="http://msdn.microsoft.com/appfabric" target="_blank"><img style="margin: 5px; display: inline; float: right" title="Windows_Server_AppFabric" alt="Windows_Server_AppFabric" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/fc4ae4a554ee_102FE/Windows_Server_AppFabric_3.jpg" width="240" height="53" /></a>g, deploying and managing applications both on premise and in the cloud.</p> <p>In this 3rd installment of the 4-part AppFabric Webcast series, I talk about how pivotal the AppFabric Service Bus is to realizing the pragmatic benefits of the cloud and demonstrate one way, multicast and direct communication modes.</p> <p><strong>Abstract<a href="http://msdn.microsoft.com/appfabric" target="_blank"><img style="display: inline; float: right" title="windows_azure_app_fabric" alt="windows_azure_app_fabric" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/fc4ae4a554ee_102FE/windows_azure_app_fabric_3.png" width="240" height="64" /></a></strong></p> <p>The cloud is here. No longer just an interesting future technology, it is one that developers, architects and CXOs must leverage if they want to remain competitive and fiscally responsible. How do organizations maximize their investments in current on-premise assets while taking advantage of the dramatic cost and reliability benefits that the cloud offers? More importantly, how can organizations bridge on-premise applications with new capabilities in the cloud or shatter boundaries and limitations that today greatly inhibit composing business processes across private clouds? </p> <p>In this session, you'll understand the problem domain that software + services forces us to reason about and how the AppFabric Service Bus can help. You'll learn how to expose your on-premise applications and services through firewalls, NAT gateways, and other problematic network boundaries while leveraging the WCF skills you already have.</p> <p><strong>Download: <a href="http://www.neudesic.com/Media/Webcasts/20110112/20110112.wmv">http://www.neudesic.com/Media/Webcasts/20110112/20110112.wmv</a></strong></p><img src="http://rickgaribay.net/aggbug/299.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2011/01/12/neudesic-appfabric-webcast-series.aspx Thu, 13 Jan 2011 01:37:42 GMT http://rickgaribay.net/archive/2011/01/12/neudesic-appfabric-webcast-series.aspx#feedback http://rickgaribay.net/comments/commentRss/299.aspx http://rickgaribay.net/services/trackbacks/299.aspx Pat Filoteo and Fellow MVPs on AppFabric &amp; More http://rickgaribay.net/archive/2010/12/11/pat-filoteo-david-pallmann-and-fellow-mvps-on-appfabric-amp.aspx <p>I was fortunate to participate in a one hour discussion with Microsoft architect Pat Filoteo and a few fellow MVPs including my Neudesic colleague David Pallmann on Windows Azure and AppFabric a few weeks ago when I was on campus for PDC 10.</p> <p>The discussion was filmed and posted by the MVP team, uncut in its entirety.</p> <p>In the segment below, we talk about the potential for AppFabric to transform how we think about composite applications and how important hybrid composition will be to the enterprise as it identifies the chemistry and seeks the right psychology for leveraging the cloud in a manner that leads to increased effectiveness while preserving and more importantly extending the reach of on-premise assets to the cloud and beyond.</p> <iframe class="youtube-player" title="YouTube video player" height="345" src="http://www.youtube.com/embed/3_j6Pyxskxo?rel=0&amp;hd=1" frameborder="0" width="560" type="text/html"></iframe> <p> </p> <p>If you are interested in watching all segments, please check out the MVP Award Blog: <a title="http://blogs.msdn.com/b/mvpawardprogram/archive/2010/12/08/windows-azure-q-amp-a-discussion-with-microsoft-azure-architect.aspx" href="http://blogs.msdn.com/b/mvpawardprogram/archive/2010/12/08/windows-azure-q-amp-a-discussion-with-microsoft-azure-architect.aspx">http://blogs.msdn.com/b/mvpawardprogram/archive/2010/12/08/windows-azure-q-amp-a-discussion-with-microsoft-azure-architect.aspx</a></p><img src="http://rickgaribay.net/aggbug/298.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2010/12/11/pat-filoteo-david-pallmann-and-fellow-mvps-on-appfabric-amp.aspx Sat, 11 Dec 2010 22:17:54 GMT http://rickgaribay.net/archive/2010/12/11/pat-filoteo-david-pallmann-and-fellow-mvps-on-appfabric-amp.aspx#feedback http://rickgaribay.net/comments/commentRss/298.aspx http://rickgaribay.net/services/trackbacks/298.aspx Composite Applications Roadshow &ndash; Dallas &amp; Houston http://rickgaribay.net/archive/2010/12/08/composite-applications-roadshow-ndash-dallas-amp-houston.aspx <p>Microsoft is hosting a two events in Dallas and Houston on 12/8 and 12/9 covering composite application scenarios, governance, composite application roadmap <a href="http://rickgaribay.net/Images/CustomContent/CompositeApplicationsRoadshowDallasHoust_9539/image.png"><img style="border-right-width: 0px; margin: 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/Images/CustomContent/CompositeApplicationsRoadshowDallasHoust_9539/image_thumb.png" width="240" height="166" /></a>and upgrading to BizTalk Server 2010.</p> <p>I just got done presenting the keynote, “Building Composite Application Services with AppFabric” at the <a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032469798&amp;IO=yYlyYbHfpM%2b6sI%2bE0S6sNQ%3d%3d" target="_blank">Microsoft Las Colinas Campus in Dallas</a> and will be presenting once again at the <a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032469800&amp;IO=ycqB%2bGJQr78fJBMJTye1oA%3d%3d" target="_blank">Houston Microsoft Campus tomorrow</a> (12/9), so if you are in the area but missed today’s event, please feel free to register and attend: <a title="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032469800&amp;IO=ycqB%2bGJQr78fJBMJTye1oA%3d%3d" href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032469800&amp;IO=ycqB%2bGJQr78fJBMJTye1oA%3d%3d">https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032469800&amp;IO=ycqB%2bGJQr78fJBMJTye1oA%3d%3d</a> </p> <p>In this session, I cover how to enable hybrid composition scenarios leveraging AppFabric, Azure and BizTalk Server 2010 by looking at a hybrid travel &amp; hospitality scenario that manages reservation requests on-premise by composing services hosted in an Azure Web Role and a BizTalk Server 2010 Orchestration hosted out in the edge (such as a restaurant location itself) which receives new reservation manifests and reserves a table. The on-premise application is implemented with WF 4 as a Workflow Service and is hosted in Server AppFabric and consumes a WCF 4 service hosted in an Azure Web Role which in turn consumes the BizTalk Orchestration using AppFabric Connect for Web Services.</p> <p>Below is the agenda for both events and I am also attaching the deck from my talk for any attendees or others who would like to reference it.</p> <table border="0" cellspacing="0" cellpadding="2" width="1087"><tbody> <tr> <td valign="top" width="729"> <p><b>09:00 – 10:00</b>  Composite Application (Windows AppFabric, Azure AppFabric, BizTalk 2010)  </p> <p><b>10:00 – 11:00</b>  Accelerate Adoption of SOA – Tools, Best Practices, Governance<b> </b></p> <p><b>11:00 – 12:00</b>  BizTalk 2010 and Beyond Roadmap </p> <p><b>12:00 – 01:00</b>  (Lunch) Upgrading BizTalk Server 2006 R2 / BizTalk 2009 to BizTalk 2010</p> </td> <td width="426" align="center"><iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 353px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/Composite%20Applications%20Roadshow%20%e2%80%93%20Dallas%20^0%20Houston/Building%20Composite%20Application%20Services%20with%20AppFabric%20Garibay.pdf" frameborder="0" marginwidth="0" scrolling="no"></iframe></td> </tr> </tbody></table><img src="http://rickgaribay.net/aggbug/297.aspx" width="1" height="1" /> Rick G. Garibay http://rickgaribay.net/archive/2010/12/08/composite-applications-roadshow-ndash-dallas-amp-houston.aspx Wed, 08 Dec 2010 17:44:26 GMT http://rickgaribay.net/archive/2010/12/08/composite-applications-roadshow-ndash-dallas-amp-houston.aspx#feedback http://rickgaribay.net/comments/commentRss/297.aspx http://rickgaribay.net/services/trackbacks/297.aspx