Sundew. Application Framework

Size: px
Start display at page:

Download "Sundew. Application Framework"

Transcription

1 Sundew Application Framework

2 Contents Hukano Sundew... 3 Introduction... 3 Idea and motivation... 3 The Sundew Application Model... 4 Architecture... 4 Model-View-ViewModel according to Hukano... 5 ViewModels... 5 ViewModel hierarchy... 5 Lists... 7 Mediator... 8 PropertyMap... 9 Input Validation Interaction engine/command model Command tree handling Example Web: 2

3 Hukano Sundew Introduction Sundew requires some familiarity with XAML and the Model-View-ViewModel (MVVM) design pattern. Readers of this document should have a basic understanding of DataBinding and working with XAML. More information about WPF: More information about Silverlight: More information about Windows Phone 7: More information about MVVM design pattern: Sundew aims to support the latest Microsoft Development platforms: Windows Presentation Foundation 4 (WPF), Silverlight 4 (SVL) and Windows Phone 7 (WP7). All functionality builds on top of.net framework, which ensures the best compatibility now and for future versions. Due to differences in the Microsoft platforms Sundew feature also differ in some cases. At the moment it is possible to single source large amounts of code and Hukano focuses on making the API s even more compatible for future versions of.net. Idea and motivation The idea and motivation behind the Sundew framework, compared to other MVVM frameworks, is to create a framework that promotes implementing business logic in a testable fashion. Main focuses are: Supporting extremely thin GUI layer, by moving implementation to business layer Completely unit testable business layer Possibility to run coded GUI tests without GUI dependencies Support Expression Blend as a design tool Mapping requirements (e.g. user stories) closer to actual implementation Highly extensible/overridable Streamline developing.net applications across Microsoft platforms with a unified API Strongly typed Web: 3

4 The Sundew Application Model Architecture Sundew framework is a base class library assisting developers in implementing the business layer when working with the Model-View-ViewModel design pattern. The following illustration shows the placement of the Sundew framework in a multi-tier architecture. Presentation Layer Separation ValidationRules & IValueConverters Viewing with.net DataBinding Commanding Microsoft.NET Business Logic Input Validation on top of WPF Validation model ViewModeling Command engine on top of Command model Hukano Sundew Layer Separation WeakListening Data Modeling Object Relation Mapping Other framework The illustration shows that Sundew interfaces in three areas with.net, for validation, databinding and commanding. ViewModeling assists in presenting data to the user. Input Validation handles validating input from a user e.g. when typing text in a TextBox. The interaction engine handles commands executed by the user. All subjects will be described further. Web: 4

5 Model-View-ViewModel according to Hukano ViewModels Throughout this document the terms View, ViewModel and Model will be used frequently, the illustration below shows their relationship. View ViewModel : ViewModel<TModel> Model : NotifyingObject In MVVM the view-model acts as a wrapper for the model in order to prepare the model for the view. The view holds a reference to the view-model (FrameworkElement.DataContext property) and the view-model holds a reference to the model (ViewModel<T>.Model property), but never in the other direction. The.NET Binding engine listens to property change notifications on the view-model through the INotifyPropertyChanged interface. Reference on MSDN: In the same fashion, the view-model listens to changes in the model. This is implemented with weak referencing to ensure that there is never a strong reference from the model to the view-model through the PropertyChangedEventHandler delegate. Sundew provides a ViewModel base class which comes in both standalone and generic versions. Also a NotifyingObject class is provided and it can be used as the base class for models. Models are required to implement to INotifyingObject interface and notify listeners when properties change. ViewModel hierarchy The purpose of the view-model hierarchy is to build a hierarchy of view-models similar to the hierarchy of models. It also makes parent/child relationships between view-models and thus providing the possibility to run input validation down the view-model hierarchy. The hierarchy is maintained by a simple API, quite similar to the DependencyProperty system of.net. It requires creating a ViewModelProperty using the static Register method found on the ViewModelProperty class. The Get- and SetViewModelChild method found on the ViewModel class gets and sets the child view-model by taking the ViewModelProperty as a parameter. Web: 5

6 The class diagram below shows the ViewModel base classes and their public/protected interface. Web: 6

7 Lists Working with lists is made easy with the ObservableCollection class in.net. An ObservableCollection will notify changes in the list through the INotifyCollectionChanged interface similar to the way the INotifyPropertyChanged interface work. This means that Views will be automatically updated if for example a new item is added to the list. In Sundew a list of models is also considered a model itself and thus a list of view-models and a list of views exist. ListView ListViewItem ListViewItem ListViewItem ListViewModel <TModel, TItemViewModel> ItemViewModel ItemViewModel : ItemViewModel :: ItemViewModel ItemViewModel <TContainerViewModel, <TContainerViewModel, TModel> <TModel, TParentViewModel> TModel> NotifyingCollec tion<tmodel> Model Model : Model : : NotifyingObject NotifyingObject NotifyingObject The NotifyingCollection is a Sundew class derived from ObservableCollection and extends implementation with the INotifyCollectionChanging interface. The base class ListViewModel ensures synchronizing changes in the NotifyingCollection, which means there will always be a ViewModel for any model in the list. Sundew also provides base classes for trees and nodes. The use is similar to that of ListViewModel. See NodeViewModel in the API reference documentation. Web: 7

