08.09.2013 Views

Microsoft .NET: Architecting Applications for the Enterprise ... - BattleIT

Microsoft .NET: Architecting Applications for the Enterprise ... - BattleIT

Microsoft .NET: Architecting Applications for the Enterprise ... - BattleIT

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 1 Architects and Architecture Today 19<br />

Finally, <strong>the</strong> architect also strategizes about tasking individual developers, or teams of developers,<br />

with each of <strong>the</strong> components resulting from <strong>the</strong> breakdown of <strong>the</strong> system.<br />

Note There are no absolute truths in software architecture. And no ma<strong>the</strong>matical rules<br />

(or building codes like in structural engineering) to help in making choices. Company X might<br />

fi nd architecture A successful at <strong>the</strong> same time company Y is moving away from it to embrace<br />

architecture B. The nice fact is that both might be totally right. The context is king, and so is gut<br />

feeling.<br />

Identifying and Evaluating Technologies<br />

After acknowledging requirements and designing <strong>the</strong> layers of <strong>the</strong> system, <strong>the</strong> next step <strong>for</strong><br />

<strong>the</strong> architect entails mapping logical components onto concrete technologies and products.<br />

The architect typically knows <strong>the</strong> costs and benefi ts of products and technologies that might<br />

be related to <strong>the</strong> content of <strong>the</strong> project. The architect proposes <strong>the</strong> use of any technologies<br />

and products that he regards as benefi cial and cost-effective <strong>for</strong> <strong>the</strong> project.<br />

The architect doesn’t choose <strong>the</strong> technology; based on his skills, <strong>the</strong> architect just makes<br />

proposals.<br />

The architect might suggest using, say, <strong>Microsoft</strong> Windows 2008 Server <strong>for</strong> <strong>the</strong> Web<br />

server and a service-oriented architecture with services implemented through Windows<br />

Communication Foundation (WCF). The architect might suggest NHibernate over Entity<br />

Framework and <strong>Microsoft</strong> SQL Server 2008 over Oracle. And he might suggest a particular<br />

rich control suite <strong>for</strong> <strong>the</strong> Web presentation layer instead of, perhaps, an entirely in-house<br />

developed Silverlight client.<br />

Who does make <strong>the</strong> fi nal decision about which technologies and products are to be used?<br />

Typically, it is <strong>the</strong> project manager or whoever manages <strong>the</strong> budget. The architect’s<br />

suggestions might be accepted or rejected. If a suggestion is rejected, using or not using a<br />

given product or technology just becomes a new nonfunctional requirement to fulfi ll, and<br />

that might infl uence, even signifi cantly, <strong>the</strong> architecture.<br />

Formulating Specifi cations<br />

The architect is ultimately responsible <strong>for</strong> <strong>the</strong> development of <strong>the</strong> system and coordinates <strong>the</strong><br />

work of a team of developers. Technical specifi cations are <strong>the</strong> means by which <strong>the</strong> architect<br />

communicates architectural decisions to <strong>the</strong> developers.<br />

Specifi cations can be rendered in various <strong>for</strong>ms: UML sketches, Word documents, <strong>Microsoft</strong><br />

Visio diagrams or, even, working prototypes.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!