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.
About Ben Cline – 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<br />
Objectives and Takeaways<br />Introductions <br />Overview of the WCF LOB SDK<br />Demo - SqlBinding<br />Architecture of the SDK<br />Enterprise LOB and Generic Datasource Scenarios<br />Demo - SalesForceBinding<br />
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 />
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 />
Comparing WCF and WCF LOB SDK<br />WCF<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 />WCF LOB SDK<br />Adapter, client, optional service<br />Custom bindings based on binding elements<br />Add Adapter Service Reference<br />.NET compatible config file elements<br />
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 />
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 />
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 />
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 />
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 />
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 />Binding Elements if required<br />Metadata Browser and Search<br />WSDL customizations<br />
Demo – SalesForceCustomBinding<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 />