SlideShare a Scribd company logo
1 of 13
The Basics Of Software Architecture For .NET Developers Dan 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/system Components, and how they are implemented Connectors – the relationship between the components Reducing complexity through abstraction Breaking an application into distinct features that overlap in functionality as little as possible Functions can be optimized independently Failure of one function does not cause the others to fail
The Software Architect Takes Into Account: Design Patterns Best Practices n-Layering (UI, Façade, Business, Data, etc) Modularity Application Frameworks Current and Emerging Technologies Reusability
Advantages of a Good Architecture Compatibility Extensibility Reliability Maintainability Usability Availability Security Solutions that are easier to design, enhance, and maintain
Implicit Requirements An 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 Requirements It is the “duty” of the software architect to determine potential problems or risks with a design and mitigate or eliminate these risks The 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 Risk This will lead to a better analysis and resolution of risk, including: Scaling Compatibility Future Maintenance and Enhancements Usability Issues Stakeholder Buy-In and Support Proper Business Processes In Place etc…
For .NET Developers Solid Understanding of Object Oriented Programming  Objects, Instances, Inheritance, Abstraction, Encapsulation (Interfaces), Polymorphism, Decoupling, etc .NET Design Patterns Very useful patterns to understand include (Strategy, Façade, Adapter, and Singleton) Keep up to date on the latest technology SOA, WF, WPF, WCF, LINQ, etc
For .NET Developers Increase Your Productivity and Effectiveness Develop application components that are re-useable Look to re-use existing components  Always consider modularity and decoupling Look at third party components (Infragistics, Telerik, etc) Consider ORM mapping tools such as LLBL Gen Pro
For .NET Developers Understand the Value of Generics Generics make type parameters possible Defers 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 animal Understand the Value of Reflection System.Reflection namespace Load objects at run time, get a list of methods and properties of objects at run time (even private ones) and call them Many practical uses, including the ability to create a “Pluggable Architecture”
For .NET Developers Microsoft Patterns & Practices Enterprise Library Provides 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 Client Red-Gate .NET Reflector is a Cool Tool! Allows you to view, navigate, and search through the class hierarchies of .NET assemblies Look at the code behind the objects in .NET Framework classes to see how they work
Resources MSDN Architecture Centerhttp://msdn.microsoft.com/en-us/architecture/default.aspx Bredemeyer.com (Software Architecture Resources)http://www.bredemeyer.com/ Data & Object Factory (.NET Design Patterns)http://www.dofactory.com Microsoft Patterns & Practices http://msdn.microsoft.com/en-us/practices/default.aspx .NET Reflectorhttp://www.red-gate.com/products/reflector/ System.Reflection Namespace http://msdn.microsoft.com/en-us/library/system.reflection.aspx My 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.com Consulting Inquiries? (519) 777-2258

More Related Content

What's hot

02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
Majong DevJfu
 

What's hot (20)

Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Development
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
Software architecture also needs agile
Software architecture also needs agileSoftware architecture also needs agile
Software architecture also needs agile
 
Software architecture introduction
Software architecture introductionSoftware architecture introduction
Software architecture introduction
 
Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being Driven
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical Debt
 
Java Community Webinar #8: “High Performance Systems Design”
Java Community Webinar #8: “High Performance Systems Design”Java Community Webinar #8: “High Performance Systems Design”
Java Community Webinar #8: “High Performance Systems Design”
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
A Model-Based Systems Engineering Approach to Portfolio Management
A Model-Based Systems Engineering Approach to Portfolio ManagementA Model-Based Systems Engineering Approach to Portfolio Management
A Model-Based Systems Engineering Approach to Portfolio Management
 
Software architect - roles & responsabilities
Software architect - roles & responsabilitiesSoftware architect - roles & responsabilities
Software architect - roles & responsabilities
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Software Architecture: Principles, Patterns and Practices
Software Architecture: Principles, Patterns and PracticesSoftware Architecture: Principles, Patterns and Practices
Software Architecture: Principles, Patterns and Practices
 
Agile Open 2009 Tdd And Architecture Influences
Agile Open 2009   Tdd And Architecture InfluencesAgile Open 2009   Tdd And Architecture Influences
Agile Open 2009 Tdd And Architecture Influences
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 

Viewers also liked

Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learned
rajeevdayal
 

Viewers also liked (20)

LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource GroupLINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Agile software architecture
Agile software architectureAgile software architecture
Agile software architecture
 
An Entrepreneur's Guide to Guerrilla Marketing: A Condensed Crash Course
An Entrepreneur's Guide to Guerrilla Marketing: A Condensed Crash CourseAn Entrepreneur's Guide to Guerrilla Marketing: A Condensed Crash Course
An Entrepreneur's Guide to Guerrilla Marketing: A Condensed Crash Course
 
Software Architecture taxonomies - Integration patterns
Software Architecture taxonomies - Integration patternsSoftware Architecture taxonomies - Integration patterns
Software Architecture taxonomies - Integration patterns
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Jumping Into WordPress Plugin Programming
Jumping Into WordPress Plugin ProgrammingJumping Into WordPress Plugin Programming
Jumping Into WordPress Plugin Programming
 
