TDD, DI, and SoC with ASP.NET MVC Presented by Jeffrey Palermo CTO, Headspring Systems Microsoft MVP, MCSD.Net

Slides:



Advertisements
Similar presentations
INTRODUCTION TO ASP.NET MVC AND EXAMPLE WALKTHROUGH RAJAT ARYA EFECS - OIM DAWG – 4/21/2009 ASP.NET MVC.
Advertisements

ASP.NET MVC Best Practices Simone Chiaretta Solution Developer, Avanade 21 Ottobre 2009.
Fabian Vilers Hands on ASP.NET MVC.
ASP MVC s/mvc-4/getting-started-with- aspnet-mvc4/intro-to-aspnet- mvc-4.
 About Me: Eric Hexter  Director of Austin.Net User Group  AspInsiders  Organized the 2007 Austin Code Camp  Build websites and web applications since.
What’s New in Web Development for Visual Studio 2008 Presented by Jeffrey Palermo CTO, Headspring Systems Microsoft MVP, MCSD.Net
Tutorial -01. Objective In this session we will discuss about : 1.What is MVC? 2.Why MVC? 3.Advantages of MVC over ASP.NET 4.ASP.NET development models.
Virtual techdays INDIA │ November 2010 ASP.Net MVC Deep Dive Sundararajan S │ Associate Tech Architect, Aditi Technologies.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Being The Manager Of An Agile Team Jeffrey Palermo CTO, Headspring Systems
Lightswitch: Visual Studio’s Hidden Secret CRAIG BERNTSON CHIEF SOFTWARE GARDENER MOJO SOFTWARE
Ori Calvo, 2010 “If people want to have maximum reach across *all* devices then HTML will provide the broadest reach” Scott Guthrie,
Design for Testability: Mocks, Stubs, Refactoring, and User Interfaces Benjamin Day.
Presenter - Donn Felker.  Senior Consultant for Microsoft Gold Certified Partner- Statêra.  8 years of experience in developing and architecting enterprise.
@benday #vslive Better Unit Tests through Design Patterns: Repository, Adapter, Mocks, and more… Benjamin
Doing Something Useful with Enterprise Library 3.0 Benjamin Day Level: Intermediate.
ASP.NET  ASP.NET is a web development platform, which provides a programming model, a comprehensive software infrastructure and various services required.
MVC and MVP. References enter.html enter.html
Introduction to ASP.NET MVC Blogging Engine in 60 minutes Adnan Masood
ASP.NET and Model View Control Jesper Tørresø ITNET2 F08.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Building Web Sites with ASP.NET MVC Framework Noam King CTO Sela College
DEV402 Extending the ASP.NET Runtime Jurgen Postelmans Microsoft Regional Director BeLux U2U.
Jean-Claude Trachsel Senior Consultant Trivadis AG Building a Website with ASP.NET MVC.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
NET-AUCTION This online auction project Directed by: Mr. Maxim Gurevich Submitted by: Yuri Kipnis Alex Scheotkin Alex Scheotkin.
Jonathan Canfield Mavin Lisa Giss Professor Kenytt D. Avery
ASP NET MVC Soup-to-Nuts Peter
Model View Controller Architecture of Java Web Applications Dr. M V S Peri Sastry, Ph.D.[BITS-Pilani]
Getting Started with ASP.NET MVC BRIJ BHUSHAN MISHRA.
Microsoft ASP.NET Beginning Object-Oriented Web Design Bryan Jenks © Integrated Ideas 2005.
ASP.NET MVC in Action Austin Code Camp, 2009 Jeffrey Palermo Chief Technology Officer Headspring Systems.
Getting started with ASP.NET MVC Dhananjay
ASP.Net MVC Extensibility, scalability and testability Andrew Locatelli Woodcock.
Leverage NHibernate in your architecture without tight coupling Presented by Jeffrey Palermo CTO, Headspring Systems Microsoft MVP, MCSD.Net
ASP.NET MVC Telerik Academy
Introduction  “M” “V” “C” stands for “MODEL” “VIEW” “CONTROLLER”. ASP.NET MVC is an architecture to develop ASP.NET web applications in a different manner.
How to implement the Repository Pattern in an ASP.NET MVC Application Dhananjay Kumar Developer Evangelist – Infragistics Microsoft MVP
Virtual techdays INDIA │ 9 th – 11 th January 2011 ASP.Net MVC Sundararajan S │ Associate Tech Architect, Aditi Technologies.
Virtual techdays INDIA │ 9-11 February 2011 SESSION TITLE Kamala Rajan S │ Technical Manager, Marlabs.
Headspring Certified Training.Net Boot Camp: From Journeyman to Master Series Presented by Jeffrey Palermo CTO, Headspring Systems Microsoft MVP, MCSD.Net.
#SPSSAN June 30, 2012 San Diego Convention Center WRITING TESTABLE CODE In SharePoint.
2 Architectural Considerations for the ASP.NET MVC Framework Jeffrey Palermo Chief Technology Officer Headspring Systems Austin, TX Session Code: ARC402.
2 Architectural Concerns for Object/Relational Mappers (O/R-M) with Examples in NHibernate Jeffrey Palermo Chief Technology Officer Headspring Systems,
Testing WebForms w/ Model-View-Presenter Erik Peterson.
Jean-Claude Trachsel Senior Consultant, Trivadis AG The good news.
Model-View-Controller an introduction to MVC design pattern with Castle.MonoRail Presentation: v1.0 Prepared by: Chorn Sokun
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
ASP.NET Core* Shahed Chowdhuri Sr. Technical WakeUpAndCode.com A Quick Overview of ASP.NET Core * aka ASP.NET 5 before.
Intro to MVC5 Bryan Soltis Bit-Wizards - Director of Technology & Research.
The New Face of ASP.NET ASP.NET MVC, Razor, and jQuery Ido Flatow | Senior Architect | Sela | This session is.
Understanding Dependency Injection… and those pesky containers Miguel A. Castro Architect -
Principled N-Tier Design or, a Solution to the Solution Problem Steve | ardalis.com Telerik, Inc.
ASP.NET Core* Shahed Chowdhuri Sr. Technical WakeUpAndCode.com A Quick Overview of ASP.NET Core RC2 * aka ASP.NET 5 before.
INTRODUCTION TO MVC BY SUHA MNEIMNEH. WHAT’S THE AGENDA What is MVC? MVC components MVC vs web forms vs ASP.NET vocabulary When to create MVC application.
Beyond Basic Unit Testing: Mocks, Stubs, User Interfaces, and Refactoring for Testability Benjamin Day
© Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel
Introduction to ASP.NET MVC [Name] [ Address] [Blog URL]
Introduction to MVC Slavomír Moroz. Revision from Previous Lesson o ASP.NET WebForms applications Abstract away HTTP (similar to desktop app development)
Introduction to .NET Florin Olariu
Better Unit Tests through Design Patterns: Repository, Adapter, Mocks, and more… Benjamin
Building Custom Workflows
Building Web Applications with Microsoft ASP
KnockoutJS -Pradeep Shet 31st August 2014.
ASP.NET Web Forms Vs. ASP.NET MVC ASP.NET is Microsoft’s big leap after Active Server Pages (ASP), ASP.NET provides flexible and unified web development.
MVC in ASP.NET Core: The new kid on the block
ASP.NEXT The ASP.NET 3.5 Extensions
A Quick Overview of ASP.NET Core 1.0
ASP.NET MVC Imran Rashid CTO at ManiWeber Technologies.
ASP.NEXT Mike Ormond Developer & Platform Group Microsoft Ltd
Presentation transcript:

