ASP.NET Core Starter Kit is a real-world boilerplate and tooling for creating single-page web applications (SPA) oriented towards progressive enhancement design, cross-platform compatability and component-based UI architecture. It is built upon best of breed technologies including .NET Core, Kestrel, EF Core, Babel, Webpack, React, Redux, CSS Modules, React Hot Loader and more. This boilerplate comes in both C# and F# flavors.
The work is being sponsored by Rollbar and Localize:
<img src="https://koistya.github.io/files/rollbar-x64.png" alt"Rollbar" width="235" height="64"> 
✓ Component-based front-end development via Webpack, CSS Modules and React (see tools/webpack.config.js)
✓ Modern JavaScript syntax (ES2015+) via Babel; modern CSS syntax (CSS3+) via PostCSS
✓ Application state management via Redux (see client/core/store.js)
✓ Universal cross-stack routing and navigation via path-to-regexp and history (see client/routes.json)
✓ Code-splitting and async chunk loading with Webpack and ES6 System.import()
✓ Hot Module Replacement (HMR) /w React Hot Loader
✓ Lightweight build automation with plain JavaScript (see run.js)
✓ Cross-device testing with Browsersync
✓ Git-based deployment to Azure App Service (see run.js/publish)
✓ 24/7 community support on Gitter or StackOverflow; customization requests on Codementor
See demo, docs | Follow us on Gitter or Twitter
. ├── /.vscode/ # Visual Studio Code settings ├── /build/ # The folder for compiled output ├── /client/ # Client-side app (frontend) │ ├── /components/ # Common or shared UI components │ ├── /utils/ # Helper functions and utility classes │ ├── /views/ # UI components for web pages (screens) │ ├── history.js # HTML5 History API wrapper used for navigation │ ├── main.js # Entry point that bootstraps the app │ ├── router.js # Lightweight application router │ ├── routes.json # The list of application routes │ └── store.js # Application state manager (Redux) ├── /client.test/ # Unit and integration tests for the frontend app ├── /docs/ # Documentation to the project ├── /public/ # Static files such as favicon.ico etc. │ ├── robots.txt # Instructions for search engine crawlers │ └── ... # etc. ├── /server/ # Web server and data API (backend) │ ├── /Controllers/ # ASP.NET Web API and MVC controllers │ ├── /Models/ # Entity Framework models (entities) │ ├── /Views/ # Server-side rendered views │ ├── appsettings.json # Server-side application settings │ ├── Startup.cs # Server-side application entry point │ └── web.config # Web server settings for IIS ├── /server.test/ # Unit and integration tests for the backend app │── jsconfig.json # Visual Studio Code settings for JavaScript │── package.json # The list of project dependencies and NPM scripts │── run.js # Build automation script (similar to gulpfile.js) └── webpack.config.js # Bundling and optimization settings for Webpack- OS X, Windows or Linux
- Node.js v6 or newer
- .NET Core SDK
- Visual Studio Code with C# extension
1. Clone the latest version of ASP.NET Core Starter Kit on your local machine by running:
$ git clone -o aspnet-starter-kit -b master --single-branch \ https://github.com/kriasoft/aspnet-starter-kit.git MyApp $ cd MyAppAlternatively, scaffold your project with Yeoman:
$ npm install -g yo $ npm install -g generator-aspnetcore $ yo aspnetcore2. Install project dependencies listed in project.json and package.json files:
$ npm install # Install both Node.js and .NET Core dependencies3. Finally, launch the web app:
$ node run # Compile and lanch the app, same as running: npm startThe app should become available at http://localhost:5000/. See run.js for other available commands such as node run build, node run publish etc.
Before you can deploy your app to Azure App Service, you need to open Web App settings in Azure Portal, go to "Deployment Source", select "Local Git Repository" and hit [OK]. Then copy and paste "Git clone URL" of your Web App into run.js/publish file. Finally, whenever you need to compile your app into a distributable format and upload that to Windows Azure App Service, simply run:
$ node run publish # Same as running: npm run publishWe work hard on keeping the project up-to-date and adding new features. Down the road, after starting a new web application project based on this boilerplate, you can always fetch and merge the latest changes from this (upstream) repo back into your project by running:
$ git checkout master $ git fetch aspnet-starter-kit $ git merge aspnet-starter-kit/master Alternatively, pull the latest version of this repository into a separate folder and compare it with your project by using a diff tool such as Beyond Compare.
Anyone and everyone is welcome to contribute to this project. The best way to start is by checking our open issues, submit a new issues or feature request, participate in discussions, upvote or downvote the issues you like or dislike, send pull requests.
- General
- .NET Core Documentation (core concepts: CoreFX, CoreCLR, Roslyn, .NET CLI tools etc.)
- ASP.NET Core Documentation (MVC, Razor, SignalR, Identity, routing, localization, caching etc.)
- Entity Framework Core Documenation (providers, models, migrations, EF CLI tools etc.)
- Facebook React Documentation (getting started, thinking in React, top-level API, component API etc.)
- Hosting
- Books
C# 6 and .NET Core 1.0: Modern Cross-Platform Development
by Mark J. Price (Mar 2016)In this book you will learn how to build cross-platform applications using C# 6 and .NET Core 1.0; how to build professional web applications with ASP.NET Core 1.0; how to improve your application's performance using multitasking; learn Entity Framework Core 1.0 and Code-First development approach; master object-oriented programming with C#; familiarize yourself with cross-device app development using the Universal Windows Platform and XAML; query and manipulate data using LINQ; protect your data by using encryption and hashing.
- React Starter Kit — Isomorphic web app boilerplate (Node.js, Express, GraphQL, React)
- Babel Starter Kit — JavaScript library boilerplate (ES2015+, Babel, Rollup)
- ASP.NET Core Starter Kit
|>F# — Web app boilerplate (F#, .NET Core, Kestrel, GraphQL, React) - Universal Router — Isomorphic router for web and single-page applications (SPA)
- Membership Database — SQL database boilerplate for web app users, roles and auth tokens
- #aspnet-starter-kit on Gitter
- @koistya on Codementor
Copyright © 2014-2016 Kriasoft. This source code is licensed under the MIT license found in the LICENSE.txt file. The documentation to the project is licensed under the CC BY-SA 4.0 license.
Made with ♥ by Konstantin Tarkus (@koistya) and contributors