2 Architectural Considerations for the ASP.NET MVC Framework Jeffrey Palermo Chief Technology Officer Headspring Systems Austin, TX Session Code: ARC402.

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements


© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Preface Demo A Quick Thank You How Did We Do It?
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Windows 7 Training. Windows ® 7 Compatibility Session 0 Isolation Isolation of Windows 7 Services.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Feature: Reprint Outstanding Transactions Report © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
demo Default WANGPSLookup Default WANGPS.
 Stephen Walther ASP.NET MVC Ninja Microsoft Corporation PV31.
Amalga UIS Modules Medical Imaging Research Foundation Quality Measures Other HealthVault Partner Applications Microsoft Partner Solutions.
Co- location Mass Market Managed Hosting ISV Hosting.
Windows 7 Training Microsoft Confidential. Windows ® 7 Compatibility Version Checking.
Multitenant Model Request/Response General Model.
Feature: Purchase Order Prepayments II © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: OLE Notes Migration Utility
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
CONTROL ASP.NET Services Caching Routing Localization … ASP.NET WebForms Control EcosystemControl Ecosystem Automatic StateAutomatic.
Feature: SmartList Usability Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Rico Mariani Architect Microsoft Corporation.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Building Web Sites with ASP.NET MVC Framework Noam King CTO Sela College
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Connect with life Connect with life
NEXT: Overview – Sharing skills & code.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Document Attachment –Replace OLE Notes © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
SQL Server SQL Azure Visual Studio“Quadrant” SQL Server Modeling Services Entity Framework ADO.NET“M”/EDM Data Services …
Ian Ellison-Taylor General Manager Microsoft Corporation PC27.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
demo Instance AInstance B Read “7” Write “8”

customer.
ASP.NET MVC in Action Austin Code Camp, 2009 Jeffrey Palermo Chief Technology Officer Headspring Systems.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
Feature: Suggested Item Enhancements – Analysis and Assignment © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and.
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
TDD, DI, and SoC with ASP.NET MVC Presented by Jeffrey Palermo CTO, Headspring Systems Microsoft MVP, MCSD.Net
The CLR CoreCLRCoreCLR © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Sr. Dir. – Systems Architecture Inlet Technologies.
public class Foo { Bar _bar; public Foo() { this._bar = new Bar(); } public class Foo { IBar _bar; public Foo(IBar barDependency) {
2 Architectural Concerns for Object/Relational Mappers (O/R-M) with Examples in NHibernate Jeffrey Palermo Chief Technology Officer Headspring Systems,

9/13/2018 1:56 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Возможности Excel 2010, о которых следует знать
Title of Presentation 11/22/2018 3:34 PM
ASP.NEXT The ASP.NET 3.5 Extensions
Baseline: How Are We Doing Now?
Title of Presentation 12/2/2018 3:48 PM
MIX 09 2/28/2019 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
From Start to REST in 60 Minutes (DEV323)
Title of Presentation 5/12/ :53 PM
Шитманов Дархан Қаражанұлы Тарих пәнінің
Title of Presentation 5/24/2019 1:26 PM
日本初公開!? Vista の新機能を実演 とっちゃん わんくま同盟 7/23/2019 9:09 AM
Title of Presentation 7/24/2019 8:53 PM
Presentation transcript:

2 Architectural Considerations for the ASP.NET MVC Framework Jeffrey Palermo Chief Technology Officer Headspring Systems Austin, TX Session Code: ARC402

3 Architecture? What type are we speaking of? - Application architecture - Enterprise applications (lots of code)

4 2 Types of Applications Disposable vs. Long-Lived

5 Disposable Architecture Pros Fast to create Great tool support Small applications deployed quickly Doesn’t require highly skilled personnel Trades long term TCO for short term gains when there is no “long term” Cons Rewrites are inevitable Imminent “wall” at some level of complexity Management often doesn’t acknowledge system is disposable Trades long term TCO for short term gains Technology changes require system rewrite

6 Long-lived architecture Pros System serves the business for a long time Return on investment increases over time Easily maintained/changed System survives technology upgrades Cons Tooling support is fragmented Requires skilled architects Not compatible with all organizational cultures Is not popular Requires constant vigilance

7 What's the difference? Separation of Concerns Coupling Duplication of Logic Others....

8 Disposable ASP.NET MVC Application

9 Which is better? For short-lived or tiny applications, it makes no difference.

10 Why use a web MVC Framework? Scale with Complexity Long-lived applications Long-term productivity/maintainability Enable clean separation of concerns Testable by default (built with TDD in mind) Supports Inversion of Control containers Flexible, clean url schemes (think SEO)

11 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

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

13 Traditional Layered Architecture Data Business Logic UI Infrastructure

14 Web Service File Solution Structure Client Business Logic Data Access DB Infrastructure

15 Layered Onion Architecture Domain Model Domain Services Application Services User Interface Infrastructure Tests DB Web Service File Application Core

16 Web Service File Solution Structure Client Core Infrastructure DB IoC Container

17 Covert to a long-lived application

18 Long-lived Controller Do’s and Don’ts Do Keep them small Depend only on explicit dependencies Leverage the model (the rest of the application) Use explicit parameters Don’t Lift the 300 lines from Page_Load and drop them in an action Call out to infrastructure directly Use ADO.NET Use Nhibernate/Linq2Sql/EF types

19 Know What Type of System You Need Do you need a short-lived, disposable system? Do you need a system that needs a long life?

Related Content Breakout Session ARC401 Architectural Concerns for Object/Relational Mappers (O/RM) with Examples in Nhibernate Thursday, 10:15AM Interactive Theater Sessions WUX08-TLC TDD, DI, and Other Acronyms with ASP.NET MVC Friday, 1PM-2:15PM

21

22 About me CTO, Headspring Systems Software management consultant Agile coach MCSD.Net Microsft MVP, ASPInsider Certified ScrumMaster Director, Austin.Net User Group Board member, AgileAustin INETA speakers bureau U.S. Army Veteran Party with Palermo Agile Boot Camp:

Tech·Talks Tech·Ed Bloggers Live SimulcastsVirtual Labs Developer’s Kit, Licenses, and MORE! Resources for Developers

24 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.