John Culviner johnculviner.com DEMO CODE:

Slides:



Advertisements
Similar presentations
Other Web Application Development Technologies. PHP.
Advertisements

Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
Introduction to ASP.NET MVC
JavaScript and AJAX Jonathan Foss University of Warwick
Extreme User Interfaces for Alfresco Kevin Dorr Sr. Solutions Engineer Americas Channel.
Introduction to MVC Adding a View Page NTPCUG Tom Perkins, Ph.D.
Developing HTML5 Application using MVVM pattern Pekka Ylenius.
Practical ASP.NET MVC 2 Rasmus Kromann-Larsen. This talk Introduction to ASP.NET MVC 2 Observations from my current project.
Alpha Anywhere Product Roadmap and Overview
Learning WebMatrix Part 3 of 3 Akber Alwani
Knockoutjs and JQuery The One-Two Punch for Richer MVC 4 Applications Connecticut.NET Developers Group November 13, 2012.
LinkedIn Mobile How we do we do it?. Build Design Code Testing Deploy Platform iOS Android Browser Other.
Introduction to John johnculviner.com.
Web 2.0 security Kushal Karanjkar Under guidance of Prof. Richard Sinn.
North Shore.NET User Group Our Sponsors. North Shore.NET User Group Check out our new web site Next Meeting
Development of mobile applications using PhoneGap and HTML 5
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Agenda What is AJAX? What is jQuery? Demonstration/Tutorial Resources Q&A.
ASP.NET MVC 3 and Some 4 JaxCodeCamp August 2011.
Introduction to John Culviner GitHub: github.com/johnculviner Blog:johnculviner.com
WORKSHOP: BUILDING A WEBAPP STEP BY STEP by Ohad Kravchick Fluent 2013 May 28th, 2013 Rate me:
REAL WORLD SPA A KNOCKOUT CASE STUDY Cory House | bitnative.com | speakerrate.com/talks/27181.
Introduction to John Culviner GitHub: github.com/johnculviner Blog:johnculviner.com
NextGen Technology upgrade – Synerizip - Sandeep Kamble.
Getting Started with Caliburn.Micro and Windows Phone 7 Gary Ewan Park Twitter: Blog:
Introduction to Angular JS Sergey Barskiy Working Class Nobody Level: Introductory.
Arnold Geraldo Designing and Making of The Online Auction Website Using CakePHP Framework.
SDC 2013 SPA Made Breezy Tiberiu Covaci Ward Bell, v.p. of technology, IdeaBlade.
Web User Controls This presentation will cover the basics of defining, creating and using a web user control. Presented to Twin Cities.NET user group By.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Abelian Kingdom Andrew, Kelvin and Peter. What is it? A web (browser) game MORPG on Google map Login with Facebook Interact with your friends And the.
The Web Developer’s Toolbox Steve Fabian e:
HTML5 AND THE FUTURE JAVASCRIPT PLATFORM Marcelo Lopez Ruiz Senior Software Design Engineer Microsoft Corporation.
Developing MVC based AJAX applications Kapil Mohan Rich Internet Application Developer, Uzanto Consulting A talk by.
Getting Started with ASP.NET MVC BRIJ BHUSHAN MISHRA.
Hattan Shobokshi mvcdotnet.wordpress.com Web Development in the Past (Microsoft Stack)
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
Getting started with ASP.NET MVC Dhananjay
Canopy walk through Single-Page Apps (SPAs) Benjamin Howarth Freelancer, Code Gecko Umbraco UK Festival, Fri 30 th Oct 2015 CODE GECKO.
CS50 Week 9 Sam Green ’
Getting Started with Aurelia
AJaX and SOA Partha Kuchana. Agenda What is AJaX Benefits & Problems AJaX & SOA AJaX architecture AJaX with No XML.
Virtual techdays INDIA │ 9-11 February 2011 SESSION TITLE Kamala Rajan S │ Technical Manager, Marlabs.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
The New Face of ASP.NET ASP.NET MVC, Razor, and jQuery Ido Flatow | Senior Architect | Sela | This session is.
ASP.NET Core* Shahed Chowdhuri Sr. Technical WakeUpAndCode.com A Quick Overview of ASP.NET Core RC2 * aka ASP.NET 5 before.
SPA BARTOSZ LENAR. THE PLAN  what is spa?  how it works?  how to start building one?
MVC 4.0, Knockout.js, Bootstrap and EF6.0 FAST, FLEXIBLE AND RESPONSIVE QUICK TO MARKET WEBSITES.
Web Technology Solutions
Jim Fawcett CSE686 – Internet Programming Spring 2014
ASP.NET MVC Introduction
The Modern ASP.NET Tech Stack!
CMPE 280 Web UI Design and Development October 26 Class Meeting
Build Windows 10 UWP MVVM Apps with Prism
Angular JS Training | Angular JS online Training at GoLogica
Haritha Dasari Josue Balandrano Coronel -
KnockoutJS -Pradeep Shet 31st August 2014.
Twitter & NoSQL Integration with MVC4 Web API
AJAX.
SharePoint Cloud hosted Apps
Jessica Betts, Sophia Pandey, & Ryan Amundson
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
jQuery The Easy JavaScript Nikolay Chochev Technical Trainer
A Quick Overview of ASP.NET Core 1.0
Rich single page applications with SharePoint
Single Page Apps Done Right
Lightning Component Testing with Jasmine Jasmine is a behaviour-driven development framework - that is used for the purpose of testing Javascript code.
ASP.NET Core* MVC and Web API Shahed Chowdhuri
ASP.NET Imran Rashid CTO at ManiWeber Technologies.
Running C# in the browser
Presentation transcript:

