SlideShare uma empresa Scribd logo
1 de 80
Developing Windows and Web Applications using Visual Studio.NET Peter Gfader Senior Software Architect
Homework?
„Add New“ disabled Problems with Lab / homework?
Unused methods, after removing UI controls Tip
C# 3.0, C# 4.0,   C# 5 LINQ Data with LINQ Session 2: Last week?
User Experience (UX) Tips and Techniques, Best practices Windows Forms Capabilities and Demo’s Tools to better UX & code UX Resources Agenda
Business applications
Enter data  Find data  Show data Every business app does
Professional Feel  Enter data  Validation Find data  Filter data Rich data query Show data Different Views Reports (nice printing) Authorization? Every business app
User Experience
User experience 3 pillars
UX - Look
UX - Usability
Make site feel alive React fast Interact with user “Joy of use” UX - Feel
How can we improve UX
Developers Need a UI to test their software as they build UI increases in complexity as software is built Application grows but the UI isn’t consistent Know how the controls work (or they should!!) Designers May design the UI but not realize WHAT is possible May understand a Visual Consistency but not how its built Who designs the UI?
The user Who uses the UI?
„User driven“ Do testing with the user Prototyping Usability testing Let user solve a task and see (measure) what he does User
Why choose Windows Forms?
Bandwidth – Presentation layer Cache / persistent state Faster Server Because of less requests and less work… thanks to processing power being used on client Richer interface No buggy DHTML/JavaScript More responsive Faster to develop No cross-browser issues Build complex controls quickly Why Windows Forms?
Not allowed in Standard Operating Environment Cross-platform requirements (Linux, PC, Mac) Deployment of the Application is harder / Centralised logic Requires an always-connected data service Why NOT Windows Forms?
Network Admins Developers End Users Accounts Who Do I Please? Browser Based Solution Rich Client Solution        
Who uses prototypes? Sketchflow Balsamiq Do you design a mockup UI first?
Avoid the thought of a “throw away” prototype. Use as the first step to start a project (or get a project) - WYSIWYG Get great initial feedback Better than 100 page document Get designer involved if need be (Developers can’t design) Tip: Always add client logo + colours. They are easily impressed! Designing a Mockup UI
Would you design Database first or UI? Database schema should be designed before the UI is started If you are doing fixed price work, signed-off mockups serve as a great way to stop goal posts moving. Any changes to the mockups thereafter will result in additional work. Designing a Mockup UI
Windows Forms – Best practices
Visual Inheritance Composition and Containment (Panels, Usercontrols) Databinding ToolTips Error Provider and Validators Appsettings Winform Architecture
The constructor of each form/control class contains a call of a private method "InitializeComponent()". If B is derived from A, then the constructor of A is called first A() A.InitializedComponent() B() B.InitialzeComponent() Visual Inheritance
Controls on the Base Form are BY DEFAULT “private” and cannot be edited in the inherited form Solution: Change the modifer to “Protected” Visual Inheritance
Common Behaviour Company Icon  Remembering its size and location Adding itself to a global forms collection (to find forms that are already open, or to close all open forms)   	** Application.OpenForms Logging usage frequency and performance of forms (load time) No Controls! Inherited Forms – For Every Form
CenterParent only for modal dialogs (to prevent multi-monitor confusion)  CenterScreen only for the main form (MainForm), or a splash screen  WindowsDefaultLocation for everything else (99% of forms) - prevents windows from appearing on top of one another StartPosition
FixedDialog only for modal dialog boxes  FixedSingle only for the the main form (MainForm) - FixedSingle has an icon whereas FixedDialog doesn't None for splash screen  Sizable for any form that has multi-line textbox, grid, listbox or such FormBorderStyle
Base Data Entry Form 3 4 1 2
Do you encapsulate (aka lock) values of forms?
Hiding Values
Developers fiddle! Browsable: whether a property or event should be displayed in a Properties window. http://msdn.microsoft.com/en-us/library/system.componentmodel.browsableattribute.aspx EditorBrowsable: whether a property or method is viewable in an editor.http://msdn.microsoft.com/en-us/library/system.componentmodel.editorbrowsableattribute.aspx Hiding Values
Hiding Values using System.ComponentModel; [Browsable(false), EditorBrowsable(false)] public new Font Font {    get    {       return base.Font;    }    set    { base.Font = value;    }	 } Imports System.ComponentModel<Browsable(False), EditorBrowsable(false)> _ Public Shadows Property Font() As Font   Get      Return MyBase.Font   End Get    Set(ByVal Value As Font)      'MyBase.Font = Value      'normal property syntaxMyBase.Font = New Font(Me.Font.FontFamily, 20)    End SetEnd Property
Do you know when to use User Controls?
You lose the AcceptButton and CancelButton properties from the Designer e.g. OK, Cancel, Apply 	Therefore the OK, Cancel and Apply buttons cannot be on User Controls.        User Controls
You can use a user control more than once on the same form e.g. Mailing Address, Billing Address  You can reuse logic in the code behind the controls e.g. Search control  User controls are less prone to visual inheritance errors        User Controls
User Controls Controls only used once Bad! »
User Controls Only for reuse Good! »
User Controls – TabPages Exception! »
Possible Exception: When a form has multiple tabs, and each tab has numerous controls – it can be easier to use User Control in this case Smaller designer generated code More than one person can be working on a different ‘tab’ User Controls – TabPages
Code intensive Must manually handle the Validating event of each control you want to validate Must be manually running the validation methods when the OK or Apply button is clicked Error Provider
Controls that “attach” themselves to existing  Do you use validator controls?
Validator Controls Good No code, all in the designer (integrates with the ErrorProvider)
Windows Forms – Validation
Validation logic is in the Model Validation with Entity Framework public partial class Employee {  partial void OnLastNameChanging(string value)  {    if (string.Compare(value, "Gfader", StringComparison.InvariantCultureIgnoreCase) == 0)    {         throw new ArgumentException("No GFADER allowed");    }  } }
Validation logic is in the Model Validation with Entity Framework publicpartialclass Employee { partialvoidOnLastNameChanging(string value)    { if (string.Compare(value, "Gfader", StringComparison.InvariantCultureIgnoreCase) == 0)      { thrownewArgumentException("No GFADERallowed");      }    } }
Partial class holds validation logic Partial class
Hook up ErrorProvider
Happens in model Different UI layers can react to validation differently Web page Windows Form Silverlight WPF ... Validation
Monitor Performance better Good user feedback Easy to do AdamE thinks“general user’s don’t care about technical details, a progress bar is better” Do you use a status bar to show load time?
Don't use splash screens for branding. Avoid using splash screens because they may cause users to associate your program with poor performance. Use them only to give feedback and reduce the perception of time for programs that have unusually long load times. Don't use animated splash screens. Users often assume that the animated splash screen is the reason for a long load time. Too often, that assumption is correct. Splash Screens
Two-way binding means that the object/data structure is bound to the UI Element/Control The setting/getting and the positioning of elements in a collection is handled by the databindingmechansisms Databinding is VASTLY superior in WPF Do you always use the Visual Studio designer for data binding where possible?
Bad – write your own boring code Private Sub OnLoad() OrderDetailsService.Instance.GetAll(Me.OrderDetailsDataSet1)         Dim row As OrderDetailsDataSet.OrderDetailsRow = 	Me.OrderDetailsDataSet1.OrderDetails(0)         Me.TextBox1.Text = row.UnitPrice.ToString("c")     End Sub     Private Sub Save()         Dim row As OrderDetailsDataSet.OrderDetailsRow = 	Me.OrderDetailsDataSet1.OrderDetails(0) row.UnitPrice = Decimal.Parse(Me.TextBox1.Text, 	System.Globalization.NumberStyles.Currency)     End Sub
Using the Designer SimpleBinding to a single property ComplexBinding to a list
MDI Forms
MDI Forms Hangover from Access 2.0  	and Windows 3.1 Clutter the application Only one window on  	the taskbar No multiple monitor support
Do you make common control with certain width?
Bad/Good Example #1
Bad/Good Example #2
Testing Don‘t trust anyone
Part of Visual Studio 2010 "Ultimate" edition Microsoft Test Manager
Microsoft Test Manager
Generate Coded UI test
Use existing recording
Generated coded UI test [TestMethod] publicvoid CodedUITestMethod1() { this.UIMap.StartApplication(); this.UIMap.LoginToApplication(); this.UIMap.SeeDetailsform(); this.UIMap.ClickOnnextRecord(); this.UIMap.SeetheNextRecord(); }
Automated recording IntelliTrace (drill through to Visual Studio) Bug in TFS Video.wmv Detailed steps Lots of details (you don’t need if you get intelliTrace) Stack trace System info Microsoft Test Manager
Book "User Interface Design for Programmers“ Blog http://www.joelonsoftware.com/ UX patterns http://quince.infragistics.com/ Resources
http://www.windowforms.net http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterInterfaces.aspx Windows UX Guidelines http://msdn.microsoft.com/en-us/library/aa511258.aspx Designing Interfaces http://designinginterfaces.com/ Automate UI - VS2010 Test Manager Resources
Covers Windows UI reference guidelines This should be your main ‘Bible’ when designing Windows Forms (not Web) if you’re not a designer as it provides a consistent standard Windows UX Guidelines
What's next?
Thank You! Gateway Court Suite 10 81 - 91 Military Road Neutral Bay, Sydney NSW 2089 AUSTRALIA  ABN: 21 069 371 900  Phone: + 61 2 9953 3000 Fax: + 61 2 9953 3105  info@ssw.com.auwww.ssw.com.au

