T HE B ASICS O F S OFTWARE A RCHITECTURE F OR.NET D EVELOPERS Dan Douglas | Senior Software Developer/ Architect Blog:

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

COM vs. CORBA.
Autonomic Systems Justin Moles, Winter 2006 Enabling autonomic behavior in systems software with hot swapping Paper by: J. Appavoo, et al. Presentation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Yii – How Power Comes Introduction, OOP & Design Patterns Presented at: Nextbridge Multan Center Aug 25, 2011.
DESIGN PATTERNS OZGUR RAHMI DONMEZ.
More Interfaces, Dynamic Binding, and Polymorphism Kirk Scott.
.NET Framework Overview Pingping Ma Nov 16 th, 2006.
CSLA Presenter Sergey Barskiy, senior consultant at Magenic Technologies your questions Send an in order.
Leveraging Enterprise Library in Your Applications Keith Elder Quicken Loans Manager, Sr. Software Engineer Microsoft MVP Keith a t keithelder dot net.
Software Reuse Building software from reusable components Objectives
CBSD – Component Based Software Development - Introduction -
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Design Patterns CS is not simply about programming
Microsoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV Vjekoslav Babić, MVP.
Building software from reusable components.
.NET Attributes and Reflection “What a developer needs to know……” Dan Douglas Blog:
Reuse Activities Selecting Design Patterns and Components
Chapter 22 Object-Oriented Design
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Design Patterns.
Presenter - Donn Felker.  Senior Consultant for Microsoft Gold Certified Partner- Statêra.  8 years of experience in developing and architecting enterprise.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
An Introduction to Software Architecture
CS 325: Software Engineering March 17, 2015 Applying Patterns (Part A) The Façade Pattern The Adapter Pattern Interfaces & Implementations The Strategy.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Design Patterns: Structural Design Patterns
Sander Hoogendoorn Principal Technology Officer Capgemini The Netherlands SESSION CODE: ARC303.
Inversion Of Control & Dependency Injection Break Apart The Dependencies Oren Eini Senior Developer We! Consulting Group
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
Object Oriented Software Development
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Design Patterns By Mareck Kortylevitch and Piotreck Ratchinsky.
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
C# and.NET. .NET Architecture  Compiling and running code that targets.NET  Advantages of Microsoft Intermediate Language (MSIL)  Value and Reference.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Introducing the Microsoft® .NET Framework
Design Patterns: MORE Examples
A Hierarchical Model for Object-Oriented Design Quality Assessment
Describe ways to assemble objects to implement a new functionality
More Interfaces, Dynamic Binding, and Polymorphism
Microsoft .NET 3. Language Innovations Pan Wuming 2017.
Presented by Igor Ivković
Object Oriented Analysis and Design
Software Reuse Objectives
Present by Andie Saizan, MCP
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Developing and testing enterprise Java applications
Presented by Igor Ivković
Chapter 8 - Design Strategies
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
GoF Patterns Ch. 26.
Presentation transcript:

T HE B ASICS O F S OFTWARE A RCHITECTURE F OR.NET D EVELOPERS Dan Douglas | Senior Software Developer/ Architect Blog:

S OFTWARE A RCHITECTURE 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

T HE S OFTWARE A RCHITECT T AKES I NTO A CCOUNT : Design Patterns Best Practices n-Layering (UI, Façade, Business, Data, etc) Modularity Application Frameworks Current and Emerging Technologies Reusability

A DVANTAGES OF A G OOD A RCHITECTURE Compatibility Extensibility Reliability Maintainability Usability Availability Security Solutions that are easier to design, enhance, and maintain

I MPLICIT R EQUIREMENTS 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?

I MPLICIT R EQUIREMENTS 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

I MPLICIT U NDERSTANDING O F R ISK 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…

F OR.NET D EVELOPERS 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

F OR.NET D EVELOPERS 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

F OR.NET D EVELOPERS 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”

F OR.NET D EVELOPERS 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

R ESOURCES MSDN Architecture Center Bredemeyer.com (Software Architecture Resources) Data & Object Factory (.NET Design Patterns) Microsoft Patterns & Practices Reflector System.Reflection Namespace My Blog (Dan Douglas)

Q UESTIONS ? Dan Douglas | Senior Software Developer/ Architect Blog: Consulting Inquiries? (519)