+ All Categories
Home > Technology > Asp net mvc4_no_sql

Asp net mvc4_no_sql

Date post: 27-Jan-2015
Category:
Upload: jgauffin
View: 119 times
Download: 4 times
Share this document with a friend
Description:
Min presentation från Sogeti Inspiration Day gällande ASP.NET MVC4 och RavenDb
Popular Tags:
19
ASP.NET MVC4 + NoSQL = Major Awesomness
Transcript
Page 1: Asp net mvc4_no_sql

ASP.NET MVC4 + NoSQL

= Major Awesomness

Page 2: Asp net mvc4_no_sql

IoC Container

Page 3: Asp net mvc4_no_sql

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

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

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

NoSQL

Dina klasser ÄR databasen = all tid läggs på utveckling

ps: dokument = tabell

KeyValue / Document / Graph

Page 7: Asp net mvc4_no_sql

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

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

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

Sharding

Page 11: Asp net mvc4_no_sql

RavenDb.ToCode()

Page 12: Asp net mvc4_no_sql

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

ASP.NET MVC

Dependency-Resolver

ModelMetadataProvider

ModelValidatorProvider

ActionFilterControllerActivator

ActionResult

Routing

VirtualPathProvider

AreasException

Filter

Page 14: Asp net mvc4_no_sql

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

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

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

K O D

Page 18: Asp net mvc4_no_sql

Tack!

Jonas GauffinSogeti

[email protected]://blog.gauffin.org

Page 19: Asp net mvc4_no_sql

Länkar

RavenDBhttp://ravendb.net

ASP.NET MVC4http://bit.ly/tXk6bR 

Document Design (NoSQL)http://bit.ly/tn32IU 

Griffin.MvcContribhttp://bit.ly/tv6o6J 


Recommended