John Culviner johnculviner.com DEMO CODE:

 ASP.NET MVC, Theory & Reality  Single Page App?  What is Durandal, Knockout.js?  Other Terms and Frameworks  CODE & DEMO!

 Understanding of some ASP.NET MVC shortfalls  Some basic pros and cons of SPAs  What problems Durandal/Knockout solves  What problems FluentKnockoutHelpers solves  How to build your own SPA on Durandal easily without much code OR confusion!

 Web Sites vs  Web Applications A web site

Web applications Interactive application platforms

Oh crap Building a web In six months? No Problem!

Building a web application on ASP.NET MVC with limited time and budget. Tomorrow’s is hell today

 AJAX, instead of DOM reload ◦ Possibly use an API w/ JSON ◦ Possible use of client templating  Hash change # {{ }}

 State maintained on client  User experience ◦ More interactive  Less network activity and waiting  Developer experience ◦ Better (if you use a framework!) ◦ No constant DOM refresh ◦ Rely on a ‘thick’ client for caching etc. ◦ Vs MVC

 Building an efficient SPA framework from scratch is very difficult/time consuming  SEO can be problematic  No more DOM refreshes to clean up your messes!  Lots of JavaScript ◦ No compiler help ◦ Lots of “magic strings”

+ Covered Today

& ?

 MVVM for JavaScript and HTML

 Durango

 A delicious snack (or dinner?)

 New, couple months old. In Hot Towel SPA   Built on top of jQuery, Knockout & RequireJS ◦ jQ Promises, MVVM, AMDs built in  Also does Navigation, Routing, Screen State Management  JS & HTML Modularity ◦ Provides a FRAMEWORK to ORGANIZE your Controllers, ViewModels, and Views  Simple, Effective App Lifecycle Events  Modals, Message Boxes, etc.

ASP.NET WebAPI FluentKnockoutHelpers ko.mapping KoLite Knockout.validation

Global Namespace jQuery.js Knockout.js Etc. Car.js Engine.jsWheels.js  Think: a combination of dependency injection & namespaces for JavaScript  Shows clear dependencies for USER code w/o polluting the global namespace Pistons.js AMDs

 Premise: Doing what's simple in ASP.NET MVC should be simple in Durandal and Knockout ◦ Brings validation based on.NET data types AND [DataAnnotation]s to the client for free ◦ Provides C#, strongly typed, compiled, fluent lambda helpers instead magic strings to generate Knockout syntax. (Similar to MVC’s but fluent and ‘better’ )  Assumes and takes advantage of views being composed of C# models resulting from API calls  Client side type factory for creating new instances of C# types in the client

API COMPOSITION { FirstName: “John”, LastName: “Culviner” } ko.mapping { FirstName: ko.observable(), LastName: ko.observable() } {//person.js person:, activate : function(){ save: function(){… cancel: function(){…. } { //person.js person: null, activate : function(){ save : function() {… cancel : function() {… } User requests URL “…/#/person/1” Durandal router finds VM, invokes activate Within activate function Save Person.cshtml (or HTML) Durandal locates the view by convention DONE! Bound View / View Model appear GET person/ After active promise returns 9 9 Cancel

DOM Manipulation All views are straight Razor (NO ASP.NET MVC!) Things to note: ALL JSON

John Culviner GitHub: github.com/johnculviner Blog:johnculviner.com DEMO CODE: