Documenting your software architecture - why and how? How to build practical enterprise architecture team - Natty Gur Enterprise architecture team might be the successful CIO right hand (especially in today economic situation) or a group of people that you can’t really understand what they are doing. A successful enterprise architecture group will help you to reduce IT costs, optimize IT operation, make better IT planning and keep the enterprise compliance with laws and regulations. The problem is that in order to build a successful enterprise architecture group, there is huge learning curve that CIOs need to go through. If you wish to reduce your learning curve significantly, keep reading. There are 5 main Steps that you have to understand and follow. Because each step influences the others, I tried to order them by dependencies: 1) Have a clear understanding what EA means for your enterprise. The term ‘Enterprise architecture’ has many definitions running on a scale that moves from a purely business oriented definition to a technological one. Having the definition is not enough. · Decrease IT costs.
Convention over Configuration in MSDN Magazine - Jeremy D. Mille The February ’09 edition of MSDN Magazine includes my latest article entitled “Convention over Configuration.” Personally, I think this is an exciting topic and I really enjoyed writing on this subject. I hope this article can help to spawn some ideas and conversation about how we design configuration intensive frameworks. When we build systems, we’re trying to accomplish certain business goals, but to get there, we have to jump through hoops to satisfy infrastructural concerns. The “Essence” of the system that satisfies our original business goalsThe “Ceremony” we have to go through to satisfy infrastructural requirements, the compiler, configuration mappings, and other drudgery I think that one of the next frontiers for .Net development is adopting and experimenting with techniques that allow us to accomplish the Essence of the system with less effort devoted to Ceremony code. Sensible DefaultsConvention over ConfigurationOnce and Only Once (DRY)Opinionated Software
patterns & practices: App Arch Guide - Home J.D. Meier, Alex Homer, David Hill, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, Akshay Bogawat Objectives Understand the fundamental concepts of software architecture.Learn the key design principles for software architecture.Learn the guidelines for key areas of software architecture. Overview Software architecture is often described as the organization or structure of a system, while the system represents a collection of components that accomplish a specific function or set of functions. Figure 1 Common application architecture In addition to the grouping of components, other areas of concern focus on interaction between the components and how different components work together. Key Design Principles When getting started with your design, bear in mind the key principles that will help you to create architecture that meets “best practices,” minimizes costs and maintenance requirements, and promotes usability and extendibility. Design Considerations Architecture Frame Caching
Evaluating and Improving Architectural Competence - A New SEI Pa The Carnegie Mellon® Software Engineering Institute (SEI) recently published "Models for Evaluating and Improving Architecture Competence", an 87 page report that examines how software architects and organizations can foster environments that consistently produce high quality architectures. From the abstract: Software architecture competence is the ability of an individual or organization to acquire, use, and sustain the skills and knowledge necessary to carry out software architecture-centric practices. Previous work in architecture has concentrated on its technical aspects: methods and tools for creating, analyzing, and using architecture. However, a different perspective recognizes that these activities are carried out by people working in organizations, and those people and organizations can use assistance towards consistently producing high-quality architectures. The duties, skills, and knowledge (DSK) required of a software architect Identified duties included: Conclusion
(My) Default ASP.NET Architecture - Billy McCafferty In developing any software application, it's important to keep things as simple as possible and add complexity only when needed. (I spoke about this in a previous post, Planning for vs. Reacting to Change.) Architectural Assumptions In providing an architectural approach, some assumptions are made concerning the project goals. Testability is of utmost importance. In a Nutshell Below is a graphical summary of the architecture. In the above diagram, each raised box represents a distinct specialization of the application. The assemblies avoid bi-directional dependency using the techniques "Dependency Inversion" and "Dependency Injection." Implementation Details In all seriousness, an entire book could be written to describe the preceding diagram in full detail. Dependency Injection for Loose Coupling: NHibernate Best Practices with ASP.NET: Parting Thoughts Billy
NServiceBus - Communications Framework for .NET Bryan Wheeler, Director Platform Development at msnbc.com “Udi Dahan is the real deal. We brought him on site to give our development staff the 5-day “Advanced Distributed System Design” training. The course profoundly changed our understanding and approach to SOA and distributed systems. Consider some of the evidence: 1. Months later, developers still make allusions to concepts learned in the course nearly every day 2. If I were to do the whole thing over again, I’d start the week by playing the clip from the Matrix where Morpheus offers Neo the choice between the red and blue pills. Beyond the training, we were able to spend some time with Udi discussing issues unique to our business domain. Sam Gentile, Independent WCF & SOA Expert “Udi, one of the great minds in this area.A man I respect immensely.” Shy Cohen, Senior Program Manager at Microsoft “Udi is a world renowned software architect and speaker. I cannot recommend Udi, and his courses, highly enough.” Scott C.