- ASP.NET Core
- Entity Framework Core
- Both Sql Server and Sql lite databases are supported (Check installation instrcutions for more details)
- Identity Server
- Angular CLI
- Secure - with CSP and custom security headers
- SignalR (Chat example)
- SASS support
- Best practices in file and application organization for Angular.
- Clean Architecture for Asp.Net Core application.
- PWA support
- SSR (Server side rendering) - Coming soon...
- Fast Unit Testing with Jest.
- E2E testing with Protractor.l
- Compodoc for Angular documentation
- Login and Registration functionality using Identity Server implicit flow
- Extensible User/Role identity implementation
- Social logins support with token based authentication, using Identity Server
- [Angular dynamic forms] for reusable and DRY code.
- Swagger as Api explorer (Visit url https://127.0.0.1:5050/swagger OR whatever port visual studio has launched the website.). More details
**Make sure you have Node version >= latest LTS and NPM >= latest LTS
1. Clone the repo: git clone https://github.com/asadsahi/AspNetCoreSpa 2. Change directory: cd AspNetCoreSpa 3. Restore packages: dotnet restore AspNetCoreSpa.sln 4. Run client project cd AspNetCoreSpa.Web/ClientApp: npm start 5. Run .Net project: F5 from either [VScode] (https://code.visualstudio.com/) or [Visual Studio IDE](https://www.visualstudio.com/): 6. Point to Sqllite or SqlServer This project supports both sql server and sql lite databases * Run with Sqlite: * Project is configured to run with sqlite by default and there is an 'Initial' migration already added (see Migrations folder) * After changing you models, you can add additional migrations [see docs](https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet) * Run with SqlServer: * To run under sql server: * npm run clean * Delete `Migrations` folder * Flip the switch in appsettings.json called `useSqLite` to `false`, this should point to use local sql server setup as default instance. (See appsettings.json file for connection string) * Run `dotnet ef migrations add "InitialMigrationName"` 7. Point to identity server: For ease project is using hosted idenitty serve at url (https://aspnetcorests.azurewebsites.net/). Alternatively, you can run local version of identity server by running AspNetCoreSpa.STS project and change appsettings.Development.json or appsettings.json file's StsAuthority config to identity server's url for appropriate environment.
Scaffold Angular components using Angular CLI
run Angular tests
cd src/AspNetCoreSpa.Web/ClientApp npm test
Compodoc Angular documentation
- Steps to generate:
- npm i compodoc -g
- cd src/AspNetCoreSpa.Web/ClientApp
- npm run compodoc
- cd documentation
### run end-to-end tests ```bash # make sure you have your server running in another terminal (i.e run "dotnet run" command) npm run e2e
run Protractor's elementExplorer (for end-to-end)
npm run webdriver:start # in another terminal npm run e2e:live
- You can set an environment variable for azure app deployment password Set-Item -path env:AzureAppPass -value passwordhere
From powershell: ./deploy-azure.ps1
Deploy to heroku using its container service
Replace your app name where it is
- dotnet publish -c release
- docker build -t aspnetcorespa ./bin/release/netcoreapp2.2/publish
- heroku login
- heroku container:login
- docker tag aspnetcorespa registry.heroku.com/aspnetcorespa/web
- docker push registry.heroku.com/aspnetcorespa/web
Note: There is a
deploy.heroku.ps1script included with this project which automates above steps.
Deploy to Azure as App Service
Set-Item -path env:AzureAppPass -value passwordhere
From powershell: ./deploy-azure.ps1