Mais conteúdo relacionado

Mais procurados

STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...Anna Russo
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCBarry Gervin
 
Transforming Power Point Show with VBA
Transforming Power Point Show with VBATransforming Power Point Show with VBA
Transforming Power Point Show with VBADCPS
 
Accessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxesAccessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxesRuss Weakley
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
Creating accessible modals and autocompletes
Creating accessible modals and autocompletesCreating accessible modals and autocompletes
Creating accessible modals and autocompletesRuss Weakley
 
The EffiChange XPager Suite: Understanding XPages Scaffolding
The EffiChange XPager Suite: Understanding XPages ScaffoldingThe EffiChange XPager Suite: Understanding XPages Scaffolding
The EffiChange XPager Suite: Understanding XPages ScaffoldingEffiChange LLC
 
HTML5 Up and Running
HTML5 Up and RunningHTML5 Up and Running
HTML5 Up and RunningCodemotion
 
Workflow functional concept on openerp7
Workflow functional concept on openerp7Workflow functional concept on openerp7
Workflow functional concept on openerp7Aziza Mohamed
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC PresentationVolkan Uzun
 
3-TIER ARCHITECTURE IN ASP.NET MVC
3-TIER ARCHITECTURE IN ASP.NET MVC3-TIER ARCHITECTURE IN ASP.NET MVC
3-TIER ARCHITECTURE IN ASP.NET MVCMohd Manzoor Ahmed
 
