SlideShare ist ein Scribd-Unternehmen logo
1 von 105
JQuery & ASP.NET MVC &Silverlight Fun Presented by Peter Gfader Senior Software Architect at SSW
Peter Gfader SSA @ SSW Loves C# and .NET (Java not anymore) Specializes in  Windows Forms ASP.NET TFS testing Automated tests Silverlight
 Usage of Profile API Web site VS Web application Additional validation Easy  Q: Lucky 2 for next week? Homework?
Course Website http://sharepoint.ssw.com.au/Training/UTSNET/ Course Timetable Course Materials
Admin Stuff Attendance You initial sheet Hands On Lab You get me to initial sheet Certificate  At end of 10 sessions If I say if you have completed successfully 
AJAX History Management Reporting ASP.NET Security  Last week
AJAX - behind the scenes http://en.wikipedia.org/wiki/XMLHttpRequest Connectionstring (local)vslocalhostvs. http://weblogs.asp.net/jgalloway/archive/2005/12/02/432062.aspx Shared memory comes always first on local machine http://msdn.microsoft.com/en-us/library/ms187662.aspx Last week - Additional
jQuery Interactivity ASP.NET MVC Nice URLs Silverlight Rich interactivity Agenda – Rich UI and better UX
JQuery The SQL of JavaScript
Maps.google.com JavaScript rules!
Big time! Different Browser  Debugging No compiling Syntax No intellisense No static typing (duck typing!!) No animations JavaScript sucks!
The answer is?
Written in JavaScript It is a lightweight JavaScript library (compressed based lib, 19 kb) Helps developer / designer to keep things simple and reusable Visual Studio supports JQuery Part of every web app / site Intellisense support  A great library for developing AJAX-based application What is JQuery?
1- Cross-browser (IE 6.0+, Firefox 2+, Safari 3.0+, Opera 9.0+, Chrome) 2- Powerful and easy to use Same selectors as in CSS Designer can learn it fast More readable JavaScript code 3 – Animation Tons of useful plug-ins and functionalities Why JQuery?3 good reasons
JavaScript window.onload = function() {  		alert("welcome"); } JQuery $(document).ready(function() {                 alert("Thanks for visiting!"); }); 1- Cross-browser
JavaScript “onload” is only loaded when all images are loaded in the page JQuery “$(document).ready” is loaded as soon as the Document Object Model is ready Similar to init() method in aspx page 1- Cross-browser – Explanation
Selector $(document).ready(function() {    $("a").click(function() {      alert("Hello world!");    });  }); It will add any click-event to “a” tag 2 – Powerful
http://tympanus.net/Tutorials/BubbleNavigation/ http://demo.tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/demo.php http://demo.tutorialzine.com/2010/02/photo-shoot-css-jquery/demo.html 3 - Animations
JQuery official  http://jquery.com/ JQuery UI library  http://jqueryui.com/ Scott Gu’s Blog  http://weblogs.asp.net/scottgu/ References
Bubble Navigation - http://tympanus.net/Tutorials/BubbleNavigation/ Quicksand (reorder items with nice shuffling animation) - http://razorjack.net/quicksand/ Nivo Slider - http://nivo.dev7studios.com/ Sponsor Flip Wall - http://demo.tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/demo.php HTC Clock - http://www.radoslavdimov.com/jquery-plugins/jquery-plugin-digiclock/ Photo shoot Effect - http://demo.tutorialzine.com/2010/02/photo-shoot-css-jquery/demo.html jQuery - Visually cool
Open Standard Media Player (jQuery + HTML5) - http://www.mediafront.org/project/osmplayer jsPlumb connector - http://morrisonpitt.com/jsPlumb/html/demo.html jQuery.popeye - http://dev.herr-schuessler.de/jquery/popeye/demo.html AutoSuggestjQueryplugin - http://code.drewwilson.com/entry/autosuggest-jquery-plugin Ajax Upload (show a preview of the file being upload) - http://www.zurb.com/playground/ajax_upload jQuery - Technically cool
Check for JavaScript in page <body class=”no-js”> <script type="text/javascript"> document.getElementsByTagName("body")[0].className="jsEnabled"; </script> CSS #your-element { display: block; } body.jsEnabled #your-element { display: none; } JavaScript tip!
What is ASP.NET MVC                         ...and is WebForms dead?
Our ancestors developed for the web in ASP script...
We have had WebForms... Compile
ASP.NET MVC    Model     -      View    -     Controller
Background of ASP.NET MVC Difference between WebForms and ASP.NET MVC Tips and Tricks Conclusion Agenda
SmallTalk Ruby on Rails Spring, Struts Monorail MVC is not new
WebForms  == WinForm developers     MVC == HTTP + jQuery + CSS developers Does ASP.NET MVC replace WebForms? Productivity Control
Development
Why choose ASP.NET MVC?
Not just cool...  Not just for testability... Not just because you get more control... Because you get more perspective! Why ASP.NET MVC?
	   Web is an HTTP highway Cool Tech Controls HTTP / HTML
