WHITEPAPER M&M Application Platform for WPF



Similar documents
Article. One for All Apps in HTML5

ARTICLE Cloud Computing more than a hype?

Article. Barrier-free FDT thanks to Desktop Virtualization

Visual Studio 2008: Windows Presentation Foundation

Microsoft Access 2010 handout

Software Maintenance - Whitepaper 1 Introduction

Windows Presentation Foundation (WPF)

Oracle Application Development Framework Overview

TSScan - Usage Guide. Usage Guide. TerminalWorks TSScan 2.5 Usage Guide. support@terminalworks.com

USER GUIDE SHORETEL NETSUITE CLIENT. ShoreTel Professional Services

Implementing multi-user multi-touch scenarios using WPF in Windows* 8 Desktop Apps

High Availability of the Polarion Server

Ansur Test Executive. Users Manual

TIA Portal vs Studio 5000

Insight Video Net. LLC. CMS 2.0. Quick Installation Guide


Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Getting Started with Sitecore Azure

Please see below open positions at Quality Assurance Department at Hyland, creator of OnBase.

SilkTest Workbench. Getting Started with.net Scripts

Building Business Applications with SharePoint 2010 and Office October 22, 2010

Sparx Systems Enterprise Architect as an unattended Windows Service on Windows Server 2008R2 and higher VERSION 1.0

Protect, License and Sell Xojo Apps

Agents Hands-On Exercises. Agent Hands On Exercise

Identity Management System: Architecture

8.3 VCPowerPack (Company: AICOMP Group)

Configuring Microsoft Active Directory for Oracle Net Naming. An Oracle White Paper April 2014

How To Build A Financial Messaging And Enterprise Service Bus (Esb)

Compare & Adjust How to Guide for Compare & Adjust in SAP Solution Manager Application Lifecycle Management

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Welcome to the new Netop School 6.0 interface!

EZManage V4.0 Release Notes. Document revision 1.08 ( )

Export Server Object Extension and Export Task Install guide. (V1.1) Author: Domenico Ciavarella ( )

Release Document Version: User Guide: SAP BusinessObjects Analysis, edition for Microsoft Office

Whitepaper: Voice Call Notifications via VoIP and existing Dialogic Diva Boards

Project management integrated into Outlook

Comodo Certificate Manager Version 5.4

Mariemont City Schools

LoyaLTy ManageMenT SuiTe (LMS) for next generation customer LoyaLTy

September 18, Modular development in Magento 2. Igor Miniailo Magento

HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013

Scripting with CAMMaster And Visual Basic.NET

SQL Server 2008 R2 Express Edition Installation Guide

Host Installation on a Terminal Server

14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë

The Practical Organization of Automated Software Testing

Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences. Mike Dempsey

Build Platform as a Service (PaaS) with SUSE Studio, WSO2 Middleware, and EC2 Chris Haddad

Non-ThinManager Components

Installing and Configuring Microsoft SQL Server 2012 Express PI AF

Jetico Central Manager. Administrator Guide

Version Comparison MAXIMIZER CRM Published By. DATA SHEET Version Comparison 1

Infor SyteLine Integration Guide for Infor Factory Track

EXAM PRO:Design & Develop Windows Apps Using MS.NET Frmwk 4. Buy Full Product.

Installation Guide and Machine Setup

CRM to Exchange Synchronization

Windows Azure Pack Installation and Initial Configuration

Please check for updates to make sure you install the most recent version of our software.

PROJECT in a box version 2.4 Server. Install guide

Dell Active Administrator 8.0

Excel 2013 What s New. Introduction. Modified Backstage View. Viewing the Backstage. Process Summary Introduction. Modified Backstage View

Developing ASP.NET MVC 4 Web Applications

The Top 10 Advantages of a Windows Based PBX

FioranoMQ 9. High Availability Guide

How To Use Ezcrt Computer Rental For A Rental

2012 Nolio Ltd. All rights reserved

How can I manage all automation software tasks in one engineering environment?

... Introduction... 17

DIGIPASS CertiID. Getting Started 3.1.0

V 6.1 Core Training Training Plan

2009 Ing. Punzenberger COPA-DATA GmbH. All rights reserved.

Life Cycle Management for Oracle Data Integrator 11 & 12. At lower cost Get a 30% return on investment guaranteed and save 15% on development costs

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory IBM Corporation 1

Applying SOA to OSS. for Telecommunications. IBM Software Group

Microsoft Enterprise Project Management 2010 Licensing Guide

Welcome to MaxMobile. Introduction. System Requirements

JUDSON WHITE Austin, TX (877)

BillQuick Installation Guide for Microsoft SQL Server 2005 Express Edition

SyncLockStatus Evaluator s Guide

Simplifying development through activity-based change management

