Your SlideShare is downloading. ×
0
A P P L I C AT I O N
ARCHITECTURE
J U M P S TA R T
Clint Edmonson
Senior Consultant
Polaris Solutions
clinted@polarissolut...
Platinum
Sponsors

Gold Sponsors

Silver
Sponsors
Who the heck needs architecture?
CONQUERING COMPLEXITY
• Abstraction
• Partitioning
ARCHITECTURE
“A unifying or coherent form or structure.”
merriam-webster.com
DESIGN
“Design, at its most fundamental, is about finding solutions.”
Garr Reynolds
ITERATIVE ARCHITECTURE & DESIGN

Page 41
1. Identify architecture objectives
A. Determine goals based on size, scope, time
• Complete application
• Prototype
• Sol...
2. Identify key scenarios
A. Define the solution’s boundaries
B. Identify who will impacted by the solution
C. Discover wh...
BRAINSTORMING SCOPE & KEY SCENARIOS
3. Create an application overview
A. Determine your application type
• Web
• Mobile
• Rich client
• RIA
• Web service
• So...
4. Identify key issues
A. Cross-cutting concerns
• Configuration
• Security
• Communication
• Compression
• Encryption
• L...
5. Define candidate solution(s)
A. Choose an architecturally significant scenario

B. Design a candidate baseline architec...
FUNDAMENTAL DESIGN TOOLS
• Layers
• Assemblies
• Namespaces
COMMON APPLICATION
ARCHITECTURE

Page 10
LAY(ER)ING IT ALL OUT
• Describe the application at a high level
• Identify major functional units of the design and their...
LAYERED ARCHITECTURE DESIGN
STEPS
1.

Determine layers you require

2.

Determine rules for interaction between layers

3....
BASELINE LAYERED ARCHITECTURE
Physical deployment
• Visualize the physical structure of a system
• Executables
• Libraries
• Services
• Focus on compone...
Baseline physical deployment
Grouping layers into assemblies
• Prefer fewer, larger assemblies
•
•
•
•

Faster load time
Reduced working set
Better NGE...
Rinse, repeat, refactor…

Page 41
ANALYSIS & DESIGN ARTIFACTS
• Sketch
• Blueprint
• Executable

• They are artifacts, not documentation!
• Don’t be afraid ...
Architecture after several iterations
BEST PRACTICES
• Minimize upfront design

• avoid starting more than one layer/namespace deep

• Analyze and refactor at t...
LAW OF PARSIMONY
“Reduce everything to its essence so that form
harmonizes with function.”
Chris Kobryn
REFERENCES
• Microsoft Application Architecture Guide 2nd Edition
by Microsoft Patterns & Practices Group

• Microsoft .NE...
Q&A
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Application architecture jumpstart
Upcoming SlideShare
Loading in...5
×

Application architecture jumpstart

4,347

Published on


