| Axiomatically
"Microsoft" |
Axiomatically
"Alt.Net" |
|
|
| Principle: Project
status and progress should be available. |
Team Foundation
Server MS Project |
Burndown Charts |
|
|
| Principle: Requirements
must be defined. |
Functional Requirements
Specification Non-Functional Requirements Specification |
Personas User Story
cards |
|
|
| Principle: The
architectural context must be defined. |
Logical Architecture
Specification Physical Architecture Specification |
Logical Architecture
Specification Physical Architecture Specification |
|
|
| Principle:
(Non-)Functional tests should be defined. |
| Scenarios in Team Foundation
Server |
Scenarios on reverse of User Story
cards |
|
|
| Principle:
Non-Functional tests should be defined. |
| Scenarios in Team Foundation
Server |
Scenarios on reverse of User Story
cards |
|
|
| Principle: Version
Control must be employed. |
| Team Foundation Server |
Subversion |
|
|
| Principle: Services
should be employed to traverse boundaries. |
WCF /
WS-* REST |
WCF / WS-* REST |
|
|
| Principle: Coding
standards should be enforced. |
| FxCop &
StyleCop |
FxCop & StyleCop |
|
|
| Principle: Defects
should be tracked. |
| Team Foundation Server |
Bugzilla |
|
|
| Principle: Developers
must test units of code in isolation. |
| MS Test |
NUnit |
|
|
| Principle: Where
possible, testers must automate functional verification of the
application. |
| MS Test |
FitNesse |
|
|
| Principle: The
application must be subject to a build process. |
| MSBuild |
NAnt |
|
|
| Principle: The
application should be automatically built on a regular
basis. |
| Team Foundation Server |
CruiseControl.net |
|
|
| Principle: XML Code
Comments should be compiled. |
| Sandcastle |
Sandcastle |
|
|
| Principle: Deployment
media should be built. |
| WiX / Votive |
WiX / Votive |
|
|
| Principle: Where
possible, database design should evolve. |
| Visual Studio Database
Edition |
SubSonic Migrations |
|
|
| Principle: Where
appropriate, ORM should be employed. |
| Linq2SQL |
SubSonic or NHibernate |
|
|
| Principle: Where
appropriate, diagnostics should be implemented. |
| Enterprise Library Logging
Block |
log4net |
|
|
| Principle: Where
appropriate, dependency injection should be employed. |
| Unity |
StructureMap or Spring.NET |
|
|
| Principle: Where
appropriate, the MVC pattern should be employed in web
development. |
| ASP.NET MVC |
ASP.NET MVC or MonoRail |
|
|
| Principle: Where
appropriate, in-memory caching should be employed. |
| Velocity |
Velocity or memcached |
|
|
| Principle: Where
appropriate, reverse proxies should be employed to enhance HTTP
scalability. |
| ISA Server |
ISA Server, Apache, or squid |
|
|
| Principle: Where
appropriate, AJAX should be employed in web applications to improve user
experience. |
| ASP.NET AJAX |
jQuery |
|
|
| Principle: Applications
should be security-hardened. |
| SDLC & Threat Modelling
STRIDE |
SDLC & Threat Modelling STRIDE |
|
|
| Principle: Applications
should encrypt sensitive data. |
| System.Cryptography |
System.Cryptography |