1 / 8

Introducing WCF

Introducing WCF. Ken Casada Developer Evangelist Microsoft Switzerland Blog: http :// blogs.msdn.com/swiss_dpe_team/Default.aspx kcasada@microsoft.com. Sys.Messaging. Ent Services. Attribute-based programming. Message- based programming. Windows Communication Foundation.

kerri
Download Presentation

Introducing WCF

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducing WCF • Ken Casada • Developer Evangelist • Microsoft Switzerland • Blog: http://blogs.msdn.com/swiss_dpe_team/Default.aspx • kcasada@microsoft.com

  2. Sys.Messaging Ent Services Attribute-based programming Message- based programming Windows Communication Foundation Unified framework supersets existing technologies ASMX Remoting Location transparency Interop with other platforms WSE WS-* protocols

  3. class HelloService { • [WebMethod] • public String Hello(String Greeting) { • X509CertificateCollection collection = new X509CertificateCollection(); • IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf( typeof(CRYPTOAPI_BLOB))); • IntPtr data = (IntPtr)((int)blob + • Marshal.SizeOf(typeof(CRYPTOAPI_BLOB))); • … • SeqAckRange range = new SeqAcknRange(id, low, high ); • SeqAckRange[] ranges = { range }; • ReliableQueue.ProcessAcks( ranges ); • … • BeginTransaction (NULL, • ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, • &pITransaction); • … • return Greeting; • } • } 20,379 linessecurity 5,988 lines reliable messaging 25,507 linestransactions 4,442 lines infrastructure Total lines 56,296 ProductivityUsing Visual Studio .NET 2003

  4. class HelloService { [WebMethod] public String Hello(String Greeting) { foreach ( SecurityTokentok in requestContext.Security.Tokens { X509SecurityToken token = tok as X509SecToken } … SeqAckRange range = new SeqAcknRange(id,low,high ); SeqAckRange[] ranges = { range }; ReliableQueue.ProcessAcks( ranges ); … BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction); … return Greeting; } } 10 lines security 1,804 lines reliable messaging 25,507 linestransactions Total lines 27,321 ProductivityUsing Visual Studio .NET 2003 and WSE

  5. [ServiceContract] class HelloService { [OperationContract] [PrincipalPermission(SecurityAction.Demand, Role = “Adminstrators")] [TransactionFlow(TransactionFlowOption.Mandatory)] [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] String Hello(String Greeting) {return Greeting;} } <bindings> <wsHttpBinding> <binding name="Binding1“ transactionFlow="true"> <security mode="Message"> <message clientCredentialType="Windows“/> </security> <reliableSession enabled="true" /> </binding> </wsHttpBinding> </bindings> 1 code + 2 config (elem.) security 0 code + 1 config (elem.) reliable messaging 2 code + 1 config (attr.)transactions Total lines:3 code (what) + 4 config (how) Productivity Using Visual Studio 2005 and WCF

  6. Endpoints Client Service Endpoint Endpoint Endpoint Endpoint

  7. Endpoint Address, Binding, Contract Client Service A B C C B A A B C A B C Address Where? Binding How? Contract What?

  8. WCF

More Related