Upload
clineer
View
899
Download
0
Embed Size (px)
Citation preview
EXPLORING THE WCF LOB SDKSR. CONSULTANT AT MAGENIC, BIZTALK MVPBEN CLINE
About Me – [email protected] ProfileSr. ConsultantWork on BizTalk,
WF, WCF, SharePoint projects
Blog: msinnovations.spaces.live.com
Community FocusesBizTalk MVP 2009-
2010MSDN Forums
Poster, ModeratorActive in testing
Connect releases – VS 2010, BizTalk 2009, 2010
Agenda
1 Overview of the WCF LOB SDK
2 Demo – SqlBinding
3 Enterprise LOB and Generic Scenarios
4 Architecture of the SDK
5 Demo - SalesForceBinding
What is the WCF LOB SDK?Free Toolkit from Microsoft based on WCF
custom bindingsProvides client manageability, usability
improvements for using custom bindingsLOB = [classic ERP] datasource Can be used for any system that needs to
provide metadata or context to developersArchitectural foundation for BizTalk Adapter
Pack
What is provided?VS client-side integrationWizards for creating custom binding adapters
(Code gen)Metadata explorerWCF Service wrapper extensionSDK, samplesAdd custom binding to machine.config codeSetup project example
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>…
Bindings, bindings everywherebasicHtt
pWeb
ServiceRelated
wsHttp
Not Web
Service Related
netMSMQ
msmqInt
wsContext
SqlBinding
wsFed
Less Common Use
More Common Use
OracleBinding
WCF vs. WCF LOB SDKWCF WCF LOB SDKService, clientDefault, standard
bindingsCustom bindings based
on binding elementsAdd Service Reference.NET compatible config
file elements
Adapter, client, optional service
Custom bindings based on binding elements
Add Adapter Service Reference
.NET compatible config file elements
Web Service
BizTalk ServerBizTalk WCF
Adapter
WCF Channel Model
WCF Service Model
WCF Transport
(HTTP, TCP, …)
WCF
Custom.NET
Application
SharePoint
ServerASP.NET
2.0
WCF Binding/Adapter Landscape
SAP Adapter
Adapter SDK
RuntimeSQL
Adapter
Adapter SDK
RuntimeOracle DBAdapter
Adapter SDK
Runtime
SQLServer
ADO.NETProvider
SAP Siebel Oracle DBAny LOB System
Any LOBAdapter
Adapter SDK
Runtime
Agenda
1 Overview of the WCF LOB SDK
2 Demo – SqlBinding
3 Enterprise LOB and Generic Scenarios
4 Architecture of the SDK
5 Demo - SalesForceBinding
Demo - Using the SqlBinding in VS 2008ObservationsWizard-like form similar to Add Service RefObject browser enables quick selection of
datasource objectsAfter wizard executes, new proxy class addedDataContracts created for parameters,
resultsWhen used with BizTalk, XSDs are generatedProxy generation options like with SvcUtil
Agenda
1 Overview of the WCF LOB SDK
2 Demo – SqlBinding
3 Enterprise LOB and Generic Scenarios
4 Architecture of the SDK
5 Demo - SalesForceBinding
Enterprise LOB ScenarioEnterprise system storing data: SAP, Oracle,
PeopleSoft, Siebel, CRM, etc.System-specific formats, connectivity,
supporting infrastructureWCF LOB SDK provides foundation for
custom bindings/adapters based on your code:Example: Custom Oracle binding from WCF
LOB SDK + ODP.Net APIsWCF LOB SDK service wrapper acts as
protocol transition/bridge layer
Generic Datasource ScenarioLOB<T> where T : YourDataSourceFoundation for exposing data or O/R layerMiddle tier service layerCSLA service layerAPI obfuscation
Other Uses for the SDKClient for connecting to ESB or SOA
resourcesLight weight UDDI explorerCentralize connectivity managementClient for missing VS functionality – for
referencing Web 2.0 servicesExtend existing features of BizTalk Adapter
Pack
Agenda
1 Overview of the WCF LOB SDK
2 Demo – SqlBinding
3 Enterprise LOB and Generic Scenarios
4 Architecture of the SDK
5 Demo - SalesForceBinding
Run Time
WCF Applicati
on
Design Time
Tracing/Perf Counters
MetadataExchanger
Adapter Metadata
Utility Tool
Connection URI Builder
WCF Connection
Connection Pool
Management MetadataManagemen
t
WSDLBuilder
Metadata
Browse/Search
Channel Implementation
Component Architecture
WCF & LOB SDK Namespaces
System.ServiceModel
Channels
Configuration
Microsoft.ServiceModel
Channels
Description
Common
Common
Tools.MetadataSearchBrowse
WCF LOB SDK Development LifecycleWizard based metadata code generationSetup projects based on samplesConnection, URI, Property Grid Type EditorsConnectivity Logic to Integrate with Target System(s)Binding Elements if requiredMetadata Browser and SearchProxy and XSD type generation customization
Agenda
1 Overview of the WCF LOB SDK
2 Demo – SqlBinding
3 Enterprise LOB and Generic Scenarios
4 Architecture of the SDK
5 Demo - SalesForceBinding
Demo – SalesForce CustomBindingWhy create a SalesForce binding?No supported SalesForce VS extension currently was
availableSalesForce provides REST and SOAP APIs but has
specialized implementationAsync operations only exposed on REST, would be
useful if called via SOAP and bridged from RESTWhat does this demonstrate?Property grid customizations make for better UI
Experience.NET invocation helpful for BizTalkLittle code required to generate proxy, XSDs
Appendix
Comparing WCF LOB with BizTalkWCF LOB SDK BizTalkCustom Binding centricCustom Bindings shown
in Add Adapter Service wizard
.NET project: add adapter service
Generates client proxy
Adapter centricCustom Bindings shown
in WCF-Custom adapterBizTalk project: Add
generated items \ consume adapter service
Generates BizTalk schema, binding file
Comparing Adapter ModelsAdapter Framework Adapter WCF LOB SDK AdapterNo built-in code genLimited VS integrationSimpler development
processRequires .NET wrapper
for non BizTalk invocation
Built-in code genMore extensive VS
integrationMore complicated
development processCallable directly
from .NET assemblies
ResourcesWCF 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