售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Learning Dynamics NAV Patterns
Table of Contents
Learning Dynamics NAV Patterns
Credits
Foreword
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Instant updates on new Packt books
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Introducing Dynamics NAV Patterns and Software Architecture
What do we mean by 'patterns'?
Software design patterns
The Procedural software design patterns
Microsoft Dynamics NAV Design Patterns
The object-oriented patterns
Non-object-oriented patterns
The functional oriented patterns
Patterns elements and hierarchy
Architectural patterns
Design patterns
Structuring code
The coding standards
Anti-patterns
Code cloning
Legacy code
Upgradability
The upgrade frequency
Design patterns and upgrades
Delta files
Repeatability
Design patterns and repeatability
Lifecycle of a design pattern
Technology changes
Old habits die hard
New design patterns
Software architecture in Microsoft Dynamics NAV
Metadata
Building blocks
Table
Page
Report
Codeunit
Query
XMLPort
MenuSuite
Metadata
Flowfields
Flowfilters
Base application
Functional processes
Summary
2. Architectural Patterns
The Singleton Pattern
Technical description
Company-Initialize
Implementations
Examples
Enhancements
The Supplemental and Subsidiary Pattern
Technical description
Implementations
Examples
The Compound Pattern
Technical description
Implementation
Examples
The Rules Pattern
Technical description
Implementations
Examples
The Master Data Pattern
Technical description
Implementations
Examples
The Journal Template-Batch-Line Pattern
Technical description
The Journal Template table
The Journal Batch table
The Journal Line table
Recurring Journals
Pages
Codeunits
Implementations
Hierarchy
Journals as contracts
Examples
The Entry Pattern
Technical description
The Entry Table types
Historical entries
Temporary entries
Entries that can be deleted
Temporary tracking buckets
Implementations
Examples
Document Pattern
Technical description
The Header table
The Line table
Posting and archiving
Implementations
Examples
The Argument table
Technical description
Implementations
Summary
3. Design Patterns
The Entity State Pattern
Technical description
Setting the State
Testing the State
Implementations
Examples
The Select Pattern
Technical description
Implementations
Examples
The Number Series Pattern
Technical description
The Table reference field
Setup reference
C/AL functions and variables
Implementations
Examples
Address Integration Pattern
Technical description
Fields
Copying the address
Printing addresses
Implementations
Examples
Multi-Level Setup
Technical description
Implementations
Examples
Document History
Technical description
The naming conventions
Codeunit Structure
Test Near, Test Far
Do it
Clean up
An Example
TRANSFERFIELDS
Implementations
Examples
Copy Document Pattern
Technical description
Validation logic
Implementations
Examples
Job Queue Entry Pattern
Technical description
Preprocessing
Getting records
The Main function
Post-processing
Error handling
Implementations
Examples
Dismissible dialogs and save preferences
Technical description
Dismissible dialog
Implementations
Examples
Setup Update Pattern
Technical description
Restrictions
Implementations
Example
Model-View ViewModel Pattern
Technical description
Implementations
Examples
Summary
4. Building an Example Application Using Patterns
The design elements
The Pattern dependencies
Step one – Foundation
Example setup
Which Patterns to use
The implementation
The Multi-Level Setup Pattern
Step two – Master Data
Example Person
The Example Product
Number Series
Adding Setup fields
Adding variables
Adding the No. Series field
Code snippets
Entity State
Implementing the Address Integration Pattern
Step three – Journals & Entries
Creating your own Journal and Entry
Validation in Journals
Step four – Documents
Implementing a Document
Document history
Selecting a Pattern
Other Patterns
Posting
The ThrowErrorIfNoSelection function
The TestNear function
The TestFar function
The PostExampleOne/PostExampleTwo function
The PostExJnlLine function
The DeleteExampeDocument function
The layered model
Summary
5. Coding Best Practices
Coding guidelines
Code design
Variable capacity
The Cyclomatic Complexity
The function size
Using complex data types
Localizability
Date formulas
Code readability
Variable naming
Self-explaining
Suffix versus prefix
Approved abbreviations
Class-Method-Property
The Table as a class
A Codeunit as a method
Function libraries and interfaces
Natural Language Programming
Pitfalls
Bonus – debugging
Encapsulation
Override Functions
Façade
Hooks
Disabling the original source code
Predefined hooks
Variant variables
Managing DLL
Summary
6. Anti-patterns and Handling Legacy Code
Anti-patterns
Code cloning
Forking
Templating
Customizing
Exact match
Examples
Transaction mirroring
Code normalization and writing clean code
The Document type normalization
The small business application
The VAT and Sales Tax calculation
Avoiding code cloning
Boat anchors
Other anti-patterns and context
Programming language capabilities
Legacy code
Refactoring the C/AL Code
Refactoring tables
Renaming
Normalization
Code refactoring
Finding the process owner
Moving to Codeunit
Breaking down the code into functions
Encapsulating functions
Normalizing the code
The boy scout rule
Summary
7. Building Solutions Using Patterns
Building blocks
Applying Architectural Patterns
The application setup
Guests
Room
Season
Price
Reservation
Stay
Check-in
Check-out
Clean
Evaluation
Invoice
Creating the Table objects
Applying Design Patterns
The Bed and Breakfast setup
Bed and Breakfast season
Bed and Breakfast room
Bed and Breakfast price
Bed and Breakfast clean entry
Bed and Breakfast stay
Bed and Breakfast journal and entry
The Bed and Breakfast evaluation header and evaluation line
Defining the methods
Writing the Code and Link methods
Creating the cleaning entries
Refactoring
The new class members
The new function library
Room members
The room price calculation
Testing the application
Test isolation
Analyzing the results
Upgrading the application
Creating a Delta file
The steps of creating a Delta file
Inside the Delta file
Building our application
Building the result
Managing the source code
Creating the workspace
Setting up Visual Studio
Uploading the files
Summary
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