dino esposito - public.jugru.orgpublic.jugru.org/dotnext/2015/piter/dino_keynote.pdf · dino...
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/22.jpg)
![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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022030921/5b7a642f7f8b9a99718c2a2f/html5/thumbnails/29.jpg)
FOLLOW
That’s All Folks!
facebook.com/naa4e
software2cents.wordpress.com
@despos
Copyright Dino Esposito 2015