.NET Architecture for Enterprises - Presentation Transcript
.NET Architecture
for Enterprises
Wade Wegner
Architect, Microsoft Corporation
wade.wegner@microsoft.com
http://www.architectingwith.net/
First, a story …
First, a story …
p e r s o n^ l
a
There once was a developer …
… who really enjoyed coding …
Window Server
Tibco
Apache
Web Services
Python
SQL Server HTML
.NET
SOA
JavaScript BizTalk
AS/400 Oracle
IIS
… and then one day …
… through no fault of his own …
… someone called him an architect.
How did this happen?
Was he suddenly a
different person?
Did he now need to care
about different things?
Goals
Goals
Leave with a better understanding
of architecture
Goals
Leave with a better understanding
of architecture
s o f t w a ^r e
Goals
Understand the practical aspects
of architecture in .NET
What is architecture?
Why should I care?
How is software architecture
different?
Determining how to do something
Making expensive and
hard-to-change decisions
Who is the architect?
Are there different types
of architects?
Are architects project managers?
Should architects write code?
Do architects just focus
on abstractions?
Poor software typically
has one of two causes …
… insufficient skills.
… contradictory and ambiguous
requirements.
Anyone can write code
that just works.
Our goal should be …
… to write good code
that works.
Why?
For poorly written code
“that just works”…
… maintenance is expensive
… maintenance is frustrating
… maintenance is time consuming
How do we write good code
that works?
Tenets of Structured Design
Tenets of Structured Design
Cohesion
Tenets of Structured Design
Coupling
Tenets of Structured Design
Low coupling &
High cohesion
Separation of Concerns
Separation of Concerns
Identifying the concerns
Separation of Concerns
Modularity
Separation of Concerns
Information hiding
So, what are some principles that
make this easier?
Principles
Find Pertinent Objects First
Principles
To view all orders placed by a customer, the
user indicates the customer ID. The program
displays an error message if the customer does
not exist. If the customer exists, the program
displays name, address, date of birth, and all
outstanding orders. For each order, the
program gets ID, date, and all order items.
Find Pertinent Objects First
Principles
Favor Low Coupling
Principles
Program to an interface, not an
implementation
Favor Low Coupling
Principles
Favor Code Reuse
This is great, we know this …
so, what else is there?
0 comments
Post a comment