Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit...

28
Der Framework Zoo Technologie-Stack für moderne Webanwendungen mit .NET Holger Velke mediendesign AG

Transcript of Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit...

Page 1: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Der Framework Zoo Technologie-Stack für moderne Webanwendungen mit .NET

Holger Velke mediendesign AG

Page 2: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2

Motivation und Ziel

• Projekt – Neue Webapp From Scratch • Chance neue Technologien / Frameworks / Bibliotheken

einzusetzen

• Technologie-Auswahl

• Unser Fazit

• Ihre Erfahrungen

Page 3: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 3

Rahmenbedingen des Projekts

• Web-Applikation (Kundenportal) • Produktinformationen (statisch, öffentlich)

• Benutzerbereich (dynamisch, mit Auth.)

• Schulung

• Selbst-Management

• Zielgruppe • Kunden (B2C)

• Jung – Alt

• Endgeräte • Mobile / Tablet / Desktop

• Technologie am Server • .NET / IIS

Page 4: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 4

Anforderungen an Webanwendung

• Responsive Webdesign (Desktop, Tablet & Mobile)

• Gute Bedienbarkeit (UX)

• Modernes, schnelles User-Interface

• Skalierbar

Page 5: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 5

Schrittweise Technologie-Auswahl

• Web Framework

• CSS Framework

• Stylesheet-Sprache

• JavaScript-Framework

• Userverwaltung

• ORM

• DI-Container

Page 6: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 6

Technologie-Stack

Web Framework

CSS Framework

Stylesheet-Sprache

JavaScript-Framework

Userverwaltung

ORM

DI-Container

Page 7: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 7

Web Framework

• technologische Anforderung (Kunde) • .NET Framework

• IIS