Separation of concerns Controllers (Actions) Views Models More expressive of HTTP protocol Testable features Strongly typed support  Background to ASP.NET MVC
The key actors in ASP.NET Webforms ASPX page gets request Page lifecycle with events Codebehind methods
The key actors in ASP.NET MVC Browser Request Model Controller View Response ViewModel
So lets dive into it
DefaultProject
.Net 3.5 SP1  http://www.microsoft.com/downloads/ MVC               http://www.asp.net/MVC/download/ Install VS2010 Advanced steps MVCContribhttp://www.codeplex.com/MVCContrib Moqhttp://code.google.com/p/moq/ What you need to get started in MVC
Watch the NerdDinner Tutorial   http://www.asp.net/MVC Watch the MVC StoreFront Demo http://blog.wekeroad.com/ Dinner Now http://dinnernow.net/ To get going quickly
URL structure Testability HTTP Verbs  Controllers/Actions/Views View engine So what is there to control
ASP.NET MVC structure (aka closer to the real thing) Model Browser Request Biz Controller Routing Repository e.g. SQL/Xml  View Response ViewModel
Write your tests first  Red-Green TDD is the purest MVC has been designed to decouple for testing  Test Driven Development
// Arrange AdminController controller = new AdminController(mockRepos.Object); // Act ViewResult results = controller.Index(); Test a Controller
RouteDatarouteData =  routes.GetRouteData(mockHttpContext.Object); Test a Route
[ActionName("Index")] [AcceptVerbs(HttpVerbs.Put)] public void Put() { Response.Write("<Put/>"); } Http Verbs
Code from http://haacked.com Reference RouteDebug.dll Global.asax RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); Routing – Debugger
routes.MapRoute(     “Demo",     "Double/{c}/{a}/{id}",     new { c = "Home", a = "Index", id = "" },     new { id = @"{1,6}" }	//constraint ); Routing Constraints
routes.MapRoute(                 "Archive",                 "archive/{year}/{month}/{day}",                 new { controller = "Archive", action = "Index", year = "“, month = "", day = ""                 },                 new                 {                     year = new YearRouteConstraint(),                     month = new MonthRouteConstraint(),                     day = new DayRouteConstraint()                 }                 ); Constraints implement IRouteConstraint Routing Constraints - Custom
Code from Nhaml Global.asax ViewEngines.Engines.Add(new NHaml.Web.Mvc.NHamlMvcViewEngine());  Changing the View Engine
SnippetDesignerhttp://www.codeplex.com/SnippetDesigner Phil Haackedhttp://haacked.com Stephen Walther  http://stephenwalther.com/ Tatham Oddiehttp://blog.tatham.oddie.com.au/ Nhamlhttp://code.google.com/p/nhaml Others resources to make life easier
Silverlight Fun
Agenda - Silverlight Silverlight? RIA? Why Silverlight? “Hello world” in Silverlight Silverlight under the hood Cool stuff How to  + / -
Microsoft Silverlight is a cross-browser, cross-platform implementation of .NET for building and delivering the next generation of media experiences & rich interactive applications for the Web.
Pain with web applications
How a web page is shown Your Computer Hosting Computer Internet The Internet Server Client
All of the intelligence and data is on the server Request www.ssw.com.au The Internet Response HTML Server Client
Typical Client Server Typical Client Server
Typical Client Server Typical Silverlight
Pain with web applications Scalability - Server based Performance - Request / Response Developers - UI is hard to develop Different browser  different UI Intelligence on the client requires JavaScript/jQuery
Easy to develop and maintain Write once, run anywhereJava slogan, when Sun introduced Java 1.0 1996 Awesome User experience  Look Feel Usability We want
PX RIA - Rich Internet Applications
Features/functionality of traditional desktop applications State maintained on BOTH client and server Run within a secure web browser environment (a sandbox) No additional software installation Rich Internet Applications
Client engine, between user and server Download Engine – browser extension Program logic (executes compiled programs) Rendering user interface Server communication State-ful client  Changes to the view don't require (re)loading a new page RIA
Cross platform Browser plug in Rich Internet Application .NET  / CLR in the browser (VB/C#) 4MB download Simple install Competes with other products Silverlight = RIA from MS
UI Quality User Expectations
[object Object]
Goal:  Parity in developer productivityWhat platform Richness Reach
[object Object]
Goal:  Parity in developer productivityWhat platform Richness Reach
2000 ~ .NET .NET platform for Windows and Web applications AJAX: Web feel like Desktop WPF: (Windows Presentation Foundation) Separate UI from Code Too much Not Cross browser WPFe (everywhere)  Silverlight Silverlight "History"
Adobe Flash, Flex  Flash: Technology for animations Flex: Collection of tools to dev Flash apps Java applets / applications JavaScript / AJAX  Google's GWT framework (Google Web Toolkit) JQuery Microsoft Silverlight List of RIA Platforms / Approaches
Windows Forms of  Very limited  Responsive UI Rich UI CLR on the web .NET  Why Silverlight
"Hallo Welt" in Silverlight
Visual Studio files by default
<UserControl x:Class="SilverlightApplicationHalloWelt.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   Width="400" Height="300"> <StackPanel> <Button Width="400" Height="20" Content="Click me" Click="Button_Click"></Button> <TextBlock x:Name="textblockOutput" Width="400" Height="20" Text="empty"></TextBlock> </StackPanel> </UserControl> "Hallo Welt" - XAML
"Hallo Welt" – XAML in Design mode
private void Button_Click(object sender, RoutedEventArgs e) { textblockOutput.Text = "Hallo Welt"; } "Hallo Welt"
"Hallo Welt" – Running app
Silverlight – Under the hood
Silverlight Build Process
XAML Defines .Net Objects <TextBlockFontSize="32" Text="Hello world" /> ≡ TextBlock t = new TextBlock(); t.FontSize = 32; t.Text = "Hello world";
XML eXtensible Mark-up Language X Application ML UI mark-up language Used in Silverlight, WPF (and Work Flow) Tools Visual Studio, Expression Blend, Notepad Can generate UI with code or XAML (faster) XAML
Access Elements from Code ,[object Object],<Rectangle x:Name="rectOne" /> void OnMouseEnter(object sender, MouseEventArgs e)   { rectOne.Height= 75; }
Expression Design Blend 4 Visual Studio Visual Studio 2010 Silverlight Tools for Visual Studio 2010 Silverlight SDK Silverlight Tooling
PIX Silverlight Limitations
Silverlight Limitations No full access to Windows API & .NET API Silverlight is a subset of .NET framework WPF features not in Silverlight: http://msdn.microsoft.com/en-us/library/cc903925(VS.95).aspx ,[object Object]
3D graphics
Resources
Drawing types
Flow text
Doc Panel
Triggers,[object Object]
Silverlight Limitations No Secure SaveAs dialog  SL3 has a secure SaveAs dialog
Silverlight Limitations Offline support SL4 has Offline and Out of Browser support although more limited than WPF  No Sync Framework  No local DB Can manually serialize data on the Isolated Storage
Silverlight Limitations No Context menu  No Right Click Event  No context menu triggered by Right Click.  Hacks exists but are not recommended due to the need to put the SL plug-in in windowless mode, introducing performance issue No “Right click – Open in new tab”
Silverlight Limitations No printing support  Server side PDF or Open XML generation  Client side manual HTML generation. Need to implement the formatting logic twice one for XAML and one for HTML  Final version of SL 3 should provide more “hacks” for generating bitmaps from visuals enabling some more options for client side printing compared to the manual HTML generation. Still done through HTML bridge. This will for example enable printing of Charts.
Cross domain access http://weblogs.asp.net/jgalloway/archive/2008/12/12/silverlight-crossdomain-access-workarounds.aspx Silverlight Limitations
Silverlight Cool
Playboy archives Hardrock cafe http://www.mscui.net/PatientJourneyDemonstrator/ Cool SL games http://www.silverarcade.com/ Silverlight shop http://www.eastberlinshop.com/ Silverlight Cooool
http://silverlight.idvsolutions.com/ http://memorabilia.hardrock.com/ http://apps.junkship.org/apps/tarantula/ http://joestegman.members.winisp.net/DeepZoom/ http://www.tafiti.com http://www.imeta.com/SilverlightShowcaseApp.htm http://silverlight.net/samples/2b2/silverlightchess/run/Default.html Cool Silverlight sites
Cross-browser, cross-platform support It runs on the MAC Quick to learn  Core CLR on the web Easy to build better web applications Already good take up Advantages
Consistent .NET programming model Any .NET language, C#, VB.NET, IronPython Your favourite languages are supported on the client Significantly reduces the need for Javascript Easy deployment Advantages
Silverlight works in a myriad of browsers and platforms Any Web server can host Silverlight Silverlight plug-in available for Windows and Mac Moonlight the plug-in for Linux clients Mono for Silverlight in v1 Silverlight on other platforms Silverlight on other platforms
Platforms & Browsers (Microsoft support) Novell Support (Moonlight) IE 6.0+ Firefox 1.5+ Safari 2.0 Konqueror Firefox Opera Windows  Vista, XP, 2003, 2000* Mac OS X  10.4.8+ Linux (various distros)

Weitere ähnliche Inhalte

Was ist angesagt?

Vuejs for Angular developers
Vuejs for Angular developersVuejs for Angular developers
Vuejs for Angular developersMikhail Kuznetcov
 
Vue.js Getting Started
Vue.js Getting StartedVue.js Getting Started
Vue.js Getting StartedMurat Doğan
 
Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Raymond Camden
 
Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWebDave Bouwman
 
JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)Steve Souders
 
High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)Steve Souders
 
High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)Steve Souders
 
Vuejs getting-started - Extended Version
Vuejs getting-started - Extended VersionVuejs getting-started - Extended Version
Vuejs getting-started - Extended VersionMurat Doğan
 
10 practices that every developer needs to start right now
10 practices that every developer needs to start right now10 practices that every developer needs to start right now
10 practices that every developer needs to start right nowCaleb Jenkins
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web AppsFITC
 
Your Script Just Killed My Site
Your Script Just Killed My SiteYour Script Just Killed My Site
Your Script Just Killed My SiteSteve Souders
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web SitesSteve Souders
 
Angularjs Tutorial for Beginners
Angularjs Tutorial for BeginnersAngularjs Tutorial for Beginners
Angularjs Tutorial for Beginnersrajkamaltibacademy
 
HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedPeter Lubbers
 
Passo a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel HíbridaPasso a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel HíbridaJuliano Martins
 
Web 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesWeb 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesSteve Souders
 

Was ist angesagt? (20)

Why Vue.js?
Why Vue.js?Why Vue.js?
Why Vue.js?
 
Vuejs for Angular developers
Vuejs for Angular developersVuejs for Angular developers
Vuejs for Angular developers
 
Vue.js Getting Started
Vue.js Getting StartedVue.js Getting Started
Vue.js Getting Started
 
Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Don't Over-React - just use Vue!
Don't Over-React - just use Vue!
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWeb
 
Vue.js
Vue.jsVue.js
Vue.js
 
JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)
 