8 Mediator The responsibility of the Mediator is to provide inter- view-model communication. Consider the sample illustration below. Person FirstName get; set; LastName get; set; PersonViewModel1 FirstName get; LastName get; IsSelected get; Mediator used to notify IsSelected changed PersonViewModel2 FirstName get; set; LastName get; set; IsSelected get; set; As the illustration shows: The Person model has two properties FirstName and LastName. PersonViewModel1 is a read only view-model since it only has get properties. PersonViewModel2 can both read and write to the model. Both ViewModel implements a third property IsSelected. Since IsSelected has nothing to do with the model of being a person, the property does not exist in the Person class. The problem is that the two view-models have similar data, but since they have no knowledge of each other, PersonViewModel1 is unable to react to changes in PersonViewModel2s IsSelected property. Using the Mediator class in the Sundew.Mvvm.Messaging namespace it is possible to notify relevant ViewModel siblings about changes. The Sundew Mediator is implemented using Sundew WeakEvent, which ensures that no memory leak occurs. Web: 8

9 PropertyMap The PropertyMap eases handling property change notifications. The generic PropertyMap class takes two arguments PropertyMap<TSender, TListener> and allows the developer to map property notifications on the sender to notify a property on the listener. Also registering handlers to the mapped properties is possible for implementing custom code. Both the interfaces INotifyPropertyChanged and the INotifyPropertyChanging are supported, when implemented by the listener and the sender. All view-models derived from ViewModel<TModel> include a PropertyMap, which allows mapping property changes to handlers in the view-model. This provides an easy and clean way of handling property change notifications. Web: 9

10 Input Validation NB! Input validation is only available in WPF due to limitations of Silverlight and Windows Phone 7. A unified validation engine will be provided when allowed by the.net framework. The Validation model is a part of the DataBinding engine in WPF. Please refer to the DataBinding overview on MSDN: The validation process involves 4+1 steps: 4 validation steps and one conversion step. The steps are executed in the following order: 1. RawProposedValue validation 2. Value Conversion 3. ConvertedProposedValue validation 4. UpdatedValue validation 5. CommittedValue validation In.NET it is required to derive from the abstract class ValidationRule to implement validation. In order to implement a converter the interface IValueConverter must be implemented. The validation model does have limitations, as there is no framework support for specifying whether a field is required or optional and fields are either valid or invalid. With Sundew, fields can also be incomplete. Sundew solves all of these problems by providing new base classes for ValidationRule and IValueConverter: The FeedbackConverter and the FeedbackValidationRule add support for incomplete validation status. Consider the GUI below. In this case the Name field is only accepted for input when the name exceeds three characters. The blue icon indicates that the field is required. Web: 10

11 The sample is implemented using a FeedbackTemplate set on the Attached DependencyProperty on the Feedback class in the Sundew.ValidationModel namespace rather than using the ErrorTemplate property on the WPF Validation class. It is also necessary to use the Sundew.ValidationModel.AdornedViewPlaceholder when making the feedback template instead of the WPF AdornedElementPlaceholder. BindingExpression and BindingGroups may be exposed to the view-model with the Sundew.Xaml.Bindings.FillViewModel property and therefore enabling validation from the view-model. The BindingExpression and BindingGroups are exposed by the ViewModel.Validation property. For an easier way to create converters in XAML use the Sundew.Xaml.TypeFactory markup extension. Web: 11

12 Interaction engine/command model The interaction engine in Sundew is built on top of the.net Command model in order to provide the best possible support for decoupling from the GUI. The engine was designed to solve a number of challenges when developing.net applications. Decoupled from GUI Command tree handling Unit testing support Basic error handling Command tree handling The tree is built by defining CommandDefinitions and thus specifying how commands are related. Multiple command trees are supported by creating multiple CommandTree classes. The root in each CommandTree is called Default. Consider the tree below: <Default> CreateProfile Transition SaveProfile Command SaveProfile may be executed either when CreateProfile or EditProfile is the current command EditProfile Transition DeleteProfile Command SaveProfile Command As the illustration suggests, there are two types of CommandDefinitions: Command and TransitionCommand. Commands are registered with CommandTree.RegisterCommand. TransitionCommands are used to enter to a new state and doing so will only allow commands, which are children of the TransitionCommand, to run. TransitionCommands are registered with CommandTree.RegisterBegin. To return from a TransitionCommand, a CommandDefinition that is registered with CommandTree.RegisterEnd, must be executed. If a user executes the CreateProfile TransitionCommand followed by the SaveProfile Command, the engine will call methods in the following order: CreateProfile.Execute() o SaveProfile.Execute() CreateProfile.EndExecute() Web: 12