12 asp.net session17
12 asp.net session1712 asp.net session17
12 asp.net session17Vivek chan
 
Building xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvmBuilding xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvmMike Melusky
 
Testing Banking Applications. Here is a practical example
Testing Banking Applications. Here is a practical exampleTesting Banking Applications. Here is a practical example
Testing Banking Applications. Here is a practical exampleMaveryx
 
10 ways to bind multiple models on a view in mvc code project
10 ways to bind multiple models on a view in mvc   code project10 ways to bind multiple models on a view in mvc   code project
10 ways to bind multiple models on a view in mvc code projectAkshat Kumar
 
Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...Amit Sharma
 

Mais procurados (20)

STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVC
 
Transforming Power Point Show with VBA
Transforming Power Point Show with VBATransforming Power Point Show with VBA
Transforming Power Point Show with VBA
 
Accessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxesAccessible custom radio buttons and checkboxes
Accessible custom radio buttons and checkboxes
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
Introduction to Angular Js
Introduction to Angular JsIntroduction to Angular Js
Introduction to Angular Js
 
ID E's features
ID E's featuresID E's features
ID E's features
 
Creating accessible modals and autocompletes
Creating accessible modals and autocompletesCreating accessible modals and autocompletes
Creating accessible modals and autocompletes
 
The EffiChange XPager Suite: Understanding XPages Scaffolding
The EffiChange XPager Suite: Understanding XPages ScaffoldingThe EffiChange XPager Suite: Understanding XPages Scaffolding
The EffiChange XPager Suite: Understanding XPages Scaffolding
 