This presentation distills the best industry guidance into a hands-on approach to designing application architectures. Along the way, we'll examine the key decisions that must be made when choosing our architectural styles and designing our layers and show how those decisions turn into real shippable code on a project.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,347
On Slideshare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Photo credits: http://www.flickr.com/photos/cogdog/2708223050/Creative Commons Attribution License
  • Photo credits: http://www.flickr.com/photos/dullhunk/2859826117/Creative Commons Attribution License
  • Photo credits: http://www.flickr.com/photos/rutlo/4094249840/Creative Commons Attribution License
  • Photo credits: http://www.flickr.com/photos/annahape-gallery/Creative Commons Attribution License
  • Photo credits: http://www.flickr.com/photos/wwarby/2460644803/Creative Commons Attribution License
  • Photo credits: http://www.flickr.com/photos/paalia/3582759194/Creative Commons Attribution License
  • Photo credits: http://www.flickr.com/photos/emilysoo/3863285545/Creative Commons Attribution License
  • Transcript of "Application architecture jumpstart"

    1. 1. A P P L I C AT I O N ARCHITECTURE J U M P S TA R T Clint Edmonson Senior Consultant Polaris Solutions clinted@polarissolutions.com
    2. 2. Platinum Sponsors Gold Sponsors Silver Sponsors
    3. 3. Who the heck needs architecture?
    4. 4. CONQUERING COMPLEXITY • Abstraction • Partitioning
    5. 5. ARCHITECTURE “A unifying or coherent form or structure.” merriam-webster.com
    6. 6. DESIGN “Design, at its most fundamental, is about finding solutions.” Garr Reynolds
    7. 7. ITERATIVE ARCHITECTURE & DESIGN Page 41
    8. 8. 1. Identify architecture objectives A. Determine goals based on size, scope, time • Complete application • Prototype • Solving a technical risk • Exploring potential options • Building shared, reference models B. Identify target audience • Other architects • Developers • Testers • Operations
    9. 9. 2. Identify key scenarios A. Define the solution’s boundaries B. Identify who will impacted by the solution C. Discover what valuable activities will be automated D. Uncover constraints that will limit the solution E. Identify activities that are most important to the success of your application F. Highlight those that are architecturally significant
    10. 10. BRAINSTORMING SCOPE & KEY SCENARIOS
    11. 11. 3. Create an application overview A. Determine your application type • Web • Mobile • Rich client • RIA • Web service • Some combination of the above B. Identify your deployment constraints C. Determine your relevant technologies
    12. 12. 4. Identify key issues A. Cross-cutting concerns • Configuration • Security • Communication • Compression • Encryption • Logging & instrumentation • Validation • Error management B. Quality attributes • Run-time performance • Scalability • Disaster recovery
    13. 13. 5. Define candidate solution(s) A. Choose an architecturally significant scenario B. Design a candidate baseline architecture C. Build out the scenario to prove it out
    14. 14. FUNDAMENTAL DESIGN TOOLS • Layers • Assemblies • Namespaces
    15. 15. COMMON APPLICATION ARCHITECTURE Page 10
    16. 16. LAY(ER)ING IT ALL OUT • Describe the application at a high level • Identify major functional units of the design and their interdependencies • Each layer represents a logical group of projects, namespaces, and/or other artifacts
    17. 17. LAYERED ARCHITECTURE DESIGN STEPS 1. Determine layers you require 2. Determine rules for interaction between layers 3. Identify cross-cutting concerns 4. Determine if you need to collapse layers 5. Choose deployment strategy
    18. 18. BASELINE LAYERED ARCHITECTURE
    19. 19. Physical deployment • Visualize the physical structure of a system • Executables • Libraries • Services • Focus on components of the system, their relationships, interfaces, and ports • Highlight the service behavior that they provide and consume through interfaces
    20. 20. Baseline physical deployment
    21. 21. Grouping layers into assemblies • Prefer fewer, larger assemblies • • • • Faster load time Reduced working set Better NGEN optimization If several assemblies are always loaded together, consider combining them into one • Partition into separate assemblies based on • • • • • Deployment Versioning Data access Security and access control Contributions from disparate sources • Avoid the one dll per namespace anti-pattern!
    22. 22. Rinse, repeat, refactor… Page 41
    23. 23. ANALYSIS & DESIGN ARTIFACTS • Sketch • Blueprint • Executable • They are artifacts, not documentation! • Don’t be afraid to throw them away and draw new ones!
    24. 24. Architecture after several iterations
    25. 25. BEST PRACTICES • Minimize upfront design • avoid starting more than one layer/namespace deep • Analyze and refactor at the beginning of each iteration • Separate functional areas of concern cleanly • Avoid duplicating responsibilities • Minimize dependencies between layers • Make it obvious where code needs to go!
    26. 26. LAW OF PARSIMONY “Reduce everything to its essence so that form harmonizes with function.” Chris Kobryn
    27. 27. REFERENCES • Microsoft Application Architecture Guide 2nd Edition by Microsoft Patterns & Practices Group • Microsoft .NET: Architecting Application for the Enterprise by Dino Esposito & Andrea Saltarello • Domain Driven Design by Eric Evans • Framework Design Guidelines by Krzysztof Cwalina & Brad Abrams
    28. 28. Q&A
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×