SlideShare a Scribd company logo
The Basics Of Software Architecture For .NET DevelopersDan Douglas |Senior Software Developer/ Architect       Blog: http://dandouglas.wordpress.com   Twitter: @Dan_Douglas   E-mail: dan.douglas@gmail.com
Software Architecture is:Structure and design of the application/systemComponents, and how they are implementedConnectors – the relationship between the componentsReducing complexity through abstractionBreaking an application into distinct features that overlap in functionality as little as possibleFunctions can be optimized independentlyFailure of one function does not cause the others to fail
The Software Architect Takes Into Account:Design PatternsBest Practicesn-Layering (UI, Façade, Business, Data, etc)ModularityApplication FrameworksCurrent and Emerging TechnologiesReusability
Advantages of a Good ArchitectureCompatibilityExtensibilityReliabilityMaintainabilityUsabilityAvailabilitySecuritySolutions that are easier to design, enhance, and maintain
Implicit RequirementsAn Analogy: 	Implicit requirements are those that engineers automatically include as a matter of professional duty. Most of these are requirements the engineer knows more about than their sponsor. For instance, the original Tacoma Narrows Bridge showed that winds are a problem for suspension bridges. The average politician is not expected to know about this, however. Civil engineers would never allow themselves to be in a position to say, after a new bridge has collapsed, “We knew wind would be a problem, but you didn’t ask us to deal with it in your requirements.”Source: MSDN Architecture Article: Are We Engineers? or Crafts People? http://msdn.microsoft.com/en-us/library/bb508955.aspx
Implicit RequirementsIt is the “duty” of the software architect to determine potential problems or risks with a design and mitigate or eliminate these risksThe stakeholders of the project, don’t necessarily understand these risks nor do they necessarily understand their importance to the long term success of the project
Implicit Understanding Of RiskThis will lead to a better analysis and resolution of risk, including:ScalingCompatibilityFuture Maintenance and EnhancementsUsability IssuesStakeholder Buy-In and SupportProper Business Processes In Placeetc…
For .NET DevelopersSolid Understanding of Object Oriented Programming Objects, Instances, Inheritance, Abstraction, Encapsulation (Interfaces), Polymorphism, Decoupling, etc.NET Design PatternsVery useful patterns to understand include (Strategy, Façade, Adapter, and Singleton)Keep up to date on the latest technologySOA, WF, WPF, WCF, LINQ, etc
For .NET DevelopersIncrease Your Productivity and EffectivenessDevelop application components that are re-useableLook to re-use existing components Always consider modularity and decouplingLook at third party components (Infragistics, Telerik, etc)Consider ORM mapping tools such as LLBL Gen Pro
For .NET DevelopersUnderstand the Value of GenericsGenerics make type parameters possibleDefers the type of a method or object until it is instantiated (ex: List(Of T) Ex:) New List object is typed to be of type animalUnderstand the Value of ReflectionSystem.Reflection namespaceLoad objects at run time, get a list of methods and properties of objects at run time (even private ones) and call themMany practical uses, including the ability to create a “Pluggable Architecture”
For .NET DevelopersMicrosoft Patterns & PracticesEnterprise LibraryProvides common application blocks to be used within your application for Data Access, Cryptography, Caching, Exception Handling, Logging, Security, and more.Software Factories Architectural factories for building your application, including, Smart Client, Web Service, and Mobile ClientRed-Gate .NET Reflector is a Cool Tool!Allows you to view, navigate, and search through the class hierarchies of .NET assembliesLook at the code behind the objects in .NET Framework classes to see how they work
ResourcesMSDN Architecture Centerhttp://msdn.microsoft.com/en-us/architecture/default.aspxBredemeyer.com (Software Architecture Resources)http://www.bredemeyer.com/Data & Object Factory (.NET Design Patterns)http://www.dofactory.comMicrosoft Patterns & Practiceshttp://msdn.microsoft.com/en-us/practices/default.aspx.NET Reflectorhttp://www.red-gate.com/products/reflector/System.Reflection Namespacehttp://msdn.microsoft.com/en-us/library/system.reflection.aspxMy Blog (Dan Douglas)http://dandouglas.wordpress.com
Questions?Dan Douglas |Senior Software Developer/ Architect       Blog: http://dandouglas.wordpress.com   Twitter: @Dan_Douglas   E-mail: dan.douglas@gmail.comConsulting Inquiries? (519) 777-2258

