Building a Next-Generation Web Application with ASP.NET MVC 2 and jQuery Nate Kohari Co-Founder / CTO Enkari, Ltd.

Slides:



Advertisements
Similar presentations
HTML5 for Data Visualisation
Advertisements

12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
.NET 3.5 SP1 New features Enhancements Visual Studio 2008 SP1 New features Enhancements Additional features/enhancements.
Introduction to HTML5 Programming donghao. HTML5 is the New HTML Standard New Elements, Attributes. Full CSS3 Support Video and Audio 2D/3D Graphics Local.
Web Applications Development Using Coldbox Platform Eddie Johnston.
ASP.NET 3.5 Mike Ormond Developer & Platform Group Microsoft Ltd
Introduction to ASP.NET. 2 © UW Business School, University of Washington 2004 Outline Static vs. Dynamic Web Pages.NET Framework Installing ASP.NET First.
IS 360 Course Introduction. Slide 2 What you will Learn (1) The role of Web servers and clients How to create HTML, XHTML, and HTML 5 pages suitable for.
What’s new in ASP.NET 3.5? Mike Ormond Developer & Platform Group Microsoft Ltd
Stanford University EH&S A Service Oriented Architecture For Rich Internet Applications Sheldon M. Heitz.
It’s World Wide! I NTRODUCTION TO T HE WEB 1 Photo courtesy:
Agenda What is AJAX? What is jQuery? Demonstration/Tutorial Resources Q&A.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Ori Calvo, 2010 “If people want to have maximum reach across *all* devices then HTML will provide the broadest reach” Scott Guthrie,
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
JavaScript & jQuery the missing manual Chapter 11
Show Car Event Management Solution PeoplePlus Copyright PeoplePlus Software 2011.
Spicing Up Web Parts Randy Williams SharePoint Hawaii User Group May 11, 2011.
Instructor, Dr. Khalili Bahram Jeevan Kumar Gogineni.
ASP.NET Web API. ASP.NET Members MS Open Source ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 (Razor) now all open source ASP.NET MVC 4, ASP.NET.
1 and Internet Evidence Mark Pollitt Associate Professor, Engineering Technology.
© 2012, Mike Murach & Associates, Inc.
Towards Industrial Strength Web Applications Brian Becker, Dyalog LTD. APL Tools Group.
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
Lap Around Visual Studio 2008 &.NET 3.5 Enhancements.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
C# AND ASP.NET What will I do in this course?. MAJOR TOPICS Learn to program in the C# language with the Visual Studio IDE (Interactive Development Environment)
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
MTech Enterprise.NET 1 Team 9. ModulesDescription Customer RegistrationExternal customer registration Booking ManagementFlight booking transaction Aircraft.
Mike Taulty Developer & Platform Group Microsoft Ltd
Ajax for Dynamic Web Development Gregory McChesney.
Canopy walk through Single-Page Apps (SPAs) Benjamin Howarth Freelancer, Code Gecko Umbraco UK Festival, Fri 30 th Oct 2015 CODE GECKO.
Chapter 16: Ajax-Enabled Rich Internet Applications with XML and JSON TP2543 Web Programming Mohammad Faidzul Nasrudin.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
Data lifecycle (CRUD+) Operation logic, query, databinding, change tracking, unit of work Validation User: authn/authz/profile.
Introduction to AJAX MIS 3502, Spring 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 2/4/2016.
Intro to MVC5 Bryan Soltis Bit-Wizards - Director of Technology & Research.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
1/7/2016www.infocampus.co.in1. 1/7/2016www.infocampus.co.in2 Web Development training gives you and all-round training in both the design and the development.
Microsoft Silverlight An Introduction. Silverlight is a cross-browser, cross-platform plug-in* * An auxiliary program that works with a software package.
Course Agenda Deep Dive into the Building Blocks and Services of the SharePoint Platform Module 1: Developing Advanced Workflow Scenarios in Office 365.
4.3. Code animations by using JavaScript Access data access by using JavaScript. Creating Animations, Working with Graphics, and Accessing Data.
Mobilizing Your SAS® Business Analytic Reports Falko Schulz Sr. Systems Engineer SAS Australia & New Zealand.
RE-ENGINEERING FLEX APP TO JAVASCRIPT APP By Imtiaz Syed.
DEVRY CIS 407 A (All iLabs 1 to 7) Check this A+ tutorial guideline at For more classes.
Coach Route Searching System
Microsoft List Schedule April – May 2016
ASP.NET 3.5 Mike Ormond Developer & Platform Group Microsoft Ltd
Tech Ed North America /13/ :13 AM Required Slide
End to end app development ASP.NET, WCF, WF, EF, & RIA Services
AJAX.
Introduction to Internet Programming
PHP + Oracle = Data-Driven Websites
04 | Web Applications Gerry O’Brien | Technical Content Development Manager Paul Pardi | Senior Content Publishing Manager.
IS 360 Course Introduction
API Application Services
ASP.NEXT The ASP.NET 3.5 Extensions
© 2015, Mike Murach & Associates, Inc.
ASP.NET 4.5 loves HTML5, CSS3 & JavaScript
Secure Web Programming
BOF #1 – Fundamentals of the Web
Client-Server Model: Requesting a Web Page
Murach's JavaScript and jQuery (3rd Ed.)
Murach's JavaScript and jQuery (3rd Ed.)
7/19/2019 2:53 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Erik Porter Program Manager ASP.NET Microsoft Corporation
ASP.NEXT Mike Ormond Developer & Platform Group Microsoft Ltd
Model View Controller (MVC)
Presentation transcript:

