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.
Exploring the WCF LOB SDK Ben Cline Sr. Consultant, BizTalk MVP
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
Objectives and Takeaways Introductions Overview of the WCF LOB SDK Demo - SqlBinding Architecture of the SDK Enterprise LOB and Generic Datasource Scenarios Demo - SalesForceBinding
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
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
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
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
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
Questions? FAQ: What about VS 2010 support? The add adapter service reference not showing up after install. Why? Compatible w/ EF?
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
Generic Datasource Scenario LOB<T> where T : YourDataSource Foundation for exposing data or O/R layer Middle tier service layer CSLA service layer
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
Questions? FAQ: What are the licensing terms of the BizTalk Adapter Pack? What do you mean by “protocol transition” or “protocol bridging”?
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
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
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