ASP. NET Core 8 and Angular Full-Stack Web Development with ASP. NET Core 8 and Angular

If you want to learn how to use ASP.NET Core with Angular effectively, this hands-on guide is for you. Improve the way you create, debug, and deploy web applications while keeping up to date with the latest developments in .NET 8 and modern Angular, including .NET Minimal APIs and the new Angular st...

Descripción completa

Detalles Bibliográficos
Otros Autores: De Sanctis, Valerio, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham : Packt Publishing [2024]
Edición:Sixth edition
Colección:Expert insight.
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009805126806719
Tabla de Contenidos:
  • Cover
  • Copyright
  • Contributors
  • Table of Contents
  • Preface
  • Chapter 1: Introducing ASP.NET and Angular
  • Technical requirements
  • Two players, one goal
  • The ASP.NET Core revolution
  • ASP.NET Core 1.x
  • ASP.NET Core 2.x
  • ASP.NET Core 3.x
  • .NET 5
  • .NET 6
  • .NET 7
  • .NET 8
  • What's new in Angular?
  • GetAngular
  • AngularJS
  • Angular 2
  • Angular 4
  • Angular 5
  • Angular 6
  • Angular 7
  • Angular 8
  • Angular 9
  • Angular 10
  • Angular 11
  • Angular 12
  • Angular 13
  • Angular 14
  • Angular 15
  • Angular 16
  • Angular 17
  • Reasons for choosing .NET and Angular
  • Summary
  • Suggested topics
  • References
  • Chapter 2: Getting Ready
  • Technical requirements
  • A full-stack approach
  • MPAs, SPAs, PWAs, and NWAs
  • Multi-page applications
  • Single-page applications
  • Progressive web applications
  • Native web applications
  • Product owner expectations
  • An example SPA project
  • Not your usual Hello World!
  • Preparing the workspace
  • Disclaimer - do (not) try this at home
  • The broken code myth
  • Stay hungry, stay foolish, yet be responsible as well
  • Setting up the project(s)
  • Installing the .NET 8 SDK
  • Checking the SDK version
  • Installing Node.js and the Angular CLI
  • Creating the Angular and ASP.NET Core project
  • Performing a test run
  • Troubleshooting
  • Architecture overview
  • Summary
  • Suggested topics
  • References
  • Chapter 3: Looking Around
  • Technical requirements
  • Solution overview
  • The ASP.NET back-end
  • Configuration files
  • Program.cs
  • appsettings.json
  • Controllers
  • WeatherForecastController
  • Introducing OpenAPI (Swagger)
  • The Angular front-end
  • The root files
  • angular.json
  • package.json
  • tsconfig.json
  • Other workspace-level files
  • The /src/ folder
  • The /src/app/ folder
  • Our first test run
  • First testing attempt
  • Getting to work.
  • Changing the API endpoints
  • Implementing a baseUrl property
  • Refactoring the Angular app
  • Adding HomeComponent
  • Adding FetchDataComponent
  • Adding the navigation menu
  • Updating the AppComponent
  • Updating the AppRoutingModule
  • Finishing touches
  • Test run
  • Summary
  • Suggested topics
  • References
  • Chapter 4: Front-End and Back-End Interactions
  • Technical requirements
  • Introducing ASP.NET Core health checks
  • Adding the HealthCheck middleware
  • Adding an Internet Control Message Protocol (ICMP) check
  • Possible outcomes
  • Creating an ICMPHealthCheck class
  • Adding the ICMPHealthCheck
  • Improving the ICMPHealthCheck class
  • Adding parameters and response messages
  • Updating the middleware setup
  • Implementing a custom output message
  • Configuring the output message
  • Health checks in Angular
  • Creating the Angular component
  • health-check.component.ts
  • health-check.component.html
  • health-check.component.css
  • Adding the component to the Angular app
  • AppRoutingModule
  • NavMenuComponent
  • Testing it out
  • Restyling the UI
  • Introducing Angular Material
  • Installing Angular Material
  • Adding a MatToolbar
  • Updating the AppModule
  • Updating the NavMenuComponent HTML template
  • First test run
  • Playing with (S)CSS
  • Introducing Sass
  • Replacing CSS with Sass
  • Restyling the tables
  • Summary
  • Suggested topics
  • References
  • Chapter 5: Data Model with Entity Framework Core
  • Technical requirements
  • The WorldCities web app
  • Updating the ASP.NET Core app
  • Updating the Angular app
  • Minimal UI restyling
  • Reasons to use a data server
  • The data source
  • The data model
  • Introducing Entity Framework Core
  • Installing Entity Framework Core
  • The SQL Server Data Provider
  • DBMS licensing models
  • What about Linux?
  • SQL Server alternatives
  • Data modeling approaches
  • Code-First.
  • Database-First
  • Making a choice
  • Creating the entities
  • Defining the entities
  • The City entity
  • The Country entity
  • Should we (still) use #region blocks?
  • Defining relationships
  • Adding the Country property to the City entity class
  • Adding the Cities property to the Country entity class
  • Defining the database table names
  • Defining indexes
  • Getting a SQL Server instance
  • Installing SQL Server 2022
  • Installing the database management tool(s)
  • Creating a SQL database on Azure
  • SQL Database
  • SQL Managed Instance
  • SQL virtual machine
  • Making a choice
  • Setting up a SQL database
  • Configuring the instance
  • Configuring the database
  • Creating the WorldCities database
  • Adding the WorldCities login
  • Mapping the login to the database
  • Creating the database using Code-First
  • Setting up the DbContext
  • Entity type configuration methods
  • Data annotations
  • Fluent API
  • EntityTypeConfiguration classes
  • Making a choice
  • Database initialization strategies
  • Updating the appsettings.json file
  • Securing the connection string
  • Introducing Secrets Storage
  • Adding the secrets.json file
  • Working with the secrets.json file
  • Creating the database
  • Updating Program.cs
  • Adding the initial migration
  • Using the dotnet CLI
  • Using the Package Manager Console
  • Checking the autogenerated database tables
  • Understanding migrations
  • Populating the database
  • Implement SeedController
  • Import the Excel file
  • Entity controllers
  • CitiesController
  • CountriesController
  • Should we really use entities?
  • Testing it out
  • Summary
  • Suggested topics
  • References
  • Chapter 6: Fetching and Displaying Data
  • Technical requirements
  • Fetching data
  • Requests and responses
  • JSON conventions and defaults
  • A (very) long list
  • city.ts
  • cities.component.ts
  • cities.component.html.
  • cities.component.scss
  • app-routing.module.ts
  • nav-component.html
  • Serving data with Angular Material
  • Adding AngularMaterialModule
  • Introducing MatTable
  • Updating AngularMaterialModule
  • Updating CitiesComponent
  • Adding pagination with MatPaginatorModule
  • Client-side paging
  • Server-side paging
  • Adding sorting with MatSortModule
  • Extending ApiResult
  • Installing System.Linq.Dynamic.Core
  • Updating CitiesController
  • Updating the Angular app
  • Adding filtering
  • Extending ApiResult (again)
  • CitiesController
  • CitiesComponent
  • CitiesComponent template (HTML) file
  • CitiesComponent style (SCSS) file
  • AngularMaterialModule
  • Performance considerations
  • Adding countries to the loop
  • ASP.NET
  • CountriesController
  • Angular
  • country.ts
  • countries.component.ts
  • countries.component.html
  • countries.component.scss
  • AppModule
  • AppRoutingModule
  • NavComponent
  • Testing CountriesComponent
  • Summary
  • Suggested topics
  • ASP.NET
  • Angular
  • References
  • Chapter 7: Forms and Data Validation
  • Technical requirements
  • Exploring Angular forms
  • Forms in Angular
  • Reasons to use forms
  • Template-driven forms
  • The pros
  • The cons
  • Model-driven/Reactive Forms
  • Building our first Reactive Form
  • ReactiveFormsModule
  • CityEditComponent
  • city-edit.component.ts
  • city-edit.component.html
  • city-edit.component.scss
  • Adding the navigation link
  • app-routing.module.ts
  • cities.component.html
  • Adding a new city
  • Extending the CityEditComponent
  • Adding the "Add a new City" button
  • Adding a new route
  • HTML select
  • Angular Material select (MatSelectModule)
  • Understanding data validation
  • Template-driven validation
  • Model-driven validation
  • Our first validators
  • Testing the validators
  • Server-side validation
  • DupeCityValidator
  • Introducing the FormBuilder.
  • Creating the CountryEditComponent
  • country-edit.component.ts
  • The IsDupeField server-side API
  • country-edit.component.html
  • country-edit.component.scss
  • AppRoutingModule
  • CountriesComponent
  • Testing the CountryEditComponent
  • Improving the filter behavior
  • Throttling and debouncing
  • Definitions
  • Why would we want to throttle or debounce our code?
  • Debouncing calls to the back-end
  • Updating the CitiesComponent
  • Updating the CountriesComponent
  • What about throttling?
  • Summary
  • Suggested topics
  • References
  • Chapter 8: Code Tweaks and Data Services
  • Technical requirements
  • Optimizations and tweaks
  • Template improvements
  • Form validation shortcuts
  • Class inheritance
  • Implementing a BaseFormComponent
  • Extending CountryEditComponent
  • Extending CityEditComponent
  • Bug fixes and improvements
  • Validating lat and lon
  • city-edit.component.ts
  • base-form.component.ts
  • city-edit.component.html
  • Adding the number of cities
  • CountriesController
  • Creating the CountryDTO class
  • Angular front-end updates
  • DTO classes - should we really use them?
  • Separation of concerns
  • Security considerations
  • DTO classes versus anonymous types
  • Securing entities
  • Final thoughts
  • Adding the country name
  • CitiesController
  • Angular front-end updates
  • Data services
  • XMLHttpRequest versus Fetch (versus HttpClient)
  • XMLHttpRequest
  • Fetch
  • HttpClient
  • Building a data service
  • Creating the BaseService
  • Adding the common interface methods
  • Creating CityService
  • Implementing CityService
  • Creating CountryService
  • Summary
  • Suggested topics
  • References
  • Chapter 9: Back-End and Front-End Debugging
  • Technical requirements
  • Backend debugging
  • Windows or Linux?
  • The basics
  • Conditional breakpoints
  • Conditions
  • Actions
  • Testing the conditional breakpoint.
  • The Output window.