This project is an eploration of next-generation architecture based on Dotnet Core and Javascript. When I started this, it was all very bleeding edge, but by now everything is (almost) released and ready for production!
Here is an introductory blogpost
This project demonstrates many technologies in context:
- A web front-end with universal/isomorphic rendering, using React 16 and Redux, written in Typescript
- Bootstrap based UI using react-bootstrap and bootstrap-sass
- Animations and transitions using ReactTransitionGroup and Animated
- Asset pipeline driven by webpack, with Hot Module Reloading during development
- Realtime updates from the server over a SignalR Websocket connection
- Webserver based on AspNet Core 2.0, running as a standalone executable
- Automatic request and use of Let's Encrypt TLS certificates on startup
- AspNet JavascriptServices middleware driving webpack during development (requires node version 8+)
- AspNet middleware to serve gzip-compressed static assets when possible
- AspNet Identity using a custom (Orleans based) Identity Store
- Identity Server 4 based authentication
- Middleware to protect against cross site scripting
- Actor-based back-end based on Microsoft Orleans 2.0
- Using Table Storage for persisting state (install the Azure Storage emulator or configure a 'real' storage connection to run this project)
- Demo Actor implementing Event Sourcing, using the Redux pattern
- AspNet Distributed Cache service implemented against Orleans
This code should be considered experimental. It mostly works, but it has dependencies that are alpha quality, the project has several rough edges and has not been thoroughly tested. I welcome feedback!
-- Maarten