13 Example To define a command four steps are mandatory: 1. Create a CommandTree public static readonly CommandTree ProfileCommandTree = new CommandTree ("Main"); 2. Implement the command by deriving from the abstract Command<TContext> class or TransitionCommand<TContext> class. public class CreateProfile : TransitionCommand<UnassignedProfileVM> public override void CanExecute(UnassignedProfileVM context, CanExecuteEventArgs e) e.canexecute = true; public override void Execute(UnassignedProfileVM context, ExecuteEventArgs e)... public override void EndExecute(UnassignedProfileVM context)... public class SaveProfile : Command<ProfileSettingsVM> public override void CanExecute(ProfileSettingsVM context, CanExecuteEventArgs e) e.canexecute =!context.validation.haserrorrecursive; public override void Execute(ProfileSettingsVM context, ExecuteEventArgs e) context.model.getunitofwork().save(); 3. Define a CommandDefinition and map it to the Command or TransitionCommand, CommandDefinitions may be created with the Register methods on the CommandTree class. public static readonly CommandDefinition CreateProfileAction = ProfileCommandTree.RegisterBegin<CreateProfile>("CreateProfile"); public static readonly CommandDefinition SaveProfileAction = ProfileCommandTree.RegisterEnd<SaveProfile>("SaveProfile", new CommandDefinitions(CreateProfileAction)); public CommandDefinition SaveProfile get return SaveProfileAction; public CommandDefinition CreateProfile get return CreateProfileAction; 4. Assign the CommandDefinition to a view element with the Attached DependencyProperty CommandDefinition found in the Sundew.Xaml.Interaction class. <Button xaml:interaction.commanddefinition="binding CreateProfile" Content="Create Profile"/> <Button xaml:interaction.commanddefinition="binding SaveProfile" Content="Save Profile"/> It s possible to bind a command directly to an event of a view through the EventCommand class. The EventCommand supports unit testing by providing an API for extracting data from EventArgs. <Canvas> <xaml:interaction.triggers> <xaml:commandtrigger EventName="Drag" CommandDefinition="Binding MoveItem"/> </xaml:interaction.triggers> </Canvas> Web: 13

Practical WPF. Learn by Working Professionals

Practical WPF. Learn by Working Professionals Practical WPF Learn by Working Professionals WPF Course Division Day 1 WPF prerequisite What is WPF WPF XAML System WPF trees WPF Properties Day 2 Common WPF Controls WPF Command System WPF Event System

More information

Windows Presentation Foundation (WPF)

Windows Presentation Foundation (WPF) 50151 - Version: 4 21 January 2018 Windows Presentation Foundation (WPF) Windows Presentation Foundation (WPF) 50151 - Version: 4 5 days Course Description: This five-day instructor-led course provides

More information

WPF and MVVM Study Guides

WPF and MVVM Study Guides 1. Introduction to WPF WPF and MVVM Study Guides https://msdn.microsoft.com/en-us/library/mt149842.aspx 2. Walkthrough: My First WPF Desktop Application https://msdn.microsoft.com/en-us/library/ms752299(v=vs.110).aspx

More information

Implementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc.

Implementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc. Implementing MVVM in Real World ArcGIS Server Silverlight Applications Brandon Copeland LJA Engineering, Inc. 1 Agenda / Focused Topics Application Demo Model-View-ViewModel (MVVM) What is MVVM? Why is

More information

Windows Presentation Foundation Programming Using C#

Windows Presentation Foundation Programming Using C# Windows Presentation Foundation Programming Using C# Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

NE.15 Data Binding In Windows Presentation Foundation

NE.15 Data Binding In Windows Presentation Foundation NE.15 Data Binding In Windows Presentation Foundation Brian Noyes Chief Architect IDesign Inc (www.idesign.net) 1 About Brian Chief Architect, IDesignInc. (www.idesign.net) Microsoft Regional Director/MVP

More information

Learn to develop.net applications and master related technologies.

Learn to develop.net applications and master related technologies. Courses Software Development Learn to develop.net applications and master related technologies. Software Development with Design These courses offer a great combination of both.net programming using Visual

More information

This tutorial is designed for software developers who want to learn how to develop quality applications with clean structure of code.

This tutorial is designed for software developers who want to learn how to develop quality applications with clean structure of code. About the Tutorial Every good developer wants and tries to create the most sophisticated applications to delight their users. Most of the times, developers achieve this on the first release of the application.

More information

Build Loosely Coupled Silverlight Business Applications

Build Loosely Coupled Silverlight Business Applications Build Loosely Coupled Silverlight Business Applications Brian Noyes www.idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director (www.theregion.com) Microsoft

More information

03 Model-View-ViewModel. Ben Riga

03 Model-View-ViewModel. Ben Riga 03 Model-View-ViewModel Ben Riga http://about.me/ben.riga Course Topics Building Apps for Both Windows 8 and Windows Phone 8 Jump Start 01 Comparing Windows 8 and Windows Phone 8 02 Basics of View Models

More information

Mobile Computing Xamarin Data Binding MVVM Pattern

Mobile Computing Xamarin Data Binding MVVM Pattern Xamarin Data Binding MVVM Pattern APM@FEUP 1 Data Binding In simple apps Get and set properties of controls is done explicitly in the code behind entry1.text = Hello, world! ; For complex or big apps This

More information

Mobile Computing. Xamarin Data Binding MVVM Pattern. Data Binding. XAML binding example. Target Views. In simple apps. For complex or big apps

Mobile Computing. Xamarin Data Binding MVVM Pattern. Data Binding. XAML binding example. Target Views. In simple apps. For complex or big apps APM@FEUP Xamarin Data Binding MVVM Pattern 1 Data Binding In simple apps Get and set properties of controls is done explicitly in the code behind entry1.text = Hello, world! ; For complex or big apps This

More information

Windows Presentation Foundation. Jim Fawcett CSE687 Object Oriented Design Spring 2018

Windows Presentation Foundation. Jim Fawcett CSE687 Object Oriented Design Spring 2018 Windows Presentation Foundation Jim Fawcett CSE687 Object Oriented Design Spring 2018 References Pro C# 5 and the.net 4.5 Platform, Andrew Troelsen, Apress, 2012 Programming WPF, 2nd edition, Sells & Griffiths,