High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)High Performance Mobile (SF/SV Web Perf)
High Performance Mobile (SF/SV Web Perf)
 
High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)High Performance HTML5 (SF HTML5 UG)
High Performance HTML5 (SF HTML5 UG)
 
Vuejs getting-started - Extended Version
Vuejs getting-started - Extended VersionVuejs getting-started - Extended Version
Vuejs getting-started - Extended Version
 
Design+Performance
Design+PerformanceDesign+Performance
Design+Performance
 
10 practices that every developer needs to start right now
10 practices that every developer needs to start right now10 practices that every developer needs to start right now
10 practices that every developer needs to start right now
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Your Script Just Killed My Site
Your Script Just Killed My SiteYour Script Just Killed My Site
Your Script Just Killed My Site
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web Sites
 
Angularjs Tutorial for Beginners
Angularjs Tutorial for BeginnersAngularjs Tutorial for Beginners
Angularjs Tutorial for Beginners
 
HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashed
 
Passo a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel HíbridaPasso a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel Híbrida
 
Web 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesWeb 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web Sites
 

Ähnlich wie Introduction to JQuery, ASP.NET MVC and Silverlight

ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008Caleb Jenkins
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NETPeter Gfader
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET PresentationRasel Khan
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesPeter Gfader
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTimothy Oxley
 
