CA Plex and Microsoft
Windows Presentation
Foundation (WPF)
Foundation (WPF)
A Technology Preview
8C
R b L
ll
Rob Layzell
CA
Co-branded Logo Footprint Aligned LEFT ON COVER ONLY Must Fit Within This Space
Terms of This Presentation
This presentation was based on current information and resource allocations as of September 23 2009 d i bj t t h ithd l b CA t ti ith t ti
23, 2009 and is subject to change or withdrawal by CA at any time without notice.
Notwithstanding anything in this presentation to the contrary, this presentation shall not serve to (i) affect the rights and/or obligations of CA or its licensees under any existing or future written license agreement or services agreement relating to any CA software product; or (ii) amend any product documentation or specifications for any CA software product. The
development, release and timing of any features or functionality described in this presentation remain at CA’s sole discretion. Notwithstanding anything in this presentation to the contrary, upon the general availability of any future CA product release referenced in this presentation, upon the general availability of any future CA product release referenced in this presentation, CA will make such release available (i) for sale to new licensees of such product; and (ii) to existing licensees of such product on a when and if-available basis as part of CA maintenance and support, and in the form of a regularly scheduled major product release. Such releases
b d il bl t t li f h d t h t b ib t CA may be made available to current licensees of such product who are current subscribers to CA
For Informational Purposes Only
Certain information in this presentation may outline CA’s general product direction. All i f ti i thi t ti i f i f ti l l d t b information in this presentation is for your informational purposes only and may not be
incorporated into any contract. CA assumes no responsibility for the accuracy or completeness of the information. To the extent permitted by applicable law, CA provides this document “as is” without warranty of any kind, including without limitation, any implied warranties or
merchantability, fitness for a particular purpose, or non-infringement. In no event will CA be liable for any loss or damage, direct or indirect, from the use of this document, including, without limitation, lost profits, lost investment, business interruption, goodwill, or lost data, even if CA is expressly advised of the possibility of such damages.
even if CA is expressly advised of the possibility of such damages.
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
About the Speaker
> Rob Layzell
Software Architect, Software Engineering, CA
Primarily responsible for CA Plex development
Live and work in San Francisco Bay Area
> 17 years experience in software development and IT
Worked with Obsydian since 1.5.2
Joined Synon through SPS Atlanta in 1996
Plex developer for 11 years
Agenda
> Why Do YOU Need a New Client?
> Windows Presentation Foundation Explained
XAML, Code-behind, XBAP, ClickOnce
> CA Plex r6.5
WinC/Java/RPG client migration
g
Rich client development
Web enablement
> What’s Currently Missing?
> Summary
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
y
Why Do YOU Need A
Why Do YOU Need A
New Client?
Why Do You Need a New Client?
A Brief History of Plex Client Generators
y
•Obsydian 1.0 •WinC
•WinWidgets
•COOL:Plex 4.5 •Java
•Swing
g
1994
1995
1996
1997
1998
1999
2000
2001
2002
…
2009
•Obsydian 1.5 •RPGIII
•DDS
•Advantage Plex 5.0 •WinC
•MFC
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
Why Do You Need a New Client?
No New Client in 10 Years! Why?
y
> Lack of compelling technologies…
MFC
– Implemented for WinC at Plex r5.0
W j
Vi
l
St di /MFC
d h !
– We enjoy Visual Studio/MFC upgrades as much as you!
– No support for new Windows 7 technologies
WinForms
– Glorified .NET wrapper for MFC
ASP.NET
Why Do You Need a New Client?
WPF Technology Benefit #1
gy
> Separation of Design from Functionality
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
Why Do You Need a New Client?
WPF Technology Benefit #2
gy
> Simplified deployment:
XCOPY
ClickOnce
Why Do You Need a New Client?
WPF Technology Benefit #3
gy
> Rich-Web Enablement
XBAP – XAML Browser Applications
Silverlight
> Support for Windows 7 Technologies Built-in
Enhanced Accessibility
Multi-touch
Good:Common Event Handling No effort to implementBetter:
Multi-touch Event Handling Multi touch Event Handling Little effort to implement
Best:
Full multi-touch UI design Large-scale effort
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
Why Do You Need a New Client?
The Other CA Plex Benefits
> Backwards compatibility built in from the ground up
> UNICODE enabled
Not ANSI-code page
> No direct reliance on Visual Studio
Use freely available .NET Framework SDKs
y
Windows Presentation
Windows Presentation
Foundation Explained
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
Windows Presentation Foundation Explained
The Basics
> Introduced in .NET 3.0
> Framework for rendering UIs for Windows-based
applications
> Uses DirectX for UI rendering rather than GDI
Hardware acceleration
Modern UI features (Glass-effects, scaling)
Multimedia enabled (Videos on buttons)
Windows Presentation Foundation Explained
What is XAML?
> eXtensible Application Markup Language
XML-based language for declaring object structures.
Used in:
– Windows Presentation Foundation / Silverlight
– Windows Workflow
<Window x:Class=“DemoApp.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height=“140" Width=“130"> <Canvas>
<Button Canvas.Left=“30" Canvas.Top=“40" Name="button1" Width=“50" Height=“50">Hello!</Button> </Canvas>
> Don’t Worry About Binding! We’ll take care of it for you…
</Canvas> </Window>
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
Windows Presentation Foundation Explained
What is XBAP?
> XAML Browser Applications
Full WPF Applications
Hosted on IIS Server or Azure Cloud
Run in a trusted Sandbox environment in Browser
Generally designed to run in Internet Explorer only
> Silverlight
Subset of WPF Framework
Designed for Cross platform deployment (OS X Linux
Designed for Cross-platform deployment (OS X, Linux,
Windows Presentation Foundation Explained
What is ClickOnce?
> ClickOnce
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
CA Plex r6.5
CA Plex r6.5
CA Plex r6.5
Client/Server Partitioning
g
Client PC
Server PC
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
CA Plex r6.5
CA Plex r6.5
Generating WPF functions
g
> Use existing FNC language SYS/C#
> Functions that scope a Panel generate:
XAML (Panel definition)
Code-behind C# source (Function AD)
Input / Output parameter interface C# source
Resource file
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
CA Plex r6.5
Application Customization
pp
> Each application contains a generic App.xaml file
> Contains default rendering for WPF Controls
> Edit via:
> Edit via:
Visual Studio 2008
CA Plex r6.5
Building WPF functions
g
> Build as you would any other C# function:
Default Code Library (Quick and dirty)
Model Code Library objects (Best practice)
> Build designed for XCOPY deployment
> Create Executable to run WPF application
pp
Executable ‘bootstraps’ .NET Runtime
Standard .NET config file (like WinC INI)
All function classes compiled into Default Code Library
Plex .NET Runtime dependencies copied
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
23 September 23-25, 2009 Copyright © 2009 CA. All rights reserved.
CA Plex r6.5
CA Plex .NET WPF Runtime
Pl
t d C# A
li ti
Plex-generated C# Application
Code Library Assemblies, Executables, Configuration Files
Plex Base .NET Runtime
(Plex.Obrun.dll)
Plex WPF Runtime
(Plex.ObWpf.dll)
Other UI
Runtimes?
Silverlight?
(
)
Plex
Plex
(
p
)
Ribbon
WPF
Silverlight?
Plex
CA Plex r6.5
Demo #2 - A Plex-generated XAML Application
g
pp
> XAML/Code-behind generation
> Application ‘Look and feel’ customization
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
CA Plex r6.5
Plex Page Objects
g
j
> New Page object in Plex
> Similar to a Panel
Scoped to a Function
Use Same Editor
Similar Control Types
General XAML
> Compile as XBAPs
CA Plex r6.5
Demo #3 - Plex-generated XBAPs
g
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
What’s Missing?
What s Missing?
What’s Missing?
(But Planned for 6.5)
(
)
> One-to-one parity with WinC/Java (for Panel objects)
> Support for .NET Custom Components on Panels/Pages
> ClickOnce Deployment
> ClickOnce Deployment
> New Variants for Patterns:
ACTIVE
ACTIVE
UIBASIC
UISTYLE
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
What’s Missing?
(That we’re sat on the fence about)
(
)
> WCF Proxy (via Code Libraries)
> New Pattern Libraries for Page objects:
WebBasic
WebStyle
WebFoundation???
> New Variants for OBASE
> Enhanced CSAPI Libraryy
Summary
Summary
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space
Summary
> We’ve already come a long way from Plex r6.1!
> WPF is here to stay
> What can you do now?
> What can you do now?
Start migration today!
Plex Packager Tool – Alpha available now
g
p
Nothing you do now is throw-away
– Server won’t change
Q&A
Q&A
Co-branded Logo Footprint Aligned Right Edge Must Fit Within This Space