Nivo 300 ASP.NET MVC 4 Danijel Malik Artifis Danijel Malik s.p.
Nivo 300 Developer Tech Lead Developer Architect…who you? No you’re not!!! Developer Tech Lead…come on…stop it already…you’re a developer!!!! About me
Nivo 300 New features Bundling/Minification Support Database Migrations Mobile Web Web APIs Real Time Communication Asynchronous Support Works with VS 2010/.NET 4 and built-into VS11
Nivo 300 Bundling and Minification Improve loading performance of JavaScript and CSS Reduce # and size of HTTP requests Works by convention (no configuration required) Fully customizable and extensible
Nivo 300 DEMO Bundling & minification
Nivo 300 Razor improvements Razor now resolves ~/ within all standard HTML attributes From this: To
Nivo 300 Conditional Attribute Enhancements From string myClass = null; if (someCondition) { myClass = ”shinyFancy”; } } }>Content
Nivo 300 Conditional Attribute Enhancements To this: Will automatically omit attribute name if value is string myClass = null; if (someCondition) { myClass = ”shinyFancy”; } Content
Nivo 300 Database Migrations EF Code First provides a convention-over-configuration based development approach Migrations == code-oriented approach to evolve DB schema Code focused Developer friendly Can be used to generate SQL change scripts to pass off to a DBA
Nivo 300 DEMO Database Migrations
Nivo 300 Mobile Web Adaptive Rendering Use of CSS Media Queries within default project templates Display Modes Selectively adapt views based on devices Mobile Optimized Templates jQuery Mobile
Nivo 300 Mobile Web Development – A Spectrum Adaptive Rendering Display Modes Mobile Template
Nivo 300 DEMO Mobile Web
Nivo 300 DEMO Web API
Nivo 300 Web API Hosting Multiple ways to host and expose Web APIs: Within ASP.NET applications inside IIS, IIS Express, VS Web Server Self hosted within any custom app (console, Windows Service, etc) Same programming model Maximum flexibility
Nivo 300 DEMO Web API hosting
Nivo 300 Asynchronous Support Why use async on a server? Enables more efficient use of threads and server resources How does it work? Your controller class yields to ASP.NET when calling a remote resource, allowing the server thread to be re-used while you wait When remote call returns, controller is re-scheduled to complete Reduces # of threads running -> increases scalability Use of async on server is not exposed to browsers/clients -> same URL can be implemented in ASP.NET using either a synchronous or async controller
Nivo 300 Async in MVC Today public class Products : AsyncController { public void IndexAsync() { WebClient wc1 = new WebClient(); AsyncManager.OutstandingOperations.Increment(); wc1.DownloadStringCompleted += (sender, e) => { AsyncManager.Parameters[“result"] = e.Result; AsyncManager.OutstandingOperations.Decrement(); }; wc1.DownloadStringAsync(new Uri(" } public ActionResult IndexCompleted(string result) { return View(); }
Nivo 300 Async in MVC with VS 11 public class Products : Controller { public async Task IndexAsync() { WebClient web = new WebClient(); string result = await web.DownloadStringAsync(" return View(); }
Nivo 300 VPRAŠANJA? Po zaključku predavanja, prosimo, izpolnite vprašalnik. Vprašalniki bodo poslani na vaš e-naslov, dostopni pa bodo tudi preko profila na spletnem portalu konference Najlepša hvala!