the west wind web connection 5.0 web control framework the west wind web connection 5.0 web control...

16
The The West Wind Web Connection 5.0 West Wind Web Connection 5.0 Web Control Framework Web Control Framework An overview of the new Web Control Framework in Web Connection 5.0 Rick Strahl Rick Strahl West Wind Technologies West Wind Technologies www.west-wind.com www.west-wind.com

Upload: rosaline-hunt

Post on 16-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

The The West Wind Web Connection 5.0West Wind Web Connection 5.0Web Control FrameworkWeb Control Framework

An overview of the new Web Control Frameworkin Web Connection 5.0

Rick StrahlRick StrahlWest Wind TechnologiesWest Wind Technologies

www.west-wind.comwww.west-wind.com

Page 2: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Design Goals for Web Control Design Goals for Web Control FrameworkFramework

Richer Application Development ModelRicher Application Development Model Control based framework for more natural codingControl based framework for more natural coding Event based model – client actions fire server eventsEvent based model – client actions fire server events Using ASP.NET compatible Page syntaxUsing ASP.NET compatible Page syntax Visual Designer support with .NET 2.0 ToolsVisual Designer support with .NET 2.0 Tools No .NET *runtime* requirements for deployed appsNo .NET *runtime* requirements for deployed apps

ExtensibilityExtensibility Allow developers to hook into framework pipelineAllow developers to hook into framework pipeline Allow custom control development to extend Allow custom control development to extend

functionalityfunctionality Minimal Impact on existing AppsMinimal Impact on existing Apps

Designed for maximum backwards compatibilityDesigned for maximum backwards compatibility Note: Minor changes are required for pre-5.0 appsNote: Minor changes are required for pre-5.0 apps New Web Control Framework usage OPTIONALNew Web Control Framework usage OPTIONAL

Page 3: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Web Control FrameworkWeb Control Framework Html as Objects: Rich Object Oriented FrameworkHtml as Objects: Rich Object Oriented Framework

Control based metaphor: Page class with contained controlsControl based metaphor: Page class with contained controls You access control properties to read and write page contentYou access control properties to read and write page content Page actions fire events into your FoxPro codePage actions fire events into your FoxPro code Fully extensible – you can create your own controlsFully extensible – you can create your own controls Visual User Control support allows reuse of ‘compositions’Visual User Control support allows reuse of ‘compositions’

FoxPro CentricFoxPro Centric You write FoxPro code for all logicYou write FoxPro code for all logic Supports easy two way databinding (FoxPro data and objects)Supports easy two way databinding (FoxPro data and objects) Automatic error management for forms based on databindingAutomatic error management for forms based on databinding No runtime dependence on .NET! No runtime dependence on .NET!

Automatic Page State ManagementAutomatic Page State Management PostBack values are automatically assigned back to controlsPostBack values are automatically assigned back to controls Viewstate can be used to persist non-POST values across PostbacksViewstate can be used to persist non-POST values across Postbacks Declaratively store values in the page between Postbacks Declaratively store values in the page between Postbacks (PreserveProperty)(PreserveProperty)

Visual Designer SupportVisual Designer Support You can use .NET 2.0 compatible designers: VS.NET and Visual Web DeveloperYou can use .NET 2.0 compatible designers: VS.NET and Visual Web Developer Page markup is just text - you can use NotePad, DreamWeaver, FrontPage, FoxProPage markup is just text - you can use NotePad, DreamWeaver, FrontPage, FoxPro

Page 4: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Web Control FrameworkWeb Control Framework

Object OrientedObject Oriented All controls inherit from wwWebControlAll controls inherit from wwWebControl Common set of features to all controlsCommon set of features to all controls Create new controls by subclassingCreate new controls by subclassing New controls are automatically script enabled*New controls are automatically script enabled*

Event DrivenEvent Driven Server Events map to methods in your Page ClassServer Events map to methods in your Page Class In your script markup:In your script markup:<ww:wwWebButton … click="this.Page.btnSubmit_Click"/><ww:wwWebButton … click="this.Page.btnSubmit_Click"/>

In your FoxPro class:In your FoxPro class:Function btnSubmit_Click()Function btnSubmit_Click()this.lblMessage.Text = "Hello World " + TRANS(DateTime())this.lblMessage.Text = "Hello World " + TRANS(DateTime())ENDFUNCENDFUNC

Container SupportContainer Support Intrinsic support for nested componentsIntrinsic support for nested components Container nesting is supported both visually and via codeContainer nesting is supported both visually and via code Controls have ChildControls, Parent and Page propertiesControls have ChildControls, Parent and Page properties Panels can host controls, DataGrids can host DataColumns etc.Panels can host controls, DataGrids can host DataColumns etc.

