420 likes | 570 Views
Windows Presentation Foundation and User Experience … and Atlas . Paul Cross Richard Godfrey Microsoft. Agenda. Aims Suggest how we have got to ‘here’ Show where Microsoft are heading as a ‘Roadmap’ Side-Aims Provide examples and demos for illustration Anti-Aims Too much marketing
E N D
Windows Presentation Foundation and User Experience … and Atlas Paul Cross Richard Godfrey Microsoft
Agenda Aims • Suggest how we have got to ‘here’ • Show where Microsoft are heading as a ‘Roadmap’ Side-Aims • Provide examples and demos for illustration Anti-Aims • Too much marketing • Show ‘how’ to use the technologies • Dig into implementation depth
http://www.artlebedev.com/ VHS VCR PVR (Windows MCE) What is UX?
The 'Real World' • Functionality traditionally comes first • Little application development time for 'user experience' beyond prototypes • Cost/Value justification breaks down? • Developers are not designers! • Except some Web developers? • Tooling inadequate • Flash? CSS?
Consumers and the Enterprise • Consumer activity drives enterprise activity • Windows • Office • XBox Live • GPU • Blogging • Online Presence – Messenger, Yahoo, AOL, ICQ … • …
Why does it matter now? • It always mattered • Information Overload • Real Business impact • Faster • Make business decisions faster on more data • Cheaper • Reduce costs • Less training time (e.g. PoS operators) • Reduce errors e.g. restricted UI, User self service • Better • Enhanced user/customer experience • Data visualisation • ‘Stickiness’ e.g. Making it more stylish, approachable
Is it a Client or a Server? • Through the decades … • White coats • The 50s: Scheduling Time • The 60s: Batch Processing • The 70s: Timesharing & OLTP • Empowering the user • The 80s: PCs & Client-Server • User self-service • The 90s: Internet & Services • Community • The 00s: Users & Experiences? • Observations • Computing power moving to the ‘edge’ of the network • E.g. CPU, GPU • Mobile devices • Move to user centricity • BUT … Issues with deployment, manageability, security … • Rhetorical Question: Is the Thin Client era a stop-gap?
Where are we now (or nearly)? • 'SOA' in the Enterprise • Thin client experience seen as lacking (AJAX) • 'Web 2.0' and 'Mashups' in the consumer space • Designers engaged in the software lifecycle • Tooling directed at the User Experience domain • Agile development practices
Developer Productivity UX Richness Richness vs. Complexity ASP.NET 2.0 (HTML) Windows Forms 2.0 DHTML Direct 3D v9 1997 2005 Availability:
Web Services & Offline/Online support Heavy Footprint Tough to Deploy Network Dependency Rich User Experience Developer Productivity Limited User Experience Easy Change Management DLL Hell Complex To Develop Ease of Deployment Responsive
AJAX is … • Not a product • Not a specification • Not a standard • Not a floor cleaning product • Not the name of the son of Telamon of Salamis who fought against Troy • Not an Amsterdam football team
AJAX is • Asynchronous Javascript And XML • A layer of abstraction between the browser and the web server • Available in Internet Explorer since 1999 • Improved UX through client-side interactions while data fetches are asynchronous • According to some commentators, the future of all web development …
Typical Technologies for AJAX • XHTML and CSS • Document Object Model (DOM) • XMLHttpRequest object • JavaScript • XML • XSLT • Etc.
Atlas Overview • End-to-end application framework • Enables building rich, interactive DHTML applications • Component-oriented framework • Imperative and declarative programming models • Integrates with ASP.NET • Extensible Application framework • Custom script components, controls, behaviours • Custom server controls • Enables complex script-based applications • Makes script development more approachable
Atlas Approach to Development • Application development • Simple inclusion of script-based functionality via script components, server controls • Separation of UI and behaviour • Component development • Enables disciplined approach to scripting • Framework for encapsulating data and logic • Abstracts browser differences • Provides building blocks for higher level development
Atlas Client Overview • Collection of JavaScript (.js) files providing features for object-oriented development • Browser compatibility layer • Atlas core services • Classes, namespaces, event handling, inheritance, data types and object serialisation • Base class library • String builders, debuggers, timers and tracing • Networking layer • Communication with web-based services and applications • Management of the asynchronous remote method calls • UI layer providing a number of Atlas client capabilities: • Behaviours • The Atlas declarative syntax • UI components • Data binding • Controls layer that creates Atlas-specific controls • Data-bound, scripted, drag and drop, auto-completion text box, ordinary form controls, data-bound listview control, navigation controls
Atlas Server Overview • Includes components in ASP.NET, including web services and server controls • Work in conjunction with Atlas client script libraries • Leverages the following: • Profiles service • Membership service • Roles service • Personalisation services • Globalisation and culture-specific services • Atlas server controls that resemble ASP.NET server controls • Emit Atlas client script • Simplify the process of producing Atlas client script • E.g. Buttons, labels, options, textboxes, check boxes, hyperlinks and validation controls • Special Atlas controls that emit JavaScript to produce client behaviours • HoverBehavior control, a ClickBehavior control, a Popup control and an AutocompleteBehavior control
Atlas Client Script Library Controls, Components ASP.NET Atlas Server Extensions App Services Bridge Component Model and UI Framework Atlas Client Application Services Atlas Server Controls Web Services Bridge Base Class Library Local Store Script Core ASP.NET 2.0 Browser Integration Page Framework, Server Controls Application Services Browser Compatibility What is Atlas? HTML, Script, Atlas Markup Atlas-enabled ASP.NET Pages Atlas Service Proxies Web Services (ASMX or WCF) Atlas Client Framework and Services Atlas Server Framework
Windows Presentation Foundation • Next generation framework for building smart clients • That could only be built by very experienced graphic programmers previously • Declarative (XAML) for designers • Object-based for developers • Available for Windows Vista, Windows XP and Windows Server 2003
Presentation Data Communication Windows Presentation Foundation Windows Forms ASP.NET Windows WorkflowFoundation (System.Workflow) Identity and AccessServices(AD-RMS, AD-STS, 'InfoCard') CollaborationServices(People Near Me, …) … Language Integrated Query Documents UI Media 'Atlas' Client Script Framework Application Services Controls Interop Standard Query Operators 'XLinq' (System.XML) 'DLinq' (ADO.NET) … Server Controls 'Atlas' Services Bridge Elements Desktop Window Manager App Services Windows Communication Foundation Page Visual System Objects XML SQL WinFS … (DB2, Oracle, … Designer Services Application Services Composition Engine System.ServiceModel Hardware Rendering Software Rendering Controls Application Hosting Message Binding (WS-*, HTTP/XML, …) Integration Declarative Programming (XAML, Workflow, ASP.NET, …) Contracts (XSL, XSD, WSDL, SDM,… ) Web Services (HTTP, REST, XML-RPC, RSS, WS*, …) Protocols (Pipes, IPvX/Sec, UDP, TCP, SMTP, …) Channel (TCP, Peer, Security, Reliability, …) Base Operating System Services CLR Base Class Libraries Network Class Library Memory Manager Code Execution Loader Security Serialization Application Deployment Engine (Click-Once) Network Services Demand Activation and Protocol Health Hosting Layer PNRP Native WiFi SIP Transactions Storage TCP Listener UDP Listener IPC Listener Identity & Security System Management Services (Event Logs, Tracing, Probes, Auto Update, Admin) GDI/GDI+ Window Manager Global Audio Engine Direct 3DGraphics Virtual Shadow Copy Service File Replication Service Virtual Disk Service Lightweight Transactions TransactionCoordinator Internet Connection Firewall Graphics drivers DDI Input Manager Audio Drivers DirectX Graphics Mini port Protocols Redirectors Distributed File System Filter Manager Cache Manager KernelTransactionManager LoggingService Filter Engine TCP, UDP IPV4, IPV6 IPSEC QOS HTTP Listener Transacted NTFS Universal Data Format FAT 16/32 Plug andPlay MemoryManager PowerManager ConfigManager Process Manager SecurityReference Monitor LPCFacility IO Manager Device Drivers 802.3 802.11 .. Kernel SCSI/FC Hardware Abstraction Layer Windows Vista Platform WinFX
Full Trust or Web Browser App (.wba) Click-Once Deployment Windows Presentation Foundation (1)
Declarative XAML Data Driven Tool-able Windows Presentation Foundation (2)
Control Composition Rich Control Set Unified API for UI, Documents, Media Windows Presentation Foundation (3)
Rich Media Vector Raster Video 3D Text Animation Hardware Rendering & Composition Scalable UI Windows Presentation Foundation (4)
Readability Printing Windows Presentation Foundation (5)
What couldn’t be done easily before? • 2-dimensional and 3-dimensional graphics • Animation • Vector-based graphics • the capability to zoom without distorting the image • Audio and video integration • Fixed and flow format documents • Easy data binding, styling, templates • WYSIWYG & vector-based printing
Browser Application / OS Content Package Images Fonts Video/Audio XML - Data XAML Programming Model JavaScript Native API C# / VB.NET Plug-ins Platform Specific Hosting Model 'WPF/E' Runtime Native 'WPF/E' API UI & Rendering Core Platform Abstraction Layer 'WPF/E' Web Architecture
'WPF/E' Features Core Runtime Base Services Media Integration Layer Other Services Core Controls 2D Text XML/XAML Parser Container Controls Audio Video Accessibility Basic Layout Imaging Animation Input and Eventing Composition Engine Property System
Approachable Optimised Richness & Approachable ASP.NET 'Atlas' Windows Presentation Foundation Developer Productivity Richness Direct 3D v10 UX Richness Richness vs. Complexity ASP.NET 2.0 (HTML) Windows Forms 2.0 DHTML (AJAX) Direct 3D v9 1997 2005 2006 Availability:
What to use … and when? • Atlas Pros • Platform reach • Extends current web technology (HTML, CSS, etc.) • Zero deployment • WPF Pros • Richest experience • Offline capability • ClickOnce deployment • Text/Fonts • WPF Cons • Microsoft XP & Vista specific (for now) • Client footprint required • Tools lag • Atlas Cons • Learning curve (less with) • Maintainability (less with) • Requires Javascript on browser • Restricted by Javascript and HTTP abilities • Compatability? • Tools lag
2006 H2 2006 H1 Now 2007 WPF Beta2 WPF Feb CTP Atlas Mar CTP & Go Live Licence Platform Roadmap Expression Interactive Designer VS 'Orcas' (inc Atlas) Vista Release(inc WPF)
Next Session – WRK10104 • Workshop • A look at Atlas and WPF in action • Q&A & Debate • In Conwy 2 Room