舉報

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