1 / 19

ASP.NET MVC4 + NoSQL

ASP.NET MVC4 + NoSQL. = Major Awesomness. IoC Container. Vad menas egentligen?. public class UserService {     IUserRepository _repos;     public UserService(IUserRepos repos)     {          _repos = repos;     } } //prod var repos = new UserRepos("ConStr");

aminia
Download Presentation

ASP.NET MVC4 + NoSQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.NET MVC4 + NoSQL = Major Awesomness

  2. IoC Container

  3. Vad menas egentligen? 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<IUserRepos>()                       .When(m => m.GetUser)                       .Return(new User("Pelle")); var service = new UserService(repos); public class UserService {     UserRepository _repos;     public UserService()     {          _repos = new UserRepository("myConString");     } } Går icke att testa eller byta beroende

  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 KeyValue / Document / Graph Dina klasser ÄR databasen  = all tid läggs på utveckling ps: dokument = tabell

  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<Comment> 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 • Annat nytt: • AsyncControllers + Task • Senaste Azure SDKn (sep.) • Async (ASP.NET 4.5) • WebSockets  • Prestandaförbättringar I detta seminarie: • Stöd för mobiler • Recepies • Bundles

  13. ASP.NET MVC ModelValidator Provider ModelMetadata Provider ActionResult VirtualPath Provider Dependency-Resolver Areas Exception Filter Controller Activator ActionFilter Routing

  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 • Egen vy-wizard anpassad efter företags design • Controllers som följer företagets mall • Domänmodel/Vymodell utan mappningsverktyg • En mer lättviktig integration i Visual Studio • Skapa GUI wizards • Wrappar vanliga VStudio SDKn

  16. Anpassning för mobiler • Specifika vyer/layouter för mobiler • Kan anpassa per mobil (User-Agent) • Letar automatiskt efter korrekt vy • (_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 

More Related