AN ALTERNATIVE ALT.NET Jimmy Nilsson factor10 About Jimmy Nilsson - - PowerPoint PPT Presentation

an alternative alt net
SMART_READER_LITE
LIVE PREVIEW

AN ALTERNATIVE ALT.NET Jimmy Nilsson factor10 About Jimmy Nilsson - - PowerPoint PPT Presentation

AN ALTERNATIVE ALT.NET Jimmy Nilsson factor10 About Jimmy Nilsson Primarily a developer/architect Blog: jimmynilsson.com/blog/ Twitter: twitter.com/jimmynilsson Author of Applying Domain- Driven Design and Patterns and .NET


slide-1
SLIDE 1

AN ALTERNATIVE ALT.NET

Jimmy Nilsson factor10

slide-2
SLIDE 2

About Jimmy Nilsson

Primarily a developer/architect Blog: jimmynilsson.com/blog/ Twitter: twitter.com/jimmynilsson Author of ”Applying Domain- Driven Design and Patterns” and ”.NET Enterprise Design” Co-founder and CEO of factor10

slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9

BDD helps with a red thread

  • The step definitions points out which unit test

to write now

  • That unit test points out what real code to

write now

  • When done, check that BDD test is green too
slide-10
SLIDE 10

What is DDD?

Domain-Driven Design is an approach to the development of complex software in which we:

  • Focus on the core domain
  • Explore models in a creative collaboration of

domain practitioners and software practitioners

  • Speak a ubiquitous language within an explicitly

bounded context

http://domainlanguage.com/ddd/patterns/DDD_Reference_2011-01-31.pdf

slide-11
SLIDE 11

Value Objects

slide-12
SLIDE 12

Like this?

var stinasÄgg = 7 * 12; var pellesÄgg = 3 * 20; var antaletIÄggkorgen = stinasÄgg + pellesÄgg; Assert.AreEqual(144, antaletIÄggkorgen);

slide-13
SLIDE 13

Or more like this?

var stinasÄgg = Antal.Dussin(7); var pellesÄgg = Antal.Tjog(3); var antaletIÄggkorgen = stinasÄgg + pellesÄgg; Assert.AreEqual(144, antaletIÄggkorgen.IStyck);

slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16

Workflow example

slide-17
SLIDE 17

Filespec example

slide-18
SLIDE 18

Checklist example

slide-19
SLIDE 19
slide-20
SLIDE 20

NoJS example

slide-21
SLIDE 21

Checklist example again

slide-22
SLIDE 22
slide-23
SLIDE 23

Custom storage example

slide-24
SLIDE 24

public Project GetById(Guid id) { return storageMetadata.GetById(id); } public IEnumerable<ProjectForListing> ThatHasCustomerWithName (string customerName) { return storageMetadata.GetListByCriteria<ProjectForListing> ("Customer_Name", customerName); } projects.GetCreateScript();

slide-25
SLIDE 25

Summary

ALT.NET was important But the potential is way bigger Let’s unleash it!