asp.net mvc, rest, and open source software

107
ASP.NET MVC A conglomeration of design patterns, web services, and open source software

Upload: joe-fiorini

Post on 19-Jan-2015

3.069 views

Category:

Business


3 download

DESCRIPTION

Presentation given at the VB/C# .NET User Group on August 28, 2008. Talk consists of ASP.NET MVC, basics of REST, and a number of open source technologies to help develop .NET software.

TRANSCRIPT

Page 1: ASP.NET MVC, REST, and Open Source Software

ASP.NET MVCA conglomeration of design patterns, web services, and

open source software

Page 2: ASP.NET MVC, REST, and Open Source Software

Who am I?

Page 3: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

Page 4: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

IIS.net Community Server

Page 5: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

faithfulgeek

Page 6: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

faithfulgeek

@faithfulgeek

Page 7: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

faithfulgeek

@faithfulgeek

Blog: www.faithfulgeek.org

Page 8: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

I

Page 9: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

I

Page 10: ASP.NET MVC, REST, and Open Source Software

Joe Fiorini

Fozzie - Bichon Frisel33t h4ck3r

Page 11: ASP.NET MVC, REST, and Open Source Software
Page 12: ASP.NET MVC, REST, and Open Source Software
Page 13: ASP.NET MVC, REST, and Open Source Software

Separation of Concerns

Page 14: ASP.NET MVC, REST, and Open Source Software

Maintainable

Page 15: ASP.NET MVC, REST, and Open Source Software

Maintainable + Readable

Page 16: ASP.NET MVC, REST, and Open Source Software

Maintainable + Readable + Logical

Page 17: ASP.NET MVC, REST, and Open Source Software

= AWESOME!

Page 18: ASP.NET MVC, REST, and Open Source Software

Model

Page 19: ASP.NET MVC, REST, and Open Source Software

Business Objects

Page 20: ASP.NET MVC, REST, and Open Source Software

Encapsulate Behavior

Page 21: ASP.NET MVC, REST, and Open Source Software

Variety of Choices

Page 22: ASP.NET MVC, REST, and Open Source Software

Variety of Choices

LinqToSql

Page 23: ASP.NET MVC, REST, and Open Source Software

Variety of Choices

LinqToSqlSubSonic

Page 24: ASP.NET MVC, REST, and Open Source Software

ActiveRecord

LinqToSqlSubSonic

Page 25: ASP.NET MVC, REST, and Open Source Software

View

Page 26: ASP.NET MVC, REST, and Open Source Software

Combination of HTML/inline code

Page 27: ASP.NET MVC, REST, and Open Source Software

Stupid logic

Page 28: ASP.NET MVC, REST, and Open Source Software

Variety of Choices

ASP.NET

Page 29: ASP.NET MVC, REST, and Open Source Software

Variety of Choices

NVelocity

ASP.NET

Page 30: ASP.NET MVC, REST, and Open Source Software

Variety of Choices

NVelocity

Xslt

ASP.NET

Page 31: ASP.NET MVC, REST, and Open Source Software

Variety of Choices

NVelocity

Xslt

Brail

ASP.NET

Page 32: ASP.NET MVC, REST, and Open Source Software

NHaml

NVelocity

Xslt

Brail

ASP.NET

Page 33: ASP.NET MVC, REST, and Open Source Software

Controller

Page 34: ASP.NET MVC, REST, and Open Source Software

Integrates model & view

Page 35: ASP.NET MVC, REST, and Open Source Software

Responds to application’s Request

Page 36: ASP.NET MVC, REST, and Open Source Software

Stupid logicFat models, skinny controllers

Page 37: ASP.NET MVC, REST, and Open Source Software

Convention over ConfigurationClasses & Actions

Page 38: ASP.NET MVC, REST, and Open Source Software

Convention over ConfigurationClasses & Actions

/movies/index

public class MoviesController : Controller{...}

Page 39: ASP.NET MVC, REST, and Open Source Software

Convention over ConfigurationClasses & Actions

/movies/index

public class MoviesController : Controller{...}

public ActionResult Index(){...}

Page 40: ASP.NET MVC, REST, and Open Source Software

Routes

Page 41: ASP.NET MVC, REST, and Open Source Software

Map to Controller

Page 42: ASP.NET MVC, REST, and Open Source Software

Redefine URL paths

Page 43: ASP.NET MVC, REST, and Open Source Software

Redefine URL paths

/moviesvs.

/movies/index

Page 44: ASP.NET MVC, REST, and Open Source Software

Where to locate a resource

Page 45: ASP.NET MVC, REST, and Open Source Software

Where to locate a resource

/showtimes/movie/3

