SlideShare a Scribd company logo
1 of 51
Download to read offline
REAL WORLD HTML5 & MVC
LESSONS LEARNED
Zoltán Dávid
david.zoltan@aut.bme.hu
György Balássy
balassy@aut.bme.hu
AGENDA
The story
HTML5 games
Don’t write, sketch
HTML5 sitebuild
A good server-side for a good sitebuild
Cloud – a place to put your stuff
Conclusions & What we learned
I HAD A DREAM…
GOALS
3 games
GOALS
a website
GOALS
a tutorial
CLIENT TECNOLOGIES
html5
+
javascript
TIME
25 days
TEAM
DEMO
html5jatekok.hu
MINI GAME WEBSITE
SOFTWARE DEVELOPMENT
PROCESS
buzzword driven development
CORE TECHNOLOGIES
CORE TECHNOLOGIES
THE WHOLE TECHNOLOGY
PICTURE
Many project experiences
• Web Development
• ASP.NET WebFroms
• MS SQL
• Entity Framework
• Visual Studio
From the ivory tower
• ASP.NET MVC
• Razor Syntax
• Azure
• HTML5 sitebuild
• Game development
• Javascript Application
development
DECISIONS
test early and often
DECISIONS
have a Plan B
AGENDA
The story
HTML5 games
Don’t write, sketch
HTML5 sitebuild
A good server-side for a good sitebuild
Cloud – a place to put your stuff
Conclusions & What we learned
PLAN
GRAPHICS
images
GRAPHICS
<canvas id="game" width="600" height="480">
canvas not supported…
</canvas>
var canvas = document.getElementById('game');
var context = canvas.getContext('2d');
var pipe= new Image();
pipe.src = 'pipe.png';
context.drawImage(pipe,x,y);
ANIMATIONS
var timer = window.setInterval(draw,50);
function draw() {
now = new Date().getTime();
deltat = now – prevtime;
// compute x,y and draw
prevtime = now;
}
SOUND
<audio id="main_theme">
<source src="bg_theme.mp3">
<source src="bg_theme.ogg">
</audio>
var music = document.getElementById(‘bg_theme');
music.volume = 0.2;
music.loop = true;
music.play();
LARGE JS APPLICATIONS
• Feature detection
• Polyfills
• Structuring code
• Code quality
• Bullet-proof Ajax
• Debugging
That’s not your var
JavaScript best practices
for C# developers
Download from:
http://bit.ly/msbg2012
AGENDA
The story
HTML5 games
Don’t write, sketch
HTML5 sitebuild
A good server-side for a good sitebuild
Cloud – a place to put your stuff
Conclusions & What we learned
SKETCH BEFORE YOU DRILL
SKETCH BEFORE YOU DRILL
• Easy to understand
• Easy to spot the
problems
• Easy to describe what
You want
• Disposable
• Enables fast redesign
DEMO
Visually Communicate
AGENDA
The story
HTML5 games
Don’t write, sketch
HTML5 sitebuild
A good server-side for a good sitebuild
Cloud – a place to put your stuff
Conclusions & What we learned
DEMO
Sitebuild
AGENDA
The story
We are no game developers
Don’t write, sketch
Viable HTML5 sitebuild
A good server-side for a good sitebuild
Cloud – a place to put your stuff
Conclusions & What we learned
WE HAVE A QUESTION
How to transform sitebuild to MVC code?
UNDERSTANDING MVC
WebForms
• Url maps to file (.aspx)
• File has Controls
• You parameterize
Controls
• Controls render HTML
MVC
• Url maps to C# Method of
a Class
• You choose an HTML
rendering template
• You collect data for the
template
• You feed the template
with the data
Routing
Action
Controller
View
Model
UNDERSTANDING MVC
DEMO
Views are templates
WE HAVE A QUESTION
How to feed a template?
DEMO
ViewModels
EXPERIENCE
• Lots of data transformation code
• No HTML or javascript problems
• AJAX was extremly easy to integrate
• Using the sitebuild was straightforward
AGENDA
The story
HTML5 games
Don’t write, sketch
HTML5 sitebuild
A good server-side for a good sitebuild
Cloud – a place to put your stuff
Conclusions & What we learned
EXPERIENCE
table storage
vs
sql azure
learn from
scratch
slower to
develop
works with EF
management
studio
no database
project
deploy
cheap
easy
EXPERIENCE
azure BLOB
easy to use
files have
URLs
no fine
access
control
no
web.config
no rewrite
rules
case
sensitive
URLs
NO REWRITE RULES
easy “iframe integration”
CASE SENSITIVE URLS
• windows developers not used to it
• problem for
• javascript games
• developed on windows box
shot[1] = new Audio('sound/shot.mp3');
shot[1].volume = 0.3;
shot[2] = new Audio('sound/shot.mp3');
shot[2].volume = 0.3;
DEMO
Uploading to BLOB
EXPERIENCE
Access Control
Service
heavyweight
needs WIF
in GAC
works
facebook API
changes
follows
changes
INSTALLING WIF IN AZURE VM
Install.cmd
@echo off
sc config wuauserv start= demand
wusa.exe "%~dp0Windows6.0-KB974405-x64.msu" /quiet /norestart
sc config wuauserv start= disabled
exit /b 0
ServiceDefinition.csdef
<Startup>
<Task commandLine="Install.cmd“
executionContext="elevated“
taskType="simple" />
</Startup>
AGENDA
The story
HTML5 games
Don’t write, sketch
HTML5 sitebuild
A good server-side for a good sitebuild
Cloud – a place to put your stuff
Conclusions & What we learned
THANK YOU!
Questions?
György Balássy
balassy@aut.bme.hu
http://gyorgybalassy.wordpress.com
@gyorgybalassy
Zoltán Dávid
david.zoltan@aut.bme.hu
slides and demos:
http://bit.ly/msbg2012
HTTP://HTML5JATEKOK.HU

More Related Content

What's hot

jQuery From the Ground Up
jQuery From the Ground UpjQuery From the Ground Up
jQuery From the Ground Up
Kevin Griffin
 
Java script202
Java script202Java script202
Java script202
Wasiq Zia
 

What's hot (20)

ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High GearASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
ASP.NET Quick Wins - 20 Tips and Tricks To Shift Your Application into High Gear
 
Blogging With Jekyll | Blogging Like a Hacker
Blogging With Jekyll | Blogging Like a HackerBlogging With Jekyll | Blogging Like a Hacker
Blogging With Jekyll | Blogging Like a Hacker
 
Modern Front End Tools & Workflow
Modern Front End Tools & WorkflowModern Front End Tools & Workflow
Modern Front End Tools & Workflow
 
(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone
 
Quick start with AngularJS
Quick start with AngularJSQuick start with AngularJS
Quick start with AngularJS
 
Getting Started Adobe Edge Code CC & Brackets
Getting Started Adobe Edge Code CC & BracketsGetting Started Adobe Edge Code CC & Brackets
Getting Started Adobe Edge Code CC & Brackets
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
 
jQuery From the Ground Up
jQuery From the Ground UpjQuery From the Ground Up
jQuery From the Ground Up
 
Using WordPress as a Backend for Your React Project
Using WordPress as a Backend for Your React ProjectUsing WordPress as a Backend for Your React Project
Using WordPress as a Backend for Your React Project
 
WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)
 
Tipping the scale - Eyal Eizenberg - Wix
Tipping the scale - Eyal Eizenberg - WixTipping the scale - Eyal Eizenberg - Wix
Tipping the scale - Eyal Eizenberg - Wix
 
Core Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPressCore Web Vitals Optimization for any website, especially WordPress
Core Web Vitals Optimization for any website, especially WordPress
 
ClojureScript: I can't believe this is JavaScript
ClojureScript: I can't believe this is JavaScriptClojureScript: I can't believe this is JavaScript
ClojureScript: I can't believe this is JavaScript
 
Java script202
Java script202Java script202
Java script202
 
Unobtrusive js
Unobtrusive jsUnobtrusive js
Unobtrusive js
 
Php training in kolkata
Php training in kolkataPhp training in kolkata
Php training in kolkata
 
Website Speed :: Fox Valley Computing Professionals, September 2014
Website Speed :: Fox Valley Computing Professionals, September 2014Website Speed :: Fox Valley Computing Professionals, September 2014
Website Speed :: Fox Valley Computing Professionals, September 2014
 
Visual resume
Visual resumeVisual resume
Visual resume
 
Lessons learned with HTML5
Lessons learned with HTML5Lessons learned with HTML5
Lessons learned with HTML5
 
Pros and Cons of developing a Thick Clientside App
Pros and Cons of developing a Thick Clientside AppPros and Cons of developing a Thick Clientside App
Pros and Cons of developing a Thick Clientside App
 

Viewers also liked

Node js presentation
Node js presentationNode js presentation
Node js presentation
martincabrera
 

Viewers also liked (16)

How to build mobile API with Node.js
How to build mobile API with Node.jsHow to build mobile API with Node.js
How to build mobile API with Node.js
 
MVVM - KnockoutJS
MVVM - KnockoutJSMVVM - KnockoutJS
MVVM - KnockoutJS
 
Real-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalRReal-Time Web Applications with ASP.NET WebAPI and SignalR
Real-Time Web Applications with ASP.NET WebAPI and SignalR
 
Real World Asp.Net WebApi Applications
Real World Asp.Net WebApi ApplicationsReal World Asp.Net WebApi Applications
Real World Asp.Net WebApi Applications
 
Nodejs for .NET web developers
Nodejs for .NET web developersNodejs for .NET web developers
Nodejs for .NET web developers
 
Mvvm and KnockoutJS
Mvvm and KnockoutJSMvvm and KnockoutJS
Mvvm and KnockoutJS
 
Let's play with ASP.NET 5 (vNext) RC1
Let's play with ASP.NET 5 (vNext) RC1Let's play with ASP.NET 5 (vNext) RC1
Let's play with ASP.NET 5 (vNext) RC1
 
Webinar MVC6
Webinar MVC6Webinar MVC6
Webinar MVC6
 
KnockoutJS and MVVM
KnockoutJS and MVVMKnockoutJS and MVVM
KnockoutJS and MVVM
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
 
Node js presentation
Node js presentationNode js presentation
Node js presentation
 
Node.js - Best practices
Node.js  - Best practicesNode.js  - Best practices
Node.js - Best practices
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
 
ASP.NET MVC Performance
ASP.NET MVC PerformanceASP.NET MVC Performance
ASP.NET MVC Performance
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 

Similar to Real World HTML5 + ASP.NET MVC - Lessons Learned

Microsoft WebMatrix Platform Overview
Microsoft WebMatrix Platform OverviewMicrosoft WebMatrix Platform Overview
Microsoft WebMatrix Platform Overview
Spiffy
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
Chris Canal
 
Is Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 WebinarIs Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 Webinar
C/D/H Technology Consultants
 

Similar to Real World HTML5 + ASP.NET MVC - Lessons Learned (20)

Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A Team
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
 
NickleusJimenez
NickleusJimenezNickleusJimenez
NickleusJimenez
 
Html5 css3 Online Training
Html5 css3 Online Training Html5 css3 Online Training
Html5 css3 Online Training
 
Node PDX: Intro to Sails.js
Node PDX: Intro to Sails.jsNode PDX: Intro to Sails.js
Node PDX: Intro to Sails.js
 
Basics for front end developer
Basics for front end developerBasics for front end developer
Basics for front end developer
 
PHP Framework Battle
PHP Framework BattlePHP Framework Battle
PHP Framework Battle
 
Ohio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCPOhio Devfest - Visual Analysis with GCP
Ohio Devfest - Visual Analysis with GCP
 
Future of Serverless
Future of ServerlessFuture of Serverless
Future of Serverless
 
Microsoft WebMatrix Platform Overview
Microsoft WebMatrix Platform OverviewMicrosoft WebMatrix Platform Overview
Microsoft WebMatrix Platform Overview
 
Become a Full Stack Web Developer (.NET) - Thisiswali
Become a Full Stack Web Developer (.NET) - ThisiswaliBecome a Full Stack Web Developer (.NET) - Thisiswali
Become a Full Stack Web Developer (.NET) - Thisiswali
 
To Serverless And Beyond!
To Serverless And Beyond!To Serverless And Beyond!
To Serverless And Beyond!
 
2011 NetUG HH: ASP.NET MVC & HTML 5
2011 NetUG HH: ASP.NET MVC & HTML 52011 NetUG HH: ASP.NET MVC & HTML 5
2011 NetUG HH: ASP.NET MVC & HTML 5
 
St. Louis Day of .NET 2013 - Continuous Integration and Scripting with Window...
St. Louis Day of .NET 2013 - Continuous Integration and Scripting with Window...St. Louis Day of .NET 2013 - Continuous Integration and Scripting with Window...
St. Louis Day of .NET 2013 - Continuous Integration and Scripting with Window...
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
 
Web Development Today
Web Development TodayWeb Development Today
Web Development Today
 
Handling scale on AWS
Handling scale on AWSHandling scale on AWS
Handling scale on AWS
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
Internship softwaretraining@ijse
Internship softwaretraining@ijseInternship softwaretraining@ijse
Internship softwaretraining@ijse
 
Is Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 WebinarIs Your Developer's Head in the Cloud? May 7 Webinar
Is Your Developer's Head in the Cloud? May 7 Webinar
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 

Recently uploaded (20)

Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 

Real World HTML5 + ASP.NET MVC - Lessons Learned