How to build applications using a domain driven architecture

2,406
-1

Published on

Our presentation deck from the #GLSEC13 conference on 4/29/2013. Learn how to build modern, scalable and malleable greenfield apps the right way from the beginning.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,406
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
44
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

How to build applications using a domain driven architecture

  1. 1. How to BuildBusinessApplicationsLeveraging aDomain DrivenArchitecture
  2. 2. Who are we?•Brian Anderson• Founded OST project-based App Dev team (http://ostusa.com /@OSTgr)• 15+ years business and software development consulting experience• Crowe Chizek• SageStone -> NuSoft - > RCM Technologies• OST• Co-founder of Tourneytopia.com, PayItSquare.com andTourneyLogic.com• Twitter: @brianmatic, Github: https://github.com/brianmatic•Brian Scaturro• Consultant @OSTgr• Worked for OneUpWeb on the bay in Traverse City• Author of Paratest – https://github.com/brianium/paratest• Avid reader and open source developer• Twitter: @scaturr, Github: https://github.com/brianium
  3. 3. OST is headquartered right here in GR
  4. 4. Here we goDevelopinggreenfield apps ishardMost get locked into an architecture that doesntscale and change becomes difficult and slow asthe system grows.
  5. 5. Why does this happen so often?Too many timesapplication architectsfocus on the technicalproblems instead ofdesigning for theproblem domain.“The most significantcomplexity of manyapplications is not technical.It is in the domain itself, theactivity or business of theuser" – Evans
  6. 6. Example Architecture•Tiers• UI• Business• Data Access• Database•Does this architecturerepresent thebusiness?•No…
  7. 7. How to do it right?•Domain Driven Design•Focus on the domain model first.•What the heck is the domain model?• Official definition:• A domain model in problem solving and software engineering isa conceptual model of all the topics related to a specific problem. It describesthe various entities, their attributes, roles, and relationships, plus theconstraints that govern the problem domain•Let us just show you…
  8. 8. Let’s Model• Idea = Trello.mini• Wireframes• Domain Model
  9. 9. Onion Architecture•The domainmodel is thecore.•Build yourarchitecturearound it.
  10. 10. OST Open Source Contributions•nDriven•.Net-based•https://github.com/OSTUSA/ndriven•nDriven CLI – command line interface for creatinga nDriven boilerplate project.• https://github.com/OSTUSA/ndriven-cli•Driven•PHP-based•https://github.com/OSTUSA/driven
  11. 11. Let’s code it• nDriven – Baseline Onion Architecture Project• Setup a new project• Develop the domain model• Look at how easy it is to interact with• Make the domain model persist to a db in the Infrastructure layer• DB schema• Create a DB through a migration• Map models to DB• Leverage the Repository design pattern• Finally, build the Presentation layer• Develop against the domain model• Use an MVC framework• Users expect modern client side interactions• It has to have a responsive design that works on all devices
  12. 12. Want our code?•Reference sample application•OST Todo’s•https://github.com/OSTUSA/ost-todos•Great reference for• .Net MVC 4• Angular JS – Javascript MV-Whatever• Bootstrap• Built on nDrive
  13. 13. Q&AThank You

×