Download presentation
Presentation is loading. Please wait.
1
Overview of Next-gen technologies Raimond Brookman IT Architect Info Support raimondb@infosupport.com raimondb@infosupport.com http://blogs.infosupport.com/raimondb
2
2 WWF 5 Pillars of Connected Systems WCF Infocard AD ASP.NET 2.0 Atlas / WPF LINQ WinFS
3
3 Agenda Introduction Windows Presentation Foundation (WPF) ASP.NET Atlas Windows Communication Foundation (WCF) Windows Workflow Foundation (WWF) C# 3.0, LINQ, DLINQ & XLINQ Q&A
4
4 Windows Presentation Foundation
5
5 User Experience Matters Consumer Software HTMLDHTMLWinFX
6
6 Developer Art
7
7 Windows Presentation Foundation BUILD THE APPLICATIONS YOU ALWAYS DREAMED OF BUILD THE APPLICATIONS YOU ALWAYS DREAMED OF
8
8 WPF Capabilities Media Integration Layer 2D 3D Audio Imaging Text Video Effects Composition Engine Animation Base Services XAML Accessibility Property System Input & Eventing Document Services XPS Documents Packaging Services User Interface Services Application Services Deployment Services Controls Layout Databinding
9
9 WPF: User Interface Services Layout & Databinding Select A Customer <ListBox Name="myListBox" Background="HoneyDew" ItemsSource="{Binding {StaticResource myDataSource}}" User Interface Services Application Services Deployment Services Controls Layout Databinding
10
10 Window1.xaml.csContains: Application logic Created by: Application developer Window1.xamlContains: Principal UI (controls, layout, etc.) Created by: Application developer or designer Design Experience: By hand or using a visual tool Styles.xamlContains: Application “style” (visual description of UI elements) Created by: Application designer Design Experience: By hand or using a visual tool project structure Data model, event names, element names, etc. Resource names and element types.
11
11 ASP.NET: Future Directions Developing Rich Web Applications With “Atlas”
12
12 ASP.NET “Atlas” Goals Increased productivity Fewer concepts, fewer lines of code Application and UI building blocks for common scenarios Easier to author, debug, and maintain Clean separation of content, style, behavior, and code Well integrated with design and development tools Seamlessly integrated application model Works with ASP.NET pages and server controls Allows access to ASP.NET-hosted web services and components Works everywhere – cross-browser, standards based A FRAMEWORK FOR BUILDING RICHER, MORE INTERACTIVE, MORE PERSONALIZED WEB EXPERIENCES A FRAMEWORK FOR BUILDING RICHER, MORE INTERACTIVE, MORE PERSONALIZED WEB EXPERIENCES
13
13 “Atlas” Architecture ‘Atlas” Client Script Library Built-in Controls and Behaviors Built-in Controls and Behaviors Script Core Base Class Library Component and UI Model Browser Compatibility “Atlas” Client Application Services Local Store Browser Integration Browser Integration ASP.NET “Atlas” Server Extensions “Atlas” Server Controls “Atlas” Server Controls ASP.NET “Atlas” Application Services “Atlas” Web Services Bridge “Atlas” Web Services Bridge ASP.NET 2.0 ASP.NET Application Services ASP.NET Application Services Page Framework And Server Controls Page Framework And Server Controls “Atlas”-enabled ASP.NET Pages “Atlas”-enabled ASP.NET-hosted Web Services (ASMX or WCF) ASP.NET-hosted Web Services (ASMX or WCF) ASP.NET “Atlas” Server “Atlas” HTML Page Page “Atlas”ServiceProxies“Atlas”ServiceProxies “Atlas” Client
14
14 Script-Based Type System Scenario: Script code can be ad-hoc, unmaintainable, etc. Solution: Encapsulate data and logic into classes and components Expose intuitive object model “Atlas” OOP constructs built on top of standard script constructs and techniques Namespaces Classes, Interfaces, and inheritance Properties, methods, events Private and public members Delegates Enumerations and Flags
15
15 API Samples var myArray = new Array(‘abc’, ‘ghi’); myArray.push(‘jkl’); myArray.splice(1, 0, ‘def’); var myObject =...; var s = ‘’; for (var name in myObject) { var value = myObject[name]; s += name + ‘ = ‘ + value + ‘\r\n’; } var myArray = new Array(‘abc’, ‘ghi’); myArray.add(‘jkl’); myArray.insert(1, ‘def’); var myObject =...; var s = ‘’; for (var name in myObject) { var value = myObject[name]; var value = myObject[name]; s += String.Format(‘{0} = {1}\r\n’, s += String.Format(‘{0} = {1}\r\n’, name, value, value.length); name, value, value.length);} var myObject = ‘...’; var sb = new Web.StringBuilder(); for (var name in myObject) { var value = myObject[name]; var value = myObject[name]; sb.append(name); sb.append(name); sb.append(‘ = ‘); sb.append(‘ = ‘); sb.appendLine(value); sb.appendLine(value);} var s = sb.toString();
16
16 “Atlas” Networking Client networking stack layered on XMLHTTP WebRequest, WebResponse, MethodRequest classes ASP.NET “Atlas” Web Services Bridge Access to ASP.NET-hosted and serviced components ASMX and WCF services,.NET objects, ASP.NET page-level services Automatic client proxy generation Integrated with ASP.NET intrinsics Wire format: Javascript object notation public class Location { public Point Coordinates; public Point Coordinates; public String Name; public String Name;} public class Location { public Point Coordinates; public Point Coordinates; public String Name; public String Name;} { Coordinates : { X: 2.17, Y: 48.51 }, Name : " Eiffel Tower" } Name : " Eiffel Tower" } { Coordinates : { X: 2.17, Y: 48.51 }, Name : " Eiffel Tower" } Name : " Eiffel Tower" }
17
17 Introduction to the Windows Communication Foundation
18
18 Windows Communication Foundation – Why? Windows Communication Foundation ASMX [ with WSE ].NET Remoting COM+ Enterprise Services Simple Configuration Open Standards Service-Oriented Attributes Transactions Components ExtensibleObject-Oriented MSMQSystem.Messaging Messages Reliable
19
19 Unifies today’s distributed technology stacks Appropriate for use on-machine, cross machine, and cross Internet The unified programming model for rapidly building service- oriented applications on the Windows platform Interoperates with applications running on other platforms Integrates with our own distributed stacks Unification Integration Codifies best practices for building distributed applicationsCodifies best practices for building distributed applications Service Orientation Windows Communication Foundation
20
20 Client Service Clients and Services
21
21 Client Service Endpoints Endpoint
22
22 Service CBA CBA Client Address, Binding, Contract A BC Address Where? Contract What? Binding How? Endpoint CBA
23
23 ServiceHost Client Service Creating Endpoints ClientChannel A BC CBA CBA CBA
24
24 Inside Bindings Transport IPCMSMQ Custom TCPHTTP Protocol Encoders Binary Text Custom.NETTX Custom SecurityRM Binding HTTP Text TXSecurityRM
25
25 Standard Bindings Interop Security Session Transactions Duplex Streaming BasicHttpBinding BP 1.1 T WsHttpBindingWS T | S XX WsDualHttpBindingWS XXX NetTcpBinding.NET XXXO NetNamedPipesBinding.NET XXXO NetMsmqBinding.NET XX NetPeerTcpBinding.NET X T = Transport Security | S = WS-Security | O = One-Way Only
26
26 ASMX/WSE3 WCF WCF ASMX/WSE3 Integration using Bindings MSMQ WCF WCF MSMQ WS-* Protocols MSMQ Protocol MSMQ Binding Http/WS Binding Java WCF WCF Java WS-* Protocols Http/WS Binding WCF WCF WS-* Protocols * Binding
27
27 Windows Workflow Foundation
28
28 The workflow framework & tools for Microsoft products and partner/customer ecosystem Windows Workflow Foundation Single workflow technology for Windows Base for Microsoft products and ISV/customer solutions One technology for human and system workflow scenarios A framework for building workflow into applications A framework to build on - not an application or server Exposed to developers via WinFX Brings workflow to mainstream.NET development Transform workflow from niche to mainstream paradigm Build strong partner & solution ecosystem
29
29 What Is A Workflow? A set of activities that coordinate people and / or software... EscalateToManager Example activities…. CheckInventory Like a flowchart…. …organized into a workflow. Or a state diagram….
30
30 Workflow Scenario Spectrum Participants: people, roles Flow style: flexible, dynamic Data: unstructured, documents Participants: apps, services Flow style: prescriptive, protocols Data: structured, transactional Information Worker Document Review… Information Worker Document Review… System Workflow Human Workflow Windows Workflow Foundation Business to Business Supply Chain Mgmt… Business to Business Supply Chain Mgmt… Line of Business Apps Quote to Cash, Sales Automation… Line of Business Apps Quote to Cash, Sales Automation… CRM ERP IT Management New H ire Provisioning, Trouble Ticket,… IT Management New H ire Provisioning, Trouble Ticket,….NET Developer Pageflow, Service Coordination….NET Developer Pageflow, Service Coordination…
31
31 WinFX Workflow And BizTalk Server Windows Workflow Foundation Messaging Desig n Tools Busines s ActivityMonitorAndAdminTools Orchestration Transformation Adapters BizTalk Server Accelerators Premium BPM server Premium BPM server Distinct server product Distinct server product Use in B2B, EAI, BPM scenarios Use in B2B, EAI, BPM scenarios Deployable solutions Deployable solutions Manageability, Scale-out Manageability, Scale-out Workflow framework Workflow framework Exposed via WinFX Exposed via WinFX Broad set of scenarios Broad set of scenarios Used to build solutions Used to build solutions Enables manageability Enables manageability and scale-out in solutions Use for building workflow into apps or workflow-enabled servers Use for building workflow into apps or workflow-enabled servers Visual Studio Designer Future version will migrate to Windows Workflow Foundation for orchestration Future version will migrate to Windows Workflow Foundation for orchestration Workflow
32
32 Windows Workflow Foundation Key Concepts Host Process Windows Workflow Foundation Runtime Engine A Workflow An Activity Runtime Services Base Activity Library Custom Activity Library Visual Designer Visual Designer: Graphical and code- based construction Workflows are a set of Activities Workflows run within a Host Process: any application or server Developers can build their own Custom Activity Libraries Components Base Activity Library: Out-of-box activities and base for custom activities Runtime Engine: Workflow execution and state management Runtime Services: Hosting flexibility and communication
33
33 Visual Designer Design Debug
34
34 The.NET Language C# 3.0 Integrated Query Project
35
35 Getting productive Today we program against relational and hierarchical data using a language that does not support this natively Data != Objects We are busy describing how things need to get done in stead of what we want
36
36 C# 3.0 Design Goals Integrate objects, relational, and XML Build on foundation laid in C# 1.0 and 2.0 Run on the.NET 2.0 (“Whidbey”) CLR Remain 100% backwards compatible
37
37 The LINQ Project Standard Query Operators Objects DLinq (ADO.NET) XLinq(System.Xml) XML.NET Language Integrated Query C# 3.0 VB 9.0 Others… SQLWinFS
38
38 LINQ Style programming var contacts = from c in customers from c in customers where c.State == "WA" where c.State == "WA" select new { c.Name, c.Phone }; select new { c.Name, c.Phone }; class Contact { … }; List contacts = new List (); foreach(Customer c in customers) { if(c.State == “WA”) { Contact ct = new Contact(); Contact ct = new Contact(); ct.Name = c.Name; ct.Name = c.Name; ct.Phone = c.Phone; ct.Phone = c.Phone; contacts.Add(ct); contacts.Add(ct);}}
39
39 Query Expressions Language integrated query syntax from id in source { from id in source | where condition } [ orderby ordering, ordering, … ] select expr | group expr by key [ into id query ]
40
40 C# 3.0 Language Innovations var contacts = from c in customers from c in customers where c.State == "WA" where c.State == "WA" select new { c.Name, c.Phone }; select new { c.Name, c.Phone }; var contacts = customers customers.Where(c => c.State == "WA").Where(c => c.State == "WA").Select(c => new { c.Name, c.Phone });.Select(c => new { c.Name, c.Phone }); Extension methods Lambda expressions Query expressions Object initializers Anonymous types Local variable type inference
41
41 Standard Query Operators RestrictionWhere Projection Select, SelectMany Ordering OrderBy, ThenBy GroupingGroupBy Quantifiers Any, All Partitioning Take, Skip, TakeWhile, SkipWhile Sets Distinct, Union, Intersect, Except Elements First, FirstOrDefault, ElementAt Aggregation Count, Sum, Min, Max, Average Conversion ToArray, ToList, ToDictionary CastingOfType<T>
42
42 DLinq For Relational Data SqlConnection c = new SqlConnection(…); c.Open(); SqlCommand cmd = new SqlCommand( @"SELECT c.Name, c.Phone @"SELECT c.Name, c.Phone FROM Customers c FROM Customers c WHERE c.City = @p0"); WHERE c.City = @p0"); cmd.Parameters.AddWithValue("@p0", "London“); DataReader dr = c.Execute(cmd); while (dr.Read()) { string name = dr.GetString(0); string name = dr.GetString(0); string phone = dr.GetString(1); string phone = dr.GetString(1); DateTime date = dr.GetDateTime(2); DateTime date = dr.GetDateTime(2);}dr.Close(); Accessing data today Queries in quotes Loosely bound arguments Loosely typed result sets No compile time checks
43
43 public class Customer { … } public class Northwind: DataContext { public Table Customers; public Table Customers; …} Northwind db = new Northwind(…); var contacts = from c in db.Customers from c in db.Customers where c.City == "London" where c.City == "London" select new { c.Name, c.Phone }; select new { c.Name, c.Phone }; DLinq For Relational Data Accessing data with DLinq Classes describe data Strongly typed connection Integrated query syntax Strongly typed results Tables are like collections
44
44 XLinq For XML Data XmlDocument doc = new XmlDocument(); XmlElement contacts = doc.CreateElement("contacts"); foreach (Customer c in customers) if (c.Country == "USA") { if (c.Country == "USA") { XmlElement e = doc.CreateElement("contact"); XmlElement e = doc.CreateElement("contact"); XmlElement name = doc.CreateElement("name"); XmlElement name = doc.CreateElement("name"); name.InnerText = c.CompanyName; name.InnerText = c.CompanyName; e.AppendChild(name); e.AppendChild(name); XmlElement phone = doc.CreateElement("phone"); XmlElement phone = doc.CreateElement("phone"); phone.InnerText = c.Phone; phone.InnerText = c.Phone; e.AppendChild(phone); e.AppendChild(phone); contacts.AppendChild(e); contacts.AppendChild(e); }doc.AppendChild(contacts); Programming XML today <contacts> Great Lakes Food Great Lakes Food (503) 555-7123 (503) 555-7123 …</contacts> Imperative model Document centric No integrated queries Memory intensive
45
45 XLinq For XML Data XElement contacts = new XElement("contacts", from c in customers from c in customers where c.Country == "USA" where c.Country == "USA" select new XElement("contact", select new XElement("contact", new XElement("name", c.CompanyName), new XElement("name", c.CompanyName), new XElement("phone", c.Phone) new XElement("phone", c.Phone) )); Programming XML with XLinq Declarative model <contacts> Great Lakes Food Great Lakes Food (503) 555-7123 (503) 555-7123 …</contacts> Element centric Integrated queries Smaller and faster
46
46 XLinq For XML Data Language integrated query for XML Expressive power of XPath / XQuery But with C# or VB as programming language Leverages experience with DOM Element centric, not document centric Functional construction Text nodes are just strings Simplified XML namespace support Faster and smaller
47
47 Benefits Of LINQ Unified querying of objects, relational, XML Type checking and IntelliSense for queries SQL and XQuery-like power in C# and VB Extensibility model for languages / APIs Describe What, not how boosts productivity
48
48 Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.