More information

Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline

Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline 1 Visual Studio 2015: Windows Presentation Foundation Program Overview This Four-day instructor-led course

More information

DOT NET SYLLABUS FOR 6 MONTHS

DOT NET SYLLABUS FOR 6 MONTHS DOT NET SYLLABUS FOR 6 MONTHS INTRODUCTION TO.NET Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate

More information

HCIM SUMMER WORKSHOP Introduction to C#

HCIM SUMMER WORKSHOP Introduction to C# HCIM SUMMER WORKSHOP Introduction to C# .NET.NET is: Microsoft s Platform for Windows Development CLR (Common Language Runtime) the Virtual Machine that runs MSIL (Microsoft Intermediate Language Code)

More information

04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio. Ben Riga

04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio. Ben Riga 04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio Ben Riga http://about.me/ben.riga Course Topics Building Apps for Both Windows 8 and Windows Phone 8 Jump Start 01 Comparing Windows

More information

Build Better WPF & Silverlight applications using Prism v2

Build Better WPF & Silverlight applications using Prism v2 Build Better WPF & Silverlight applications using Prism v2 Client Application Challenges The Problem: Client Applications can be Difficult! How Do You Make The Application Dynamic, Customizable, Extensible,

More information

Index. Windows 10 running, 199 suspended state, 199 terminate apps,

Index. Windows 10 running, 199 suspended state, 199 terminate apps, A Application lifecycle activation ApplicationExecution State, 216 restoring navigation state, 216 217 restoring session information, 217 218 state transitions, 200 activation, 201 killing, 202 launching,

More information

Build Testable Client and Service Applications

Build Testable Client and Service Applications Build Testable Client and Service Applications Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director MVP

More information

ArcGIS Pro SDK for.net Advanced User Interfaces in Add-ins. Wolfgang Kaiser

ArcGIS Pro SDK for.net Advanced User Interfaces in Add-ins. Wolfgang Kaiser ArcGIS Pro SDK for.net Advanced User Interfaces in Add-ins Wolfgang Kaiser Session Overview MVVM Model View ViewModel - View and View Model Implementation in Pro - Dockpane Example - MVVM concepts - Multi

More information

Portable Class Libraries ---

Portable Class Libraries --- Portable Class Libraries --- Overview In this lab, you ll learn about Portable Class Libraries (PCLs). PCLs enable you to create managed assemblies that work on more than one.net Framework platform. Within

More information

Building Extensible XAML Client Apps