Writing your Third Plugin
Writing your Third PluginWriting your Third Plugin
Writing your Third Plugin
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)
 
Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learned
 
Creating a Plug-In Architecture
Creating a Plug-In ArchitectureCreating a Plug-In Architecture
Creating a Plug-In Architecture
 

Similar to Basics of Software Architecture for .NET Developers

Design Decisions For Understanding Software Architecture
Design Decisions For Understanding Software ArchitectureDesign Decisions For Understanding Software Architecture
Design Decisions For Understanding Software Architecture
Tiffany Graham
 
Software architecture-patterns
Software architecture-patternsSoftware architecture-patterns
Software architecture-patterns
pedro
 
software-architecture-patterns
software-architecture-patternssoftware-architecture-patterns
software-architecture-patterns
Pallav Kumar
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
Majong DevJfu
 

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

SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Design Decisions For Understanding Software Architecture
Design Decisions For Understanding Software ArchitectureDesign Decisions For Understanding Software Architecture
Design Decisions For Understanding Software Architecture
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Ch09
Ch09Ch09
Ch09
 
Ch09
Ch09Ch09
Ch09
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Management of Complexity in System Design of Large IT Solutions
Management of Complexity in System Design of Large IT SolutionsManagement of Complexity in System Design of Large IT Solutions
Management of Complexity in System Design of Large IT Solutions
 
Software architecture-patterns
Software architecture-patternsSoftware architecture-patterns
Software architecture-patterns
 
Software arquitectura patron diseño
Software arquitectura patron diseñoSoftware arquitectura patron diseño
Software arquitectura patron diseño
 
software-architecture-patterns
software-architecture-patternssoftware-architecture-patterns
software-architecture-patterns
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and design
 
Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Basics of Software Architecture for .NET Developers

  • 1. The Basics Of Software Architecture For .NET Developers Dan Douglas |Senior Software Developer/ Architect     Blog: http://dandouglas.wordpress.com Twitter: @Dan_Douglas E-mail: dan.douglas@gmail.com
  • 2. Software Architecture is: Structure and design of the application/system Components, and how they are implemented Connectors – the relationship between the components Reducing complexity through abstraction Breaking an application into distinct features that overlap in functionality as little as possible Functions can be optimized independently Failure of one function does not cause the others to fail
  • 3. The Software Architect Takes Into Account: Design Patterns Best Practices n-Layering (UI, Façade, Business, Data, etc) Modularity Application Frameworks Current and Emerging Technologies Reusability
  • 4. Advantages of a Good Architecture Compatibility Extensibility Reliability Maintainability Usability Availability Security Solutions that are easier to design, enhance, and maintain
  • 5. Implicit Requirements An 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 Requirements It is the “duty” of the software architect to determine potential problems or risks with a design and mitigate or eliminate these risks The 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 Risk This will lead to a better analysis and resolution of risk, including: Scaling Compatibility Future Maintenance and Enhancements Usability Issues Stakeholder Buy-In and Support Proper Business Processes In Place etc…
  • 8. For .NET Developers Solid Understanding of Object Oriented Programming Objects, Instances, Inheritance, Abstraction, Encapsulation (Interfaces), Polymorphism, Decoupling, etc .NET Design Patterns Very useful patterns to understand include (Strategy, Façade, Adapter, and Singleton) Keep up to date on the latest technology SOA, WF, WPF, WCF, LINQ, etc
  • 9. For .NET Developers Increase Your Productivity and Effectiveness Develop application components that are re-useable Look to re-use existing components Always consider modularity and decoupling Look at third party components (Infragistics, Telerik, etc) Consider ORM mapping tools such as LLBL Gen Pro
  • 10. For .NET Developers Understand the Value of Generics Generics make type parameters possible Defers 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 animal Understand the Value of Reflection System.Reflection namespace Load objects at run time, get a list of methods and properties of objects at run time (even private ones) and call them Many practical uses, including the ability to create a “Pluggable Architecture”
  • 11. For .NET Developers Microsoft Patterns & Practices Enterprise Library Provides 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 Client Red-Gate .NET Reflector is a Cool Tool! Allows you to view, navigate, and search through the class hierarchies of .NET assemblies Look at the code behind the objects in .NET Framework classes to see how they work
  • 12. Resources MSDN Architecture Centerhttp://msdn.microsoft.com/en-us/architecture/default.aspx Bredemeyer.com (Software Architecture Resources)http://www.bredemeyer.com/ Data & Object Factory (.NET Design Patterns)http://www.dofactory.com Microsoft Patterns & Practices http://msdn.microsoft.com/en-us/practices/default.aspx .NET Reflectorhttp://www.red-gate.com/products/reflector/ System.Reflection Namespace http://msdn.microsoft.com/en-us/library/system.reflection.aspx My 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: dan.douglas@gmail.com Consulting Inquiries? (519) 777-2258

Editor's Notes

  1. 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
  2. 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
  3. This is a very quick introduction about reflection and generics.. Many resources on the web available.