WHAT’S NEW IN WCF 4.5 Ed Jones Grey Guindon WHAT’S NEW IN WCF 4.5 Introduction: Simplify, Simplify, Simplify Throttles, Timeouts, & Quotas Simpler Config Files Config File Tooltips, IntelliSense, &Validation Contract-First Generation HTTPS For Free! OFF-TOPIC (but equally important): What’s Next in BizTalk P:2 “I submit WCF's various reader quotas and limits as irrefutable proof the way to hell is paved with good intentions.” THROTTLES, TIMEOUTS, QUOTAS Property On Old Value New Value ChannelInitializationTimeout NetTcpBinding 5 sec 30 seconds ListenBacklog NetTcpBinding, SMSvcHost.exe 10 16 * processor count MaxPendingAccepts NetTcpBinding, NamedPipeBinding 1 2 * processor count MaxPendingAccepts SMSvcHost.exe 2 4 * processor count MaxPendingConnections NetTcpBinding, NamedPipeBinding 10 12 * processor count ReceiveTimeout SMSvcHost.exe 10 sec 30 seconds READER QUOTAS Name Old Value New Value MaxArrayLength 16384 elements Int32.MaxValue (text) MaxBytesPerRead 4096 bytes Int32.MaxValue (text) MaxDepth 32 nodes deep 128 MaxNameTableCharCount 16384 characters Int32.MaxValue (text) MaxStringContentLength 8192 characters Int32.MaxValue (text) P:4 CONTRACT FIRST UTILITY WCF 4.5 give us the capability to build data contracts and classes directly from XSDs. To use the contract-first tool, the XSD must be downloaded locally. The contract-first tool is integrated into Visual Studio 2012 as a build task. You can configure how the dev environment will create the contracts through the “WCF Options” item in the Project properties. P:5 CONTRACT-FIRST SETTINGS • • • • • • • • • • • • P:6 Serializer Mode: This setting determines which serializer is used for reading service contract files Reuse Types: This setting specifies which libraries are used for type reuse. Collection Type: This setting specifies the fully-qualified or assembly-qualified type to be used for the collection data type. Dictionary Type: This setting specifies the fully-qualified or assembly-qualified type to be used for the dictionary data type. EnableDataBinding: This setting specifies whether to implement the INotifyPropertyChanged interface on all data types to implement data binding. ExcludedTypes:This setting specifies the list of fully-qualified or assembly-qualified types to be excluded from the referenced assemblies. GenerateInternalTypes: This setting specifies whether to generate classes that are marked as internal. GenerateSerializableTypes: This setting specifies whether to generate classes with the SerializableAttribute attribute. ImportXMLTypes: This setting specifies whether to configure the data contract serializer to apply the SerializableAttribute attribute to classes without the DataContractAttribute attribute SupportFx35TypedDataSets: This setting specifies whether to provide additional functionality for typed data sets created for .Net Framework 3.5.. InputXsdFiles: This setting specifies the list of input files. Language: This setting specifies the language of the generated contract code. NamespaceMappings: This setting specifies the mappings from the XSD Target Namespaces to CLR namespaces. OutputDirectory: This setting specifies the directory where the code files will be generated. BETTER INTEGRATION WITH THE HOST • Automatically inherit the security settings for IIS • Inherit SSL settings • Inherit authentication modes (and will also support multiple authentication modes per end point ) **** previously if you wanted to configure a WCF endpoint that supported a variety of the transport security modes, those were each separate end points and there was one per end point and they would often sit at different addresses - 4.5 will support multiple authentication modes. P:7 INTELLISENSE – TOOL TIPS With Intellisense you get context help (Tooltip Text) that helps to define a particular selection P:8 INTELLISENSE – TYPES OF When configuring an <endpoint> you can now reference a dropdown for the contract (Intellisense lists all contracts in your project) P:9 INTELLISENSE – TYPES OF When configuring custom bindings – say wiring up a binding reference type in the definition of your <endpoint> - Intellisense is smart enough to reference those which are (already) defined within your config file… P:10 CLEAN CLIENT CONFIGURATION GENERATION P:11 DEMO P:12 CLASSES FROM XML You can generate a class from a sample XML document using the “Paste XML as classes” feature of Visual Studio. This is a .NET 4.5 feature (not specific to WCF) P:13 DEMO P:14 “Reports of my death are greatly exaggerated” –BizTalk Server* *also Mark Twain P:15 WHAT’S NEXT IN BIZTALK SERVER (2010 R2) Platform Update: support for Visual Studio 2012, Windows 8 Server, SQL Server 2012, Office 15 and System Center 2012 B2B enhancements to support the latest standards natively – HL7 2.5.1, 2.6 – SWIFT 2012 Message Pack – X12 5030+, EDIFACT D05B+ Better performance – Multi-fold improvements ordered send port scenarios – Improvements to the performance of dynamic send ports and ESB, via host handler association of send ports – MLLP adapter performance P:16 Better manageability – Visualize BizTalk artifact dependencies in BizTalk Admin console – ESB Toolkit as core part of BizTalk setup and product Improved Connectivity – – – – Consume REST services directly in BizTalk Simplified SharePoint integration experience Improvements to existing adapters (e.g., HIS, SMTP) Easy connectivity to Azure Service Bus relay, queues and topics and BizTalk running in Azure… P:17 BIZTALK 2010 R2 TIMELINES The CTP version is available now as an Azure VM Beta will be released sometime in October RTM will happen about 6 months after Windows Server 2012 releases (April 2013ish?) P:18 REFERENCES: Daniel Roth, “What’s New in Windows Communication Foundation in Microsoft .NET 4.5” Bala Sriram & Rajesh Ramamirtham, “Application Integration Futures: the Roadmap and What’s Next on Windows Azure” Javed Sikander & Rajesh Ramamirtham, “Building Integration Solutions Using Microsoft BizTalk OnPremises and on Windows Azure” MSDN, “Contract First Tool”, http://msdn.microsoft.com/enus/library/hh674270.aspx MSDN, “Generating Data Type Classes from XML”, http://msdn.microsoft.com/enus/library/hh371548.aspx P:19 THANK YOU! Ed Jones – ed.jones@rbaconsulting.com – http://talentedmonkeys.wordpress.com Grey Guindon – grey.guindon@rbaconsulting.com P:20