asp net mvc4_no_sql
DESCRIPTION
Min presentation från Sogeti Inspiration Day gällande ASP.NET MVC4 och RavenDbTRANSCRIPT
![Page 1: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/1.jpg)
ASP.NET MVC4 + NoSQL
= Major Awesomness
![Page 2: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/2.jpg)
IoC Container
![Page 3: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/3.jpg)
Vad menas egentligen?
public class UserService{ UserRepository _repos; public UserService() { _repos = new UserRepository("myConString"); }}
Går icke att testa eller byta beroende
public class UserService{ IUserRepository _repos; public UserService(IUserRepos repos) { _repos = repos; }}
//prodvar repos = new UserRepos("ConStr");var service = new UserService(repos);var user =service.Create("Jonas", "Gauffin");
//testvar repos = Mock.Create<IUserRepos>() .When(m => m.GetUser) .Return(new User("Pelle"));var service = new UserService(repos);
![Page 4: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/4.jpg)
ADO.NET
• 99% runtime fel• DataSets & DataTables• Databas-specifik kod (både SQL + drivers)
Stor del av tiden läggs på SQL-frågoroch komma ihåg vad DataSets innehåller
![Page 5: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/5.jpg)
ORM-lager
• 99% kompileringsfel• Mycket "magiskt"• Tydliga fel är mycket viktigt
Stor del av tiden läggs på mappningarna och tyda felmeddelanden
![Page 6: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/6.jpg)
NoSQL
Dina klasser ÄR databasen = all tid läggs på utveckling
ps: dokument = tabell
KeyValue / Document / Graph
![Page 7: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/7.jpg)
NoSQL - RavenDB
• Utvecklad av nhibernate-skaparen • Använder som standard Esent• BSON för lagring• Embedded eller standalone• Sharding• Inbyggd fritextsökning (Lucene.NET)• Transaktioner• Replikering
![Page 8: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/8.jpg)
Bloggexempel - klasser
class Blog{ public string Id { get; set; } public string Author { get; set; } public string Title { get; set; } public string Url { get; set; }}
public class Post{ public string Id { get; set; } public Blog Blog { get; set; } public string Title { get; set; } public string[] Tags { get; set; } public List<Comment> Comments { get; set; }}
![Page 9: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/9.jpg)
Bloggexempel - json
blogs = [{ "Id": "blogs/1", "Author": "Jonas Gauffin", "Title": "jgauffin's coding den", "Url": "http://blog.gauffin.org"}];
posts = [{ "Id": "posts/1", "BlogId": "blogs/1", "Title": "First post", "Tags": ["code quality", "architecture", "asp.net-mvc"], "Comments": [{ "Title": "Your blog is awsome!", "Comment": "Thank you Jonas! Your blog is my favorite." }]}]
![Page 10: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/10.jpg)
Sharding
![Page 11: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/11.jpg)
RavenDb.ToCode()
![Page 12: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/12.jpg)
ASP.NET MVC4
I detta seminarie:
• Stöd för mobiler• Recepies• Bundles
Annat nytt:
• AsyncControllers + Task• Senaste Azure SDKn (sep.)• Async (ASP.NET 4.5)• WebSockets • Prestandaförbättringar
![Page 13: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/13.jpg)
ASP.NET MVC
Dependency-Resolver
ModelMetadataProvider
ModelValidatorProvider
ActionFilterControllerActivator
ActionResult
Routing
VirtualPathProvider
AreasException
Filter
![Page 14: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/14.jpg)
Bundles
För styleheets och scripts
• Slår ihop (javascript1.js + .. + javascript32.js = bigfat.js)
• Minifierar (STOR blir liten)
• Cachar ("cache is king")
![Page 15: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/15.jpg)
Recipies
• Förenkla vanligt förekommande uppgifter i MVCo Egen vy-wizard anpassad efter företags designo Controllers som följer företagets mallo Domänmodel/Vymodell utan mappningsverktyg
• En mer lättviktig integration i Visual Studioo Skapa GUI wizardso Wrappar vanliga VStudio SDKn
![Page 16: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/16.jpg)
Anpassning för mobiler
• Specifika vyer/layouter för mobilero Kan anpassa per mobil (User-Agent)o Letar automatiskt efter korrekt vyo (_layout.Mobile.cshtml / Index.Mobile.cshtml)
• Kan toggle renderingsläge• jQuery mobile
![Page 17: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/17.jpg)
K O D
![Page 19: Asp net mvc4_no_sql](https://reader033.vdocuments.net/reader033/viewer/2022061223/54c6f6f64a795937038b45b7/html5/thumbnails/19.jpg)
Länkar
RavenDBhttp://ravendb.net
ASP.NET MVC4http://bit.ly/tXk6bR
Document Design (NoSQL)http://bit.ly/tn32IU
Griffin.MvcContribhttp://bit.ly/tv6o6J