• Betrachtete Frameworks • ASP.NET Web Forms (http://www.asp.net/web-forms)

• ASP.NET MVC (http://www.asp.net/mvc)

Page 8: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 8

Web Framework

• ASP.NET Web Forms (http://www.asp.net/web-forms)

HTML wird von Steuerelementen erzeugt

Stateful

Schlechte Testability

Mehr Erfahrung im Entwickler-Team

• ASP.NET MVC (http://www.asp.net/mvc)

Volle Kontrolle über HTML

Entwicklungsprozess – UX-Rolle

Stateless

Gute Testability

Web API

Page 9: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 9

Technologie-Stack

Web Framework

ASP.NET MVC 5

CSS Framework

Stylesheet-Sprache

JavaScript-Framework

Userverwaltung

ORM

DI-Container

Page 10: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 10

CSS Framework

• Relevante Anforderungen • Responsive Webdesign

• Modernes, schnelles User-Interface

• Betrachtete Frameworks • Bootstrap 3 (http://getbootstrap.com/)

• Foundation 5.5 (http://foundation.zurb.com/)

• 48 Frameworks im Vergleich: • http://usablica.github.io/front-end-frameworks/compare.html?v=2.5

Page 11: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 11

CSS Framework

• Bootstrap 3 (http://getbootstrap.com/) 12 spaltiges Grid

Erfahrung im Team

Built-in MVC 5

• Foundation 5.5 (http://foundation.zurb.com/) 12 spaltiges Grid

Page 12: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 12

Technologie-Stack

Web Framework

ASP.NET MVC 5

CSS Framework

Bootstrap 3

Stylesheet-Sprache

JavaScript-Framework

Userverwaltung

ORM

DI-Container

Page 13: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 13

Stylesheet-Sprache

• Betrachtete Stylesheet-Sprachen • CSS (http://www.w3.org/Style/CSS/)

Erfahrung im Team

• LESS (http://lesscss.org/)

Bootstrap 3 nutzt LESS

• SASS (http://sass-lang.com/)

• Nicht betrachtet • Stylus (http://learnboost.github.io/stylus/)

Page 14: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 14

Technologie-Stack

Web Framework

ASP.NET MVC 5

CSS Framework

Bootstrap 3

Stylesheet-Sprache

LESS

JavaScript-Framework

Userverwaltung

ORM

DI-Container

Page 15: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 15

JavaScript-Framework

• Relevante Anforderungen • Modernes, schnelles User-Interface

• Betrachtete Bibliotheken • jQuery (http://jquery.com/)

• Angular JS (https://angularjs.org/)

• 29 Frameworks im Vergleich

• https://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

Page 16: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 16

JavaScript-Framework

• jQuery (http://jquery.com/) Erfahrung im Team

Bootstrap 3 basiert auf jQuery

• Angular JS (https://angularjs.org/) Single Page Webapp

Page 17: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 17

Technologie-Stack

Web Framework

ASP.NET MVC 5

CSS Framework

Bootstrap 3

Stylesheet-Sprache

LESS

JavaScript-Framework

jQuery (+Angular JS)

Userverwaltung

ORM

DI-Container

Page 18: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 18

Userverwaltung

• Relevante Anforderungen • Benutzerbereich mit Authentifizierung

• Betrachtete Lösungen • ASP.NET Identity (http://www.asp.net/identity)

Erweiterbar

Kein Admin-UI

• OpenLDAP

Page 19: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 19

Technologie-Stack

Web Framework

ASP.NET MVC 5

CSS Framework

Bootstrap 3

Stylesheet-Sprache

LESS

JavaScript-Framework

jQuery (+Angular JS)

Userverwaltung ASP.NET Identity

ORM

DI-Container

Page 20: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 20

ORM

• Betrachtet • Entity Framework (https://msdn.microsoft.com/de-

de/data/ef.aspx)

Erfahrung im Team

Code First-Migrationen

• NHibernate (http://nhibernate.info/)

Erfahrung im Team

19 ORMs für .NET https://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#.NET

Page 21: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 21

Technologie-Stack

Web Framework

ASP.NET MVC 5

CSS Framework

Bootstrap 3

Stylesheet-Sprache

LESS

JavaScript-Framework

jQuery (+Angular JS)

Userverwaltung ASP.NET Identity

ORM Entity Framework

DI-Container

Page 22: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 22

DI-Container

• Betrachtete DI-Container • Unity (https://github.com/unitycontainer/unity)

Erfahrung im Team

• Nicht betrachtete • Castle Windsor (http://www.castleproject.org/projects/windsor/)

• Spring.NET (http://www.springframework.net/)

• Ninject (http://www.ninject.org/)

• Vergleich von 31 Produkten unter

http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison

Page 23: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 23

eingesetzter Technologie-Stack

Web Framework

ASP.NET MVC 5

CSS Framework

Bootstrap 3

Stylesheet-Sprache

LESS

JavaScript-Framework

jQuery (+Angular JS)

Userverwaltung ASP.NET Identity

ORM Entity Framework

DI-Container Unity

Page 24: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 24

Erfahrungen und Ausblick

Umsetzung des Projekt läuft noch; bis jetzt

grundsätzlich gute Erfahrungen

Gute Trennung von UI-Design und Logik

(ASP.NET MVC, bootstrap, LESS)

Schlechte Refactoring-Unterstützung von Visual

Studio • Für JS-Code (jQuery, (Angular JS))

• Für Variablen in eingebundenen Partials

UI-Interaktivität ohne Posts nur per JS

Page 25: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 25

Ausblick

• Bootstrap 4 (alpha seit 2015-08) basiert auf SASS

• ASP.NET 5 – dependency injection support • Kein DI-Container mehr notwendig

• ASP.NET MVC 6

• Ab Q1 2016 (https://github.com/aspnet/Home/wiki/Roadmap)

Page 26: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 26

Technologie-Stack (2016)

Web Framework

ASP.NET MVC 6

CSS Framework

Bootstrap 4

Stylesheet-Sprache

SASS

JavaScript-Framework

jQuery (+Angular JS)

Userverwaltung ASP.NET Identity

ORM Entity Framework

DI-Container [via ASP.NET 5]

Page 27: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 27

Erfahrungsaustausch

• Welche Technologien / Frameworks / Bibliotheken

nutzen Sie? Wie Sieht Ihr Technologie-Stack aus?

• Welche Erfahrungen haben Sie damit gemacht? Wo

gibt es Änderungs- / Verbesserungsbedarf?

Web Framework

CSS Framework

Stylesheet-Sprache

JavaScript-Framework

Userverwaltung

ORM

DI-Container

Page 28: Der Framework Zoo€¦ · Herbstcampus 2015 – Technologie-Stack für moderne Webanwendungen mit .NET 2 Motivation und Ziel •Projekt – Neue Webapp From Scratch •Chance neue

Vielen Dank!

Holger Velke mediendesign AG