Hands-On Full:Stack Web Development with ASP.NET Core
Tamir Dresher Amir Zuker Shay Friedman更新时间:2021-06-10 19:38:21
最新章节:Leave a review - let other readers know what you thinkcoverpage
Title Page
PacktPub.com
Why subscribe?
Packt.com
Contributors
About the authors
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Becoming a Full-Stack .NET Developer
The full-stack developer
Full-stack development
Backend fundamentals
Hypertext Transfer Protocol
HTTP is a stateless protocol
HTTP/2
Representational State Transfer
ASP.NET Core
Frontend fundamentals
Hypertext Markup Language
CSS
JavaScript
TypeScript
JavaScript frontend frameworks
Angular
React
Vue.js
Summary
Setting Up Your Development Environment
Visual Studio
Installing Visual Studio Community
Node.js and npm
Installing Node.js
TypeScript
Installing TypeScript
Google Chrome
Fiddler
Installing Fiddler
Summary
Creating a Web Application with ASP.NET Core
ASP.NET Core overview
.NET Core
Open source
Lightweight and fast
Modular
Host anywhere
Creating an ASP.NET Core application
Default files in an ASP.NET Core project
Predefined project templates
The Startup class
Code execution order
Different startups for different environments
Changing the Startup class name
Serving static files
The content root and web root folders
Setting the server to serve static files
Serving default documents
Configuring the available MIME types
Getting familiar with the ASP.NET Core MVC framework
The MVC pattern
MVC in SPAs
Adding MVC to ASP.NET Core
Controllers
Views
View files and their location
Creating a view
Routing
Adding routes
Adding routes via UseMvc
Adding routes via route attributes
Routing in SPAs
Summary
Building REST APIs with ASP.NET Core Web API
Overview — REST APIs with ASP.NET Core API
Creating a simple API
Inspecting your APIs using Fiddler and Postman
Fiddler
Postman
Routing
Conventional routing
Defining a new route template
Attribute-based routing
Parameterizing the route template
Default values
Constraints
The model
Model binding
Query strings
Message body
Header values
Model validation
Generating a response of different types
Explicit return type
IActionResult and ActionResult<T>
Asynchronous actions
Controller response helper methods
Summary
Persisting Data with Entity Framework
Installing Entity Framework Core
Creating your data model
Defining the entities
The DbContext
Configuring the model mapping
Configuring the database connection with DbContextOptions<TContext>
Creating a database with EF Core migrations
Creating a new migration
Adding automatic migrations
Connecting to the database
Adding seed data
Saving data
Updating and deleting objects
Querying data
Loading related entities
Creating conditional queries with the IQueryable deferred execution
Mapping the API results to DTOs
Mapping entities to DTOs with AutoMapper
Summary
Securing the Backend Server
Authenticating and authorizing application users
Adding identity management entities to your data model
Enabling the identity infrastructure
Enabling token-based authentication with JSON Web Token
The authentication and authorization flow
Creating a user registration API
Implementing the login functionality and generating a JWT
Adding user claims
Configuring your backend to always require authentication
Configuring an action to allow anonymous access
Controlling access to APIs with authorization
Adding claims that can be used for authorization
Authorizing users by their role
Creating an authorization policy
Enabling Cross-Origin Resource Sharing
Summary
Troubleshooting and Debugging
Adding logging to your application
Writing a log message from the controller
Filtering log messages
Log providers
Provider-specific configuration and filters
Enabling diagnostics with Application Insights
Responding gracefully in the event of errors and exceptions
Adding a correlation identifier to responses
The developer exception page
Adding a global exception handler
Making your APIs discoverable and self-documenting with the OpenAPI standard (Swagger)
Generating a Swagger file from the ASP.NET Core application
Adding the Swagger UI to your application
Sending a request through the Swagger UI
Generating client code from a Swagger file
Swagger editor
Summary
Getting Started with Frontend Web Development
Getting started with frontend web development
HTML
CSS
JavaScript
Notable progress and future development
Web components
WebAssembly
The Everyday Market app
Homepage with product listings
Product page
New product page
jQuery
Everyday Market homepage using jQuery
Initial layout
REST API access
Menu item template
Category menu items query
Product item template
Product cards query
Busy indicator
Summary
Getting Started with TypeScript
TypeScript
The TypeScript compiler
Types
Basic types
Arrays
Enums
Objects
Functions
Type inference
Type casting
Type aliasing
Interfaces
Extending interfaces
Classes
Access modifiers
Members
Class inheritance and interface implementation
Modules
Decorators
Summary
Further reading
App Development with Angular
Angular overview
Building blocks
Angular CLI
Setup and common commands
Linting code
Running tests
Running the project
Key app parts
Modules
Components
Header component
Global styles
Assets
Category-menu-item component
category-menu component
products-page component
Data binding
Interpolation binding
Property binding
Event binding
Two-way binding
Component interaction
Input
ngFor
Output
Injectable services
HTTP
Busy indicator
ngIf
Distribution
Environments
Summary
Implementing Routing and Forms
Client-side routing
Using Angular Router
Implementing a routed page
Implementing template-driven forms in Angular
Using Angular's ngModel directive
Implementing form validation
Element references
Summary
App Development with React
React overview
Building blocks
Creating a React app
Key app parts
Components
Render function
JSX
Using JSX
Header component
Props
State
setState
Stateless functional components
CategoryMenu
List rendering
Product listing
Busy indicator
Conditional rendering
Summary
App Development with Vue
Vue.js overview
Building blocks
Vue CLI
Key app parts
Components
Single file components
Header component
Global styles
Assets
Data binding and component interaction
Component definition object
Props
Interpolation binding
Property binding
Data
Methods
Events
Computed
The category menu
List rendering
Product listing
Busy indicator
Conditional rendering
Summary
Moving Your Solution to the Cloud
What is cloud computing?
Virtualization and automation
Cloud service models
Working with Microsoft Azure
Creating a Microsoft Azure account
Getting familiar with the portal and with the command line
The Azure portal
Azure portal blades
Using the Azure CLI
The Azure account and resources model
Azure Resource Manager
Resource groups
ARM templates
Pricing and billing
Summary
Deploying to Microsoft Azure
Creating a production environment with Azure App Service
App Service plan
Creating your App Service
Linking a SQL server database to the application
Choosing an Azure SQL pricing tier
Deploying the GiveNTake backend service from Visual Studio
Creating an automated build and release pipeline in Azure DevOps
Creating a build pipeline
Creating a release pipeline that will deploy to Azure
Configure the release pipeline artifact
Configure the release pipeline stage
Deploying the GiveNTake frontend to Azure App Service
Configuring Azure App Service to work with an Angular application
Creating a build pipeline for the Angular app
Creating a release pipeline for the Angular app
Summary
Taking Advantage of Cloud Services
Scaling your service
Scaling up your App Service
Scaling out your App Service
Autoscaling
Cloud Diagnostics with Application Insights
Connecting Azure Application Insights to your App Service
Connecting the ASP.NET Core logger to Azure Application Insights
Setting the Instrumentation Key in Application settings
Analyzing Application Insights telemetry
End-to-end transaction analysis
Advanced querying and visualizing with Analytics
Application map
Testing in production with Deployment slots
Deploying to a Deployment slot
Swapping between Deployment slots
Testing in production
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
更新时间:2021-06-10 19:38:21