More Related Content

What's hot (20)

PDF
Aspect Oriented Development
tyrantbrian
 
PPTX
Software architecture and software design
Mr. Swapnil G. Thaware
 
PPTX
Software Architecture Course - Part III Taxonomies - Definitions
Jose Emilio Labra Gayo
 
PPTX
Software architecture also needs agile
Boyan Mihaylov
 
PPTX
Software architecture introduction
Freddy Munandar
 
PPT
Importance Of Being Driven
Antonio Terreno
 
PPTX
Reducing Technical Debt
Hayim Makabee
 
PDF
Java Community Webinar #8: “High Performance Systems Design”
GlobalLogic Ukraine
 
PPTX
The Role of the Software Architect (short version)
Hayim Makabee
 
PPS
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot
 
PDF
Software Architecture and Design Introduction
Usman Khan
 
PPTX
Software Architecture
Dharmalingam Ganesan
 
PDF
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Enea Gabriel
 
PDF
Domain Driven Design
Nikolay Vasilev
 
PPTX
A Model-Based Systems Engineering Approach to Portfolio Management
Elizabeth Steiner
 
PDF
Software architect - roles & responsabilities
Adrian Cristian Grigoras
 
PPTX
Modern software architect post the agile wave
Niels Bech Nielsen
 
PDF
Software Architecture: Principles, Patterns and Practices
Ganesh Samarthyam
 
PPT
Agile Open 2009 Tdd And Architecture Influences
Gustavo Andres Brey
 
PPT
02 architectures in_context
Majong DevJfu
 
Aspect Oriented Development
tyrantbrian
 
Software architecture and software design
Mr. Swapnil G. Thaware
 
Software Architecture Course - Part III Taxonomies - Definitions
Jose Emilio Labra Gayo
 
Software architecture also needs agile
Boyan Mihaylov
 
Software architecture introduction
Freddy Munandar
 
Importance Of Being Driven
Antonio Terreno
 
Reducing Technical Debt
Hayim Makabee
 
Java Community Webinar #8: “High Performance Systems Design”
GlobalLogic Ukraine
 
The Role of the Software Architect (short version)
Hayim Makabee
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot
 
Software Architecture and Design Introduction
Usman Khan
 
Software Architecture
Dharmalingam Ganesan
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Enea Gabriel
 
Domain Driven Design
Nikolay Vasilev
 
A Model-Based Systems Engineering Approach to Portfolio Management
Elizabeth Steiner
 
Software architect - roles & responsabilities
Adrian Cristian Grigoras
 
Modern software architect post the agile wave
Niels Bech Nielsen
 
Software Architecture: Principles, Patterns and Practices
Ganesh Samarthyam
 
Agile Open 2009 Tdd And Architecture Influences
Gustavo Andres Brey
 
02 architectures in_context
Majong DevJfu
 

Viewers also liked (20)

PPT
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
Shahzad
 
PDF
Software Architecture: Design Decisions
Henry Muccini
 
PDF
Principles of software architecture design
Len Bass
 
PPTX
Software Architecture Patterns
Assaf Gannon
 
PPTX
A Software Architect's View On Diagramming
meghantaylor
 
PPTX
Software Architecture vs design
Arslan Anwar
 
PPTX
Fundamentals Of Software Architecture
Markus Voelter
 
PPTX
Software Architecture and Design - An Overview
Oliver Stadie
 
PPT
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Winton Winton
 
PPTX
Layered Software Architecture
Lars-Erik Kindblad
 
PPTX
Agile software architecture
Boyan Mihaylov
 
PDF
An Entrepreneur's Guide to Guerrilla Marketing: A Condensed Crash Course
shyamal singha
 
PPTX
Software Architecture taxonomies - Integration patterns
Jose Emilio Labra Gayo
 
PPTX
Software architecture
Ahmad Raza Aslam
 
PDF
Jumping Into WordPress Plugin Programming
Dougal Campbell
 
KEY
Writing your Third Plugin
Justin Ryan
 
PPTX
Eclipse Overview
Lars Vogel
 
PDF
Best Practices in Plugin Development (WordCamp Seattle)
andrewnacin
 
PDF
Building GPE: What We Learned
rajeevdayal
 
PPTX
Creating a Plug-In Architecture
ondrejbalas
 
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
Shahzad
 
Software Architecture: Design Decisions
Henry Muccini
 
