On March 23 and 24, the first Master Class for Microsoft Dynamics NAV Application Architecture and Design Patterns was held in Toronto.
Thirteen students attended. This what they had to say:
“I think this should be a mandatory class… developers who have the knowledge of design patterns and common coding practices inherently develop stronger, cleaner code.” ~ Michael Hollinger, Harbor Wholesale Foods
“An awesome course that covers the best practices of NAV development and application architecture.” ~ Sukeev Kailayapathy, Second Foundation
The workshop will be scheduled twice per year in Toronto (or on demand if enough students register). Your teacher will be Floyd Chan.

Toronto – Class of 2014
The workshop is scheduled for the following locations this year.
May: The Netherlands | Luc van Vugt, Mark Brummel
May: Belgium | Steven Renders, Mark Brummel
June: Iceland | Gunnar Gestsson, Mark Brummel
June: Japan | (Closed Partner Training)
June: Romania | (Closed Partner Training)
October: United States | (NAVUG, Reno)Mark Brummel
October: Online NAVUG Academy | Mike Doster
November: Online NAVUG Academy | Mike Doster
Master Class – Application Architecture & Design Patterns
During the workshop, we will reveal all the secrets that are hidden in the Dynamics NAV Source Code. You will get answers to questions like…
- How is Dynamics NAV Architected and how do the modules communicate
- What are Design Patterns and Anti Patterns and how do they apply to Dynamics NAV
- How can I avoid conflicts during my object merge
- What impact do monthly rollups have to my roadmap and release strategy
- Can the new Delta Files help me get more organized
- Why does Dynamics NAV have so much Code Cloning
- Are the coding standard documented and how can apply them
- Can I implement Object Oriented concepts such as MVVM, overloading and reflection
- How do I organize my object structure
- Best Practices such as Encapsulation and Natural Language Programming
- Be familiar with over 30 most used Design Patterns in Dynamics NAV
- What does a perfect UI look like to be repeatable in the cloud
- Understand the impact of Meta Data on Software Design
- What is the difference between Reservation Entries, G/L Entries and Interaction Log Entries
Course Outline
The course has four, iterative blocks that explain the elements for good software architecture using Design Patterns – Repeatable User Interface, Coding Guidelines, Architectural Principles and Exercises.
Introduction
- Introduction to Application Architecture
- Rollup update & Upgrade Strategies
- Design Patterns & Anti Patterns
- Meta Data Driven Software Development
Object Architecture
- Define Object Hierarchy
- Enhance the use of the Symbol Menu
- Interfaces
- Function Libraries
- Natural Language Programming
- Encapsulation
- Arguments & Overloading
- Façade & Hooks
Coding Guidelines
- Design
- Internationalization
- Localizability
- Readability
- Data Dictionary
- Hungarian Notation
- User Interface
Design Patterns
- Singleton, Multi Level Setup & Rules Pattern
- Master Data, Entity State & Compound
- Documents, Copy, Posting & Archiving
- Test Near, Test Far, Do It, Clean Up
Code Cloning
- Fundamentals
- Transaction Mirroring
- Forking, Templating, Customize & Exact Match
Modern UI for Repeatable Software
- Instructions in the User Interface
- Transaction Data Update
- Hiding Fields & Fast tabs
- Totals on Sub Pages
- Create Data from Templates
Model View View Model
- Working with Temporary Tables
- MVVM Pages
- Reports based on data in memory
- Query data on Pages