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.

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