Building Rich, Interactive Controls for Windows “Longhorn”

Slides:



Advertisements
Similar presentations
Malek Kemmou Technology Architect, Application Platform Microsoft Middle East and Africa Overview of ASP.NET 2.0.
Advertisements

Windows Vista Presentation Advances Daniel Moth Developer & Platform Group, Microsoft Ltd
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
1 Federating Identity and Authorization Across Organizations and Platforms Matthew Hur Lead Program Manager Microsoft Corporation
Module 1: Overview of the Microsoft.NET Framework.
SQL Server 2005 CLR Integration ADO.NET 2.0 Mike Taulty
1 Introducing ClickOnce: The New Application Deployment Model for Windows Forms and “Avalon” Jamie Cool Program Manager Microsoft.
Advanced Deployment Topics – MSI Enhancements Om Sharma Program Manager, Windows Installer Microsoft Corporation.
Future Directions for Leveraging Advanced XML Tools and Building Custom XML Solutions Denise Draper DAT321 Microsoft Corporation.
Building Rights Management Enabled Applications For Windows "Longhorn" Steve Bourne Chandramouli Venkatesh Microsoft Corporation Steve Bourne Chandramouli.
1 Programming Windows Help Shane McRoberts Group Program Manager Microsoft Corporation Shane McRoberts Group Program Manager Microsoft.
Plataformas.NET para desenvolvimento de aplicações web José António Silva
Data Access Design Patterns: Navigating the Data Access Maze Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software Architect Microsoft.
1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager.
1 Keyboard, Speech, and Pen Input in Your Controls Kevin Gjerstad Lead Program Manager Kevin Gjerstad Lead Program Manager
Assemblies & Namespaces1. 2 Assemblies (1).NET applications are represented by an assembly An assembly is a collection of all software of which the application.
Module 1: Overview of the Microsoft.NET Platform.
“Indigo”: Building Peer-To-Peer Applications Todd R. Manion Program Manager Microsoft Corporation Todd R. Manion Program Manager.
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
Exploiting New Capabilities for Search And Organization Kerem Karatal DAT307 Lead Program Manager Microsoft Corporation.
CF and.NET Working Together Using Web Services Geoff Snowman Developer Community Champion Microsoft Corporation.
1.NET Framework Overview: A Road Map Brad Abrams.NET Framework Team Microsoft Corporation Brad Abrams.NET Framework.
“Indigo”: Connected Application Technology Roadmap
New Features Overview. Agenda Silverlight - Intro Silverlight 3 New Features Overview with Demos, Demos and Demos… RIA Services Overview Demos, Demos,
1 Application Model Fundamentals Chris Anderson Software Architect Microsoft Corporation Chris Anderson Software Architect Microsoft.
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Microsoft.Net Sven Groot. Common Language Runtime Superset of ECMA Common Language Infrastructure Defines  Language-neutral platform  Intermediate Language.
ADO.NET 2.0: Advanced Data Access Patterns Pablo Castro DAT408 ADO.NET Technical Lead Microsoft Corporation.
User Interface Components Lecture # 5 From: interface-elements.html.
“Avalon”: Using UI Automation to Improve Application Testability Robert Sinclair Group Manager Microsoft Corporation Robert Sinclair.
1 Integrating Real-time Collaboration into your Applications Stephanie Lindsey Program Manager Microsoft Corporation Stephanie.
1 Välkommen till Sommarkollo Windows Presentation Foundation Per Östman ISV Developer Evangelist
1 Interop Best Practices and Common Pitfalls (That We Learned the Hard Way) Please write your name on a card in the back and place it in the box… Please.
SQL Server Notifications: Invalidating Cached Results Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software.
Extending Workflow With Custom Activities Dennis Pilarinos COM328 Program Manager Microsoft Corporation.
1 Programming ADO.NET in Whidbey Pablo Castro/Brad Rhodes ADO.NET Team Microsoft Corporation Pablo Castro/Brad Rhodes.
Introducing the Microsoft® .NET Framework
12/29/2017 2:33 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Mike Harsh PRSL001 Program Manager Microsoft Corporation
Microsoft Office Live Meeting 2007
Using Audio, Video, and Imaging in your Longhorn Applications
System.Search, aka “Find My Stuff”
Avalon – Using Data In Your Applications
Transactional Programming In A Windows World
Michael Wallent General Manager Windows Client Platform
MGB 2003 Adam Calderon – C# MVP Principal Engineer Interknowlogy
Understanding Wi-Fi Direct in Windows 8
Integrating with the Windows Device Experience
“Whidbey” CLR Internals
Create Metro style apps quickly with built-in controls
11/17/2018 9:30 PM Session Code: ARC 420
11/18/2018 5:19 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
"Oslo”: Customizing and Extending the Visual Design Experience
MIX 09 11/23/2018 6:07 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
11/27/2018 7:24 PM Тренинг Введение в разработку приложений на Windows Presentation Foundation Занятие 5 Элементы управления Роман Здебский
XAML Deep Dive for Windows & Windows Phone Apps Jump Start
Windows Phone application performance and optimization
Tech Ed North America /1/ :36 AM Required Slide
New User Interface Possibilities in Longhorn
What's New in Visual Studio 2005
"Avalon": Building Applications With Controls And Dialogs
2/24/2019 6:15 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Platform for Metro style Apps
TechEd /3/ :48 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
People And Groups Controls In Windows "Longhorn"
NAMESPACE.
Session Code: CLI391 Windows Forms: Exploiting Windows “Longhorn” Features from Within Your Application Mark Boulter .NET Client Team Microsoft Corporation.
Windows Forms in Visual Studio 2005: An in-depth look at key features
Mark Quirk Head of Technology Developer & Platform Group
Chapter 4 Enhancing the Graphical User Interface
Presentation transcript:

