43
Doing Modern Web, aka JavaScript and HTML5 In The Enterprise Chris Love @ChrisLove ProfessionalASPNET.com

Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Doing Modern Web, aka JavaScript and HTML5 In The Enterprise

Chris Love

@ChrisLove

ProfessionalASPNET.com

Page 2: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Who Am I?

ASP.NET MVP

ASP Insider

Internet Explorer User Agent

Author

Speaker

Tweaker, Lover of Mobile Web, JavaScript, CSS &

HTML5

Page 3: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Podcast Interviews

The Tablet ShowChris Love Talks Surface Pro, Mobile Development and Morehttp://thetabletshow.com/?ShowNum=80

Chris Love Does Enterprise Mobilityhttp://thetabletshow.com/?ShowNum=22

Deep Fried BytesMobile Web Is Not What The Other Guys Say It Ishttp

://deepfriedbytes.com/podcast/episode-74-mobile-web-is-not-what-the-other-guys-say-it-is/

Technology & FriendsTalking About Touch & Mobile Web http://bit.ly/12IduAd

Page 4: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

JavaScript Libraries

DeepTissueJS – A Touch Gesture Abstraction Libraryhttp://deeptissuejs.com

PanoramaJS – JavaScript Library to Implement The Windows Phone Panorama Control in HTML5https://github.com/docluv/panoramajs

ToolbarJS – JavaScript Library to Implement a Mobile AppBar, like Windows Phonehttp://toolbarjs.com

Coming Soon!SPA – Single Page Application Router, View ManagerBackpack – Markup Manager leveraging LocalStorageFannyPack – Markup Manager leveraging on page markup??????

Page 5: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Resources

Slide Deck – http://

www.slideshare.net/docluv Only URL U

Need!

Page 6: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

The Enterprise is a radically different world from a startup, small, consumer web development shop. 

Page 7: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprises - Tend to focus on .NET

Page 8: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Non-Enterprises - Tend to focus on NodeJs, Ruby, PHP and a few other server-side platforms

Page 9: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprises - Have large and ‘small’ teams

Page 10: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Non-Enterprises - Have Small teams

Page 11: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprises - Have DBAs

Page 12: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Non-Enterprises - Use NoSQL

Page 13: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprises - Get Paid Real Salaries

Page 14: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Non-Enterprises – Get Lots Of Free Pizza

Page 15: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

In Short -Enterprises Need Help!

Page 16: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Where Should They Start

Page 17: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What a Modern Web App Is

 (API + HTML5 + CSS3 + JavaScript + Standards Compliant Browser) * (Touch + Mobility + Performance)

=== Great Single Page Application

Page 18: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What Does the Modern Enterprise Web App Topology look like?

Data

API

Browser/AJAX Layer

Page 19: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

The Modern Web Hour Glass

HTML5JavaScriptCSS3

ASP.NET.IIS

DB – SQL Server/NoSQL

Page 20: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What does the AJAX Layer Look Like?

HTML

CSS

JavaScript

Page 21: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is the API?

The window to and from your dataCan be Restful, but more importantly should use JSONCan be hosted internally or in the cloud

As the web guy I could care less what lies behind the API, just give me the JSON baby

Page 22: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is HTML5?

Natural progression of HTML that is a living breathing specification that defines how developers can confidently create modern web sites with structured markup, CSS and JavaScript

Page 23: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is CSS3?

Natural progression of CSS that is a living breathing specification that defines what developers can use to control the rendering, animations and other really cool things with their HTML elements.

Page 24: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is JavaScript?

It is not C# or Java so stop writing it that way!It is a protypical, very dynamic languageProvides a rich way to drive great user experiences in the browser and now do cool things on the server

Page 25: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Oh No!! Not JavaScript!!

Page 26: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprise Developers Really Do Not Understand JavaScript

Page 27: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprise JavaScript

var helloWorld = function (message) { if (!message) { message = "Hello World";;;;;; }

alert(message);;;;;;;;;;;;;;;;;;;

};;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

http://stackoverflow.com/questions/5671286/what-is-enterprise-javascript

Page 28: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Relax – It’s Not That Hard

C-like SyntaxVery Modular and ExtensibleUnderstand Scope & Context

What is this?Has Core Set of Object

Math, Date, Array, etcIt’s NOT C#

So Do Not Write It Like C#

Page 29: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is a SPA?

Single Page AppHas 1 to many viewsHeavy JavaScript

Page 30: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprise Quality Applications Should Be

MaintainableScalableTestableDeployableHave Tangible ROI

Page 31: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Of Course All Enterprise Applications Meet Those Criteria....

Page 32: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is Maintainable JavaScript?

DecoupledExtensibleStructured

Page 33: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is Scalable JavaScript?

• Should Work As More Users Enter• Should Keep Working On Errors

Page 34: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Extensible

• A Core App• Add Functionality As Needed

Core

ModuleModule

Module

Page 35: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Enterprise JavaScript Apps Need to Be Modular

Do Not Use the Global NamespaceUse a Module

JavaScript Object – {}Anonymous MethodsMake it ExtensibleThink Like jQuery

Page 36: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is Testable JavaScript?

Small Testable Units of WorkBe Able to Be AutomatedEasy to Understand Libraries

Page 37: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is Deployable JavaScript?

Continuous BuildAuto DeploymentAuto Testing (yes those pesky unit tests)

Page 38: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

What is Tangible JavaScript?

Easy to MaintainReduced BugsLow Barrier to Entry for Future Devs

Page 39: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Tangible ROI

• Should Improve Business Process(es) by Reducing Time Needed• Reducing or Eliminating Manual Processes• Improve Quality by Eliminating Errors and Defects

Page 40: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Sounds Great, but Isn't that What Everyone Already Does?

Page 41: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Seriously Have You Ever Worked in An Enterprise?

Page 42: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

So How Do You Manage A JavaScript App?

Project Structure‘Compiling’TestingBundling & Minification

Build System

I Like GruntJs

Page 43: Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp

Demo Time!