IBM Rational Rapid Developer Components & Web Services

Creating a New Database and a Table Owner in SQL Server 2005 for exchange@pam

To Begin Customize Office

Software Life-Cycle Management

Security White Paper The Goverlan Solution

Symplified I: Windows User Identity. Matthew McNew and Lex Hubbard

APPLICATION NOTE. Getting Started with pylon and OpenCV

TSPrint - Usage Guide. Usage Guide. TerminalWorks TSPrint Usage Guide. support@terminalworks.com

Microsoft Project Server Integration with SharePoint 2010

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

Compare versions with Maximizer CRM 12: Summer 2013

Z-Way Home Automation User Interface Documentation. (c) Z-Wave.Me Team, based on Version 2.0

Enterprise SOA Strategy, Planning and Operations with Agile Techniques, Virtualization and Cloud Computing

1Building Communications Solutions with Microsoft Lync Server 2010

MS SQL Express installation and usage with PHMI projects

Team Collaboration, Version Management, Audit Trails

Transcription:

Author: Sven Rieger Created on: 2015-04-10 Version: 1.0 Modular Windows desktop applications need a well-defined architecture. Modularity has to be supported throughout the whole application and its architecture. This implies a modular UI and the separation of the application into several modules providing diff erent functionality. These modules contain logic as well as UIs shown inside the application s main UI. Engineering systems like the fdtcontainer application from M&M Software GmbH are typical examples. Figure 1 shows the fdtcontainer application screen. Figure 1 - fdtcontainer application The UI is based on state-of-the art elements like the ribbon, known from Microsoft Office 2013. It presents the available commands to the user. The first button of the ribbon opens the so called backstage view. It provides basic functionality such as creating a new file or project, open, save, file info, application info and so forth. Content specific ribbon tabs are added depending on the context of the active document window. Document and tool windows are shown in the area below the ribbon. Their content is usually provided by the modules. This is typical for this particular kind of applications and therefore addressed by the architecture. Reference Architecture How does the M&M Platform for WPF architecture look like? Figure 2 gives an overview of the reference architecture. The platform is based on the mainstream technologies of the.net 1 / 6

log4net WHITEPAPER framework. This make it possible to provide long term support. Microsoft Extensibility Framework (MEF) supporting loose coupling and Windows Presentation Foundation (WPF) for the UI are two important parts of the.net framework to mention at this point. On top of the technology part the framework is located. It is a mix of open source and commercial components building up the basic framework. These components are used to build up the application s frame which manages and integrates the modules. The application specific modules are based on this framework as illustrated w ith gray boxes. These modules comprise the application specific parts like e.g. the device management. The Shell View - Bootstrapper is a required module. It defines the application s UI frame and is responsible for the application startup. Shell View Bootstrapper Module 1 Module 2 Module n Localization Extension Cinch MEFed MVVM Microsoft Patterns & Practices Prism ActiPro Ribbon and Docking.Net Freamework 4 or 4.5 / WPF / MEF Figure 2 - Individual WPF Reference Architecture Modularity and loose coupling Modular extension is achieved by using the Microsoft Extensibility Framework (MEF). MEF supports the creation of loose coupled and extensible applications which is one of the key quality attributes in this architecture. Having a modular approach allows adding and removing functionality by adding or removing modules. Since modules are more or less independent from each other modules ca n be developed in parallel without influencing each other too much. This results in a faster time to market, assumed, that the project team size can be scaled. A modular approach has also its advantages when developing product lines. The frame and the basic modules can be re-used in different variants of the product. The various products within the 2 / 6

product line may consist of several specific modules combined with a selection of common modules. UI with WPF In this architecture the UI is built up using WPF which allows to create UIs with a good user experience. Using the styling mechanisms of WPF it is possible to customize the UI according to the company s corporate identity and the defined UI style guide. For example, the blue parts of the window shown in Figure 1 could be colored using the company colors. WPF also clearly distinguishes between UI and logic. To support this the Model View View -Model patterns is used (see Figure 3). It separates the UI (View) from the complex business logic (Model). UI logic is located in the View-Model. The views are connected to the view models by using the data binding mechanisms provided by WPF. View Data Binding View-Model Model Figure 3 - MVVM pattern Testability The modular approach and the MVVM pattern provides a solid basis for more effective unit and integration tests. This guarantees the product quality and ensures a good maintainability of the developed software solution. Microsoft Patterns & Practices Prism as basis Microsoft Patterns & Practices Prism provides a generic framework to build loosely coupled, modular WPF applications. It provides e.g. event managers and named UI regions to decouple the modules. It has been used successfully for several applications at M&M Software GmbH and was therefore the first choice for the. Loose coupling in Prism is realized by dependency injection. There is a choice between Unity and MEF. For this basis architecture MEF has been chosen, because it s already included in the.net Framework and fulfills the needs required for this architecture. ActiPro Ribbon and Docking ActiPro Ribbon and Docking controls have been chosen for the ribbon and docking functionality. Like Prism they also have been used successfully in several projects. The Ribbon control behaves like the Ribbons known from Microsoft Office. The docking control provides the same behavior as known from Visual Studio. Another advantage of the docking control is the good integration with Prism. It supports the Prism regions out of the box. This has the advantage that the docking area can be used like any other Prism area and no extra implementation is needed. Cinch with MEFedMVVM The Cinch library supports the development of MVVM-based applications. It consists of several base and helper classes that make life easier when developing view models. There is no benefit in developing your own base classes. 3 / 6

