alvin ashcraft eclipsys corporation / dzone.com [email protected]

19
ASP.NET MVC Development with S#arp Architecture Alvin Ashcraft Eclipsys Corporation / DZone.com [email protected]

Upload: milo-goodman

Post on 16-Dec-2015

232 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

ASP.NET MVC Development with S#arp Architecture

Alvin AshcraftEclipsys Corporation / DZone.com

[email protected]

Page 2: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Session Agenda

Introduction – Who Am I? Model-View-Controller pattern & ASP.NET

MVC NHibernate, Fluent NHibernate & MVCcontrib The S#arp Archtecture Project Building a S#arp Architecture Application Summary Additional Resources

Page 3: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Introduction – Who Am I?

14 Years Development Experience Software Engineer at Eclipsys

Corporation – Malvern, PA Contributing Editor at DZone’s .NET

Zone – http://dotnet.dzone.com MCSD, MCAD, MCDBA, MCSE, MCSA,

CompTIA ITProject+ Certifications Microsoft Most Valuable Professional

(MVP) – Awarded April 2009 Alvin Ashcraft’s Morning Dew –

http://www.alvinashcraft.com

Page 4: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

The Model-View-Controller (MVC) Pattern

MODEL – Business logic plus one or more data sources such as a relational database.

VIEW – The user interface that displays information about the model to the user.

CONTROLLER – The flow-control mechanism means by which the user interacts with the application.

Page 5: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

ASP.NET MVC 1.0

Released April 9, 2009 Alternative to ASP.NET WebForms Built for testability User-friendly (and SEO-friendly) URLs Clear separation of concerns Lacks rich control set available with

WebForms Demo – ASP.NET MVC 1.0 Project

Structure

Page 6: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

NHibernate

Object-Relational Mapping (ORM) Tool

Map data to your domain objects (.hbm.xml mapping files)

Manipulate persistent data

Handle transactions and concurrency

Page 7: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Fluent NHibernate

An alternative to NHibernate's standard XML mapping files.

Write mappings in strongly typed C# code. Benfits:

Refactoring Readability Concise

Fluent mapping Automapping Fluent database configuration

Page 8: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

MVCcontrib Project

Adds functionality on top of the MVC Framework UI Helpers Routing Filters View Engines Lots More…

http://mvccontrib.org

Page 9: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

The S#arp Architecture Project

Owner & Creator: Billy McCafferty Project Members

Frank Laub Simone Busoli Kyle Baley

Rapidly build maintainable web applications.

Leverage ASP.NET MVC, NHibernate and Spring.NET.

Ignore infrastructure. Focus on domain and UX.

Page 10: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

S#arp Architecture Principles

DDD-Focused Loosely Coupled Preconfigured Architecture Open-Ended Presentation

jQuery Yahoo UI Widgets ASP.NET AJAX

Page 11: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

S#arp Architecture Project Tiers

Page 12: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Configuring the Development Environment

Detailed Documentation in S#arp Architecture Reference Guide document.

Software Prerequisites Visual Studio 2008 SP1 NUnit v2.4.8 T4Toolbox v9.1.20.1 ASP.NET MVC 1.0

Install Visual Studio S#arp Architecture Project Template

Configuring IIS Demo - Configuration

Page 13: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Building a Simple Application - Overview

Music Store Chinook Database 1.1 (

www.codeplex.com/ChinookDatabase) Index will list data for entities

Artists Albums Tracks Playlists Customers Invoices

Create/Edit records Demo – Create the Project

Page 14: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Mapping the Model to the Data

Manual Mapping XML Mapping Fluent NHibernate

CRUD Scaffolding Demo – Mapping Data

Page 15: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Music Catalog – Feature Options

Filtering View Data Using Custom View Data to Access

Multiple Repositories (Entity Lists) Support for Different View Engines Add some jQuery flair

Submit via AJAX Add Edit-in-Place Add jQuery UI tabs jQuery Grid Options

Demo – Feature Options

Page 16: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Reminders!

Fill out your evals Book & shirt giveaway After Party @ Shanachie in Ambler All slides and sample code will be

posted to Philly .NET site Thank our sponsors!

Page 17: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

DZone Refcardz

OVER 45 TITLES, GET THEM ALL FREE AT WWW.REFCARDZ.COM

Silverlight 2 by Chad A. Campbell

Core .NET by Jon Skeet ASP.NET by Holger

Schwichtenberg Design Patterns by Jason

McDonald Spring Confirguration by

Craig Walls Windows PowerShell by

Bruce Payette jQuery Selectors by Bear

Bibealt & Yehuda Katz

Professional Cheat Sheets for Developers!

Page 18: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

Additional Resources

S#arp Architecture on Google Code: http://code.google.com/p/sharp-architecture/ S#arp Architecture Discussion Group:

http://groups.google.com/group/sharp-architecture?pli=1 S#arp Architecture Community Site: http://www.sharparchitecture.net/ S#arp Architecture Wiki: http://wiki.sharparchitecture.net/default.aspx Billy McCafferty’s Blog: http://devlicio.us/blogs/billy_mccafferty/default.aspx Virtual ALT.NET S#arp Architecture Presentation – 04/22 @ 10pm: http://twurl.nl/e8i3u0 DimeCasts.NET Episodes by Kyle Baley: http://www.dimecasts.net

Episode #75: Introduction to S#arp Architecture Episode #97: Another look at Sharp Architecture: Validation, Design Decisions and Automapping Episode #102: Taking a look at how to modify the T4 templates used by Sharp Architecture

NHibernate Best Practices with ASP.NET: http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx

Summer of NHibernate Screencast Series: http://www.summerofnhibernate.com/ Rob Conery’s MVC Storefront Project:

http://blog.wekeroad.com/mvc-storefront/mvc-storefront-part-1/ Stephen Walther’s ASP.NET MVC Application Building Series:

http://stephenwalther.com/blog/category/2.aspx James Gregory’s Blog (Fluent NHibernate):

http://blog.jagregory.com/2008/08/08/introducing-fluent-nhibernate/ Great ASP.NET MVC & NHibernate Bloggers: Phil Haack, Scott Guthrie, Scott Hanselman,

Simone Chiaretta, Keyvan Nayyeri, Nick Berardi, Oren Eini, Derik Whittaker, Tim Barcz, Ben Scheirman, and more…

Page 19: Alvin Ashcraft Eclipsys Corporation / DZone.com alvin@dzone.com

ASP.NET MVC with S#arp Architecture

Alvin Ashcraft