Exploring the WCF LOB SDK<br />Ben Cline<br />Sr. Consultant at Magenic, BizTalk MVP<br />
About Me – BenC@magenic.com<br />Speaker Profile<br />Sr. Consultant<br />Work on BizTalk, WF, WCF, SharePoint projects<br...
    Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 ...
What is the WCF LOB SDK?<br />Free Toolkit from Microsoft based on WCF custom bindings<br />Provides client manageability,...
What is provided?<br />VS client-side integration<br />Wizards for creating custom binding adapters (Code gen)<br />Metada...
Example of a custom binding (WCF)<br /><configuration><br />    <system.serviceModel> <br />       <bindings><br /><custom...
Bindings, bindings everywhere<br />basicHttp<br />Web ServiceRelated<br />wsHttp<br />wsFed<br />wsContext<br />Not Web Se...
WCF vs. WCF LOB SDK<br />WCF<br />WCF LOB SDK<br />Service, client<br />Default, standard bindings<br />Custom bindings ba...
WCF Channel Model<br />WCF Binding/Adapter Landscape<br />WCF Service Model<br />SharePoint<br />Server<br />BizTalk Serve...
Questions?<br />FAQ:<br />What about VS 2010 support?<br />The add adapter service reference not showing up after install....
    Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 ...
Demo - Using the SqlBinding in VS 2008<br />Observations<br />Wizard-like form similar to Add Service Ref<br />Object brow...
    Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 ...
Enterprise LOB Scenario<br />Enterprise system storing data: SAP, Oracle, PeopleSoft, Siebel, CRM, etc.<br />System-specif...
Generic Datasource Scenario<br />LOB<T> where T : YourDataSource<br />Foundation for exposing data or O/R layer<br />Middl...
Other Uses for the SDK<br />Client for connecting to ESB or SOA resources<br />Light weight UDDI explorer<br />Centralize ...
Questions?<br />FAQ:<br />What are the licensing terms of the BizTalk Adapter Pack?<br />What do you mean by “protocol tra...
    Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 ...
Component Architecture<br />WCF Application<br />Adapter MetadataUtility Tool<br />Run Time<br />Design Time<br />Channel ...
WCF & LOB SDK Namespaces<br />Channels<br />Common<br />System.ServiceModel<br />Configuration<br />Description<br />Commo...
WCF LOB SDK Development Lifecycle<br />Wizard based metadata code generation<br />Setup projects based on samples<br />Con...
    Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 ...
Demo – SalesForceCustomBinding<br />Why create a SalesForce binding?<br />No supported SalesForce VS extension currently w...
    Appendix<br />
Comparing WCF LOB with BizTalk<br />WCF LOB SDK<br />BizTalk<br />Custom Binding centric<br />Custom Bindings shown in Add...
Upcoming SlideShare
Loading in …5
×

WCF LOB SDK at CNUG

910 views

Published on