Loose coupling is also an important topic when dealing with view models. MEFedMVVM is a library that helps to develop MVVM applications and keep the view mode l loose coupled from the view. Internally MEFedMVVM uses MEF to achieve this. The view model is registered with a name and the view resolves the view model by the view model name. Hence the view and the view model do not have any dependency beside this name. Data from the view model is displayed in the view using WPF s original data binding mechanism. Localization Most of the applications are shipped internationally. Hence localization is an important topic. In many applications, users shall be able to switch the language without restarting the application. In our architecture the WPF Localization Extension component is used. This component is very flexible. It provides an interface to add own localization providers. Hence it s possible to get the resource strings from a custom database, if required. Resx files, usually used in.net, are supported by default. Centralized Logging The centralized application logging is accomplished using log4net, which is a very powerful logging component. It provides a nice API and good configuration options. Hence it s possible to fully customize logging according to the project needs. Log4net also provides so called appenders. They define, how the log entries are handled, e.g. persist to file or database. Conclusion This reference architecture defines a foundation for modular applications with Microsoft Office 2013 style. It has successfully been used by fdtcontainer application, dtminspector and an engineering tool developed for one of our customers. Summary: Microsoft Patterns & Practices Prism is good to build loosely coupled applications. Modular design and the usage of MVVM ensures a good maintainability and unit testing basis. Product lines can be built based on the modular design. Prism, ActiPro, Cinch, Localization Extension and log4net, together provide a solid reference architecture for modular Microsoft Office 20013 style applications. Specific application architectures are built by adding application specific building blocks like e.g. Device Management. Although reuse of object oriented code may fail frequently, reusing reference architectures saves time and effort while increasing quality. 4 / 6

Boxes Used Technologies Technology / Component Microsoft Patterns & Practices Prism ActiPro Ribbon and Docking Cinch MEFedMVVM WPF Localization Extension Log4net Source http://compositewpf.codeplex.com/ http://www.actiprosoftware.com/products/ controls/wpf/ribbon http://www.actiprosoftware.com/products/ controls/wpf/docking https://cinch.codeplex.com/ http://mefedmvvm.codeplex.com/ https://wpflocalizeextension.codeplex.com/ http://logging.apache.org/log4net/ Advantages and limitations Advantages o Basic UI frame styled like Office 2013 with dockable windows o Loose coupled modules o Covers cross-cutting concerns Localization Logging Limitations o Supports Windows Desktop Applications only. Mobile devices are out of scope. Suitable for Engineering Systems Configuration Tools 5 / 6

Company Profile M&M M&M Software stands for innovation, competency and quality. Being more than 25 years in business, M&M has gained the reputation as a reliable partner for many renowned customers worldwide. Our vast industry know-how is reflected in a wide range of innovative and unique software solutions that we have developed for and together with our customers in the factory - and process automation, maritime technology, mechanical engineering, building automation and energy technology. M&M is the competent service provider for all matters concerning software products in the industrial automation. Our service portfolio includes Management & Technology Consulting, Software Development, Quality Assurance, IT Operations & Services and Software Mainte nance & Support. We mainly focus on solutions for Human Machine Interfaces (HMI), device integration, engineering systems and web applications. The company s headquarter is in St. Georgen in Germany s Black Forest region. Our subsidiary in Suzhou near Shanghai/China was established in 2005. There we do not only serve the upcoming markets in Asia, but also offer offshore development services to our customers in Europe and America in proven M&M quality to significant price advantages. At the end of 2012 M&M established its subsidiary in Hanover. This location enables us to serve our customers in the north of Germany even better. M&M Software GmbH +49(0)7724/9415-0 Industriestr. 5 Fax +49(0)7724/9415-23 78112 St. Georgen Email: info@mm-software.com GERMANY Internet: www.mm-software.com 6 / 6 Registered Office: St.Georgen, Germany Registry Court: Freiburg HRB 602021 Directors: Erwin Mueller, Klaus Huebschle, Andreas Boerngen