MM .NET in the Context of Software Development
As part of our "best practices" recommendations for .NET development, we recommend using a formal software development process. At Oak Leaf Enterprises, we use both Agile Software Development Processes and the Unified Modeling Language.
The Unified Modeling Language
Many software developers create complex software systems without an architectural model in order to "save time." In reality, they spend far more time reworking, backtracking, and duplicating efforts. A common denominator in projects that are behind schedule or architecturally unsound is little or no analysis and design.
In contrast, software modeling helps in managing complex systems, decreasing the cost over the life of a project, and actually reducing time to market! Rather than delaying the delivery of a product, good analysis and design can actually speed its completion!
Visual Studio has its own Class Designer which mostly holds to UML standard notation.
Kevin McNeish, chief architect of the MM .NET Framework, co-wrote a book Professional UML with Visual Studio .NET that gives a high level overview of the UML and the Unified Process, and then gives you details on how to do UML modeling with Visual Studio .NET.
Agile Software Development
Over the past several years Agile Software Development has gained quite a following including large companies such as Microsoft. Here is a list of Agile principles as outlined in the Agile Manifesto: http://agilemanifesto.org/:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and the support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
One of the primary ways MM .NET can help in agile software development is its use of business objects and design patterns.
When you put the majority of your application logic in business objects it is much easier to do Test-Driven-Development since much of your testing can be done outside the context of the UI. The abundant use of time-tested design patterns in MM .NET makes it easy to change Framework behavior as well as the applications that are built on it. This makes it far easier for your applications to adapt to changes in requirements over the life of the project.
© (c) 2026 Oak Leaf Enterprises, Inc., 1996-2026 • Updated: 04/28/18
Comment or report problem with topic
