Ken Casada Developer Evangelist Microsoft Switzerland
.NET 1.0.NET 1.1.NET NET CLR 1.0 CLR 1.1 CLR 2.0 CLR 4.0
.NET add-in Host Process (e.g. Outlook) 3.0 add-in 3.5 add-in 1.1 add-in.NET 1.1
.NET 2.0.NET add-in Host Process (e.g. Outlook) 3.0 add-in 3.5 add-in 4.0 add-in
Dynamic Languages Simple and succinct Implicitly typed Meta- programming No compilation Static Languages RobustPerformantIntelligent toolsBetter scaling Dynamic vs. Static
Focusing on language co-evolution… C# 4.0Visual Basic “10” Named/Optional Parameters Dynamic Scoping Statement Lambdas Multiline Lambdas Auto-Implemented Properties Collection Initializers Generic Variance
On Single Core Machine Don’t block the UI Thread Affinity Async Operations Synchronization Issues On Multi-core Machine As above plus Improve Actual Performance... plus create new user experiences
Parallel Extensions is a.NET Library that supports declarative and imperative data parallelism, imperative task parallelism, and a set of data structures that make coordination easier. Parallel LINQ (PLINQ) Task Parallel Library (TPL) Coordination Data Structures (CDS) Parallel Extension June 2008 CTP
Client Profile Windows Presentation Foundation Business focused controls DataGrid, DatePicker, VSM Today part of the WPF Toolkit (update in March 09) After.NET 4.0 More controls (Chart controls, …) Silverlight Synergy (DeepZoom control ?) Win7 Advances Multitouch Windows API CodePack for.NET (
ASP.NET MVC Separation of Concerns, Testability High control over market up ASP.NET Dynamic Data support for MVC Easily Create Custom controls and views based on data base ASP.NET better CSS and ID ASP.NET AJAX Javascript UI Templates and Databinding AJAX Control Toolkit Enhancements Client-side controls Addition of JQuery
Messaging enhancements Protocols - SOAP over UDP, WS-Discovery, WS-BusinessActivity, WS-I BP 1.2WS-DiscoveryWS-BusinessActivity WS-I BP 1.2 Duplex durable messaging RESTful enhancements Simplifying the building of REST Singleton & Collection Services, ATOM Feed and Publishing Protocol Services, and HTTP Plain XML Services using WCF WCF REST Starter Kit released on Codeplex to get early feedbackCodeplex Correlation enhancements Content and context driven, One-way support Seemless integration with Workflow Services
XAML-only workflows are the new default Unified model between WF, WCF, and WPF Extended base activity library More activities will be present on CodePlexCodePlex WF 4.0 simplifies data flow by adding: Arguments, variables, and expressions Significant improvements in performance and scalability New FlowChart Workflow Improved WF 4.0 designer / Designer Rehosting
Stick with WF3.x workflow model Interop: Use WF3.x artifacts in WF4 solutions Rewrite WF3.x activities and workflows We will provide best practices and guidance for developing WF3.x artifacts with future migration to WF4 in mind !!! Develop custom activities instead of relying on the WF3.x CodeActivity
There is great potential in WF + WCF.NET 3.0 didn't provide any integration.NET 3.5 added initial WCF support.NET 4.0 is investing heavily in this area Workflow Services !!! Think "WCF on the outside, WF on the inside" WCF exposes external interface WF describes internal flow & state transitions
Microsoft Confidential IIS 7/WAS is today’s hosting environment for WCF service and WF workflows (WorkflowServiceHost class) Provides valuable hosting and management features for your WCF and WF applications Part of the Windows Server Application Server role Extensions built on top of IIS 7 with tracing, monitoring and diagnostic capabilities
Microsoft Confidential MSDN Developer Centers –.NET MSDN Developer Centers –.NET WF/WCF Team Blog Dublin
Entity Framework v2 Persistent Ignorance (POCO) TDD-Support Foreign-Key Support Code-First Development Automatic Lazy Loading
var customers = from cust in db.Customers where cust.City == “London" select cust; foreach (Customer cust in customers) { // avoids unnecessary queries if (!cust.Orders.IsLoaded) { cust.Orders.Load(); } foreach (Order order in cust.Orders) { // do something with detail } } var customers = from cust in db.Customers where cust.City == “London" select cust; foreach (Customer cust in customers) { // avoids unnecessary queries if (!cust.Orders.IsLoaded) { cust.Orders.Load(); } foreach (Order order in cust.Orders) { // do something with detail } }
var customers = from cust in db.Customers where cust.City == “London" select cust; db.DeferreadLoading = true; foreach (Customer cust in customers) { foreach (Order order in cust.Orders) { // do something with detail } } var customers = from cust in db.Customers where cust.City == “London" select cust; db.DeferreadLoading = true; foreach (Customer cust in customers) { foreach (Order order in cust.Orders) { // do something with detail } }
Presentations TechDays: MSDN Events: MSDN Webcasts: MSDN Events MSDN Events: Save the date: TechEd 2009 Europe, 9-13 November 2009, Berlinhttp:// MSDN Flash (our by weekly newsletter) Subscribe: MSDN Team Blog RSS: Developer User Groups & Communities Mobile Devices: Microsoft Solutions User Group Switzerland: Managed User Group of Switzerland: FoxPro User Group Switzerland:
Presentations TechDays: TechNet Events TechNet Events: Save the date: TechEd 2009 Europe, 9-13 November 2009, Berlinhttp://technet.microsoft.com/de-ch/bb aspx TechNet Flash (our by weekly newsletter) Subscribe: Schweizer IT Professional und TechNet Blog RSS: IT Professional User Groups & Communities SwissITPro User Group: NT Anwendergruppe Schweiz: PASS (Professional Association for SQL Server):
7. – 8. April 2010 Congress Center Basel
Classic Sponsoring Partners Media Partner Premium Sponsoring Partners