Presentation is loading. Please wait.

Presentation is loading. Please wait.

Developing Smart Client Applications.Henrik Lykke Nielsen Software arkitekt, Captator Microsoft Regional Director for Denmark

Similar presentations


Presentation on theme: "Developing Smart Client Applications.Henrik Lykke Nielsen Software arkitekt, Captator Microsoft Regional Director for Denmark"— Presentation transcript:

1

2 Developing Smart Client Applications.Henrik Lykke Nielsen Software arkitekt, Captator Microsoft Regional Director for Denmark lykke@captator.dk www.captator.dk/captator.aspx?blog=dothenrik

3 Today's Agenda Best practices for building well-designed, secure, data-driven, smart client applications Session 1: Designing and building smart clients Patterns and practices for smart clients, IssueVision Session 2: Securing smart client applications Tips for secure data, CAS, encryption, and more Session 3: The ins and outs of secure data access Best practices for smart client data, offline data Session 4: Deploying and maintaining smart clients Tips for deploying and easily updating apps

4 Session Agenda Smart clients: a new breed of Windows app See it in action: IssueVision Drill-down: Design choices for desktop clients Smart clients in summary

5 “Smart-clients” er den næste naturlige udvikling Teknologi udvikling Shift happens Muligheder og egenskaber Tid Mainframe “ Dum ” terminal PC CUI PC GUI LAN Client-serverRADKomponenter Web Applikations server XML web services Enterprise integration N æ ste generation af klienter

6 New Breed of Windows App Enables “occasionally connected” work Leverages the best of Windows Superb usability for simple and complex tasks Power and performance of the local PC Pixel-precise layout, consistent for every user And solves common problem of Windows apps Easy deployment and maintenance Permissions not only based on user identity

7 Smart Client Defined 1.Windows user interface 2.Server-based application data 3.Local resources Additional Smart Client Attributes Solve common Windows application problems: data, security, and deployment 4.Disconnected data 5.Sophisticated security 6.Easy to deploy and maintain Wait! That’s what we’re doing today! Yes, but there’s more!

8 What a Smart Client Isn’t User interface is not the browser Not a new application architecture N-tier architectures still apply Client/server is still an option

9 Smart Client or Not? Automatic Updates? Rich Windows Experience? Seamless Offline Support? Better Connected?Smart Client? HotmailYesNo YesNo NotepadNoDebatableYesNo Outlook XPNoYesSort ofYesNo Outlook 2003NoYes Close... Microsoft Money Yes IssueVisionYes

10 Eksempel fra Captator Slutkunde med web-browser IIS SQL Shop-administrator MSDE database Filer til data integration ERP system E-handelsportal Data, applikation og komponenter PC

11 Introducing IssueVision Scenario: Helpdesk Issue Tracking Features: Great usability Shift seamlessly to working offline Shows best practices UI Patterns Occasionally connected data SecurityDeployment Access to full source code

12 IssueVision: Smart Client In Action

13 IssueVision Review Leverages the best of Windows Attractive desktop client, great usability Move seamlessly between online and offline Secure access to server data Secure access to local resources Cost-effective to install and maintain Solves common problems of Windows apps Automatic updates No DLL Hell

14

15 Drill Down: Design Choices for Desktop Clients Design Patterns Coordinating multiple views of the same data Coordinating command state Custom Controls Windows XP Themes

16 Design Patterns Promote consistency and maintainability Value increases with for app complexity Microsoft Patterns and Practices site: http://www.microsoft.com/resources/practices/ IssueVision desktop client patterns Observer Pattern Coordinates multiple views of the same data Command Pattern Coordinates menu items and toolbar buttons that perform the same function

17 Coordinate Views of Data Observer pattern Easier to keep a consistent and maintainable view of the data Half as many connections between actions, views Views are independent and unaware of each other Action Data View  view & Action  view Messages about the data Data notifies observers via events when the state of the data changes

18 Implementing an Observer m_subject = new IssueSubject() paneLeft.Subject = m_subject 1.Assign the subject to the observers (MainForm_Load) 4.Observers handle subject events to rebind data, if they care Handles m_subject.DataChanged ‘ rebind 2.Observers bind and save changes to Subject.DataSet 3.When data changes, subject raises DataChanged event IssueSubject a b c d

19 Observer Pattern

20 Coordinate Command State Related menu and toolbar widgets are not automatically handled together Command Pattern Command objects unify the state and action for related UI widgets Example: “Save” action Menu item Toolbar button Context menu

21 Implementing a Command action = New Command.Action(AddressOf WorkOffline_Action) offlineCommand = New Command(action) 1.Create a Command for each action in MainForm_Load() MenuItemCommander.Connect(menuWorkOffline, offlineCommand ) ToolBarButtonCommander.Connect(tlbOffline, offlineCommand ) 2.Wire menu items and toolbar buttons to the Command using Commander objects 3.Control button and menu item state through the Command ' Disable all UI widgets connected to this command offlineCommand.IsEnabled = False

22 Command Pattern

23 Custom Controls Encapsulate a set of user interactions Or, present information in a new way Try before you buy Visual Basic.NET Resource Kit Lots of other downloads … Create your own reusable control IssueVision’s Custom Controls ExpandableListChartPane

24 IssueList Control

25 Tips For Custom Controls Application-specific controls Reusable controls Bind to a generic data type where possible Put generic behavior in a base class, and application-specific behavior in a derived class Leverage VS.NET designer support.NET framework property types use built-in designer support Public Property ActiveGradientLowColor() As Color Add designer attributes to public members Description("Low color of the active gradient."), _ Category("Appearance"), _ DefaultValue(GetType(Color), "255, 165, 78")> _ Public Property ActiveGradientLowColor() As Color

26 Windows XP Themes Give your app a fresh look Gives your client UI flat-look input controls and rounded buttons Works on Windows XP only Application.EnableVisualStyles() Set FlatStyle property to FlatStyle.System on controls Call prior to creating forms or controls In main form’s construction

27 EnableVisualStyles()

28 Best Practices: Desktop Client Make your UI fit the data Find the best way for users navigate to and visualize your data Use design patterns to improve consistency and maintainability Use custom controls for great usability Improves consistency and code reuse too Add a fresh look with Windows XP themes

29 Smart Clients in Summary Smart clients—a new breed of Windows app Awesome usability of Windows, easy maintenance Extends the Windows client to new solutions: “Occasionally connected” offline data Deploy from Web Auto-updates Many more best practices and demos coming up! Data Access in Smart Clients Securing Smart Clients Deploying and Maintaining Smart Clients

30 Resources Patterns and Practices www.microsoft.com/resources/practices www.microsoft.com/resources/practices Visual Basic.NET Resource Kit msdn.microsoft.com/vbasic/vbrkit msdn.microsoft.com/vbasic/vbrkit Windows Forms Programming www.windowsforms.net www.windowsforms.net Visual Basic.NET Language Essentials msdn.microsoft.com/vbasic/using/understanding msdn.microsoft.com/vbasic/using/understanding Shows and webcasts msdn.microsoft.com/showsandwebcasts msdn.microsoft.com/showsandwebcasts Nyheder, artikler, information, … www.captator.dk www.captator.dk

31 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Download ppt "Developing Smart Client Applications.Henrik Lykke Nielsen Software arkitekt, Captator Microsoft Regional Director for Denmark"

Similar presentations


Ads by Google