wcf lob sdk from codemastery
TRANSCRIPT
EXPLORING THE WCF LOB SDKBEN CLINESr. Consultant, BizTalk MVP
About Ben Cline – [email protected]
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
OVERVIEW OF THE WCF LOB SDK
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
Web Service
BizTalk ServerBizTalk WCF
Adapter
WCF Channel Model
WCF Service Model
WCF Transport
(HTTP, TCP, …)
WCF
Custom.NET
Application
SharePointServer
ASP.NET 2.0
WCF LOB Landscape
SAP Adapter
Adapter SDK
RuntimeSQL
Adapter
Adapter SDK Runtime
Oracle DBAdapter
Adapter SDK Runtime
SQLServer
ADO.NETProvider
SAP Siebel Oracle DBAny LOB System
Any LOBAdapter
Adapter SDK
Runtime
Questions?
FAQ:• What about VS 2010 support?• The add adapter service reference not showing
up after install. Why?• Compatible w/ EF?
ENTERPRISE LOB & GENERIC DATASOURCE SCENARIOS
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”?
ARCHITECTURE OF THE WCF LOB SDK
Run Time
WCF Application
Design Time
Tracing/Perf Counters
MetadataExchanger
Adapter MetadataUtility Tool
Connection URI Builder
WCF Connection
Connection PoolManagement
MetadataManagement
WSDLBuilder
MetadataBrowse/Search
Channel Implementation
Component Architecture
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 – SalesForce CustomBinding• 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
APPENDIX
Example of a custom binding (WCF)<configuration> <system.serviceModel> <bindings> <customBinding> <binding name="myBinding"> <textMessageEncoding
messageVersion="Soap11" /> <httpTransport /> </binding> </customBinding> </bindings> <services> <service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior"
name="WcfServiceLibrary1.Service1"> <endpoint address="" binding="customBinding" bindingConfiguration="myBinding" contract="WcfServiceLibrary1.IService1"> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <host> <baseAddresses> <add baseAddress="http://localhost:8731/Design_Time_Addresses/WcfServiceLibrary1/Service1/" /> </baseAddresses> </host> </service> </services>
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
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