* Visual Designer support requires creation of a .NET wrapper component

Page 5: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

wwWebControlwwWebControlwwWebControlwwWebControl

wwWebTextBoxwwWebTextBoxwwWebTextBoxwwWebTextBox

wwWebButtonwwWebButtonwwWebButtonwwWebButton

wwWebDropDownListwwWebDropDownListwwWebDropDownListwwWebDropDownList

wwWebRadioButtonListwwWebRadioButtonListwwWebRadioButtonListwwWebRadioButtonList

wwWebCheckBoxwwWebCheckBoxwwWebCheckBoxwwWebCheckBox

wwWebPagewwWebPagewwWebPagewwWebPage

wwWebListBoxwwWebListBoxwwWebListBoxwwWebListBox

wwWebLabelwwWebLabelwwWebLabelwwWebLabel

wwWebPanelwwWebPanelwwWebPanelwwWebPanel

wwWebDataGridwwWebDataGridwwWebDataGridwwWebDataGrid

wwWebRadioButtonwwWebRadioButtonwwWebRadioButtonwwWebRadioButton

wwWebImageButtonwwWebImageButtonwwWebImageButtonwwWebImageButton

wwWebLinkButtonwwWebLinkButtonwwWebLinkButtonwwWebLinkButton

wwWebHyperLinkwwWebHyperLinkwwWebHyperLinkwwWebHyperLink

ContainersContainers Core ControlsCore Controls List ControlsList Controls

Web Control HierarchyWeb Control Hierarchysome common controlssome common controls

wwAjaxMethodCallbackwwAjaxMethodCallbackwwAjaxMethodCallbackwwAjaxMethodCallback

wwModalDialogwwModalDialogwwModalDialogwwModalDialog

wwHoverPanelwwHoverPanelwwHoverPanelwwHoverPanel

wwDragPanelwwDragPanelwwDragPanelwwDragPanel

AjaxAjax

wwErrorDisplaywwErrorDisplaywwErrorDisplaywwErrorDisplay

wwWebTabControlwwWebTabControlwwWebTabControlwwWebTabControl

wwFckEditorwwFckEditorwwFckEditorwwFckEditor

wwWebLoginwwWebLoginwwWebLoginwwWebLogin

Extended ControlsExtended Controls

wwWebFileUploadwwWebFileUploadwwWebFileUploadwwWebFileUpload

Page 6: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

From Markup Design to FoxPro CodeFrom Markup Design to FoxPro Code

Rich Markup ScriptsRich Markup Scripts Uses ASP.NET compatible control syntax (Html + Controls)Uses ASP.NET compatible control syntax (Html + Controls) Supports basic stock ASP.NET controlsSupports basic stock ASP.NET controls Web Connection provides specific controlsWeb Connection provides specific controls Specific controls are FoxPro centricSpecific controls are FoxPro centric

Code Generation and CompilationCode Generation and Compilation WebPageParser convert scripts to pure VFP PRG codeWebPageParser convert scripts to pure VFP PRG code Converts each server tag to a VFP objectConverts each server tag to a VFP object Maps attributes to properties or events/methodsMaps attributes to properties or events/methods 2 classes are generated in a single source file2 classes are generated in a single source file

Generated class with control definitions Generated class with control definitions (regenerated often)(regenerated often)

User class contains your page logic User class contains your page logic (never updated by generator)(never updated by generator)

Automatic Page Conversion/CompilationAutomatic Page Conversion/Compilation When Page is executed compilation occurs automaticallyWhen Page is executed compilation occurs automatically Compilation only with debug mode enabledCompilation only with debug mode enabled Manual compilation using the WebPageParser classManual compilation using the WebPageParser class

Page 7: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Web Control Event PipelineWeb Control Event Pipeline

Page LifecyclePage Lifecycle Requests cause Page to 'Run()'Requests cause Page to 'Run()' Page is just another WebControlPage is just another WebControl Run() causes Page Event Sequence to fireRun() causes Page Event Sequence to fire Each control fires a set of fixed eventsEach control fires a set of fixed events Each control fires events into any child controlsEach control fires events into any child controls Events deal with Initialization, State, Events deal with Initialization, State,

Operation and RenderingOperation and Rendering

Controls are fully self containedControls are fully self contained Each control manages its own state Each control manages its own state

Retrieves ViewStateRetrieves ViewState Retrieves POST dataRetrieves POST data Saves its own ViewStateSaves its own ViewState

Each control Renders itselfEach control Renders itself Controls render in non-PageFramework pages!Controls render in non-PageFramework pages! Some features like ViewState work in conjunction with the Page objectSome features like ViewState work in conjunction with the Page object

