m.GetUser).Return(new User("Pelle")); var service = new UserService(repos);"> m.GetUser).Return(new User("Pelle")); var service = new UserService(repos);">

Presentation laddar. Vänta.

Presentation laddar. Vänta.

ASP.NET MVC4 + NoSQL = Major Awesomness. IoC Container.

Liknande presentationer


En presentation över ämnet: "ASP.NET MVC4 + NoSQL = Major Awesomness. IoC Container."— Presentationens avskrift:

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


Ladda ner ppt "ASP.NET MVC4 + NoSQL = Major Awesomness. IoC Container."

Liknande presentationer


Google-annonser