1. Questions
1.1. How does WM want to deploy?
1.1.1. Centralized vs. Decentralized?
1.2. What will be your development model?
1.2.1. Distributed
1.2.2. WM HQ
1.3. How will source code access be managed?
1.3.1. TeamForge will provide access control
2. A: Monolithic 386
2.1. May include implicit DLLs
2.2. Contains all variations selected by config
2.3. Base code restricted to HQ by source control system
2.4. Pros
2.4.1. Single world wide deployment
2.4.2. Widely understood development methodology
2.4.3. Incremental update deployments could be smaller
2.4.4. Allows for incremental build (only build DLLs you need)
2.5. Cons
2.5.1. Requires centralized deployment
2.5.2. Incorporation of new extensions requires core development
2.5.3. Decentralized development requires release of obj and header files
3. B: Plugin DLL Model
3.1. Core 386 and DLLs
3.2. Variations in explicit DLLs selected via runtime config
3.3. Requires Preload Bundling + Config
3.4. Pros
3.4.1. Easier decentralized development
3.4.2. Allows decentralized deployment
3.4.3. Enhanced dump analysis (easier to identify core vs. extension)
3.4.4. Potential for dynamic update
3.4.5. Incremental update deployments could be smaller
3.4.6. Allows for incremental build (only build DLLs you need)
3.4.7. Could support versioning
3.5. Cons
3.5.1. Development model more complex
3.5.2. Requires preload bundling tool
4. C: Multiple Executables based on environment (country, store)
4.1. Variations managed @ build time
4.2. All 386s deployed to all stores
4.3. Requires preload bundling & config
4.4. Pros
4.4.1. Allows decentralized deployment
4.4.2. Widely understood development methodolgy
4.5. Cons
4.5.1. Package size increase
4.5.2. Managing configurations might be complex
4.5.3. Complicates dump analysis
4.5.4. Decentralized development requires release of obj and header files
4.5.5. Requires configuration of terminal load definition
4.5.6. Potential exponential growth of executables