POSNow is a large-scale, modular & UI intensive application developed with .NET Technologies:
- .NET 3.5 Windows Presentation Foundation (WPF)
- .NET 3.5 Windows Communication Foundation (WCF)
- .NET 3.5 Entity Framework
- Microsoft Identity Foundation (formerly known as Geneva Framework)
- Composite Application Library (Microsoft Patterns & Practices) - Prism
- Enterprise Library (Microsoft Patterns & Practices)
The major challenges of the POSNow project are:
- Maintainability due to the size of the project - proper organisation of WPF resources with the use of different techniques - Style, Control Template, Data Template, Attached Properties (for attached behavior), Resource Dictionary, Visual Studio Project partitioning.
- Adaptability to changes - the business objects modeling the business requirements could be changed frequently especially in the early stages of development. Entity Framework and a generic layer of WCF services providing standard CRUD operations are adopted to alleviate the ORM problem. We focused on single-point-of-changes in the database and automatically cascade the changes to the rest of the project from Server (Entities) to the frontend client (update Service Reference).
- Diverse target user base and functional requirements - to support diverse range of customer POS system requirements, POSNow is designed and architectured with a novel approach that supports highly customisable & modular screen flows, UI compositions and data flows. The major yielded benefits include
- support for ad-hoc development team while maintaining software quality
- customisation at/after deployment at customer terminals.
The following screenshots provide an overview of POSNow and a sense of expertise involved in the project.
Login Option (POS or Back Office)
Animated UI Feedback to User (Data Loading In Progress)
Busy but Touch-Screen Friendly UI - Information Organisation
Modal Dialog (Screen on top of Screen - semi-transparent)
Data Input & List Style of Information Display
On Screen Keyboard for Touch Screen Input
Another Touch-Screen Friendly UI - Paging Style of Information Display