Hands on web development with play 2.0
Hands on web development with play 2.0Hands on web development with play 2.0
Hands on web development with play 2.0Abbas Raza
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologiesHosam Kamel
 
Get Ahead with HTML5 on Moible
Get Ahead with HTML5 on MoibleGet Ahead with HTML5 on Moible
Get Ahead with HTML5 on Moiblemarkuskobler
 
Using HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaUsing HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaSandeep Tol
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with AppceleratorMatt Raible
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetAdil Mughal
 
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)Beat Signer
 
Intermediate ASP.NET MVC
Intermediate ASP.NET MVCIntermediate ASP.NET MVC
Intermediate ASP.NET MVCJoe Wilson
 
Improve your Web Development using Visual Studio 2010
Improve your Web Development using Visual Studio 2010Improve your Web Development using Visual Studio 2010
Improve your Web Development using Visual Studio 2010Suthep Sangvirotjanaphat
 

Ähnlich wie Introduction to JQuery, ASP.NET MVC and Silverlight (20)

ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
 
Walther Aspnet4
Walther Aspnet4Walther Aspnet4
Walther Aspnet4
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
Hands on web development with play 2.0
Hands on web development with play 2.0Hands on web development with play 2.0
Hands on web development with play 2.0
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Web assembly with PWA
Web assembly with PWA Web assembly with PWA
Web assembly with PWA
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologies
 
ASP.NET OVERVIEW
ASP.NET OVERVIEWASP.NET OVERVIEW
ASP.NET OVERVIEW
 
Get Ahead with HTML5 on Moible
Get Ahead with HTML5 on MoibleGet Ahead with HTML5 on Moible
Get Ahead with HTML5 on Moible
 
Using HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaUsing HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in Java
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp Net
 
Walther Ajax4
Walther Ajax4Walther Ajax4
Walther Ajax4
 
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
 
Intermediate ASP.NET MVC
Intermediate ASP.NET MVCIntermediate ASP.NET MVC
Intermediate ASP.NET MVC
 
Improve your Web Development using Visual Studio 2010
Improve your Web Development using Visual Studio 2010Improve your Web Development using Visual Studio 2010
Improve your Web Development using Visual Studio 2010
 

Mehr von Peter Gfader

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019Peter Gfader
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)Peter Gfader
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineerPeter Gfader
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilistPeter Gfader
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Peter Gfader
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryPeter Gfader
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recapPeter Gfader
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployPeter Gfader
 
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...Peter Gfader
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code DevelopmentPeter Gfader
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Peter Gfader
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube BrowsersPeter Gfader
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesPeter Gfader
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesPeter Gfader
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL ServerPeter Gfader
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text searchPeter Gfader
 
Work with data in ASP.NET
Work with data in ASP.NETWork with data in ASP.NET
Work with data in ASP.NETPeter Gfader
 

Mehr von Peter Gfader (20)

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineer
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilist
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recap
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
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...
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code Development
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube Browsers
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting Services
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis Services
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL Server
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text search
 
Work with data in ASP.NET
Work with data in ASP.NETWork with data in ASP.NET
Work with data in ASP.NET
 

Kürzlich hochgeladen

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 