Building Rich, Interactive Controls for Windows “Longhorn” 12/6/2018 12:20 AM Session Code: 301 Building Rich, Interactive Controls for Windows “Longhorn” Jeff Bogdan Architect Microsoft Corporation jeffbog@microsoft.com © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Avalon’s Controls Charter 12/6/2018 12:20 AM Avalon’s Controls Charter Maximize usage out of the box Provide consistent extensibility mechanisms Build intrinsic controls the same way we expect third parties to build them © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Keys To Building Controls 12/6/2018 12:20 AM Keys To Building Controls Don’t Subclass… …until you’ve tried customizing Exploit Element Composition and save time, improve consistency Choose the Right Base Class and get a great head start Focus on Control Logic and leave the look to Styles © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Client Application Model 12/6/2018 12:20 AM Tools Client Application Model Avalon Windows Forms System.Windows System.Windows.Forms Web & Service Application Model Data Systems Application Model Mobile PC & Devices Application Model Command Line Compact Framework ASP.NET / Indigo Win FS Yukon System.Console Mobile PC Optimized System.Web System.Storage System.Data.SqlServer System.Windows.Forms System.Windows NT Service System.ServiceProcess Presentation Data Communication Animation Controls Control Design Panel Dialogs SideBar Notification System.Windows Documents Text Element Shapes Shape Ink UI Element Explorer Media Navigation System.Search System.Data System.Messaging System. Discovery System.Collaboration Annotations SqlClient DataSet System.DirectoryServices RealTimeEndpoint SqlTypes Mapping Active Directory TransientDataSession Monitoring System.Remoting SqlXML ObjectSpaces SignalingSession Logging System.Runtime.Remoting Uddi OdbcClient ObjectSpace Media Relevance OleDbClient Query Activities OracleClient Schema System.Web.Services System.MessageBus Animation Controls Control Design Panel Dialogs SideBar Notification System.Windows Documents Text Element Shapes Shape Ink UI Element Explorer Media Navigation Web.Service Transport Queue System.Storage System.Windows.Forms System.Web.UI Port PubSub Item Core Description Forms Page WebControls Relationship Contact Discovery Channel Router Control Control Adaptors Service Policy Media Location Protocols Print Dialog HtmlControls Design Peer Group Audio Message Design MobileControls Video Document System.Net Images Event System.Web System.Help System.Speech HttpWebRequest NetworkInformation System.Xml Personalization FtpWebListener Sockets System.Drawing Recognition Synthesis Caching Schema Xpath SslClientStream Cache System.NaturalLanguageServices Serialization Query SessionState WebClient Fundamentals Base & Application Services Security Configuration Deployment/Management System.Timers System.Text System.Collections System.Windows. TrustManagement System.Web.Configuration System.Web System.Globalization System.Design System.Security Generic System.MessageBus.Configuration System.Serialization System.IO System.Web. Security Authorization Permissions Administration System.ComponentModel System.Configuration Management System.Threading Ports AccessControl Policy System.CodeDom System.Resources System.Message Bus.Security Credentials Principal System.Management System.Runtime System.Reflection Cryptography Token System.Deployment Serialization InteropServices System.EnterpriseServices System.Diagnostics CompilerServices System.Transactions © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Five Element Families Control Panel Decorator Shape Content Element Core Content Element UIElement Object PresentationCore Retained Visual Visual Dependency Object UIContext Object Presentation Framework Framework Element Control Panel Decorator Shape Content Element MSAvalon.Windows.Controls MSAvalon.Windows.Controls.Primitives MSAvalon.Windows. Shapes MSAvalon.Windows. Documents © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Controls* Interactive Elements 12/6/2018 12:20 AM Controls* Interactive Elements Framework Element Control Text Frame Windows FormsHost Scroll Viewer Content Control Text Box Scroll Bar Items Control Slider Button HyperLink ListBox Menu Check Box ToolTip Combo Box Context Menu RadioButton ListItem Radio ButtonList * - Simplified © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