Building Extensible XAML Client Apps Building Extensible XAML Client Apps Brian Noyes IDesign Inc. (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect IDesign Inc. (www.idesign.net) Microso7 Regional Director

More information

Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018

Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018 Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018 Esri Canada Professional Services Project services Implementation services

More information

Pro Business Applications with Silverlight 4

Pro Business Applications with Silverlight 4 Pro Business Applications with Silverlight 4 Chris Anderson Apress* Contents at a Glance Contents About the Author Acknowledgments iv v xix xx a Chapter 1: Introduction 1 Who This Book Is For 1 About This

More information

Blissful Separation of Concerns with Model-View-ViewModel (MVVM)

Blissful Separation of Concerns with Model-View-ViewModel (MVVM) Blissful Separation of Concerns with Model-View-ViewModel (MVVM) Brian Noyes Chief Architect, IDesign(www.idesign.net) brian.noyes@idesign.net, @briannoyes Level: Intermediate About Brian Chief Architect

More information

Chapter 1 Getting Started with Windows Presentation Foundation

Chapter 1 Getting Started with Windows Presentation Foundation Table of Contents Chapter 1 Getting Started with Windows Presentation Foundation 1 Exploring the New Features of WPF 4.0... 2 New WPF Controls for Business Applications... 3 Enhanced Support for WPF and

More information

Index. Application programming interface (API), 38. Binary Application Markup Language (BAML), 4

Index. Application programming interface (API), 38. Binary Application Markup Language (BAML), 4 Index A Application programming interface (API), 38 B Binary Application Markup Language (BAML), 4 C Class under test (CUT), 65 Code-behind file, 128 Command Query Responsibility Segregation (CQRS), 36

More information

Building Extensible XAML Client Apps

Building Extensible XAML Client Apps Building Extensible XAML Client Apps Brian Noyes Chief Architect, IDesign Inc www.idesign.net brian.noyes@idesign.net, @briannoyes Level: Intermediate About Brian Chief Architect IDesign Inc. (www.idesign.net)

More information

Migrate Your Skills to Microsoft.NET Framework 2.0 and 3.0 using Visual Studio 2005 (C#)

Migrate Your Skills to Microsoft.NET Framework 2.0 and 3.0 using Visual Studio 2005 (C#) Migrate Your Skills to Microsoft.NET Framework 2.0 and 3.0 using Visual Studio 2005 (C#) Course Length: 5 Days Course Overview This instructor-led course teaches developers to gain in-depth guidance on

More information

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh System Architecture re of Windows Store Apps Rainer Stropek software architects gmbh Windows 8 System Architecture Mail Web Twitter rainer@timecockpit.comcom http://www.timecockpit.com @rstropek Saves

More information

Developing Windows Applications with Microsoft Visual Studio 2010

Developing Windows Applications with Microsoft Visual Studio 2010 Developing Windows Applications with Microsoft Visual Studio 2010 Course 10262A: Five days; Instructor-Led Course Description: In this course, experienced developers who know the basics of Windows Forms

More information

Android PC Splash Brothers Design Specifications

Android PC Splash Brothers Design Specifications Android PC Splash Brothers Design Specifications Contributors: Zach Bair Taronish Daruwalla Joshua Duong Anthony Nguyen 1. Technology background The Android x86 project has been in existence since 2011.

More information

Introduction to Web Development with Microsoft Visual Studio 2010

Introduction to Web Development with Microsoft Visual Studio 2010 Introduction to Web Development with Microsoft Visual Studio 2010 Course 10267; 5 Days, Instructor-led Course Description This five-day instructor-led course provides knowledge and skills on developing

More information

Mastering LOB Development

Mastering LOB Development Mastering LOB Development for Silverlight 5: A Case Study in Action Develop a full LOB Silverlight 5 application from scratch with the help of expert advice and an accompanying case study Braulio Di'ez

More information

Prism Composite Application Guidance

Prism Composite Application Guidance Prism Composite Application Guidance Brian Noyes www.idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director (www.theregion.com) Microsoft MVP Silverlight Publishing

More information

Prism Composite Application Guidance

Prism Composite Application Guidance Prism Composite Application Guidance Brian Noyes www.idesign.net Prism Developed by Microsoft patterns and practices Old name: Composite Application Guidance for WPF and Silverlight Guidance for building

More information

Getting Started with ExcelMVC

Getting Started with ExcelMVC Getting Started with ExcelMVC Just like Silverlight or WPF (Windows Presentation Foundation), ExcelMVC facilitates a clear separation between your application s business objects (Models), its user interfaces

More information

PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3

PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3 INTRODUCTION xix PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3 The Life of Windows 3 From Windows 3.1 to 32-bit 4 Windows XP

More information

DE Developing Windows Applications with Microsoft Visual Studio 2010

DE Developing Windows Applications with Microsoft Visual Studio 2010 DE-10262 Developing Windows Applications with Microsoft Visual Studio 2010 Summary Duration 5 Days Audience Developers Level 200 Technology Visual Studio Delivery Method Instructor-led (Classroom) Training

More information

--Microsoft-- --Windows Phone--

--Microsoft-- --Windows Phone-- --Microsoft-- --Windows Phone-- Microsoft Windows Phone Course 10553A: Fundamentals of XAML and Microsoft Expression Blend Course Outline Module 1: Binding in XAML This module familiarizes the students

More information

Building Loosely Coupled XAML Client Apps with Prism

Building Loosely Coupled XAML Client Apps with Prism Building Loosely Coupled XAML Client Apps with Prism Brian Noyes IDesign Inc. (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft

More information

DEVELOPING WINDOWS APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010

DEVELOPING WINDOWS APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010 CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: DEVELOPING WINDOWS APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010 Course: 10262A; Duration: 5 Days; Instructor-led Time: 9.00am 5.00pm Break: 10.15am 10.30am

More information

HPE WPF and Silverlight Add-in Extensibility

HPE WPF and Silverlight Add-in Extensibility HPE WPF and Silverlight Add-in Extensibility Software Version: 14.02 WPF and Silverlight Developer Guide Go to HELP CENTER ONLINE https://admhelp.microfocus.com/uft/ Document Release Date: November 21,

More information

Windows Presentation Foundation Visual Studio.NET 2008

Windows Presentation Foundation Visual Studio.NET 2008 Windows Presentation Foundation Visual Studio.NET 2008 Course 6460 - Three Days - Instructor-led - Hands on This three-day instructor-led course provides students with the knowledge and skills to build

More information

Pro Windows 8.1. Development with. XAML and C# Jesse Liberty. Philip Japikse. Jon Galloway

Pro Windows 8.1. Development with. XAML and C# Jesse Liberty. Philip Japikse. Jon Galloway Pro Windows 8.1 Development with XAML and C# Jesse Liberty Philip Japikse Jon Galloway Contents About the Authors About the Technical Reviewers Acknowledgments xvii xix xxi HChapter 1: Getting Started

More information

Programming in C# for Experienced Programmers

Programming in C# for Experienced Programmers Programming in C# for Experienced Programmers Course 20483C 5 Days Instructor-led, Hands-on Introduction This five-day, instructor-led training course teaches developers the programming skills that are

More information

ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK

ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK Charlie Macleod - Esri Esri UC 2014 Demo Theater New at 10.3 is the ArcGIS Pro Application - Extensibility is provided by

More information

Workspace Desktop Edition Developer's Guide. Customize Views and Regions

Workspace Desktop Edition Developer's Guide. Customize Views and Regions Workspace Desktop Edition Developer's Guide Customize Views and Regions 11/27/2017 Customize Views and Regions Purpose: To provide information about customizable views and their regions. Contents 1 Customize

More information

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core Gill Cleeren @gillcleeren www.snowball.be Agenda Overall application structure The Xamarin application architecture

More information

WPF. Source Module 01: Lesson1

WPF. Source Module 01: Lesson1 WPF Creating an Application by Using Windows Presentation Foundation Lesson: Overview of WPF What Is WPF? WPF Architecture Defining User Interfaces in WPF WPF Capabilities and Features WPF Application

More information

Developing Windows Applications with Microsoft Visual Studio 2010 (MS 10262)

Developing Windows Applications with Microsoft Visual Studio 2010 (MS 10262) Duration 5 Days About this Course In this course, experienced developers who know the basics of Windows Forms development gain more advanced Windows Client design and development skills. WinForms and WPF

More information

PROGRAMMING WITH THE MICROSOFT.NET FRAMEWORK USING MICROSOFT VISUAL STUDIO 2005 Course No. MS4995A 5 Day PREREQUISITES COURSE OUTLINE

PROGRAMMING WITH THE MICROSOFT.NET FRAMEWORK USING MICROSOFT VISUAL STUDIO 2005 Course No. MS4995A 5 Day PREREQUISITES COURSE OUTLINE COURSE OVERVIEW This five-day instructor-led course enables developers who are migrating from a different development language, an earlier version of Visual Basic.NET or Visual C#, or who have completed

More information

Beginning Silverlight 5 in C #

Beginning Silverlight 5 in C # Table of Contents: Chapter 1. Welcome to Silverlight 5 1.1 The Evolution of the User interface 1.2 Rich Internet Application Solutions 1.3 What is Silverlight? 1.4 Benefits of Silverlight 1.4.1 Cross-Platform/Cross-Browser

More information

ComponentOne Data Source for Entity Framework 1

ComponentOne Data Source for Entity Framework 1 1 ComponentOne Data Source for Entity Framework Overview ComponentOne Data Source for Entity Framework adds ease-of-use and performance enhancements to the Entity Framework and RIA Services. It improves

More information

Model-view-controller View hierarchy Observer

Model-view-controller View hierarchy Observer -view-controller hierarchy Fall 2004 6831 UI Design and Implementation 1 Fall 2004 6831 UI Design and Implementation 2!"# Separation of responsibilities : application state Maintains application state

More information

Developing Windows Applications with Microsoft Visual Studio 2010

Developing Windows Applications with Microsoft Visual Studio 2010 Course 10262A: Developing Windows Applications with Microsoft Visual Studio 2010 Course Details Course Outline Module 1: Windows Client Application Design The goal of this module is to ensure that students

More information

Pro XAML with C# From Design to Deployment on WPF, Windows Store, and Windows Phone. Buddy James. Lori Lalonde

Pro XAML with C# From Design to Deployment on WPF, Windows Store, and Windows Phone. Buddy James. Lori Lalonde Pro XAML with C# From Design to Deployment on WPF, Windows Store, and Windows Phone Buddy James Lori Lalonde Contents J About the Authors About the Technical Reviewer Acknowledgments Introduction xiii

More information

10267 Introduction to Web Development with Microsoft Visual Studio 2010

10267 Introduction to Web Development with Microsoft Visual Studio 2010 10267 Introduction to Web Development with Microsoft Visual Studio 2010 Course Number: 10267A Category: Visual Studio 2010 Duration: 5 days Course Description This five-day instructor-led course provides

More information

4/25/ Xamarin. All rights reserved.

4/25/ Xamarin. All rights reserved. 1 v v Each cell is represented by some data structure which is then visualized on the screen headshot.source =...; nameentry.text = person.name; emailentry.text = person.email; birthday.date = person.dob;...

More information

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010 10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010 Course Number: 10262A Course Length: 5 Days Course Overview In this course, experienced developers who know the basics of Windows

More information

Developing Native Windows Phone 7 Applications for SharePoint

Developing Native Windows Phone 7 Applications for SharePoint Developing Native Windows Phone 7 Applications for SharePoint Steve Pietrek Cardinal Solutions About Cardinal OUR FOCUS: Enterprise Rich Internet Applications Mobile Solutions Portals & Collaboration Business

More information

Windows Presentation Foundation for.net Developers

Windows Presentation Foundation for.net Developers Telephone: 0208 942 5724 Email: info@aspecttraining.co.uk YOUR COURSE, YOUR WAY - MORE EFFECTIVE IT TRAINING Windows Presentation Foundation for.net Developers Duration: 5 days Overview: Aspect Training's

More information

"Charting the Course... MOC A Introduction to Web Development with Microsoft Visual Studio Course Summary

Charting the Course... MOC A Introduction to Web Development with Microsoft Visual Studio Course Summary Description Course Summary This course provides knowledge and skills on developing Web applications by using Microsoft Visual. Objectives At the end of this course, students will be Explore ASP.NET Web

More information

Introduction to Microsoft.NET Programming Using Microsoft Visual Studio 2008 (C#) Course Overview. Prerequisites. Audience.

Introduction to Microsoft.NET Programming Using Microsoft Visual Studio 2008 (C#) Course Overview. Prerequisites. Audience. Introduction to Microsoft.NET Programming Using Microsoft Visual Studio 2008 (C#) Course Number: 6368A Course Length: 1 Day Course Overview This instructor-led course provides an introduction to developing

More information

ALPHAPRIMETECH 112 New South Road, Hicksville, NY 11801

ALPHAPRIMETECH 112 New South Road, Hicksville, NY 11801 ALPHAPRIMETECH 112 New South Road, Hicksville, NY 11801 Course Curriculum COMPUTER SYSTEM ANALYST-.NET C# Introduction to.net Framework.NET Framework OverView CLR,CLS MSIL Assemblies NameSpaces.NET Languages

More information

Introduction to Web Development with Microsoft Visual Studio 2010

Introduction to Web Development with Microsoft Visual Studio 2010 10267 - Introduction to Web Development with Microsoft Visual Studio 2010 Duration: 5 days Course Price: $2,975 Software Assurance Eligible Course Description Course Overview This five-day instructor-led

More information

The C# Programming Language. Overview

The C# Programming Language. Overview The C# Programming Language Overview Microsoft's.NET Framework presents developers with unprecedented opportunities. From web applications to desktop and mobile platform applications - all can be built

More information

Wpf Button Click Event Firing Multiple Times

Wpf Button Click Event Firing Multiple Times Wpf Button Click Event Firing Multiple Times Switch back to the designer, then double-click the button again. Repeating step 3 multiple times, it seems that the caret is placed correctly on every second

More information

NiceLabel.NET SDK Installation and Deployment Guide

NiceLabel.NET SDK Installation and Deployment Guide NiceLabel.NET SDK Installation and Deployment Guide Rev-1601 NiceLabel 2016. www.nicelabel.com Contents Contents 2 Introduction 3 Intended Audience 3 About this Installation and Deployment Guide 3 Typographical

More information

Advanced Object-Oriented Programming. 11 Features. C# Programming: From Problem Analysis to Program Design. 4th Edition

Advanced Object-Oriented Programming. 11 Features. C# Programming: From Problem Analysis to Program Design. 4th Edition 11 Features Advanced Object-Oriented Programming C# Programming: From Problem Analysis to Program Design C# Programming: From Problem Analysis to Program Design 1 4th Edition Chapter Objectives Learn the

More information

MCTS:.NET Framework 4, Windows Applications Development

MCTS:.NET Framework 4, Windows Applications Development MCTS:.NET Framework 4, Windows Applications Development Course Description and Overview Overview SecureNinja s Windows Applications Development with.net Framework 4 training and certification boot camp

More information

MFC Programmer s Guide: Getting Started

MFC Programmer s Guide: Getting Started MFC Programmer s Guide: Getting Started MFC PROGRAMMERS GUIDE... 2 PREPARING THE DEVELOPMENT ENVIRONMENT FOR INTEGRATION... 3 INTRODUCING APC... 4 GETTING VISUAL BASIC FOR APPLICATIONS INTO YOUR MFC PROJECT...

More information

TARGETPROCESS PLUGIN DEVELOPMENT GUIDE

TARGETPROCESS PLUGIN DEVELOPMENT GUIDE TARGETPROCESS PLUGIN DEVELOPMENT GUIDE v.2.8 Plugin Development Guide This document describes plugins in TargetProcess and provides some usage examples. 1 PLUG IN DEVELOPMENT... 3 CORE ABSTRACTIONS...

More information

COPYRIGHTED MATERIAL. Introducing the Project: The SmartCA Application. The Problem

COPYRIGHTED MATERIAL. Introducing the Project: The SmartCA Application. The Problem Introducing the Project: The SmartCA Application The project for this book is based on a real application for a real company. The names of the company and the application have been changed for privacy

More information

Microsoft Visual C# Step by Step. John Sharp

Microsoft Visual C# Step by Step. John Sharp Microsoft Visual C# 2013 Step by Step John Sharp Introduction xix PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Learn to Behave Extend Your XAML with Behaviors

Learn to Behave Extend Your XAML with Behaviors Learn to Behave Extend Your XAML with Behaviors Brian Noyes Chief Architect, IDesign Inc. www.idesign.net brian.noyes@idesign.net, @briannoyes Level: Intermediate About Brian Chief Architect IDesign Inc.

More information

Workspace Desktop Edition Developer's Guide. Best Practices for Views

Workspace Desktop Edition Developer's Guide. Best Practices for Views Workspace Desktop Edition Developer's Guide Best Practices for Views 12/4/2017 Contents 1 Best Practices for Views 1.1 Keyboard Navigation 1.2 Branding 1.3 Localization 1.4 Parameterization 1.5 Internationalization

More information

Introduction. Thank you for picking up Silverlight 1.0 Unleashed! IN THIS CHAPTER. . Who Should Read This Book?. Software Requirements

Introduction. Thank you for picking up Silverlight 1.0 Unleashed! IN THIS CHAPTER. . Who Should Read This Book?. Software Requirements Nathan_Intro_Iss 9/21/07 2:01 AM Page 1 IN THIS CHAPTER. Who Should Read This Book?. Software Requirements Thank you for picking up Silverlight 1.0 Unleashed! Silverlight is changing the way many people

More information

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application BACKBONE.JS Sencha Touch CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application A RapidValue Solutions Whitepaper Author: Pooja Prasad, Technical Lead, RapidValue Solutions Contents Executive

More information

Programming in Visual Basic with Microsoft Visual Studio 2010

Programming in Visual Basic with Microsoft Visual Studio 2010 Programming in Visual Basic with Microsoft Visual Studio 2010 Course 10550; 5 Days, Instructor-led Course Description This course teaches you Visual Basic language syntax, program structure, and implementation

More information

Learning to Program in Visual Basic 2005 Table of Contents

Learning to Program in Visual Basic 2005 Table of Contents Table of Contents INTRODUCTION...INTRO-1 Prerequisites...INTRO-2 Installing the Practice Files...INTRO-3 Software Requirements...INTRO-3 Installation...INTRO-3 Demonstration Applications...INTRO-3 About

More information

Graphical interface for ecall incidents

Graphical interface for ecall incidents Database Systems Journal vol. VII, no. 4/2016 47 Graphical interface for ecall incidents Claudiu Dan BARCA The Romanian-American University, Bucharest Using data on incidents ecall in traffic control center

More information

ArcGIS Pro SDK for.net Beginning Pro Customization. Charles Macleod

ArcGIS Pro SDK for.net Beginning Pro Customization. Charles Macleod ArcGIS Pro SDK for.net Beginning Pro Customization Charles Macleod Session Overview Extensibility patterns - Add-ins - Configurations Primary API Patterns - QueuedTask and Asynchronous Programming - async

More information

NET 3.0 and NET 3.0 contains four building blocks, shown in the figure below:

NET 3.0 and NET 3.0 contains four building blocks, shown in the figure below: NET 3.0 and 3.5 NET 3.0 is a brand name for a set of modern technologies, designed to be the next-generation Windows development platform..net 3.0 was released with Windows Vista in November 2006 2007..NET

More information

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you

More information

Thin Client for Web Using Swing

Thin Client for Web Using Swing Thin Client for Web Using Swing Raffaello Giulietti and Sandro Pedrazzini SUPSI, Dipartimento di Informatica ed Elettrotecnica, Galleria 2, CH-6928 Manno, Switzerland TINET SA CH-6928 Manno, Switzerland

More information

var xdoc = XDocument.Load(inStream);

var xdoc = XDocument.Load(inStream); Gradebook Sample App Summary: The goal of this project is to demonstrate how to share code across project types by using a Portable Class Library between a traditional Windows* Desktop application and

More information

Chapter 14. Additional Topics in C# 2010 The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill

Chapter 14. Additional Topics in C# 2010 The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Chapter 14 Additional Topics in C# McGraw-Hill 2010 The McGraw-Hill Companies, Inc. All rights reserved. Chapter Objectives - 1 Validate user input in the Validating event handler and display messages

More information

Tizen.NET. Transition of Tizen Developer Environment. Samsung Electronics S/W Center Sung-Jae Lee, Seungkeun Lee

Tizen.NET. Transition of Tizen Developer Environment. Samsung Electronics S/W Center Sung-Jae Lee, Seungkeun Lee Tizen.NET Transition of Tizen Developer Environment Samsung Electronics S/W Center Sung-Jae Lee, Seungkeun Lee 2016. 11. 17 Index Intro Language API & Framework Tools Collaborations & Roadmap 01 09 15

More information

To get started with Visual Basic 2005, I recommend that you jump right in

To get started with Visual Basic 2005, I recommend that you jump right in In This Chapter Chapter 1 Wading into Visual Basic Seeing where VB fits in with.net Writing your first Visual Basic 2005 program Exploiting the newfound power of VB To get started with Visual Basic 2005,

More information

This document contains a general description of the MVVMStarter project, and specific guidelines for how to add a new domain class to the project.

This document contains a general description of the MVVMStarter project, and specific guidelines for how to add a new domain class to the project. MVVMStarter Guide This document contains a general description of the MVVMStarter project, and specific guidelines for how to add a new domain class to the project. Table of Content Introduction...2 Purpose...2

More information

Lecture # 6 Engr. Ali Javed 11th March, 2014

Lecture # 6 Engr. Ali Javed 11th March, 2014 Lecture # 6 Engr. Ali Javed 11 th March, 2014 Instructor s Information Instructor: Engr. Ali Javed Assistant Professor Department of Software Engineering U.E.T Taxila Email: ali.javed@uettaxila.edu.pk

More information

Yes, this is still a listbox!

Yes, this is still a listbox! Yes, this is still a listbox! Step 1: create a new project I use the beta 2 of Visual Studio 2008 ( codename Orcas ) and Expression Blend 2.0 September preview for this tutorial. You can download the beta2

More information

KlarSynt Tools. A tool for automating configurations of test environments. Simon Vestin & Daniel Svensson

KlarSynt Tools. A tool for automating configurations of test environments. Simon Vestin & Daniel Svensson KlarSynt Tools A tool for automating configurations of test environments Simon Vestin & Daniel Svensson Faculty of Health, Science and Technology Computer Science Bachelor's Degree, 15 points Supervisor:

More information

DE Introduction to Web Development with Microsoft Visual Studio 2010

DE Introduction to Web Development with Microsoft Visual Studio 2010 DE-10267 Introduction to Web Development with Microsoft Visual Studio 2010 Summary Duration 5 Days Audience Developers Level 100 Technology Microsoft Visual Studio 2010 Delivery Method Instructor-led (Classroom)

More information

Understanding Events in C#

Understanding Events in C# Understanding Events in C# Introduction Events are one of the core and important concepts of C#.Net Programming environment and frankly speaking sometimes it s hard to understand them without proper explanation

More information

Cross-Platform Mobile Platforms and Xamarin. Presented by Mir Majeed

Cross-Platform Mobile Platforms and Xamarin. Presented by Mir Majeed Cross-Platform Mobile Platforms and Xamarin Presented by Mir Majeed Agenda 1. Sharing Code Among Different Platforms File-Linking into each App Project Portable Class Libraries 2. Solution Population Strategies

More information

Design Patterns Reid Holmes

Design Patterns Reid Holmes Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary

More information