HTML5 Up and Running
HTML5 Up and RunningHTML5 Up and Running
HTML5 Up and Running
 
Workflow functional concept on openerp7
Workflow functional concept on openerp7Workflow functional concept on openerp7
Workflow functional concept on openerp7
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
3-TIER ARCHITECTURE IN ASP.NET MVC
3-TIER ARCHITECTURE IN ASP.NET MVC3-TIER ARCHITECTURE IN ASP.NET MVC
3-TIER ARCHITECTURE IN ASP.NET MVC
 
12 asp.net session17
12 asp.net session1712 asp.net session17
12 asp.net session17
 
Rits Brown Bag - TypeScript
Rits Brown Bag - TypeScriptRits Brown Bag - TypeScript
Rits Brown Bag - TypeScript
 
Building xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvmBuilding xamarin.forms apps with prism and mvvm
Building xamarin.forms apps with prism and mvvm
 
Testing Banking Applications. Here is a practical example
Testing Banking Applications. Here is a practical exampleTesting Banking Applications. Here is a practical example
Testing Banking Applications. Here is a practical example
 
Active x control
Active x controlActive x control
Active x control
 
10 ways to bind multiple models on a view in mvc code project
10 ways to bind multiple models on a view in mvc   code project10 ways to bind multiple models on a view in mvc   code project
10 ways to bind multiple models on a view in mvc code project
 
Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...
 

Destaque

Examples of Good and Bad Web Design
Examples of Good and Bad Web DesignExamples of Good and Bad Web Design
Examples of Good and Bad Web Designbutest
 
Why User Experience Matters
Why User Experience MattersWhy User Experience Matters
Why User Experience MattersGreg Harron
 
Ruth's User Experience Nightmares
Ruth's User Experience NightmaresRuth's User Experience Nightmares
Ruth's User Experience NightmaresRuth Ellison
 
Examples Of Good And Bad Essays
Examples Of Good And Bad EssaysExamples Of Good And Bad Essays
Examples Of Good And Bad Essaysmissm
 
7 Examples of good and bad e-commerce websites
7 Examples of  good and bad e-commerce websites7 Examples of  good and bad e-commerce websites
7 Examples of good and bad e-commerce websitesTreesukon Koytaranon
 
Good Examples of Bad Design
Good Examples of Bad DesignGood Examples of Bad Design
Good Examples of Bad DesignThe Mechanism
 
Evans, Our God is Awesome: God Passion
Evans, Our God is Awesome: God PassionEvans, Our God is Awesome: God Passion
Evans, Our God is Awesome: God PassionRichard Chamberlain
 
Cep 817 design ed good bad design
Cep 817 design ed good bad designCep 817 design ed good bad design
Cep 817 design ed good bad designkereluik
 
Bad design in examples by Ross Sokolovski
Bad design in examples by Ross SokolovskiBad design in examples by Ross Sokolovski
Bad design in examples by Ross SokolovskiRoss Sokolovski
 
Introduction to User Experience - Mike Biggs
Introduction to User Experience - Mike BiggsIntroduction to User Experience - Mike Biggs
Introduction to User Experience - Mike BiggsThoughtworks
 
User Experience: The good, the bad, and the ugly
User Experience: The good, the bad, and the ugly User Experience: The good, the bad, and the ugly
User Experience: The good, the bad, and the ugly IxDA Chicago
 
