dino esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · dino...

29
Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Upload: trinhtram

Post on 20-Aug-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Dino Esposito

dotNEXT St.Petersburg

Courage of Things Knowing Things vs. Just Being a Geek

Page 2: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Listen dear, in your life always manage to learn a trade and all of its tricks.

—My GrandMa Farmer

Page 3: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Internet of ThingsThe Internet of Things (IoT) is a scenario in

which objects, animals or people are provided with unique identifiers and the ability to transfer data

over a network without requiring human-to-human or human-to-computer interaction.

Page 4: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Internet of GeeksThe Internet of Geeks (IoG) is a scenario in

which developers, fan-boys, experts are provided with early content and the ability to access

builds over a network without requiring human-to-human or human-to-computer interaction.

Page 5: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Courage of ThingsThe Courage of Things (CoT) is a scenario in which developers learn to do things and don’t

commit to solve problems experts told they have or are going to have.

Page 6: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

EVENT SOURCINGThe ideas of event sourcing are not new, systems were typically built this way in mainframes far before SQL databases came along. BTW, databases work with event sourcing internally. They just call it differently or just don’t name it.

Dino, how much event sourcing do you do?

Gosh! I’ve been doing event sourcing and I

didn’t know!

Page 7: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

CommonSense 2.0

1. Open-source 2. Fully testable 3. Cross-platform 4. Scalable and for the cloud 5. Fast and small

Also available for Mac/Linux

Page 8: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Web Forms

Silverlight

Windows Forms

Still solve problemsStill let customers do things

No programmed obsolescence

Page 9: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

ObsoleScience 2.0Also available for Mac/Linux

1. Open-source 2. Fully testable 3. Cross-platform 4. Scalable and for the cloud 5. Fast and small

Page 10: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Grandma’s Wisdom

Wait to have a problem before you look for a solution

Traveling show. Popular especially in the 1800s, offered varied entertainment between the acts of which medicines and nostrums were peddled.

For example: elixir of life, natural remedies, fantastical oddities, exceptional contraptions, …

Page 11: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Courage of ThingsNot because something is touted as the next

big thing it means that it will work for you.

AngularJava Script

Micro Services

Functional Languages NoSQL

Page 12: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Courage of ThingsNot because something is touted as the next

big thing it means that it will work for you.

CQRSDDD UX MessagesCloud Design

With some exceptions.

Page 13: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Design driven by the domainDesign driven by the UXBehavior-driven implementationMessage-driven business logic

Page 14: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

At Work Defining the Ubiquitous Language

Cancel the booking

Checkout Extend the job orderAccept the invoice

Delete the booking

Submit the orderUpdate the job orderCreate the invoice

Set state of the game Start/Pause the game

Page 15: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Context map is the diagram that provides a comprehensive view of the system being designed

Backoffice

Core DomainU

D

U

D

Weather Forecasts

(external)

Club Site

U

DACL

Partner

Customer/Supplier Customer/Supplier Conformist

Page 16: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

NICE User Interface

User ExperienceMy Mom’s

UX-DRIVEN DESIGN UX IS NOT LIKE UI

Page 17: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

BLACK BOX

Page 18: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

BUS

Command

…Saga(s) Handler(s)

Event

Event Store

MESSAGE-BASED BUSINESS LOGIC

Page 19: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

C Q R S

Page 20: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Query ▪ Returns data ▪ Doesn’t alter

state

Command ▪ Alter state ▪ Doesn’t return

data

Separation

Responsibility

Bertrand Meyer called it

Command/Query Separation back in the 1980s

Page 21: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Domain layer

Presentation layer

Application layer

Infrastructure layer

Canonical Layered Architecture

Domain layer

Presentation layer

Application layer

Infrastructure layer

Commands Queries

Data access

+ DTODomain layer Domain layer

CQRS

Page 22: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek
Page 23: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

OK. Let’s talk ASP.NET5 now.

Page 24: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

system.web is the root of all evil

Run cross-platform on Windows, Mac and Linux

Built on .NET Core, which supports true side-by-side app versioning

New tooling that simplifies modern Web development

Single aligned web stack for Web UI and Web APIs

Integrated support for creating and using NuGet packages

Built-in support for dependency injection

Ability to host on IIS or self-host in your own process

Page 25: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

Architectural Changes

Core web framework • Much leaner and more

modular • Features implemented as

NuGet modules • Have just what you need

Page 26: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

and continues …

🔧 means no docs here yet

Page 27: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

ASP.NET landscape

ASP.NET as today

ASP.NET5 on full .NET FX

ASP.NET5 on .NET Core

ASP.NET5 on .NET X-Platform

system.web

DNX

Page 28: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

CSAAS Common Sense As A Service

Page 29: Dino Esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · Dino Esposito dotNEXT St.Petersburg Courage of Things Knowing Things vs. Just Being a Geek

FOLLOW

That’s All Folks!

facebook.com/naa4e

software2cents.wordpress.com

[email protected]

@despos

Copyright Dino Esposito 2015