Download - Rebus er ingen gåde

Transcript
Page 1: Rebus er ingen gåde

er  ingen  gåde.......  

Mogens  Heller  Grabe  

Page 2: Rebus er ingen gåde

Agenda!•  Hvad er dit problem?!•  Hvordan kan det løses?!•  Rebus!!!Slides!!+ snak!!+ kode!

Page 3: Rebus er ingen gåde

Mogens Heller Grabe!!!!

[email protected]!@mookid8000!

http://mookid.dk/oncode!

Page 4: Rebus er ingen gåde

Hvad er dit problem?!

Page 5: Rebus er ingen gåde

For eksempel:!public class Køb : FinansielTransaktion {

public void Bogfør() { // (....) foreach(var d in Pantebrev.Debitorer) { d.TilmeldTilCprMatch(); d.InhentKreditstatus(); } foreach(var k in Pantebrev.Kauti(...)

}

Page 6: Rebus er ingen gåde

Long-lived transactions...!

Page 7: Rebus er ingen gåde

begin tran!

commit tran!

DoThis()!

DoThat()!

Page 8: Rebus er ingen gåde

begin tran!

commit tran!

DoThis()!

DoThat()!

commit tran!begin tran!

?!

Page 9: Rebus er ingen gåde

Async Reliable Messaging!

Page 10: Rebus er ingen gåde

Messaging!

Page 11: Rebus er ingen gåde

Reliable!

Page 12: Rebus er ingen gåde

Async!

Page 13: Rebus er ingen gåde
Page 14: Rebus er ingen gåde

Windows FTW!!1!

Page 15: Rebus er ingen gåde

Hvad er så det der “service bus” for noget?!

Page 16: Rebus er ingen gåde
Page 17: Rebus er ingen gåde
Page 18: Rebus er ingen gåde

Køkultur!

Page 19: Rebus er ingen gåde

Request/reply!

Page 20: Rebus er ingen gåde

Publish/subscribe!

Page 21: Rebus er ingen gåde

Process manager!

Page 22: Rebus er ingen gåde

NServiceBus!

Page 23: Rebus er ingen gåde

MassTransitRhino Service Bus!

Page 24: Rebus er ingen gåde

hmmm...!

Page 25: Rebus er ingen gåde

Rebus!•  Første mål:!– Request/reply + publish/subscribe!– Lavet efter NServiceBus-modellen!– Bedre fejlbeskeder!

Page 26: Rebus er ingen gåde

~ 400 linjer!!!

Page 27: Rebus er ingen gåde

Simpel og intuitiv konfigurationshistorie!

Page 28: Rebus er ingen gåde

Få, velvalgte features!

Page 29: Rebus er ingen gåde

Ingen doodleware!

Page 30: Rebus er ingen gåde

Rebus Core kun afhængig af .NET 4 BCL!

Page 31: Rebus er ingen gåde

Integration m. 3.partslibs via små, fokuserede assemblies!

Page 32: Rebus er ingen gåde

De bedste fejlbeskeder!

Page 33: Rebus er ingen gåde

Lav friktion!

Page 34: Rebus er ingen gåde

Rebus!•  Version 0.11.1-alpha!•  Ikke længere ~ 400 linjer!

Page 35: Rebus er ingen gåde

Rebus!•  Apache License v. 2!•  Kode på GitHub:

http://github.com/mookid8000/Rebus !

Page 36: Rebus er ingen gåde

Asger  Hallas  

@asgerhallas  

Rasmus  Kromann-­‐Larsen  @rasmuskl  

Contributors!

Dig?  

Page 37: Rebus er ingen gåde

Rebus!•  install-package rebus –pre!•  evt. via!– rebus.castle.windsor!– rebus.structuremap!– rebus.mongodb!– rebus.ravendb!– rebus.log4net!–  (...)!

Page 38: Rebus er ingen gåde

Eksempel!•  Lillebitte kommunikation

mlm. 2 processer!

Page 39: Rebus er ingen gåde

Eksempel!•  Et vaskeægte

integrationsscenarie!

Page 40: Rebus er ingen gåde
Page 41: Rebus er ingen gåde
Page 42: Rebus er ingen gåde
Page 43: Rebus er ingen gåde
Page 44: Rebus er ingen gåde
Page 45: Rebus er ingen gåde
Page 46: Rebus er ingen gåde

Hvad nu?!

Battle-hardening!Distributør!Gateway!

(+ det løse)!

Page 47: Rebus er ingen gåde
Page 48: Rebus er ingen gåde

Mogens Heller Grabe!!!!

[email protected]!@mookid8000!

http://mookid.dk/oncode!

Tak for opmærksomheden!!

Page 49: Rebus er ingen gåde

Evaluering:  hAp://bit.ly/cd2012c4  

Page 50: Rebus er ingen gåde

Image credits!•  Lyserød pistol: http://www.desantisholster.com/desantis-blog/girl-meets-gun !•  Plastikkæder: http://www.stanchionwholesaler.com/products/chain/mc_000 !•  Trollface: http://www.thebuzzmedia.com/troll-face-high-resolution/ !•  Eat SOAP: http://narwhaler.com/img/b7/h/eat-soap-b7HC4R.jpg !•  Just soap:

http://kinlane-productions.s3.amazonaws.com/api-evangelist/soap.gif !