- ASP.NET Core
- Entity Framework Core
- Angular 2.0.0 Final
- Webpack 2
- Bootstrap 4
- ng-bootstrap
- ng2-translate
- Typescript 2
- SASS support
- Best practices in file and application organization for Angular 2.
- Testing Angular 2 code with Jasmine and Karma.
- End-to-end Angular 2 code using Protractor.
- Istanbul for test coverage
- with Remap Istanbul for remapping Javascript to TypeScript coverage
- Type manager with Typings
- HMR (Hot Module Replacement) with Webpack
- Webpack DLL support for fast rebuilds (~ < 0.5 second)
- Typedoc for typescript documentation
- Server and client watches
- Login and Registration functionality using Asp.Net Identity
- Extensible User/Role identity implementation
- Various social login support, Follow this wiki page to see how it will work.
- Lazy loading of all routes, child routes (About page example) with basic animation example (On about page).
- Angular 2 dynamic forms for reusability and to keep html code DRY.
- Serilog with Seq support to manage structured logging.
- Swagger as Api explorer (Visit url http://localhost:5000/swagger/ui after running the application)
- .Net core sdk
- Either VSCode with C# extension OR Visual studio 2015 update 4 with .Net Core tooling
- Nodejs
Make sure you have Node version >= 5.0 and NPM >= 3
1. Clone the repo
git clone https://github.com/asadsahi/AspNetCoreSpa
2. Change directory to our repo
cd AspNetCoreSpa
3. dotnet restore
4. Install global dependencies
npm install protractor rimraf -g
5. npm install
6. Create webpack vendor manifest file for fast webpack rebuils
npm run build:vendor
7. Set appropriate environment
set ASPNETCORE_ENVIRONMENT=Development
8. Run the app
dotnet run (for single run) OR dotnet watch (in watch mode)
9. Browse using http://localhost:5000 or http://localhost:5001
npm run test
# this will also create coverage remaped to typescript files in coverage folder after test run completes
npm run watch:test
npm run docs
# this will create documentation in doc folder at the root location (open index.html file)
# make sure you have your server running in another terminal (i.e run "dotnet run" command)
npm run e2e
npm run webdriver:update
npm run webdriver:start
npm run webdriver:start
# in another terminal
npm run e2e:live