Page 8: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Visual Studio Designer SupportVisual Studio Designer Support

Page 9: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Script Page CodeScript Page Code

Page 10: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Generated Class from ScriptGenerated Class from Script (same file as your (same file as your

custom class)custom class)

Page 11: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Your Custom Class Your Custom Class (same file as generated class)(same file as generated class)

Page 12: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Other Features of Page FrameworkOther Features of Page Framework Control based CachingControl based Caching

All Controls can be cached once renderedAll Controls can be cached once rendered Once cached Cached control is not rendered againOnce cached Cached control is not rendered again

Client Script ManagementClient Script Management You can add script code to the ClientScript collectionYou can add script code to the ClientScript collection Framework manages rendering of the script codeFramework manages rendering of the script code

ViewState Persistence ManagementViewState Persistence Management Stores Page specific contentStores Page specific content Control.PreserveProperty() save and restores property Control.PreserveProperty() save and restores property

valuesvalues

SecuritySecurity Integration of wwUserSecurity ClassIntegration of wwUserSecurity Class FoxPro table based authenticationFoxPro table based authentication Integrated into Process class in addition to BasicIntegrated into Process class in addition to Basic wwWebLogin control for Control based LoginwwWebLogin control for Control based Login

Page 13: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

AJAX FeaturesAJAX Features JSON Method CallbacksJSON Method Callbacks

Call page methods or any class methodCall page methods or any class method wwAjaxMethodCallback control makes it EASYwwAjaxMethodCallback control makes it EASY wwJsonService for classic WWWCwwJsonService for classic WWWC Converts objects and Tables/Cursors to JSONConverts objects and Tables/Cursors to JSON

wwHoverPanelwwHoverPanel Easy Popup window with server dataEasy Popup window with server data Optional Iframe Popup supportOptional Iframe Popup support

wwDragPanelwwDragPanel Draggable and Closable Client Window/PanelsDraggable and Closable Client Window/Panels

wwModalPopupwwModalPopup Popup windows that block out backgroundPopup windows that block out background Easy way to require client top operationEasy way to require client top operation

Client AJAX Library Client AJAX Library Based on jQuery – rewritten for WWWC 5.40Based on jQuery – rewritten for WWWC 5.40 Many jQuery plug-ins providedMany jQuery plug-ins provided Easy to use convenience methodsEasy to use convenience methods

Page 14: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

.NET Managed Module.NET Managed Module

Replaces ISAPI DLL with .NET ModuleReplaces ISAPI DLL with .NET Module Easier code base to maintainEasier code base to maintain Proper moving forward path for IIS supportProper moving forward path for IIS support Many more opportunities to improve featuresMany more opportunities to improve features Already includes a number of enhancementsAlready includes a number of enhancements Possible support for Linux through MonoPossible support for Linux through Mono

Many BenefitsMany Benefits Can run natively in IIS 7Can run natively in IIS 7 Allows operating under 64 bit serversAllows operating under 64 bit servers Allows operating without IIS (VS WS, Cassini)Allows operating without IIS (VS WS, Cassini) Cassini server shipped with Web ConnectionCassini server shipped with Web Connection

Page 15: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

Web Connection Cassini Web ServerWeb Connection Cassini Web Server

Local Web ServerLocal Web Server Allows running Web Connectionwithout IIS/ApacheAllows running Web Connectionwithout IIS/Apache Used in locked down IT environmentsUsed in locked down IT environments Used for 'local' Web applicationsUsed for 'local' Web applications Uses the .NET Managed ModuleUses the .NET Managed Module

Offline ApplicationsOffline Applications Server is a self contained EXE Server is a self contained EXE (requires 2 support dlls)(requires 2 support dlls)

Server can be distributed with your applicationsServer can be distributed with your applications Server can be nstalled on client machinesServer can be nstalled on client machines Allows running Web apps 'offline'Allows running Web apps 'offline'

(still needs data and code, but can run locally)(still needs data and code, but can run locally)

Page 16: The West Wind Web Connection 5.0 Web Control Framework The West Wind Web Connection 5.0 Web Control Framework An overview of the new Web Control Framework

PricingPricing Pricing and UpgradesPricing and Upgrades

Full Version Pricing: $399.00Full Version Pricing: $399.00 Upgrade Pricing: $299.00Upgrade Pricing: $299.00

Shareware version availableShareware version available Fully functionalFully functional Precompiled (some options can’t be set)Precompiled (some options can’t be set) Shareware Nag screenShareware Nag screen

More info:More info:www.west-wind.com/webconnection

SupportSupport www.west-wind.com/wwThreads