Basics of Software Architecture for .NET Developers
Upcoming SlideShare
Loading in...5
×
 

Basics of Software Architecture for .NET Developers

on

  • 5,827 views

Understanding what Software Architecture is and the benefits of a good architecture along with the implicit requirements that go along with it. The presentation then goes into detail about how the ...

Understanding what Software Architecture is and the benefits of a good architecture along with the implicit requirements that go along with it. The presentation then goes into detail about how the .NET framework can be leveraged as part of a great architecture.

Statistics

Views

Total Views
5,827
Views on SlideShare
5,801
Embed Views
26

Actions

Likes
1
Downloads
113
Comments
0

2 Embeds 26

http://www.slideshare.net 18
http://www.linkedin.com 8

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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
  • 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
  • This is a very quick introduction about reflection and generics.. Many resources on the web available.

Basics of Software Architecture for .NET Developers Basics of Software Architecture for .NET Developers Presentation Transcript

  • 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