This was a revised version of my CodeMastery presentation I did at the Chicago .NET Users Group.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
910
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Brackets show the “classic ERP” part of the datasource is optionalWhy have I not heard of this before? - Probably because it is so closely related to BizTalk or because it has not been merged into System.ServiceModel and the core .NET framework.
  • - If you have tried creating a custom binding on your own you know it requires quite a bit of custom code for implementing the channels, extension behaviors (if necessary), binding elements, etc., and any deployment related artifacts. Doing all of these steps involved quite a bit of work and was almost prohibitively costly for the relatively low gain of the custom binding. With the SDK it is much easier to create a custom binding in a few hours. - Some of the things provided here would be useful just for harvesting and incorporating in your own projects.
  • Notice the difference in terminology regarding the service. An adapter is another name for a custom binding. In the BizTalk sense a custom binding functions similar to a custom adapterBuilt on some of the familiar things from .NET and extended just a little.
  • This demo shows use of the sqlBinding which is in the BizTalk adapter pack but illustrates what can be done with a custom binding created through the WCF LOB SDK.
  • With .NET 4, protocol transitioning or bridging is provided out-of-the-box, and you do not need to expose one service to feed off some other one, effectively wrapping the logic twice. The WCF LOB SDK service wrapper provides a rudimentary similarity – you only expose one service.
  • WCF LOB SDK at CNUG

    1. 1. Exploring the WCF LOB SDK<br />Ben Cline<br />Sr. Consultant at Magenic, BizTalk MVP<br />
    2. 2. About Me – BenC@magenic.com<br />Speaker Profile<br />Sr. Consultant<br />Work on BizTalk, WF, WCF, SharePoint projects<br />Blog: msinnovations.spaces.live.com<br />Community Focuses<br />BizTalk MVP 2009-2010<br />MSDN Forums Poster, Moderator<br />Active in testing Connect releases – VS 2010, BizTalk 2009, 2010<br />
    3. 3. Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 Architecture of the SDK<br />5 Demo - SalesForceBinding<br />
    4. 4. What is the WCF LOB SDK?<br />Free Toolkit from Microsoft based on WCF custom bindings<br />Provides client manageability, usability improvements for using custom bindings<br />LOB = [classic ERP] datasource<br />Can be used for any system that needs to provide metadata or context to developers<br />Architectural foundation for BizTalk Adapter Pack<br />
    5. 5. What is provided?<br />VS client-side integration<br />Wizards for creating custom binding adapters (Code gen)<br />Metadata explorer<br />WCF Service wrapper extension<br />SDK, samples<br />Add custom binding to machine.config code<br />Setup project example<br />
    6. 6. Example of a custom binding (WCF)<br /><configuration><br /> <system.serviceModel> <br /> <bindings><br /><customBinding> <br /> <binding name="myBinding"> <br /> <textMessageEncodingmessageVersion="Soap11" /> <br /> <httpTransport /> <br /> </binding> <br /> </customBinding> <br /> </bindings> <br /><services> <br /> <service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior" name="WcfServiceLibrary1.Service1"><br /> <endpoint address="" binding="customBinding" bindingConfiguration="myBinding" contract="WcfServiceLibrary1.IService1"> </endpoint>…<br />
    7. 7. Bindings, bindings everywhere<br />basicHttp<br />Web ServiceRelated<br />wsHttp<br />wsFed<br />wsContext<br />Not Web Service Related<br />netMSMQ<br />SqlBinding<br />OracleBinding<br />msmqInt<br />More Common Use<br />Less Common Use<br />
    8. 8. WCF vs. WCF LOB SDK<br />WCF<br />WCF LOB SDK<br />Service, client<br />Default, standard bindings<br />Custom bindings based on binding elements<br />Add Service Reference<br />.NET compatible config file elements<br />Adapter, client, optional service<br />Custom bindings based on binding elements<br />Add Adapter Service Reference<br />.NET compatible config file elements<br />
    9. 9. WCF Channel Model<br />WCF Binding/Adapter Landscape<br />WCF Service Model<br />SharePoint<br />Server<br />BizTalk Server<br />SQL<br />Server<br />Custom<br />.NET<br />Application<br />ASP.NET 2.0<br />ADO.NET<br />Provider<br />BizTalk WCF<br />Adapter<br />WCF<br />Adapter SDK Runtime<br />Adapter SDK Runtime<br />Adapter SDK Runtime<br />Adapter SDK Runtime<br />WCF Transport<br />(HTTP, TCP, …)<br />SQLAdapter<br />Oracle DB<br />Adapter<br />SAP Adapter<br />Any LOB<br />Adapter<br />Web Service<br />Siebel<br />Oracle DB<br />SAP<br />Any LOB System<br />
    10. 10. Questions?<br />FAQ:<br />What about VS 2010 support?<br />The add adapter service reference not showing up after install. Why?<br />Compatible w/ EF?<br />Isn’t this just another way to call the database?<br />
    11. 11. Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 Architecture of the SDK<br />5 Demo - SalesForceBinding<br />
    12. 12. Demo - Using the SqlBinding in VS 2008<br />Observations<br />Wizard-like form similar to Add Service Ref<br />Object browser enables quick selection of datasource objects<br />After wizard executes, new proxy class added<br />DataContracts created for parameters, results<br />When used with BizTalk, XSDs are generated<br />Proxy generation options like with SvcUtil<br />
    13. 13. Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 Architecture of the SDK<br />5 Demo - SalesForceBinding<br />
    14. 14. Enterprise LOB Scenario<br />Enterprise system storing data: SAP, Oracle, PeopleSoft, Siebel, CRM, etc.<br />System-specific formats, connectivity, supporting infrastructure<br />WCF LOB SDK provides foundation for custom bindings/adapters based on your code:<br />Example: Custom Oracle binding from WCF LOB SDK + ODP.Net APIs<br />WCF LOB SDK service wrapper acts as protocol transition/bridge layer<br />
    15. 15. Generic Datasource Scenario<br />LOB<T> where T : YourDataSource<br />Foundation for exposing data or O/R layer<br />Middle tier service layer<br />CSLA service layer<br />API obfuscation<br />
    16. 16. Other Uses for the SDK<br />Client for connecting to ESB or SOA resources<br />Light weight UDDI explorer<br />Centralize connectivity management<br />Client for missing VS functionality – for referencing Web 2.0 services<br />Extend existing features of BizTalk Adapter Pack<br />
    17. 17. Questions?<br />FAQ:<br />What are the licensing terms of the BizTalk Adapter Pack?<br />What do you mean by “protocol transition” or “protocol bridging”?<br />
    18. 18. Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 Architecture of the SDK<br />5 Demo - SalesForceBinding<br />
    19. 19. Component Architecture<br />WCF Application<br />Adapter MetadataUtility Tool<br />Run Time<br />Design Time<br />Channel Implementation<br />Tracing/Perf Counters<br />MetadataExchanger<br />Connection URI Builder<br />Connection PoolManagement<br />WSDLBuilder<br />MetadataBrowse/Search<br />MetadataManagement<br />WCF Connection<br />
    20. 20. WCF & LOB SDK Namespaces<br />Channels<br />Common<br />System.ServiceModel<br />Configuration<br />Description<br />Common<br />Microsoft.ServiceModel<br />Channels<br />Tools.MetadataSearchBrowse<br />
    21. 21. WCF LOB SDK Development Lifecycle<br />Wizard based metadata code generation<br />Setup projects based on samples<br />Connection, URI, Property Grid Type Editors<br />Connectivity Logic to Integrate with Target System(s)<br />Binding Elements if required<br />Metadata Browser and Search<br />Proxy and XSD type generation customization<br />
    22. 22. Agenda<br />1 Overview of the WCF LOB SDK<br />2 Demo – SqlBinding<br />3 Enterprise LOB and Generic Scenarios<br />4 Architecture of the SDK<br />5 Demo - SalesForceBinding<br />
    23. 23. Demo – SalesForceCustomBinding<br />Why create a SalesForce binding?<br />No supported SalesForce VS extension currently was available<br />SalesForce provides REST and SOAP APIs but has specialized implementation<br />Async operations only exposed on REST, would be useful if called via SOAP and bridged from REST<br />What does this demonstrate?<br />Property grid customizations make for better UI Experience<br />.NET invocation helpful for BizTalk<br />Little code required to generate proxy, XSDs<br />
    24. 24. Appendix<br />
    25. 25. Comparing WCF LOB with BizTalk<br />WCF LOB SDK<br />BizTalk<br />Custom Binding centric<br />Custom Bindings shown in Add Adapter Service wizard<br />.NET project: add adapter service<br />Generates client proxy<br />Adapter centric<br />Custom Bindings shown in WCF-Custom adapter<br />BizTalk project: Add generated items consume adapter service<br />Generates BizTalk schema, binding file<br />
    26. 26. Comparing Adapter Models<br />Adapter Framework Adapter<br />WCF LOB SDK Adapter<br />No built-in code gen<br />Limited VS integration<br />Simpler development process<br />Requires .NET wrapper for non BizTalk invocation<br />Built-in code gen<br />More extensive VS integration<br />More complicated development process<br />Callable directly from .NET assemblies<br />
    27. 27. Resources<br />WCF LOB SDK for VS 2008 (Get SP2 separately):<br />http://www.microsoft.com/downloads/details.aspx?FamilyID=56278fde-b708-469c-987e-ded9c6c5e580&DisplayLang=en<br />Links to Documentation, Webcasts: http://msinnovations.spaces.live.com/blog/cns!62E68922E47BC425!1169.entry<br />

    ×