The document provides an overview of the WCF LOB SDK. It introduces the speaker and objectives. It describes the SDK's capabilities like providing wizards for creating custom binding adapters and a metadata explorer. It demonstrates using the SqlBinding in VS 2008 and shows the WCF channel model. It also discusses enterprise LOB scenarios and a demo of a SalesForce custom binding.
2. About Ben Cline – BenC@magenic.com Speaker Profile Sr. Consultant Work on BizTalk, WF, WCF, SharePoint projects Blog: msinnovations.spaces.live.com Community Focuses BizTalk MVP 2009-2010 MSDN Forums Poster, Moderator Active in testing Connect releases – VS 2010
3. Objectives and Takeaways Introductions Overview of the WCF LOB SDK Demo - SqlBinding Architecture of the SDK Enterprise LOB and Generic Datasource Scenarios Demo - SalesForceBinding
5. What is the WCF LOB SDK? Free Toolkit from Microsoft based on WCF custom bindings Provides client manageability, usability improvements for using custom bindings LOB = [classic ERP] datasource Can be used for any system that needs to provide metadata or context to developers Architectural foundation for BizTalk Adapter Pack
6. What is provided? VS client-side integration Wizards for creating custom binding adapters (Code gen) Metadata explorer WCF Service wrapper extension SDK, samples Add custom binding to machine.config code Setup project example
7. Comparing WCF and WCF LOB SDK WCF Service, client Default, standard bindings Custom bindings based on binding elements Add Service Reference .NET compatible config file elements WCF LOB SDK Adapter, client, optional service Custom bindings based on binding elements Add Adapter Service Reference .NET compatible config file elements
8. Demo - Using the sqlBinding in VS 2008 Observations Wizard-like form similar to Add Service Ref Object browser enables quick selection of datasource objects After wizard executes, new proxy class added DataContracts created for parameters, results When used with BizTalk, XSDs are generated Proxy generation options like with SvcUtil
9. WCF Channel Model WCF LOB Landscape WCF Service Model SharePoint Server BizTalk Server SQL Server Custom .NET Application ASP.NET 2.0 ADO.NET Provider BizTalk WCF Adapter WCF Adapter SDK Runtime Adapter SDK Runtime Adapter SDK Runtime Adapter SDK Runtime WCF Transport (HTTP, TCP, …) SQLAdapter Oracle DB Adapter SAP Adapter Any LOB Adapter Web Service Siebel Oracle DB SAP Any LOB System
10. Questions? FAQ: What about VS 2010 support? The add adapter service reference not showing up after install. Why? Compatible w/ EF?
12. Enterprise LOB Scenario Enterprise system storing data: SAP, Oracle, PeopleSoft, Siebel, CRM, etc. System-specific formats, connectivity, supporting infrastructure WCF LOB SDK provides foundation for custom bindings/adapters based on your code: Example: Custom Oracle binding from WCF LOB SDK + ODP.Net APIs WCF LOB SDK service wrapper acts as protocol transition/bridge layer
13. Generic Datasource Scenario LOB<T> where T : YourDataSource Foundation for exposing data or O/R layer Middle tier service layer CSLA service layer
14. Other Uses for the SDK Client for connecting to ESB or SOA resources Light weight UDDI explorer Centralize connectivity management Client for missing VS functionality – for referencing Web 2.0 services
15. Questions? FAQ: What are the licensing terms of the BizTalk Adapter Pack? What do you mean by “protocol transition” or “protocol bridging”?
17. Component Architecture WCF Application Adapter MetadataUtility Tool Run Time Design Time Channel Implementation Tracing/Perf Counters MetadataExchanger Connection URI Builder Connection PoolManagement WSDLBuilder MetadataBrowse/Search MetadataManagement WCF Connection
18. WCF LOB SDK Development Lifecycle Wizard based metadata code generation Setup projects based on samples Connection, URI, Property Grid Type Editors Binding Elements if required Metadata Browser and Search WSDL customizations
19. Demo – SalesForceCustomBinding No supported SalesForce VS extension currently was available SalesForce provides REST and SOAP APIs but has specialized implementation Async operations only exposed on REST, would be useful if called via SOAP and bridged from REST
22. Comparing WCF LOB with BizTalk WCF LOB SDK Custom Binding centric Custom Bindings shown in Add Adapter Service wizard .NET project: add adapter service Generates client proxy BizTalk Adapter centric Custom Bindings shown in WCF-Custom adapter BizTalk project: Add generated items consume adapter service Generates BizTalk schema, binding file
23. Resources WCF LOB SDK for VS 2008 (Get SP2 separately): http://www.microsoft.com/downloads/details.aspx?FamilyID=56278fde-b708-469c-987e-ded9c6c5e580&DisplayLang=en Links to Documentation, Webcasts: http://msinnovations.spaces.live.com/blog/cns!62E68922E47BC425!1169.entry
Notas del editor
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.