.Net 3.0 and Windows Presentation Foundation
270 likes | 295 Vues
Explore the key features and benefits of .Net 3.0 and Windows Presentation Foundation (WPF). Learn about the programming models, elements, controls, and styling options offered by WPF.
.Net 3.0 and Windows Presentation Foundation
E N D
Presentation Transcript
.Net 3.0 and Windows Presentation Foundation Jim Fawcett CSE775 – Distributed Objects Spring 2007
References • Introducing Windows Presentation Foundation, David Chappell, http://msdn2.microsoft.com/en-us/library/aa663364.aspx • Several figures used from this presentation • Introducing Windows Communication Foundation, David Chappell, http://www.davidchappell.com/IntroducingWCFv1.2.1.pdf • Several figures used from this presentation • Foundations of Windows Presentation Foundation, Laurence Moroney, Apress, 2006 • Scalable Vector Graphics (SVG), XML Graphics for the Web, http://www.w3.org/Graphics/SVG/
References • Introduction to Vector Markup Language (VML), http://msdn.microsoft.com/library/default.asp?url=/workshop/author/vml/default.asp • Windows Presentation Foundation, Ronnie Saurenmann, www.00001001.ch/Download/WebSummit/WPF.ppt • Windows Presentation Foundation, Sue Chard, www.devlab.ac.nz/dotnetlink/wpf.ppt
.Net 3.0 • The .Net 3.0 Framework has support for three major pieces, available for Vista, XP, and Server 2003: • Windows Work Flow (WF) • Windows Communication Foundation (WCF) • Windows Presentation Foundation (WPF) • There is a fourth piece, Media Foundation, available only on Vista • A COM multi-media framework, designed to replace DirectShow, Windows Media SDK, DirectX media, etc. • Won’t be available on XP. • Basic tools (command line compilers etc) and Framework classes support these. • New, more productive, tools are coming with the Orcas release of Visual Studio, later this year.
Windows Work Flow (WF) • Windows Work Flow is: • An execution engine for code-based activities • Essentially an attempt at simplifying organization of programs. • Executes activity blocks and sequences between blocks based on connectivity and control constructs, or based on events. • Runs in two modes: • Sequential is essentially a flow-chart execution engine • State is a state-machine execution engine • Discussion I’ve read indicates that it is oriented primarily toward implementing “Business Rules”. • Workflows are programmed in XAML (used to be called XOML in WF. The O stood for Object.
Windows Communication Foundation • Convergence of application programming models for communication, supporting: • Web Services (Asp Web Services) • Web Applications (Asp.Net) • Windows Services (NT Services) • Remoting (.Net Remoting) • Queuing (MSMQ) • Can be hosted in: • IIS • Windows Services • Windows Applications
WCF Services Chappell (IWCF)
Windows Presentation Foundation • Convergence of presentation programming models, Supporting: • Desktop applications • WinForms, MFC, WTL, Win32 • Web applications • Asp.Net • Document presentation • Word Documents
Elements of WPF • Scalable Vector Graphics • It is not clear whether WPF is based on standard SVG or on Microsoft’s proprietary Vector Markup Language (VML) • eXtensible Application Markup Lanaguage (XAML) • A dilect of XML with tags defined for specific graphics (or other application) operations:<Rectangle Width="30" Height="10" Fill="HorizontalGradient Red Yellow" /> • CodeBehind • Event handler code
Applications Controls Styling Layout Data Content Action Presentation Framework Adapted from Chard (WPF) PresentationCore.dll - managed MilCore.dll – unmanaged composition DirectX – a COM technology Driver
Features • Programming • Declarative programming with XAML • Imperative programming with classes from System.Windows namespace • Interop with Forms • Host Forms controls on WPF pages • Host WPF controls on Forms
WPF Support for Presentation • Presentation mode: • Window: basic display windows • NavigationWindow: hyperlinked navigation • Layout: • DockPanel: Flow layout like a web page • StackPanel: Linear layout, ala toolbars • Grid: Absolute positioning on grid • Canvas: Free positioned layout • Controls: • All the usual plus new addtions • Supports custom controls
Styles • Cascading Style Sheets • It is not clear that WPF directly supports CSS • WPF does have DataTemplate and ControlTemplate classes that support styling data layouts and controls. • Style element class: • <style>…</style> • Inline styles: • <Button style=“{StaticResource ButtonStyle}”>a title</Button>
Documents • Typography: • OpenType fonts • ClearType • Glyphs • Documents • FixedDocument class • Layout is fixed for rendering in any window or printer, does not flow • FlowDocument class • Uses browser flow model • Lots of control over the details of how that is done through properties
Media • Images • <Image width=“200” Source=“C:\temp\us.jpg” /> • Can have metadata • Can be painted onto 3D canvases • Video • <MediaElement Source=“c:\temp\myVid.wmv” /> • Handles wmv, mpeg, avi, wav, …
<Border Width="400" BorderBrush="Green" BorderThickness="9"> <StackPanel> <MediaElement Source="aero.wmv" /> <Button>Hello</Button> </StackPanel> </Border> Audio & Video Ronnie Saurenmann (WPF) • Formats: WMV, MPEG, Some AVIs • Can be synchronized with animations • Windows Media Foundation used to instantiate playback machinery into a DirectShow graph
2D Graphics • Support for primitives: • Line, Ellipse, Rectangle, Polygon, Polyline, Path • Support for defining regions: • LineGeometry, RectangleGeometry, …
2D Graphics, 3D Graphics, Imaging Ronnie Saurenmann (WPF) 2D Graphics 3D Graphics Imaging
3D Graphics • Viewport3D control • Models • Define shape, lighting, viewing • GeometryModel3D class • SpecularMaterial class • DiffuseMaterial class • DirectionalLight • AmbientLight • PerspectiveCamera • OrthographicCamera
Transformations • RotateTransform • ScaleTransform • RenderTransform • Blur and glow effects
Animations • Storyboard class • Defines element(s) to which animation applies, by name • Initial properties like size and position • Range of changes of those properties with duration settings (time between changes)
Combining Stuff • Most of the WPF elements can be containers: • Can put an ellipse in a button • Graphics figures, controls, animations, … can be freely mixed and applied to each other.
Applications • Desktop applications • Full trust • Rich, but familiar applications • XAML Browser Applications (XBAPS) • Lowered trust • Many operations are not allowed, e.g., access to local file system • May appear very like an equivalent desktop application • Most of the code is the same