Five principles of document design
Five principles of document designFive principles of document design
Five principles of document designmlmeloy
 

Destaque (13)

Examples of Good and Bad Web Design
Examples of Good and Bad Web DesignExamples of Good and Bad Web Design
Examples of Good and Bad Web Design
 
Why User Experience Matters
Why User Experience MattersWhy User Experience Matters
Why User Experience Matters
 
Ruth's User Experience Nightmares
Ruth's User Experience NightmaresRuth's User Experience Nightmares
Ruth's User Experience Nightmares
 
Examples Of Good And Bad Essays
Examples Of Good And Bad EssaysExamples Of Good And Bad Essays
Examples Of Good And Bad Essays
 
7 Examples of good and bad e-commerce websites
7 Examples of  good and bad e-commerce websites7 Examples of  good and bad e-commerce websites
7 Examples of good and bad e-commerce websites
 
Good Examples of Bad Design
Good Examples of Bad DesignGood Examples of Bad Design
Good Examples of Bad Design
 
Evans, Our God is Awesome: God Passion
Evans, Our God is Awesome: God PassionEvans, Our God is Awesome: God Passion
Evans, Our God is Awesome: God Passion
 
Good/Bad Web Design
Good/Bad Web DesignGood/Bad Web Design
Good/Bad Web Design
 
Cep 817 design ed good bad design
Cep 817 design ed good bad designCep 817 design ed good bad design
Cep 817 design ed good bad design
 
Bad design in examples by Ross Sokolovski
Bad design in examples by Ross SokolovskiBad design in examples by Ross Sokolovski
Bad design in examples by Ross Sokolovski
 
Introduction to User Experience - Mike Biggs
Introduction to User Experience - Mike BiggsIntroduction to User Experience - Mike Biggs
Introduction to User Experience - Mike Biggs
 
User Experience: The good, the bad, and the ugly
User Experience: The good, the bad, and the ugly User Experience: The good, the bad, and the ugly
User Experience: The good, the bad, and the ugly
 
Five principles of document design
Five principles of document designFive principles of document design
Five principles of document design
 

Semelhante a Better User Experience with .NET

Grasping The LightSwitch Paradigm
Grasping The LightSwitch ParadigmGrasping The LightSwitch Paradigm
Grasping The LightSwitch ParadigmAndrew Brust
 
Visual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewVisual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewHimanshu Desai
 
Model View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In AspnetModel View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In Aspnetrainynovember12
 
Getting Started with Iron Speed Designer
Getting Started with Iron Speed DesignerGetting Started with Iron Speed Designer
Getting Started with Iron Speed DesignerIron Speed
 
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and TricksIBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and TricksSenturus
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-eehomeworkping3
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010Abram John Limpin
 
AD207 Presentation
AD207 PresentationAD207 Presentation
AD207 Presentationmackejo1
 
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...Anna Russo
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part IIMichael Fons
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCAnton Krasnoshchok
 
Improving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingImproving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingAnna Russo
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the informationToushik Paul
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB
 

Semelhante a Better User Experience with .NET (20)

Grasping The LightSwitch Paradigm
Grasping The LightSwitch ParadigmGrasping The LightSwitch Paradigm
Grasping The LightSwitch Paradigm
 
Visual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services OverviewVisual Studio 2015 / Visual Studio Team Services Overview
Visual Studio 2015 / Visual Studio Team Services Overview
 
Asp.Net MVC Intro
Asp.Net MVC IntroAsp.Net MVC Intro
Asp.Net MVC Intro
 
Test
TestTest
Test
 
Model View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In AspnetModel View Presenter (MVP) In Aspnet
Model View Presenter (MVP) In Aspnet
 
Getting Started with Iron Speed Designer
Getting Started with Iron Speed DesignerGetting Started with Iron Speed Designer
Getting Started with Iron Speed Designer
 
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and TricksIBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-ee
 
A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010A Lap Around Visual Studio 2010
A Lap Around Visual Studio 2010
 
AD207 Presentation
AD207 PresentationAD207 Presentation
AD207 Presentation
 
