optional: Basiswissen HTML5, CSS3, DOM, AJAX, REST werden geschult, sofern noch nicht bekannt
Konzepte moderner Web-, Mobilanwendung
- Moderne Webarchitekturen
Single-Page-Web-Applications (SPAs) vs. Multi-Page-Web-Applications (MPAs)
Server-Side-Pre-Rendering
Aufbau von Client und Server
Mobile Apps mit Webtechniken
Cross-Platform-Apps mit Webtechniken
Pattern für die Benutzeroberfläche (MVVM, MVC, MVP)
- Kommunikation
REST-Kommunikation mit HTTP-Diensten/Web-APIs (XML, JSON)
Benachrichtigungen/Push ("Echtzeitfähigkeit") mit Websockets
- User Experience
Usability ähnlich wie bei Desktop-Anwendungen
Responsive Web Design (RWD)
Offline-Fähigkeit
Progressive Web Apps (PWA)
Progressive Enhancement
Architektur einer modernen Web- und Mobilanwendung
- Aufbau des Servers
- Aufbau des Clients
- Kommunikationsarten
Unterschiede zwischen der Entwicklung mit .NET und Webtechniken
- Programmiersyntax
- Frameworks
- Werkzeuge
- Support
Auf Anfrage
JavaScript-Frameworks
- Überblick über die Frameworks
- Einbinden von JavaScript-Frameworks
Werkzeuge
- Web-Editoren wie Visual Studio, Visual Studio Code (VSCode), Webstorm/IntelliJ und Eclipse
- Sinnvolle Erweiterungen des Webeditors (z.B. Plug-Ins für VSCode, Web Essentials für Visual Studio)
- Aufbau eines Projekts/Projektstruktur mit Projekt-Scaffoldung-Werkzeugen, z.B. Yeoman oder Framework-spezifische CLI
- Ausführungsumgebungen: node.js und Browser
- Transpilation, z.B. von TypeScript zu JavaScript
- Präprozessoren, z.B. SASS/SCSS/LESS/Stylus für CSS
- Debugger z.B. in Visual Studio, VSCode, Webstorm, Eclipse
- Debugger in Browsern z.B. in Chrome
- Paketmanager, z.B. NPM, Yarn bower und nuget
- Bundling, Lazy Loading und Hot Reloading mit Vite, Webpack, RequireJS oder SystemJS
- Statische-Codeananalyse mit Lintern, z.B. ESLint, JSLint, JSHint, TSLint
- Build-Automatisierung mit NPM-Skripten, gulp und grunt
- Bundling mit Vite, Webpack, Parcel oder Browsify
- Testautomatisierung, z.B. Jest, Mocha, Qunit, Cypress, Selenium, Nightwatch, WebdriverIO, Protractor, TestCafe, Playwright, Puppeteer, Chai, Expect.js, Code Coverage mit "Istanbul"
- Continuous Integration / Continuous Delivery, z.B. mit GitHub, GitLab, Azure DevOps
Optional: Framework-spezifische CLI-Werkzeuge wie z.B. Angular CLI, Vue CLI, React CLI oder Cordova CLI
Optionale Themen:
Optional: Vorstellung von Webclientfamework nach vorheriger Absprache mit dem Kunden, z.B.
- Angular
- Vue.js
- React
- Svelte
- Hilfsbibliotheken: z.B. Datumsverarbeitung mit moment.js, Filtern/Sortieren mit underscore.js, Promises mit Q, Reactive Extensions for JavaScript (RxJS)
- (andere auf Anfrage)
Optional: Architektur und Techniken auf dem Webserver:
- Webseiten mit ASP.NET MVC oder ASP.NET Webforms
- optional: Integration von ASP.NET MVC und ASP.NET Webforms in einer Anwendung
- Leichtgewichtige Services mit ASP.NET Web API
- Kommunikation zwischen Client und Server über AJAX
- Benachrichtigungs-Szenarien mit ASP.NET SignalR (Websockets versus Polling)
- Open Data Protocol (Odata) / WCF Data Services
- optional: WCF Rest API / WCF RIA Services
Optional:Sicherheit in modernen Webanwendungen
- Typische Angriffszenarien (OWASP Top 10)
- Schutzmechanismen
Optional:Authentifizierung und Autorisierung in modernen Webanwendungen
- Security für Web-Anwendungen und Services
- Login mit Facebook, Google, Twitter, Microsoft Account & Co.
- Single Sign-on
- OAUTH 2.0/2.1 und OpenId Connect
Optional:Anwendungspraxis:
- Single-Page-Web-Application erstellen
- Mobile Webanwendungen erstellen
- Hybrid-Anwendungen mit Responsive Web Design erstellen
- Offlinefähige Webanwendungen erstellen
- Benachrichtigungen/Push (Rückkanal von Server zu Browser)
- Hintergrund-Aufgaben mit Webworkern erstellen
- Erstellung einer Cross-Platform-Anwendung für Windows, Windows UWP, Linux, MacOS, iOS und Android mit Electron und Cordova