TDD, DI, and SoC with ASP.NET MVC Presented by Jeffrey Palermo CTO, Headspring Systems Microsoft MVP, MCSD.Net

Agenda What is ASP.NET MVC? Sound architectural approach Soc – Separation of Concerns DI – Dependency Injection TDD – Test-Driven Development Questions

INETA - The Face of.NET World-wide association of.NET User Groups –860+ groups world-wide –Over 810,000 developers Started and run by.NET User Group leaders Sponsors and supports both.NET and other professional user groups all around the world Sponsors –Microsoft –Verio –New sponsors welcome! North America (NorAm) INETA Speaker Bureau consists of 67 world-renowned speakers

What is ASP.NET? ASP.NET HttpApplication HttpContext HttpRequest HttpResponse HttpRuntime HttpUtility IHttpHandler IHttpModule WebForms Server Lifecycle Postback ViewState ASPX MasterPages Themes, Skins General Templating

What is ASP.NET MVC? ASP.NET HttpApplication HttpContext HttpRequest HttpResponse HttpRuntime HttpUtility IHttpHandler IHttpModule Mvc Routes Controllers ViewData Filters MvcContrib ASPX MasterPages Themes, Skins General Templating

Two types of architecture Short-term Long-lived

Philosophy Software Systems are complex Maintainability is king Simplicity rules Abstraction and the human brain (7+/-2) ASP.NET MVC is going away Coupling to infrastructure

Coupling (Architectural Metrics) Afferent Coupling (Ca) – incoming dependencies Efferent Coupling (Ce) – outgoing dependencies Instability (I) –I = Ce / (Ce + Ca) (0 = stable, 1 = instable) –Stable = painful to modify Abstractness (A) –# Abstract Types / # Total Types (0 = concrete assembly, 1 = abstract assembly)

Traditional Layered Architecture Data Access/Infrastructure Business Logic UI

Traditional Layered Architecture Business Logic UI Data Access I/O WCF

Web Service File Solution Structure UI Business Logic Data Access DB Infrastructure

Better layering Business Logic (service classes) Business Logic (service classes) UI Data Access I/O WCF Object Model (business logic)

Onion Architecture Object Model Object Services Application Services User Interface Infrastructure Tests DB Web Service File Application Core LoginControllerLoginController IUserSessionIUserSession IEmployeeRepository HttpUserSession<<class>>HttpUserSession<<class>> EmployeeRepository<<class>>EmployeeRepository<<class>> Employee EmployeeSelectList

Web Service File Solution Structure UI Core Infrastructure DB IoC Container

Demo ahead (all code)

MvcContrib Founded by Eric Hexter and Jeffrey Palermo Multiple view engines ViewDataExtensions IoC Container support Html helpers Extra ActionFilters Anything else the community contributes

About me CTO, Headspring Systems Agile coach MCSD.Net Microsft MVP, ASPInsider Certified ScrumMaster Austin.Net User Group INETA speakers bureau U.S. Army Veteran Party with Palermo Headspring’s Agile Boot Camp