1 / 48

Overview of Next-gen technologies

Overview of Next-gen technologies. Raimond Brookman IT Architect Info Support raimondb@infosupport.com http://blogs.infosupport.com/raimondb. 5 Pillars of Connected Systems. Infocard AD. ASP.NET 2.0 Atlas / WPF. LINQ WinFS. WWF. WCF. Agenda. Introduction

catori
Download Presentation

Overview of Next-gen technologies

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. Overview of Next-gen technologies Raimond BrookmanIT Architect Info Supportraimondb@infosupport.com http://blogs.infosupport.com/raimondb

  2. 5 Pillars of Connected Systems Infocard AD ASP.NET 2.0 Atlas / WPF LINQ WinFS WWF WCF

  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. Windows Presentation Foundation

  5. User Experience Matters Consumer Software HTML DHTML WinFX

  6. Developer Art

  7. Windows Presentation Foundation BUILD THE APPLICATIONS YOU ALWAYS DREAMED OF

  8. Media Integration Layer Base Services Document Services Imaging 2D Text Audio XAML XPS Documents Video Effects 3D Accessibility Packaging Services Animation Input & Eventing User Interface Services Composition Engine Property System Application Services Controls Databinding Deployment Services Layout WPF Capabilities

  9. User Interface Services Application Services Controls Databinding Deployment Services Layout WPF: User Interface Services Layout & Databinding <StackPanel> <Label>Select A Customer</Label> <ListBox Name="myListBox" Background="HoneyDew" ItemsSource="{Binding {StaticResource myDataSource}}" </ListBox> </StackPanel>

  10. projectstructure Window1.xaml.cs Contains: Application logic Created by: Application developer Window1.xaml Contains: Principal UI (controls, layout, etc.) Created by: Application developer or designer Design Experience: By hand or using a visual tool Styles.xaml Contains: Application “style” (visual description of UI elements) Created by: Application designer Design Experience: By hand or using a visual tool Data model, event names, element names, etc. Resource names and element types.

  11. ASP.NET: Future Directions Developing Rich Web Applications With “Atlas”

  12. ASP.NET “Atlas” Goals A FRAMEWORK FOR BUILDING RICHER, MORE INTERACTIVE, MORE PERSONALIZED WEB EXPERIENCES • 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

  13. ‘Atlas” Client Script Library ASP.NET “Atlas” Server Extensions Built-in Controls and Behaviors ASP.NET “Atlas” Application Services “Atlas” Client Application Services “Atlas” Server Controls Component and UI Model “Atlas” Web Services Bridge Local Store Base Class Library ASP.NET 2.0 Browser Integration Script Core Page Framework And Server Controls ASP.NET Application Services Browser Compatibility “Atlas” Architecture “Atlas” Client ASP.NET “Atlas” Server “Atlas” HTML Page “Atlas”-enabled ASP.NET Pages “Atlas” Service Proxies ASP.NET-hosted Web Services (ASMX or WCF)

  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. API Samples var myArray = new Array(‘abc’, ‘ghi’); myArray.push(‘jkl’); myArray.splice(1, 0, ‘def’); 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]; s += name + ‘ = ‘ + value + ‘\r\n’; } var myObject = ...; var s = ‘’; for (var name in myObject) { var value = myObject[name]; s += String.Format(‘{0} = {1}\r\n’, name, value, value.length); } var myObject = ‘...’; var sb = new Web.StringBuilder(); for (var name in myObject) { var value = myObject[name]; sb.append(name); sb.append(‘ = ‘); sb.appendLine(value); } var s = sb.toString();

  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 • <script src=“MyService.asmx/js” /> • Integrated with ASP.NET intrinsics • Wire format: Javascript object notation { Coordinates : { X: 2.17, Y: 48.51 }, Name : "Eiffel Tower" } public class Location { public Point Coordinates; public String Name; }

  17. Introduction to the Windows Communication Foundation

  18. Windows Communication Foundation – Why? COM+ Enterprise Services MSMQ System.Messaging ASMX[ with WSE ] .NET Remoting AttributesTransactionsComponents MessagesReliable Simple ConfigurationOpen StandardsService-Oriented Extensible Object-Oriented WindowsCommunicationFoundation

  19. The unified programming model for rapidly building service-oriented applications on the Windows platform Windows Communication Foundation Unifies today’s distributed technology stacks Appropriate for use on-machine, cross machine, and cross Internet Unification ServiceOrientation • Codifies best practices for building distributed applications Interoperates with applications running on other platforms Integrates with our own distributed stacks Integration

  20. Clients and Services Client Service

  21. Endpoints Client Service Endpoint Endpoint Endpoint Endpoint

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

  23. A A A B B B C C C C B A Creating Endpoints ServiceHost Client Service ClientChannel

  24. Binding HTTP Security RM TX Text Inside Bindings Transport Protocol Encoders TCP HTTP Security RM Text MSMQ IPC TX .NET Binary Custom Custom Custom

  25. Standard Bindings T = Transport Security | S = WS-Security | O = One-Way Only

  26. ASMX/WSE3 WCF MSMQ WCF WCF WCF Java WCF ASMX/WSE3 WCF MSMQ WCF Java WCF Integration using Bindings WS-* Protocols *Binding *Binding WS-* Protocols Http/WSBinding WS-* Protocols Http/WSBinding WS-* Protocols Http/WSBinding WS-* Protocols Http/WSBinding MSMQ Protocol MSMQBinding MSMQ Protocol MSMQBinding

  27. Windows Workflow Foundation

  28. Windows Workflow Foundation The workflow framework & tools for Microsoft products and partner/customer ecosystem • 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. …organized into a workflow. Or a state diagram…. Like a flowchart…. What Is A Workflow? A set of activities that coordinate people and / or software... EscalateToManager CheckInventory Example activities….

  30. Participants: people, roles Flow style: flexible, dynamic Data: unstructured, documents • Line of Business Apps • Quote to Cash, Sales Automation… System Workflow Human Workflow • Information Worker • Document Review… • IT Management • New Hire Provisioning, Trouble Ticket,… • Business to Business • Supply Chain Mgmt… • .NET Developer • Pageflow, Service Coordination… CRM ERP Windows Workflow Foundation Workflow Scenario Spectrum Participants: apps, services Flow style: prescriptive, protocols Data: structured, transactional

  31. Workflow And BizTalk Server BizTalk Server • Premium BPM server • Distinct server product • Use in B2B, EAI, BPM scenarios • Deployable solutions • Manageability, Scale-out Accelerators Business Activity Monitor And Admin Tools Design Tools Workflow Orchestration Messaging Transformation • Future version will migrate to Windows Workflow Foundation for orchestration Adapters • Workflow framework • Exposed via WinFX • Broad set of scenarios • Used to build solutions • Enables manageability • and scale-out in solutions • Use for building workflow into apps or workflow-enabled servers Visual Studio Designer WinFX Windows Workflow Foundation

  32. Windows Workflow Foundation Visual Designer Key Concepts AWorkflow Workflows are a set of Activities Workflows run within a Host Process: any application or server AnActivity Developers can build their own Custom Activity Libraries Custom Activity Library Windows Workflow Foundation Components Base Activity Library:Out-of-box activities and base for custom activities Base Activity Library Runtime Engine:Workflow execution and state management Runtime Engine Runtime Services:Hosting flexibility and communication Runtime Services Visual Designer:Graphical and code-based construction Host Process

  33. Visual Designer Design Debug

  34. The .NET LanguageC# 3.0 Integrated Query Project

  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. 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. <book> <title/> <author/> <year/> <price/> </book> SQL WinFS Objects XML The LINQ Project C# 3.0 VB 9.0 Others… .NET Language Integrated Query StandardQueryOperators DLinq(ADO.NET) XLinq (System.Xml)

  38. LINQ Style programming class Contact { … }; List<Contact> contacts = new List<Contacts>(); foreach(Customer c in customers) { if(c.State == “WA”) { Contact ct = new Contact(); ct.Name = c.Name; ct.Phone = c.Phone; contacts.Add(ct); } } var contacts = from c in customers where c.State == "WA" select new { c.Name, c.Phone };

  39. Query Expressions • Language integrated query syntax fromidinsource { fromidinsource | wherecondition } [ orderbyordering, ordering, … ] selectexpr | groupexprbykey [ intoidquery ]

  40. C# 3.0 Language Innovations Query expressions var contacts = from c in customers where c.State == "WA" select new { c.Name, c.Phone }; Local variable type inference Lambda expressions var contacts = customers .Where(c => c.State == "WA") .Select(c => new { c.Name, c.Phone }); Extension methods Anonymous types Object initializers

  41. Standard Query Operators

  42. DLinq For Relational Data Accessing data today Queries in quotes SqlConnection c = new SqlConnection(…); c.Open(); SqlCommand cmd = new SqlCommand( @"SELECT c.Name, c.Phone FROM Customers c WHERE c.City = @p0"); cmd.Parameters.AddWithValue("@p0", "London“); DataReader dr = c.Execute(cmd); while (dr.Read()) { string name = dr.GetString(0); string phone = dr.GetString(1); DateTime date = dr.GetDateTime(2); } dr.Close(); Loosely bound arguments Loosely typed result sets No compile time checks

  43. DLinq For Relational Data Accessing data with DLinq Classes describe data public class Customer { … } public class Northwind: DataContext { public Table<Customer> Customers; … } Tables are like collections Strongly typed connection Northwind db = new Northwind(…); var contacts = from c in db.Customers where c.City == "London" select new { c.Name, c.Phone }; Integrated query syntax Strongly typed results

  44. XLinq For XML Data Programming XML today Imperative model XmlDocument doc = new XmlDocument(); XmlElement contacts = doc.CreateElement("contacts"); foreach (Customer c in customers) if (c.Country == "USA") { XmlElement e = doc.CreateElement("contact"); XmlElement name = doc.CreateElement("name"); name.InnerText = c.CompanyName; e.AppendChild(name); XmlElement phone = doc.CreateElement("phone"); phone.InnerText = c.Phone; e.AppendChild(phone); contacts.AppendChild(e); } doc.AppendChild(contacts); Document centric No integrated queries Memory intensive <contacts> <contact> <name>Great Lakes Food</name> <phone>(503) 555-7123</phone> </contact> … </contacts>

  45. XLinq For XML Data Programming XML with XLinq Declarative model XElement contacts = new XElement("contacts", from c in customers where c.Country == "USA" select new XElement("contact", new XElement("name", c.CompanyName), new XElement("phone", c.Phone) ) ); Elementcentric Integrated queries <contacts> <contact> <name>Great Lakes Food</name> <phone>(503) 555-7123</phone> </contact> … </contacts> Smaller and faster

  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. 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. Questions?

More Related