System Center Integration Framework 2.0 - Framework Organization

This section discusses how the SCIF2 framework is organized and categorized. My goal when designing this initial organization and content was to follow the best practices given by a number of different people and organizations around application frameworks, test-drive development, enterprise entegration, SOA, and design patterns. However, the way this project is initially organized is simply my concept of how it should be organized to allow for current and future development. You are welcome to provide feedback on this and the organization may be adjusted over time as needs arise or it becomes more clear that a better solution exists. I'm simply providing a starting point.

General Design Goals:

  • Create a framework that is not organized to be product specific.
    • It should be organized by activity or function (what you're trying to do - like find a computer or display information), and any product-specific requirements are found within the functional level.
    • This reduces the amount of large-scale duplication of code since you don't have a whole tree of code for each product, where each tree may have lots of similar functionality. By focusing on the function, not on the product, you enable a lot more common code and a smaller amount of product-specific code.

Burning Questions

  • Q: When providing example code and projects, where should they be placed?
  • A: Right now I'm thinking this is just extra project branches that separate out each sample. CodePlex tends to mash everything together, so I have to figure out a way to do this effectively.
  • Q: What about C++ code, VBScript and Powershell? Where will those be located?
  • A: These will be in the same locations as the C# code to avoid confusion or having to look in another tree for additional info that "might" be there or not. We'll designate the directory structure in some way rather than just dump .cs .cpp .vb and .ps1 files into the same place.
  • Q: What about "connectors" to other tools like MDT or other Solution Accelerators?
  • A: Where it makes sense for specific items, it will be integrated with that topic (for example, task sequence stuff for WinPE will all be together even if it refers to MDT). FOr more general things that integrate something with multiple pieces of the SCIF or relate to multiple activities, those would be placed in the "Product" categorization. Where an external project is simply plugged in or referenced within the SCIF, then those will be placed under the "_external" category to indicate that we don't control these.


The Framework

_samples

  • ConfigMgr
    • OS Deployment - bare metal server deployment
  • WSUS
    • WSUS Utils

_external

_dev

build

client

communication

configuration

data

interop

manageability

orchestration

presentation

products

security

testing

utilities



Related Links

Last edited Mar 17, 2009 at 1:08 AM by rhearn, version 6

Comments

No comments yet.