Building a Next-Generation Web Application with ASP.NET MVC 2 and jQuery Nate Kohari Co-Founder / CTO Enkari, Ltd.

Who?

Goals

ASP.NET is a great platform for building attractive, standards-compliant rich internet applications

You can build rich internet applications without Silverlight or Flash

Why ASP.NET MVC?

BizSpark

Why jQuery?

(demo)

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast Anatomy of a typical Zen request

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast ASP.NET MVC HTML/JavaScript

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast

JS.Class

Zen.Ui.StoryCard = new JS.Class({ func1: function() {... }, func2: function() {... } }); var card = new Zen.Ui.StoryCard();

Behaviors

$(“.story-card”).attach( Zen.Ui.Behaviors.StoryCard);

Find all elements with the CSS class story-card… $(“.story-card”).attach( Zen.Ui.Behaviors.StoryCard);

…and apply the appropriate behavior $(“.story-card”).attach( Zen.Ui.Behaviors.StoryCard);

Which card did the user move?

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast

... HTML5 data-* attributes (story card)

... HTML5 data-* attributes (story card) { projectid: 123, storyid: 456 } JSON read via Metadata Plugin

Where should we send the request?

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast

One Action = One Route

(“route-per-action”)

<route action=“move” pattern=“project/{projectid}/story/{storyid}/move” verbs=“post”/> Routes defined in XML:

<route action=“move” pattern=“project/{projectid}/story/{storyid}/move” verbs=“post”/> Routes defined in XML: …at app start, parsed & registered in RouteTable

(area) <route action=“move” pattern=“project/{projectid}/story/{storyid}/move” verbs=“post”/> Routes defined in XML:

(controller) <route action=“move” pattern=“project/{projectid}/story/{storyid}/move” verbs=“post”/> Routes defined in XML:

<route action=“move” pattern=“project/{projectid}/story/{storyid}/move” verbs=“post”/> Routes defined in XML:

Url.Action(“move”, “story”, new { projectid = 123, storyid = 456 })

Url.Action(“move”, “story”, new { projectid = 123, storyid = 456 })

But wait… we need the route in JavaScript!

urlfor()

urlfor(“move”, “story”, { projectid: 123, storyid: 456 })

urlfor(“move”, “story”, { projectid: 123, storyid: 456 })

urlfor(“move”, “story”, { projectid: 123, storyid: 456 }) Metadata read from story card

routes.js

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast ASP.NET MVC HTML/JavaScript

Aspect Oriented Programming

[Demand]

[Demand(Permission.EditStory)]

[Secured]

[Secured(SSLMode.Force)]

[Transactional]

Output Filters

[DoNotCache]

[StripWhitespace]

[HandleExceptions]

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast

Filters Security Other cross-cutting concerns

Controller Interprets requests Communicates with browser Sets up view data Filters Security Other cross-cutting concerns

Controller Domain Service Interprets requests Communicates with browser Sets up view data Modifies data model Broadcasts events Filters Security Other cross-cutting concerns

Controller Domain Service Repository Interprets requests Communicates with browser Sets up view data Modifies data model Broadcasts events Persists data to database Filters Security Other cross-cutting concerns

Controller Domain Service Repository Filters LINQ NHibernate

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast

Messenger SMTP Service Domain Service XMPP Service

Messenger SMTP Service Domain Service XMPP Service Events queued

Messenger SMTP Service Domain Service XMPP Service Events queued

Messenger SMTP Service Domain Service XMPP Service notifications IM notifications Events queued

User Action Metadata Lookup Route Lookup Filters Domain Service Event Broadcast Recap

Thanks for listening! Nate Kohari