12/6/2018 12:20 AM Using vs. Building Find the element(s) that most closely match your needs Set properties Compose Elements Build new Styles Build a new type © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Building An UpDown Control 12/6/2018 12:20 AM Building An UpDown Control © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Styles A package of properties that can be applied to many elements 12/6/2018 12:20 AM Styles A package of properties that can be applied to many elements Defined at System, Application, Pane, or Tree level Style.VisualTree Leverages element composition But doesn’t confuse the application author Aliased Properties Allows VisualTree to consume values set on target Control © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Control Content Model Smooth progression from simple to rich 12/6/2018 12:20 AM Control Content Model Smooth progression from simple to rich Data as a first class citizen Separate presentation of content and control Example: Button.Content = “Hello”; … Button.Content = new Image(“happy.gif”); © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Content Pattern Singular Content: Plural Content: 12/6/2018 12:20 AM Content Pattern Singular Content: public object Content { get; set; } public Style ContentStyle { get; set; } Plural Content: public ItemsCollection Items { get; } public Style ItemStyle { get; set; } © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

The Five Control Families Control: No Content ScrollBar ContentControl: Singular Content Button.Content ItemsControl: Plural Content ListBox.Items HeaderedItemsControl: MenuItem.Header, MenuItem.Items HeaderedContentControl: GroupBox.Header, GroupBox.Content © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ContentPresenter Where Content, Style, and Control meets 12/6/2018 12:20 AM ContentPresenter Where Content, Style, and Control meets Placeholder for Content in VisualTree © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Communication Contract 12/6/2018 12:20 AM Communication Contract Because of Control and Style separation Contract between Control and Style: Today: use IDs Later: use Commands & Properties © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Close Enough To UpDown? FrameworkElement Match = RangeBase Control ScrollBar HorizontalScrollBar VerticalScrollBar Slider HorizontalSlider VerticalSlider Match = RangeBase © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Chicken And Egg Which comes first, the type definition or the markup? 12/6/2018 12:20 AM Chicken And Egg Which comes first, the type definition or the markup? Today: type definition Later: one build step for both Types consumed in markup must be defined in a separate assembly Use directive in markup to include assembly: <?Mapping XmlNamespace=“X” … ?> Complete connection with new xmlns: xmlns:other=“X” © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

What UpDown Got For Free By Deriving from RangeBase 12/6/2018 12:20 AM What UpDown Got For Free By Deriving from RangeBase Properties Minimum Maximum Value SmallChange LargeChange Events ValueChanged © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

What UpDown Got For Free By Deriving from Control 12/6/2018 12:20 AM What UpDown Got For Free By Deriving from Control Styles Commands, Input, and Eventing Layout and Rendering Hit-Testing Initial Accessibility Initial Themes © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Lines Of Code Comparison 12/6/2018 12:20 AM Lines Of Code Comparison Control Win32 Longhorn % Savings Button 1906 1901 0% ScrollBar 3163 1956 38% ListBox 8176 2156 74% UpDown 1803 194 89% Same for simpler controls Dramatic saving for more advanced controls © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

what one customer has built Infragistics 12/6/2018 12:20 AM DataGrid what one customer has built Infragistics © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Questions To Ask Yourself 12/6/2018 12:20 AM Questions To Ask Yourself I am about to write a new control … Can I change the style of an existing control? This only applies if you don’t need a new type What family of control am I trying to write? Which control within that family is closest to what I want? © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Compose, Compose, Compose, Compose, 12/6/2018 12:20 AM Compose, Compose, Compose, Compose, Compose © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Style, Style, Style, Style, 12/6/2018 12:20 AM Style, Style, Style, Style, Style © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Homework #1 Learn about DependencyProperty How it helps: Styles 12/6/2018 12:20 AM Homework #1 Learn about DependencyProperty How it helps: Styles Animations Databinding Overall Declarative Model © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Homework #2 Feedback Eval form 12/6/2018 12:20 AM Homework #2 Feedback Eval form Write a control and e-mail jeffbog@microsoft.com with bumps along the way © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Community Resources Get your questions answered! 12/6/2018 12:20 AM Community Resources Get your questions answered! Newsgroups microsoft.public.windows.developer.winfx.avalon Longhorn DevCenter http://msdn.microsoft.com/longhorn Client Track Lounge - Concourse Foyer connect with Microsoft client product teams and PDC 2003 Speakers Ask The Experts Tuesday 7 pm – 9 pm in Hall G,H PDC Weblogs http://pdcbloggers.net © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

© 2003-2004 Microsoft Corporation. All rights reserved. 12/6/2018 12:20 AM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

12/6/2018 12:20 AM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.