Kürzlich hochgeladen (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 

Introduction to JQuery, ASP.NET MVC and Silverlight

  • 1. JQuery & ASP.NET MVC &Silverlight Fun Presented by Peter Gfader Senior Software Architect at SSW
  • 2. Peter Gfader SSA @ SSW Loves C# and .NET (Java not anymore) Specializes in Windows Forms ASP.NET TFS testing Automated tests Silverlight
  • 3. Usage of Profile API Web site VS Web application Additional validation Easy Q: Lucky 2 for next week? Homework?
  • 5. Admin Stuff Attendance You initial sheet Hands On Lab You get me to initial sheet Certificate At end of 10 sessions If I say if you have completed successfully 
  • 6. AJAX History Management Reporting ASP.NET Security Last week
  • 7. AJAX - behind the scenes http://en.wikipedia.org/wiki/XMLHttpRequest Connectionstring (local)vslocalhostvs. http://weblogs.asp.net/jgalloway/archive/2005/12/02/432062.aspx Shared memory comes always first on local machine http://msdn.microsoft.com/en-us/library/ms187662.aspx Last week - Additional
  • 8. jQuery Interactivity ASP.NET MVC Nice URLs Silverlight Rich interactivity Agenda – Rich UI and better UX
  • 9. JQuery The SQL of JavaScript
  • 11. Big time! Different Browser Debugging No compiling Syntax No intellisense No static typing (duck typing!!) No animations JavaScript sucks!
  • 13. Written in JavaScript It is a lightweight JavaScript library (compressed based lib, 19 kb) Helps developer / designer to keep things simple and reusable Visual Studio supports JQuery Part of every web app / site Intellisense support A great library for developing AJAX-based application What is JQuery?
  • 14. 1- Cross-browser (IE 6.0+, Firefox 2+, Safari 3.0+, Opera 9.0+, Chrome) 2- Powerful and easy to use Same selectors as in CSS Designer can learn it fast More readable JavaScript code 3 – Animation Tons of useful plug-ins and functionalities Why JQuery?3 good reasons
  • 15. JavaScript window.onload = function() { alert("welcome"); } JQuery $(document).ready(function() { alert("Thanks for visiting!"); }); 1- Cross-browser
  • 16. JavaScript “onload” is only loaded when all images are loaded in the page JQuery “$(document).ready” is loaded as soon as the Document Object Model is ready Similar to init() method in aspx page 1- Cross-browser – Explanation
  • 17. Selector $(document).ready(function() { $("a").click(function() { alert("Hello world!"); }); }); It will add any click-event to “a” tag 2 – Powerful
  • 19. JQuery official http://jquery.com/ JQuery UI library http://jqueryui.com/ Scott Gu’s Blog http://weblogs.asp.net/scottgu/ References
  • 20. Bubble Navigation - http://tympanus.net/Tutorials/BubbleNavigation/ Quicksand (reorder items with nice shuffling animation) - http://razorjack.net/quicksand/ Nivo Slider - http://nivo.dev7studios.com/ Sponsor Flip Wall - http://demo.tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/demo.php HTC Clock - http://www.radoslavdimov.com/jquery-plugins/jquery-plugin-digiclock/ Photo shoot Effect - http://demo.tutorialzine.com/2010/02/photo-shoot-css-jquery/demo.html jQuery - Visually cool
  • 21. Open Standard Media Player (jQuery + HTML5) - http://www.mediafront.org/project/osmplayer jsPlumb connector - http://morrisonpitt.com/jsPlumb/html/demo.html jQuery.popeye - http://dev.herr-schuessler.de/jquery/popeye/demo.html AutoSuggestjQueryplugin - http://code.drewwilson.com/entry/autosuggest-jquery-plugin Ajax Upload (show a preview of the file being upload) - http://www.zurb.com/playground/ajax_upload jQuery - Technically cool
  • 22. Check for JavaScript in page <body class=”no-js”> <script type="text/javascript"> document.getElementsByTagName("body")[0].className="jsEnabled"; </script> CSS #your-element { display: block; } body.jsEnabled #your-element { display: none; } JavaScript tip!
  • 23. What is ASP.NET MVC ...and is WebForms dead?
  • 24. Our ancestors developed for the web in ASP script...
  • 25. We have had WebForms... Compile
  • 26. ASP.NET MVC Model - View - Controller
  • 27. Background of ASP.NET MVC Difference between WebForms and ASP.NET MVC Tips and Tricks Conclusion Agenda
  • 28. SmallTalk Ruby on Rails Spring, Struts Monorail MVC is not new
  • 29. WebForms == WinForm developers MVC == HTTP + jQuery + CSS developers Does ASP.NET MVC replace WebForms? Productivity Control
  • 32. Not just cool... Not just for testability... Not just because you get more control... Because you get more perspective! Why ASP.NET MVC?
  • 33. Web is an HTTP highway Cool Tech Controls HTTP / HTML
  • 34. Separation of concerns Controllers (Actions) Views Models More expressive of HTTP protocol Testable features Strongly typed support Background to ASP.NET MVC
  • 35. The key actors in ASP.NET Webforms ASPX page gets request Page lifecycle with events Codebehind methods
  • 36. The key actors in ASP.NET MVC Browser Request Model Controller View Response ViewModel
  • 37. So lets dive into it
  • 39. .Net 3.5 SP1 http://www.microsoft.com/downloads/ MVC http://www.asp.net/MVC/download/ Install VS2010 Advanced steps MVCContribhttp://www.codeplex.com/MVCContrib Moqhttp://code.google.com/p/moq/ What you need to get started in MVC
  • 40. Watch the NerdDinner Tutorial http://www.asp.net/MVC Watch the MVC StoreFront Demo http://blog.wekeroad.com/ Dinner Now http://dinnernow.net/ To get going quickly
  • 41. URL structure Testability HTTP Verbs Controllers/Actions/Views View engine So what is there to control
  • 42. ASP.NET MVC structure (aka closer to the real thing) Model Browser Request Biz Controller Routing Repository e.g. SQL/Xml View Response ViewModel
  • 43. Write your tests first Red-Green TDD is the purest MVC has been designed to decouple for testing Test Driven Development
  • 44. // Arrange AdminController controller = new AdminController(mockRepos.Object); // Act ViewResult results = controller.Index(); Test a Controller
  • 45. RouteDatarouteData = routes.GetRouteData(mockHttpContext.Object); Test a Route
  • 46. [ActionName("Index")] [AcceptVerbs(HttpVerbs.Put)] public void Put() { Response.Write("<Put/>"); } Http Verbs
  • 47. Code from http://haacked.com Reference RouteDebug.dll Global.asax RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); Routing – Debugger
  • 48. routes.MapRoute( “Demo", "Double/{c}/{a}/{id}", new { c = "Home", a = "Index", id = "" }, new { id = @"{1,6}" } //constraint ); Routing Constraints
  • 49. routes.MapRoute(                 "Archive",                 "archive/{year}/{month}/{day}",                 new { controller = "Archive", action = "Index", year = "“, month = "", day = ""                 },                 new                 {                     year = new YearRouteConstraint(),                     month = new MonthRouteConstraint(),                     day = new DayRouteConstraint()                 }                 ); Constraints implement IRouteConstraint Routing Constraints - Custom
  • 50. Code from Nhaml Global.asax ViewEngines.Engines.Add(new NHaml.Web.Mvc.NHamlMvcViewEngine()); Changing the View Engine
  • 51. SnippetDesignerhttp://www.codeplex.com/SnippetDesigner Phil Haackedhttp://haacked.com Stephen Walther http://stephenwalther.com/ Tatham Oddiehttp://blog.tatham.oddie.com.au/ Nhamlhttp://code.google.com/p/nhaml Others resources to make life easier
  • 53. Agenda - Silverlight Silverlight? RIA? Why Silverlight? “Hello world” in Silverlight Silverlight under the hood Cool stuff How to + / -
  • 54. Microsoft Silverlight is a cross-browser, cross-platform implementation of .NET for building and delivering the next generation of media experiences & rich interactive applications for the Web.
  • 55. Pain with web applications
  • 56. How a web page is shown Your Computer Hosting Computer Internet The Internet Server Client
  • 57. All of the intelligence and data is on the server Request www.ssw.com.au The Internet Response HTML Server Client
  • 58. Typical Client Server Typical Client Server
  • 59. Typical Client Server Typical Silverlight
  • 60. Pain with web applications Scalability - Server based Performance - Request / Response Developers - UI is hard to develop Different browser  different UI Intelligence on the client requires JavaScript/jQuery
  • 61. Easy to develop and maintain Write once, run anywhereJava slogan, when Sun introduced Java 1.0 1996 Awesome User experience  Look Feel Usability We want
  • 62. PX RIA - Rich Internet Applications
  • 63. Features/functionality of traditional desktop applications State maintained on BOTH client and server Run within a secure web browser environment (a sandbox) No additional software installation Rich Internet Applications
  • 64. Client engine, between user and server Download Engine – browser extension Program logic (executes compiled programs) Rendering user interface Server communication State-ful client Changes to the view don't require (re)loading a new page RIA
  • 65. Cross platform Browser plug in Rich Internet Application .NET / CLR in the browser (VB/C#) 4MB download Simple install Competes with other products Silverlight = RIA from MS
  • 66. UI Quality User Expectations
  • 67.
  • 68. Goal: Parity in developer productivityWhat platform Richness Reach
  • 69.
  • 70. Goal: Parity in developer productivityWhat platform Richness Reach
  • 71. 2000 ~ .NET .NET platform for Windows and Web applications AJAX: Web feel like Desktop WPF: (Windows Presentation Foundation) Separate UI from Code Too much Not Cross browser WPFe (everywhere) Silverlight Silverlight "History"
  • 72. Adobe Flash, Flex Flash: Technology for animations Flex: Collection of tools to dev Flash apps Java applets / applications JavaScript / AJAX Google's GWT framework (Google Web Toolkit) JQuery Microsoft Silverlight List of RIA Platforms / Approaches
  • 73. Windows Forms of Very limited Responsive UI Rich UI CLR on the web .NET Why Silverlight
  • 74. "Hallo Welt" in Silverlight
  • 75. Visual Studio files by default
  • 76. <UserControl x:Class="SilverlightApplicationHalloWelt.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"> <StackPanel> <Button Width="400" Height="20" Content="Click me" Click="Button_Click"></Button> <TextBlock x:Name="textblockOutput" Width="400" Height="20" Text="empty"></TextBlock> </StackPanel> </UserControl> "Hallo Welt" - XAML
  • 77. "Hallo Welt" – XAML in Design mode
  • 78. private void Button_Click(object sender, RoutedEventArgs e) { textblockOutput.Text = "Hallo Welt"; } "Hallo Welt"
  • 79. "Hallo Welt" – Running app
  • 82. XAML Defines .Net Objects <TextBlockFontSize="32" Text="Hello world" /> ≡ TextBlock t = new TextBlock(); t.FontSize = 32; t.Text = "Hello world";
  • 83. XML eXtensible Mark-up Language X Application ML UI mark-up language Used in Silverlight, WPF (and Work Flow) Tools Visual Studio, Expression Blend, Notepad Can generate UI with code or XAML (faster) XAML
  • 84.
  • 85. Expression Design Blend 4 Visual Studio Visual Studio 2010 Silverlight Tools for Visual Studio 2010 Silverlight SDK Silverlight Tooling
  • 87.
  • 93.
  • 94. Silverlight Limitations No Secure SaveAs dialog SL3 has a secure SaveAs dialog
  • 95. Silverlight Limitations Offline support SL4 has Offline and Out of Browser support although more limited than WPF No Sync Framework No local DB Can manually serialize data on the Isolated Storage
  • 96. Silverlight Limitations No Context menu No Right Click Event No context menu triggered by Right Click. Hacks exists but are not recommended due to the need to put the SL plug-in in windowless mode, introducing performance issue No “Right click – Open in new tab”
  • 97. Silverlight Limitations No printing support Server side PDF or Open XML generation Client side manual HTML generation. Need to implement the formatting logic twice one for XAML and one for HTML Final version of SL 3 should provide more “hacks” for generating bitmaps from visuals enabling some more options for client side printing compared to the manual HTML generation. Still done through HTML bridge. This will for example enable printing of Charts.
  • 98. Cross domain access http://weblogs.asp.net/jgalloway/archive/2008/12/12/silverlight-crossdomain-access-workarounds.aspx Silverlight Limitations
  • 100. Playboy archives Hardrock cafe http://www.mscui.net/PatientJourneyDemonstrator/ Cool SL games http://www.silverarcade.com/ Silverlight shop http://www.eastberlinshop.com/ Silverlight Cooool
  • 101. http://silverlight.idvsolutions.com/ http://memorabilia.hardrock.com/ http://apps.junkship.org/apps/tarantula/ http://joestegman.members.winisp.net/DeepZoom/ http://www.tafiti.com http://www.imeta.com/SilverlightShowcaseApp.htm http://silverlight.net/samples/2b2/silverlightchess/run/Default.html Cool Silverlight sites
  • 102. Cross-browser, cross-platform support It runs on the MAC Quick to learn Core CLR on the web Easy to build better web applications Already good take up Advantages
  • 103. Consistent .NET programming model Any .NET language, C#, VB.NET, IronPython Your favourite languages are supported on the client Significantly reduces the need for Javascript Easy deployment Advantages
  • 104. Silverlight works in a myriad of browsers and platforms Any Web server can host Silverlight Silverlight plug-in available for Windows and Mac Moonlight the plug-in for Linux clients Mono for Silverlight in v1 Silverlight on other platforms Silverlight on other platforms
  • 105. Platforms & Browsers (Microsoft support) Novell Support (Moonlight) IE 6.0+ Firefox 1.5+ Safari 2.0 Konqueror Firefox Opera Windows Vista, XP, 2003, 2000* Mac OS X 10.4.8+ Linux (various distros)
  • 106. Disadvantages FUD / New Fear of the unknown XAML New technique to learn Download a plugin Small 4MB, quick install process Moving goal posts new versions = breaking changes iPhone collateral damage from Flash
  • 107. Silverlight is quick to learn Great for .NET developers Easy to build better web applications XAML layout can be a pain (slow) Significantly reduces the need for JavaScript Conclusion: Developer Perspective
  • 108. A great tool to overcome browser limitations Greatly improves the user’s web experience Strongly supported by Microsoft In Oz, Silverlight jobs are going up faster than the overall market In the US, Silverlight jobs are going up, at a time when IT jobs are declining Conclusion: Business Perspective
  • 109. Already have .Net developers on staff Already have a significant .Net code base If you need cool .Net stuff like LINQ in the browser If you want a consistent language / environment in front end For now, if you don’t mind… Asking users to install Silverlight control Beta software (I would not worry, if delivery will be late 2008) Use Silverlight if:
  • 110. Open XAML in code only mode http://www.85turns.com/2009/04/23/visual-studio-tip-open-xaml-in-code-only-mode/ How to open application in full screen mode http://www.silverlightshow.net/tips/Tip-How-to-enter-full-screen-mode.aspx Chris Anderson Business Application Demo http://www.silverlightshow.net/awweb2/AdventureWorksLOB.aspx Chris Anderson Business Application Article series http://www.silverlightshow.net/news/Welcome-Chris.aspx Silverlight Tips
  • 111. Silverlight Quickstarts http://silverlight.net/quickstarts/managed.aspx Silverlight Community http://www.silverlightshow.net/ Resources - Silverlight
  • 112. Microsoft .toolbox http://www.microsoft.com/design/toolbox/about/courses.aspx Silverlight 4 training course http://channel9.msdn.com/learn/courses/Silverlight4/ Resources - Silverlight
  • 113. http://www.nikhilk.net/Silverlight-Locate-Me.aspx XAML Powertools http://www.silverlightcream.com/ Interesting stuff
  • 114. Firebug for Silverlight http://silverlightspy.com/ Flash vs Silverlight Gallery http://www.shinedraw.com/flash-vs-silverlight-gallery/ Resources
  • 115. Silverlight Designer and Developer Network http://www.sddn.org.au/ Sydney .NET Users Group http://www.ssw.com.au/ssw/NETUG/Sydney.aspx Sydney Deep .NET User Group http://www.sdnug.org/ Newcastle Coders Group http://www.ncg.asn.au/ Resources - Usergroups
  • 117. Step to the next level! From Microsoft and the founders of Scrum (Ken Schwaber) Innovative For developers Learn Modern engineering practices Visual Studio 2010 and Team Foundation Server Scrum framework Assessments and certifications are available Find a local class http://go.microsoft.com/fwlink/?LinkId=187778 Professional Scrum Developer (PSD)
  • 119. Thank You! Gateway Court Suite 10 81 - 91 Military Road Neutral Bay, Sydney NSW 2089 AUSTRALIA ABN: 21 069 371 900 Phone: + 61 2 9953 3000 Fax: + 61 2 9953 3105 info@ssw.com.auwww.ssw.com.au

Hinweis der Redaktion

  1. Peter Gfader shows asp.netjQuery, MVC and Silverlight
  2. Java current version 1.6 Update 171.7 released next year 2010Dynamic languages Parallel computingMaybe closures
  3. Why?How?AJAX History ManagerSolves Back buttonSend links
  4. (since VS 2008 SP1)http://weblogs.asp.net/scottgu/archive/2008/11/21/jquery-intellisense-in-vs-2008.aspx
  5. jQuery is independent of browser
  6. Open firefoxOpen www.ssw.com.au or http://www.petersofkensington.com.au/Home/ Open firebug F12Did you know Ctrl+Shift+C in Firebug?Open consoleRun $(&quot;a&quot;)Show found itemsAttach something to those links$(&quot;a&quot;).click(function() { alert(“HACKED!&quot;); });
  7. OpenurlShow accordion and autocomplete
  8. PeterG Is MVC a step back to ASP script????
  9. MVC is not a new
  10. In MVC, the controller gets the request (actually the Action on the controller)In ASP.NET the view (.aspx page) gets the request and then the code behindhttp://www.codeproject.com/KB/aspnet/ASPDOTNETPageLifecycle.aspx
  11. In MVC, the controller gets the request (actually the Action on the controller)In ASP.NET the view (.aspx page) gets the request and then the code behind
  12. Create a new MVC appBrowse through the appShow URL mapps to controllerShow what controller doesShow ViewShow on what VS can do for MVCShow out of the box tests part of MVC
  13. MVC is out of the box in VS2010
  14. Andy!
  15. What is Silverlight? From MS
  16. http://playboy.covertocover.com/ http://labs.infragistics.com/silverlight/faceOut/ http://www.mscui.net/PatientJourneyDemonstrator/
  17. RIA’s introduce a client engine, between user and serverDownloaded as part of the instantiation Client engine acts as an extension of the browserResponsible for Program logic (executes compiled programs)Rendering the application&apos;s user interface and For server communicationProvides a stateful client where significant changes to the view don&apos;t require (re)loading a new page
  18. UI Quality
  19. MENTION HUGE DIFFERENCE BETWEEN FLASH HERE!!!!By late 2000 the first beta versions of .NET 1.0 were released2000 ~ .net.netplattform for windows and web applicationAJAX  better applicationsWPF e  Silverlight
  20. Java applets Loading timeNetwork connectivityDev tools
  21. CLR on the web, consistent .Net programming model
  22. &lt;UserControl x:Class=&quot;SilverlightApplicationHalloWelt.Page&quot;xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot; Width=&quot;400&quot; Height=&quot;300&quot;&gt; &lt;StackPanel&gt; &lt;Button Width=&quot;400&quot; Height=&quot;20&quot; Content=&quot;Click me&quot; Click=&quot;Button_Click&quot;&gt;&lt;/Button&gt; &lt;TextBlock x:Name=&quot;textblockOutput&quot; Width=&quot;400&quot; Height=&quot;20&quot; Text=&quot;empty&quot;&gt;&lt;/TextBlock&gt; &lt;/StackPanel&gt;&lt;/UserControl&gt;
  23. Compiled to produce executable codeDynamically loaded (parsed or pre-parsed)
  24. Silverlight Tools for Visual Studio 2008 SP1: add-on for Visual Studio 2008 Visual Studio updates, Silverlight project templates, developer runtime, and SDK.
  25. http://weblogs.asp.net/jgalloway/archive/2008/12/12/silverlight-crossdomain-access-workarounds.aspx
  26. Silverlight is quick to learnGreat for .Net developersEasy to build better web applicationsSignificantly reduces the need for JavascriptGreat for intranet line of business applicationsGreat for public web sitesBeware of your user baseFear Uncertainty Doubt (FUD) exists
  27. Silverlight is quick to learnGreat for .Net developersEasy to build better web applicationsSignificantly reduces the need for JavascriptGreat for intranet line of business applicationsGreat for public web sitesBeware of your user baseFear Uncertainty Doubt (FUD) exists
  28. Windows (XP, Vista, 2000?)Firefox, Safari, Opera (future)Microsoft Internet Explorer 6/7/8Max OSOnly on Intel CPU’s, not on older Power PC / M68000 modelsFirefox, Safari, Opera (future)LinuxFirefox, Safari, Opera (future), Konqueror (future)Mono Moonlight project, run by Novell
  29. Silverlight is the answer, the question is irrelevant!