Principles of software architecture design
Len Bass
 
Software Architecture Patterns
Assaf Gannon
 
A Software Architect's View On Diagramming
meghantaylor
 
Software Architecture vs design
Arslan Anwar
 
Fundamentals Of Software Architecture
Markus Voelter
 
Software Architecture and Design - An Overview
Oliver Stadie
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Winton Winton
 
Layered Software Architecture
Lars-Erik Kindblad
 
Agile software architecture
Boyan Mihaylov
 
An Entrepreneur's Guide to Guerrilla Marketing: A Condensed Crash Course
shyamal singha
 
Software Architecture taxonomies - Integration patterns
Jose Emilio Labra Gayo
 
Software architecture
Ahmad Raza Aslam
 
Jumping Into WordPress Plugin Programming
Dougal Campbell
 
Writing your Third Plugin
Justin Ryan
 
Eclipse Overview
Lars Vogel
 
Best Practices in Plugin Development (WordCamp Seattle)
andrewnacin
 
Building GPE: What We Learned
rajeevdayal
 
Creating a Plug-In Architecture
ondrejbalas
 
Ad

Similar to Basics of Software Architecture for .NET Developers (20)

ODP
Software Patterns
Sudarsun Santhiappan
 
PPTX
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
MahmoudZidan53
 
PPT
Software_Archi-1.ppt
FaizaZulkifal
 
PPTX
Power point for project
abdussalam taher
 
PDF
10 Hinweise für Architekten
adesso AG
 
PDF
Ten Advices for Architects
Eberhard Wolff
 
PPTX
NISI Agile Software Architecture Slide Deck
Utrecht University
 
PPT
Software architecture
nazn
 
DOCX
Software architecture Unit 1 notes
Sudarshan Dhondaley
 
PPTX
Software Architecture and Design
Ra'Fat Al-Msie'deen
 
PDF
Architecture in an Agile World
Don McGreal
 
PPT
Ibm irl
Rambabu Duddukuri
 
PPTX
Architecture Principles CodeStock
Steve Barbour
 
PDF
How to Speak the Language of Application Architecture
Brad Beiermann
 
PPT
03 basic concepts
Majong DevJfu
 
PDF
Software Architecture in an Agile World
Abhilash Gopalakrishnan
 
PPTX
Architecture Design
Saqib Raza
 
PDF
O.Savchenko FWDays workshop Software Architecture
Alexandr Savchenko
 
PPT
Cs 1023 lec 3 architecture (week 1)
stanbridge
 
PPT
Cs 1023 lec 3 architecture (week 1)
stanbridge
 
Software Patterns
Sudarsun Santhiappan
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
MahmoudZidan53
 
Software_Archi-1.ppt
FaizaZulkifal
 
Power point for project
abdussalam taher
 
10 Hinweise für Architekten
adesso AG
 
Ten Advices for Architects
Eberhard Wolff
 
NISI Agile Software Architecture Slide Deck
Utrecht University
 
Software architecture
nazn
 
Software architecture Unit 1 notes
Sudarshan Dhondaley
 
Software Architecture and Design
Ra'Fat Al-Msie'deen
 
Architecture in an Agile World
Don McGreal
 
Architecture Principles CodeStock
Steve Barbour
 
How to Speak the Language of Application Architecture
Brad Beiermann
 
03 basic concepts
Majong DevJfu
 
Software Architecture in an Agile World
Abhilash Gopalakrishnan
 
Architecture Design
Saqib Raza
 
O.Savchenko FWDays workshop Software Architecture
Alexandr Savchenko
 
Cs 1023 lec 3 architecture (week 1)
stanbridge
 
Cs 1023 lec 3 architecture (week 1)
stanbridge
 
Ad

Recently uploaded (20)

PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 

