11
Knowledg e. People . Solutions . Building HTTP-based .NET components you can host anywhere Dennis Doomen (@ddoomen) 16-03-2022

Building autonomous components with OWIN, PSake, NuGet, GitVersion and Swagger

Embed Size (px)

Citation preview

Knowledge.People.Solutions.

15-04-2023

Building HTTP-based .NET components you can host anywhere

Dennis Doomen (@ddoomen)

Marella van der Klauw
Deze slide heeft een animatie

Aviva Solutions

www.avivasolutions.nl

About Me

Dennis Doomen

The Continuous Improver

2

• 18 years in this profession• C++ origins but since 2001 dedicated

to C# and .NET• Loves TDD/BDD, DDD, Event Sourcing,

CQRS, OO, Design Patterns, Architecture, Scrum/XP/Kanban, Application Lifecycle Management

• Occasional Speaker• www.csharpcodingguidelines.com • www.fluentassertions.com • Find me here

• www.continuousimprover.com • DZone MVB• @ddoomen

DemoThe simplest OWIN demo possible

Client

IIS

ConsoleWinSvc

Unit Test

HTTP request

HTTP response

Middlewareenv

handlernext

Middleware

IDictionary<string, object>

Func<IDictionary<string, object>, Task>

Task

Func<Func<IDictionary<string, object>, Task>, Func<IDictionary<string, object>, Task>

>

The OWIN Pipeline

DemoBuilding a real component using

OWIN, NuGet, Psake, ILMerge, Swagger and Gitversion

1. Simple console app2. Ship as class library3. Ship as NuGet package4. Psake builds5. GitFlow versioning6. Convert to OWIN7. OWIN-based testing8. Swagger9. Internalizing dependencies10.Custom settings

Summary

Invaluable Resources

• Piercer demo codehttps://github.com/dennisdoomen/piercer

• Katana / DNX 5 bridgehttps://github.com/damianh/LimitsMiddleware/blob/dnx/src/LimitsMiddleware.AppBuilderExtensions/AppBuilderExtensions.ConnectionTimeout.cs

• Official OWIN gitter.im roomhttps://gitter.im/owin/owin

• Liblog – a logging framework for library devshttps://github.com/damianh/LibLog

• Psakehttps://github.com/psake/psake

• GitVersionhttps://github.com/ParticularLabs/GitVersion

• Swashbuckle – Swagger for .NEThttps://github.com/domaindrivendev/Swashbuckle

Aviva Solutions

www.avivasolutions.nl

How to find me?

Dennis Doomen

Principal Consultant

8

• @ddoomen• dennis.doomen@avivasolution

s.nl• www.continuousimprover.com• www.csharpcodingguidelines.c

om• github.com/dennisdoomen• www.fluentassertions.com

15-04-2023

?@ddoomen

15-04-2023

Thanks!

Knowledge.People. Solutions.

Marella van der Klauw
Deze slide heeft een animatie