slide1
Download
Skip this Video
Download Presentation
SOLIDify Your Microsoft ASP.NET MVC Applications

Loading in 2 Seconds...

play fullscreen
1 / 25

SOLIDify Your Microsoft ASP.NET MVC Applications - PowerPoint PPT Presentation


  • 61 Views
  • Uploaded on

SOLIDify Your Microsoft ASP.NET MVC Applications. Simon Laroche Architecte Logiciel PCMS Conseil [email protected] Risks of Poorly Designed Code. Difficult and Expensive to Maintain Buggy Speed of development degrades rapidly Longer and longer test cycles

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'SOLIDify Your Microsoft ASP.NET MVC Applications' - shayna


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
risks of poorly designed code
Risks of Poorly Designed Code
  • Difficult and Expensive to Maintain
  • Buggy
  • Speed of development degrades rapidly
  • Longer and longer test cycles
  • A BIG BALL OF MUD is a casually, even haphazardly, structured system. Its organization, if one can call it that, is dictated more by expediency than design.http://www.laputan.org/mud/http://en.wikipedia.org/wiki/Big_ball_of_mud
what is asp net mvc
What is ASP.NET MVC?
  • Model
    • The representation of the business rules and data
  • View
    • The representation of a single UI component (a form or page, typically)
  • Controller
    • Maintains the logic of which View to display, and what data the view needs.
slide4
MVC

ASP.NET Runtime

Model

Controller

1

Request

2

3

4

View

Response

benefits of oop
Benefits of OOP
  • -ilities
    • Reliability
    • Extensibility
    • Maintainability
    • Flexibility
  • Management of Complexity
solid development principles
SOLID Development Principles
  • SRP – Single Responsibility Principle
  • OCP – Open / Closed Principle
  • LSP – Liskov Substitution Principle
  • ISP – Interface Segregation Principle
  • DIP – Dependency Inversion Principle
srp what s a responsibility
SRP: What’s a Responsibility?
  • Persistence
  • Logging
  • Exception Handling
  • Formatting
  • Rendering / User Interface
  • “A class should have one, and only one, reason to change.”
ocp changes new code
OCP: Changes = New Code
  • “Modules should be open for extension, but closed for modification.”
  • Adding features should be handled by adding new code, not changing existing code.
lsp subclasses extend not remove
LSP: Subclasses Extend, Not Remove
  • “Derived classes must be usable through the base class interface without the need for the user to know the difference”
  • Subclasses cannot remove functionality, or change expected behaviors, of classes from which they inherit
isp clients control interfaces
ISP: Clients Control Interfaces
  • “Separate interfaces so callers are only dependent on what they actually use”
  • Avoid “fat” interfaces
  • Tailor interfaces to clients
  • Consider packaging interface with client
dip depend on abstractions
DIP: Depend on Abstractions
  • “Inject” dependencies into classes
  • Infrastructure should depend on core domain classes, not the other way around
  • Classes should not decide particulars of how their collaborators’ work is done – separate concern
simple design rules
Simple Design Rules
  • Runs all the tests
  • Contains no duplication
  • Expresses the intent of the programmer
  • Minimizes the number of classes and methods
  • The rules are given in order of importance.

Kent Beck, Extreme Programming Explained

don t repeat yourself dry
Don’t Repeat Yourself (DRY)
  • "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system."
  • Eliminating duplication is at the heart of many design patterns and OOP principles
recommended books
Recommended Books
  • Agile Software Development
  • Agile Principles, Patterns, and Practices in C#
  • Clean Code

All written by Robert C. “Uncle Bob” Martin

Also see: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

ad