Page 46: ASP.NET MVC, REST, and Open Source Software
Page 47: ASP.NET MVC, REST, and Open Source Software
Page 48: ASP.NET MVC, REST, and Open Source Software

A resource can be...

Page 49: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Page 50: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Page 51: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Movie

Page 52: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Movie

Theater

Page 53: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Movie

Theater

Showtime

Page 54: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Movie

Theater

Showtime Form

Page 55: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Movie

Theater

Showtime Form

XML document

Page 56: ASP.NET MVC, REST, and Open Source Software

A resource can be...ANYTHING

Movie

Theater

Showtime Form

XML document

JSON

Page 57: ASP.NET MVC, REST, and Open Source Software
Page 58: ASP.NET MVC, REST, and Open Source Software

URIs model resources

Page 59: ASP.NET MVC, REST, and Open Source Software

URIs model resources/movies/new

Page 60: ASP.NET MVC, REST, and Open Source Software

HTTP verbs are methods

Page 61: ASP.NET MVC, REST, and Open Source Software

GET /movies/4

Page 62: ASP.NET MVC, REST, and Open Source Software

GET /movies/4POST /movies

Page 63: ASP.NET MVC, REST, and Open Source Software

/movies/6 {JSONXMLHTML

Page 64: ASP.NET MVC, REST, and Open Source Software

text/htmltext/plain

application/pdfapplication/xml

Page 65: ASP.NET MVC, REST, and Open Source Software

Proper URI naming allows reuse

Page 66: ASP.NET MVC, REST, and Open Source Software

/api/call?method=movies.get.all

Page 67: ASP.NET MVC, REST, and Open Source Software

/api/call?method=movies.get.all

GET /movies

Page 68: ASP.NET MVC, REST, and Open Source Software

/movies/create_new

Page 69: ASP.NET MVC, REST, and Open Source Software

/movies/create_new

PUT /movies

Page 70: ASP.NET MVC, REST, and Open Source Software

/movies/get_schedule/12

Page 71: ASP.NET MVC, REST, and Open Source Software

/movies/get_schedule/12

GET /showtimes/movie/12

Page 72: ASP.NET MVC, REST, and Open Source Software

Controller constructs resources...

Page 73: ASP.NET MVC, REST, and Open Source Software

Shameless Plugs...

Be there!!!

Page 74: ASP.NET MVC, REST, and Open Source Software
Page 75: ASP.NET MVC, REST, and Open Source Software

What!?!?

Page 76: ASP.NET MVC, REST, and Open Source Software

Where we were...

Page 77: ASP.NET MVC, REST, and Open Source Software
Page 78: ASP.NET MVC, REST, and Open Source Software

A kinder, gentler blue monster

Page 79: ASP.NET MVC, REST, and Open Source Software

ASP.NET MVC

Page 80: ASP.NET MVC, REST, and Open Source Software

A true open source project!

Page 81: ASP.NET MVC, REST, and Open Source Software

A Real IronRuby Hero

Page 82: ASP.NET MVC, REST, and Open Source Software

OSS & MVC

Page 83: ASP.NET MVC, REST, and Open Source Software
Page 85: ASP.NET MVC, REST, and Open Source Software
Page 86: ASP.NET MVC, REST, and Open Source Software
Page 87: ASP.NET MVC, REST, and Open Source Software

Object == database row

Page 88: ASP.NET MVC, REST, and Open Source Software

DSL

Page 89: ASP.NET MVC, REST, and Open Source Software

NHibernate/ORM

Page 90: ASP.NET MVC, REST, and Open Source Software
Page 91: ASP.NET MVC, REST, and Open Source Software

svn://rubyforge.org/var/svn/ironruby

Page 92: ASP.NET MVC, REST, and Open Source Software
Page 93: ASP.NET MVC, REST, and Open Source Software
Page 94: ASP.NET MVC, REST, and Open Source Software

(Rough) integration with MVC

Page 95: ASP.NET MVC, REST, and Open Source Software
Page 97: ASP.NET MVC, REST, and Open Source Software
Page 98: ASP.NET MVC, REST, and Open Source Software
Page 99: ASP.NET MVC, REST, and Open Source Software
Page 100: ASP.NET MVC, REST, and Open Source Software
Page 102: ASP.NET MVC, REST, and Open Source Software
Page 103: ASP.NET MVC, REST, and Open Source Software
Page 104: ASP.NET MVC, REST, and Open Source Software

Yaml

Page 105: ASP.NET MVC, REST, and Open Source Software

Haml

Page 106: ASP.NET MVC, REST, and Open Source Software

And now the moment you’ve all been waiting for....

Page 107: ASP.NET MVC, REST, and Open Source Software

The End