m.GetUser).Return(new User("Pelle")); var service = new UserService(repos);"> m.GetUser).Return(new User("Pelle")); var service = new UserService(repos);">
Ladda ner presentationen
Presentation laddar. Vänta.
1
ASP.NET MVC4 + NoSQL = Major Awesomness
2
IoC Container
3
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; } //prod var repos = new UserRepos("ConStr"); var service = new UserService(repos); var user =service.Create("Jonas", "Gauffin"); //test var repos = Mock.Create ().When(m => m.GetUser).Return(new User("Pelle")); var service = new UserService(repos);
4
ADO.NET 99% runtime fel DataSets & DataTables Databas-specifik kod (både SQL + drivers) Stor del av tiden läggs på SQL-frågor och komma ihåg vad DataSets innehåller
5
ORM-lager 99% kompileringsfel Mycket "magiskt" Tydliga fel är mycket viktigt Stor del av tiden läggs på mappningarna och tyda felmeddelanden
6
NoSQL Dina klasser ÄR databasen = all tid läggs på utveckling ps: dokument = tabell KeyValue / Document / Graph
7
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
8
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 Comments { get; set; } }
9
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." }]
10
Sharding
11
RavenDb.ToCode()
12
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
13
ASP.NET MVC Dependency- Resolver ModelMetadata Provider ModelValidator Provider ActionFilter Controller Activator ActionResult Routing VirtualPath Provider Areas Exception Filter
14
Bundles För styleheets och scripts Slår ihop (javascript1.js +.. + javascript32.js = bigfat.js) Minifierar (STOR blir liten) Cachar ("cache is king")
15
Recipies Förenkla vanligt förekommande uppgifter i MVC o Egen vy-wizard anpassad efter företags design o Controllers som följer företagets mall o Domänmodel/Vymodell utan mappningsverktyg En mer lättviktig integration i Visual Studio o Skapa GUI wizards o Wrappar vanliga VStudio SDKn
16
Anpassning för mobiler Specifika vyer/layouter för mobiler o Kan anpassa per mobil (User-Agent) o Letar automatiskt efter korrekt vy o (_layout.Mobile.cshtml / Index.Mobile.cshtml) Kan toggle renderingsläge jQuery mobile
17
K O D
18
Tack! Jonas Gauffin Sogeti jonas.gauffin@sogeti.se http://blog.gauffin.org
19
Länkar RavenDB http://ravendb.net ASP.NET MVC4 http://bit.ly/tXk6bR Document Design (NoSQL) http://bit.ly/tn32IU Griffin.MvcContrib http://bit.ly/tv6o6J
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.