Basics of Software Architecture for .NET Developers

  • 1. The Basics Of Software Architecture For .NET DevelopersDan Douglas |Senior Software Developer/ Architect     Blog: http://dandouglas.wordpress.com Twitter: @Dan_Douglas E-mail: [email protected]
  • 2. Software Architecture is:Structure and design of the application/systemComponents, and how they are implementedConnectors – the relationship between the componentsReducing complexity through abstractionBreaking an application into distinct features that overlap in functionality as little as possibleFunctions can be optimized independentlyFailure of one function does not cause the others to fail
  • 3. The Software Architect Takes Into Account:Design PatternsBest Practicesn-Layering (UI, Façade, Business, Data, etc)ModularityApplication FrameworksCurrent and Emerging TechnologiesReusability
  • 4. Advantages of a Good ArchitectureCompatibilityExtensibilityReliabilityMaintainabilityUsabilityAvailabilitySecuritySolutions that are easier to design, enhance, and maintain
  • 5. Implicit RequirementsAn Analogy: Implicit requirements are those that engineers automatically include as a matter of professional duty. Most of these are requirements the engineer knows more about than their sponsor. For instance, the original Tacoma Narrows Bridge showed that winds are a problem for suspension bridges. The average politician is not expected to know about this, however. Civil engineers would never allow themselves to be in a position to say, after a new bridge has collapsed, “We knew wind would be a problem, but you didn’t ask us to deal with it in your requirements.”Source: MSDN Architecture Article: Are We Engineers? or Crafts People? http://msdn.microsoft.com/en-us/library/bb508955.aspx
  • 6. Implicit RequirementsIt is the “duty” of the software architect to determine potential problems or risks with a design and mitigate or eliminate these risksThe stakeholders of the project, don’t necessarily understand these risks nor do they necessarily understand their importance to the long term success of the project
  • 7. Implicit Understanding Of RiskThis will lead to a better analysis and resolution of risk, including:ScalingCompatibilityFuture Maintenance and EnhancementsUsability IssuesStakeholder Buy-In and SupportProper Business Processes In Placeetc…
  • 8. For .NET DevelopersSolid Understanding of Object Oriented Programming Objects, Instances, Inheritance, Abstraction, Encapsulation (Interfaces), Polymorphism, Decoupling, etc.NET Design PatternsVery useful patterns to understand include (Strategy, Façade, Adapter, and Singleton)Keep up to date on the latest technologySOA, WF, WPF, WCF, LINQ, etc
  • 9. For .NET DevelopersIncrease Your Productivity and EffectivenessDevelop application components that are re-useableLook to re-use existing components Always consider modularity and decouplingLook at third party components (Infragistics, Telerik, etc)Consider ORM mapping tools such as LLBL Gen Pro
  • 10. For .NET DevelopersUnderstand the Value of GenericsGenerics make type parameters possibleDefers the type of a method or object until it is instantiated (ex: List(Of T) Ex:) New List object is typed to be of type animalUnderstand the Value of ReflectionSystem.Reflection namespaceLoad objects at run time, get a list of methods and properties of objects at run time (even private ones) and call themMany practical uses, including the ability to create a “Pluggable Architecture”
  • 11. For .NET DevelopersMicrosoft Patterns & PracticesEnterprise LibraryProvides common application blocks to be used within your application for Data Access, Cryptography, Caching, Exception Handling, Logging, Security, and more.Software Factories Architectural factories for building your application, including, Smart Client, Web Service, and Mobile ClientRed-Gate .NET Reflector is a Cool Tool!Allows you to view, navigate, and search through the class hierarchies of .NET assembliesLook at the code behind the objects in .NET Framework classes to see how they work
  • 12. ResourcesMSDN Architecture Centerhttp://msdn.microsoft.com/en-us/architecture/default.aspxBredemeyer.com (Software Architecture Resources)http://www.bredemeyer.com/Data & Object Factory (.NET Design Patterns)http://www.dofactory.comMicrosoft Patterns & Practiceshttp://msdn.microsoft.com/en-us/practices/default.aspx.NET Reflectorhttp://www.red-gate.com/products/reflector/System.Reflection Namespacehttp://msdn.microsoft.com/en-us/library/system.reflection.aspxMy Blog (Dan Douglas)http://dandouglas.wordpress.com
  • 13. Questions?Dan Douglas |Senior Software Developer/ Architect     Blog: http://dandouglas.wordpress.com Twitter: @Dan_Douglas E-mail: [email protected] Inquiries? (519) 777-2258

Editor's Notes

  • #3: ComponentsWhich components?How are they implemented?Reducing complexity through abstractionBreaking an application into distinct features that overlap in functionality as little as possibleFunctions can be optimized independentlyFailure of one function does not cause the others to fail
  • #9: Keep up to date on the latest technology – Not always necessary to have intimate knowledge of new technology, but useful to have an understand of the technology to get an idea of where it may assist or be useful within a software system
  • #11: This is a very quick introduction about reflection and generics.. Many resources on the web available.