ASP.NET MVC3 RAD
ASP.NET MVC3 RADASP.NET MVC3 RAD
ASP.NET MVC3 RAD
 
D17251 gc20 47_us
D17251 gc20 47_usD17251 gc20 47_us
D17251 gc20 47_us
 
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
Coded ui test
Coded ui testCoded ui test
Coded ui test
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part II
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
 
Improving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester TrainingImproving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester Training
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the information
 
User Tutorial
User TutorialUser Tutorial
User Tutorial
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
 

Mais de Peter Gfader

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019Peter Gfader
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)Peter Gfader
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineerPeter Gfader
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilistPeter Gfader
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Peter Gfader
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryPeter Gfader
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recapPeter Gfader
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployPeter Gfader
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Peter Gfader
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code DevelopmentPeter Gfader
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Peter Gfader
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube BrowsersPeter Gfader
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesPeter Gfader
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesPeter Gfader
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL ServerPeter Gfader
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text searchPeter Gfader
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesPeter Gfader
 

Mais de Peter Gfader (20)

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineer
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilist
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recap
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code Development
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube Browsers
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting Services
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis Services
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL Server
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text search
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
 

Último

APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 

Último (20)

APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 

Better User Experience with .NET

  • 1. Developing Windows and Web Applications using Visual Studio.NET Peter Gfader Senior Software Architect
  • 3. „Add New“ disabled Problems with Lab / homework?
  • 4. Unused methods, after removing UI controls Tip
  • 5. C# 3.0, C# 4.0, C# 5 LINQ Data with LINQ Session 2: Last week?
  • 6. User Experience (UX) Tips and Techniques, Best practices Windows Forms Capabilities and Demo’s Tools to better UX & code UX Resources Agenda
  • 7.
  • 8.
  • 10. Enter data Find data Show data Every business app does
  • 11. Professional Feel Enter data Validation Find data Filter data Rich data query Show data Different Views Reports (nice printing) Authorization? Every business app
  • 13. User experience 3 pillars
  • 16. Make site feel alive React fast Interact with user “Joy of use” UX - Feel
  • 17. How can we improve UX
  • 18. Developers Need a UI to test their software as they build UI increases in complexity as software is built Application grows but the UI isn’t consistent Know how the controls work (or they should!!) Designers May design the UI but not realize WHAT is possible May understand a Visual Consistency but not how its built Who designs the UI?
  • 19. The user Who uses the UI?
  • 20. „User driven“ Do testing with the user Prototyping Usability testing Let user solve a task and see (measure) what he does User
  • 22. Bandwidth – Presentation layer Cache / persistent state Faster Server Because of less requests and less work… thanks to processing power being used on client Richer interface No buggy DHTML/JavaScript More responsive Faster to develop No cross-browser issues Build complex controls quickly Why Windows Forms?
  • 23. Not allowed in Standard Operating Environment Cross-platform requirements (Linux, PC, Mac) Deployment of the Application is harder / Centralised logic Requires an always-connected data service Why NOT Windows Forms?
  • 24. Network Admins Developers End Users Accounts Who Do I Please? Browser Based Solution Rich Client Solution        
  • 25. Who uses prototypes? Sketchflow Balsamiq Do you design a mockup UI first?
  • 26. Avoid the thought of a “throw away” prototype. Use as the first step to start a project (or get a project) - WYSIWYG Get great initial feedback Better than 100 page document Get designer involved if need be (Developers can’t design) Tip: Always add client logo + colours. They are easily impressed! Designing a Mockup UI
  • 27. Would you design Database first or UI? Database schema should be designed before the UI is started If you are doing fixed price work, signed-off mockups serve as a great way to stop goal posts moving. Any changes to the mockups thereafter will result in additional work. Designing a Mockup UI
  • 28. Windows Forms – Best practices
  • 29. Visual Inheritance Composition and Containment (Panels, Usercontrols) Databinding ToolTips Error Provider and Validators Appsettings Winform Architecture
  • 30. The constructor of each form/control class contains a call of a private method "InitializeComponent()". If B is derived from A, then the constructor of A is called first A() A.InitializedComponent() B() B.InitialzeComponent() Visual Inheritance
  • 31. Controls on the Base Form are BY DEFAULT “private” and cannot be edited in the inherited form Solution: Change the modifer to “Protected” Visual Inheritance
  • 32. Common Behaviour Company Icon Remembering its size and location Adding itself to a global forms collection (to find forms that are already open, or to close all open forms) ** Application.OpenForms Logging usage frequency and performance of forms (load time) No Controls! Inherited Forms – For Every Form
  • 33. CenterParent only for modal dialogs (to prevent multi-monitor confusion) CenterScreen only for the main form (MainForm), or a splash screen WindowsDefaultLocation for everything else (99% of forms) - prevents windows from appearing on top of one another StartPosition
  • 34. FixedDialog only for modal dialog boxes FixedSingle only for the the main form (MainForm) - FixedSingle has an icon whereas FixedDialog doesn't None for splash screen Sizable for any form that has multi-line textbox, grid, listbox or such FormBorderStyle
  • 35. Base Data Entry Form 3 4 1 2
  • 36. Do you encapsulate (aka lock) values of forms?
  • 38. Developers fiddle! Browsable: whether a property or event should be displayed in a Properties window. http://msdn.microsoft.com/en-us/library/system.componentmodel.browsableattribute.aspx EditorBrowsable: whether a property or method is viewable in an editor.http://msdn.microsoft.com/en-us/library/system.componentmodel.editorbrowsableattribute.aspx Hiding Values
  • 39. Hiding Values using System.ComponentModel; [Browsable(false), EditorBrowsable(false)] public new Font Font { get { return base.Font; } set { base.Font = value; } } Imports System.ComponentModel<Browsable(False), EditorBrowsable(false)> _ Public Shadows Property Font() As Font Get Return MyBase.Font End Get Set(ByVal Value As Font) 'MyBase.Font = Value 'normal property syntaxMyBase.Font = New Font(Me.Font.FontFamily, 20) End SetEnd Property
  • 40. Do you know when to use User Controls?
  • 41. You lose the AcceptButton and CancelButton properties from the Designer e.g. OK, Cancel, Apply Therefore the OK, Cancel and Apply buttons cannot be on User Controls. User Controls
  • 42. You can use a user control more than once on the same form e.g. Mailing Address, Billing Address You can reuse logic in the code behind the controls e.g. Search control User controls are less prone to visual inheritance errors User Controls
  • 43. User Controls Controls only used once Bad! »
  • 44. User Controls Only for reuse Good! »
  • 45. User Controls – TabPages Exception! »
  • 46. Possible Exception: When a form has multiple tabs, and each tab has numerous controls – it can be easier to use User Control in this case Smaller designer generated code More than one person can be working on a different ‘tab’ User Controls – TabPages
  • 47. Code intensive Must manually handle the Validating event of each control you want to validate Must be manually running the validation methods when the OK or Apply button is clicked Error Provider
  • 48. Controls that “attach” themselves to existing Do you use validator controls?
  • 49. Validator Controls Good No code, all in the designer (integrates with the ErrorProvider)
  • 50. Windows Forms – Validation
  • 51. Validation logic is in the Model Validation with Entity Framework public partial class Employee { partial void OnLastNameChanging(string value) { if (string.Compare(value, "Gfader", StringComparison.InvariantCultureIgnoreCase) == 0) { throw new ArgumentException("No GFADER allowed"); } } }
  • 52. Validation logic is in the Model Validation with Entity Framework publicpartialclass Employee { partialvoidOnLastNameChanging(string value) { if (string.Compare(value, "Gfader", StringComparison.InvariantCultureIgnoreCase) == 0) { thrownewArgumentException("No GFADERallowed"); } } }
  • 53. Partial class holds validation logic Partial class
  • 55.
  • 56. Happens in model Different UI layers can react to validation differently Web page Windows Form Silverlight WPF ... Validation
  • 57. Monitor Performance better Good user feedback Easy to do AdamE thinks“general user’s don’t care about technical details, a progress bar is better” Do you use a status bar to show load time?
  • 58. Don't use splash screens for branding. Avoid using splash screens because they may cause users to associate your program with poor performance. Use them only to give feedback and reduce the perception of time for programs that have unusually long load times. Don't use animated splash screens. Users often assume that the animated splash screen is the reason for a long load time. Too often, that assumption is correct. Splash Screens
  • 59. Two-way binding means that the object/data structure is bound to the UI Element/Control The setting/getting and the positioning of elements in a collection is handled by the databindingmechansisms Databinding is VASTLY superior in WPF Do you always use the Visual Studio designer for data binding where possible?
  • 60. Bad – write your own boring code Private Sub OnLoad() OrderDetailsService.Instance.GetAll(Me.OrderDetailsDataSet1) Dim row As OrderDetailsDataSet.OrderDetailsRow = Me.OrderDetailsDataSet1.OrderDetails(0) Me.TextBox1.Text = row.UnitPrice.ToString("c") End Sub Private Sub Save() Dim row As OrderDetailsDataSet.OrderDetailsRow = Me.OrderDetailsDataSet1.OrderDetails(0) row.UnitPrice = Decimal.Parse(Me.TextBox1.Text, System.Globalization.NumberStyles.Currency) End Sub
  • 61. Using the Designer SimpleBinding to a single property ComplexBinding to a list
  • 63. MDI Forms Hangover from Access 2.0 and Windows 3.1 Clutter the application Only one window on the taskbar No multiple monitor support
  • 64. Do you make common control with certain width?
  • 68. Part of Visual Studio 2010 "Ultimate" edition Microsoft Test Manager
  • 70.
  • 73. Generated coded UI test [TestMethod] publicvoid CodedUITestMethod1() { this.UIMap.StartApplication(); this.UIMap.LoginToApplication(); this.UIMap.SeeDetailsform(); this.UIMap.ClickOnnextRecord(); this.UIMap.SeetheNextRecord(); }
  • 74. Automated recording IntelliTrace (drill through to Visual Studio) Bug in TFS Video.wmv Detailed steps Lots of details (you don’t need if you get intelliTrace) Stack trace System info Microsoft Test Manager
  • 75.
  • 76. Book "User Interface Design for Programmers“ Blog http://www.joelonsoftware.com/ UX patterns http://quince.infragistics.com/ Resources
  • 77. http://www.windowforms.net http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterInterfaces.aspx Windows UX Guidelines http://msdn.microsoft.com/en-us/library/aa511258.aspx Designing Interfaces http://designinginterfaces.com/ Automate UI - VS2010 Test Manager Resources
  • 78. Covers Windows UI reference guidelines This should be your main ‘Bible’ when designing Windows Forms (not Web) if you’re not a designer as it provides a consistent standard Windows UX Guidelines
  • 80. Thank You! Gateway Court Suite 10 81 - 91 Military Road Neutral Bay, Sydney NSW 2089 AUSTRALIA ABN: 21 069 371 900 Phone: + 61 2 9953 3000 Fax: + 61 2 9953 3105 info@ssw.com.auwww.ssw.com.au

Notas do Editor

  1. Click to add notesPeter Gfader Developing Windows and Web applications
  2. Show View call hierarchy: for finding uncalled methodsCtrl+K, Ctrl+T
  3. Who did the C# tutorial?What is .NET?What is .NET framework?What is the CLR?What is OOP?Classes, Objects, Properties, Events, MethodsEncapsulation, Abstraction, Inheritance, Polymorphism
  4. Browse iPhone apps on the web without iTuneshttp://www.yappler.com/
  5. User Experience consists of usability, look and feelWe want to improve the feel and usability
  6. ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal
  7. Make the site feel alive
  8. How can we make our users happy
  9. What do they do?
  10. Its all about the user!
  11. Demo Test managerRecord interaction with NorthwindEntities (from lab week2)