190 likes | 212 Views
ASP.NET MVC Development with S#arp Architecture. 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
E N D
ASP.NET MVC Development with S#arp Architecture 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#arpArchtecture Project • Building a S#arp Architecture Application • Summary • Additional Resources
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, CompTIAITProject+ Certifications • Microsoft Most Valuable Professional (MVP) – Awarded April 2009 • Alvin Ashcraft’s Morning Dew – http://www.alvinashcraft.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.
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
NHibernate • Object-Relational Mapping (ORM) Tool • Map data to your domain objects (.hbm.xml mapping files) • Manipulate persistent data • Handle transactions and concurrency
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
MVCcontrib Project • Adds functionality on top of the MVC Framework • UI Helpers • Routing • Filters • View Engines • Lots More… • http://mvccontrib.org
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.
S#arp Architecture Principles • DDD-Focused • Loosely Coupled • Preconfigured Architecture • Open-Ended Presentation • jQuery • Yahoo UI Widgets • ASP.NET AJAX
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
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
Mapping the Model to the Data • Manual Mapping • XML Mapping • Fluent NHibernate • CRUD Scaffolding • Demo – Mapping Data
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
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!
DZone Refcardz Professional Cheat Sheets for Developers! 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 HolgerSchwichtenberg Design Patterns by Jason McDonald Spring Confirgurationby Craig Walls Windows PowerShellby Bruce Payette jQuery Selectors by Bear Bibealt & Yehuda Katz
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 NHibernateScreencast 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, KeyvanNayyeri, Nick Berardi, Oren Eini, Derik Whittaker, Tim Barcz, Ben Scheirman, and more…
ASP.NET MVC with S#arp Architecture Alvin Ashcraft