万本电子书0元读

万本电子书0元读

顶部广告

Enterprise Application Architecture with .NET Core电子书

售       价:¥

9人正在读 | 0人评论 6.2

作       者:Ganesan Senthilvel

出  版  社:Packt Publishing

出版时间:2017-04-25

字       数:64.1万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
If you want to design and develop enterprise applications using .NET Core as the development framework and learn about industry-wide best practices and guidelines, then this book is for you. The book starts with a brief introduction to enterprise architecture, which will help you to understand what enterprise architecture is and what the key components are. It will then teach you about the types of patterns and the principles of software development, and explain the various aspects of distributed computing to keep your applications effective and scalable. These chapters act as a catalyst to start the practical implementation, and design and develop applications using different architectural approaches, such as layered architecture, service oriented architecture, microservices and cloud-specific solutions. Gradually, you will learn about the different approaches and models of the Security framework and explore various authentication models and authorization techniques, such as social media-based authentication and safe storage using app secrets. By the end of the book, you will get to know the concepts and usage of the emerging fields, such as DevOps, BigData, architectural practices, and Artificial Intelligence.
目录展开

Title Page

Copyright

Credits

About the Authors

About the Reviewer

www.PacktPub.com

Customer Feedback

Dedication

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Downloading the color images of this book

Errata

Piracy

Questions

Enterprise Architecture Concepts

Why do we need Enterprise Architecture?

Definition of Enterprise Architecture

Stakeholders of Enterprise Architecture

Business benefits

Knowing the role of an architect

Role comparison between EA and SA

Degree of Comparisons

Commonly known EA Frameworks

General Purpose Frameworks

Domain Specific Frameworks

Architecture segregation

Business Architecture

Data Architecture

Application Architecture

Technology Architecture

Introduction to TOGAF

Evolution of TOGAF 9.1

Core components

Industry usage

Introduction to Zachman

Evolution

Core components

Summary

Principles and Patterns

Getting started with principles and patterns

Why follow design principles?

What are design patterns?

Why use design patterns?

SOLID design principles

SRP - Single Responsibility Principle

SRP example - The decorator pattern

OCP - Open Closed Principle

LSP - Liskov Substitution Principle

ISP - Interface Segregation Principle

DIP - Dependency Inversion Principle

Dependency injection

Introducing dependency injection

Knowing about the Service Locator pattern

Dependency injection support with .NET Core

GoF design patterns

What are software design patterns?

Creational patterns

The singleton pattern

Variations on the singleton pattern

The factory method pattern

Abstract factory pattern

Builder pattern

A commentary on creational patterns

Structural patterns

Adapter pattern

Bridge pattern

Flyweight pattern

A commentary on structural patterns

Behavioral patterns

The template method pattern

The observer pattern

The chain of responsibility pattern

The visitor pattern

The strategy pattern

The state pattern

A commentary on behavioral patterns

Summary

Distributed Computing

Understanding Distributed applications

Definition

Comparison

Multiprogramming

Thread synchronization

Storage

Process

Concurrency

Parallelism

Multithreading exercise

ThreadStart

ThreadPool

Task Parallel Library (TPL)

Design challenges

Transparency

Reliability

Fault tolerance

Performance

Decompose

Caching

Scalability

Scale up

Scale out

Comparing scale up with scale out

Connecting the dots

Security

Goals

Attack

Threats

Summary

Software Development Life Cycle

What is SDLC?

Need for a process

Insight of core phases

SDLC models

The Waterfall model

Core phases

Business requirement

System analysis

System Design

Coding

Testing

Maintenance

Understanding the Spiral model

Core phases

Comparing the Waterfall model with the Spiral model

Benefits

Challenges

Usage recommendation

Agile model

Top five reasons to adopt Agile

Ambiguous requirements

Requirement changes

Big planning is not practical

Software review is better than document

Iterative incremental delivery is preferred

Industry evidence

Scaled Agile Framework (SAFe)

History

Success Factors

Microsoft open source strategy to life cycle

Traditional Microsoft model and its origin from MS-DOS

Driving factors of the open source model

Twin tracks of .NET Framework and .NET Core

Comparing .NET with .NET Core

Current stack of open source tools and techniques

Summary

Enterprise Practices in Software Development

What is ALM?

Core aspects

ALM vs SDLC

Source Code Control System

Git

TFS

Git vs TFS

Visual Studio Integration

Team Foundation Version Control (TFVC)

Git

Developing .NET Core project templates for enterprise applications

Creating a custom .NET Core project template using .NET command-line interface tools

Performance measuring for .NET applications

CPU utilization

Using the Sampling method in Visual Studio to collect performance statistics

Measuring UI responsiveness

Analysing memory leaks

Identifying memory leaks

Summary

Layered Approach to Solution Architecture

Layers in layered architecture

Presentation layer

Service layer

Business layer

Transaction Script pattern

Table Module pattern

Active Record pattern

Domain Driven Design (DDD) pattern

Data access layer

Objectives of layered architecture

Practical implementation of layered architecture in .NET Core

Scope

Logical architecture

Presentation layer

Service layer

Business layer

Data access layer

Common layer

Setting up the environment

Creating the solution

Creating the common layer

Entities mapped to database tables

Business objects

Logging events

Logging helper

Data access layer

Creating Data Context

Creating DbFactory

Repository pattern

Unit of Work pattern

Running migration

Business layer

Develop core classes

Developing business managers

Logging in .NET Core

Creating the service layer

Creating base controller

Adding Custom Action Filters

Add controllers

Creating the presentation layer

Single Page Applications

Benefits of a SPA

Developing the presentation layer using ASP.NET Core and Angular

Setting up frontend packages

Configuring the ASP.NET Core pipeline

Adding the Angular components

Creating MVC Controllers and Views

Summary

SOA Implementation with .NET Core

SOA definition

What is SOA?

SOA modeling

SOA Reference Model

Reference model and reference architecture relationship

SOA Reference Architecture

Common reference information architecture

Common reference Infrastructure architecture

SOA features and components

Service Component Architecture

Service types

Service composition

Service orchestration

Service choreography

Common technology standards

Service discovery

Message broker

Enterprise Service Bus (ESB)

ESB Segments

ESB features

Data

Master Data Management (MDM)

Common data model

Live business metrics

Services gateway

SOA services library

Tracking, logging, and error handling in SOA

Notes

Sample SOA implementation

Introduction

Sample enterprise

Departments of a sample enterprise

Sample data models for departments

Sample business processes for departments

Sample database models for departments

Bounded contexts

Services implementation

Solution structure

Sample database

Sample development and system services

Sample information service

Employee information SOA service

Employee Information business logic layer

Repositories in the data access layer

Employee information core data access layer

Entity in an employee information model

Sample adapter service

Sample background service

Sample interaction (notification) service

Sample mediation service

Sample scenario of a service choreography

Summary

Cloud-Based Architecture and Integration with .NET Core

Cloud Computing Models

Infrastructure as a Service (IaaS)

Platform as a Service (PaaS)

Software as a Service (SaaS)

Azure compute

Virtual machines

Cloud services

Worker Role

Web Role

App Services

Azure Service Fabric

Features comparison between virtual machines, cloud services, Azure App Services, and Service Fabric

Rapid application development using Azure App Services

Web Apps

Hosting an ASP.NET Core application on Azure

Deployment slots

API Apps

Configuring Swagger in ASP.NET Core Web API and deploying on Azure

Creating proxy classes using AutoRest in .NET Core

Enable CORS

Mobile Apps

Offline sync

Push notifications

Logic Apps

Connectors

Trigger

Actions

Creating Logic App in Azure

Scaling Azure App Services

Background services and event handling in cloud

WebJobs

Developing WebJob using .NET Core

Developing WebJobs using WebJobs SDK and .NET Framework 4.5

Azure WebJobs versus Azure WorkerRoles

Using WebHooks for event-based scenarios

Using WebHook of WebJob from VSTS

Azure Functions

Creating a basic Azure Function to listen for Queue events

Scalability and performance options in Azure App Services

Increasing storage performance

Command-Query Responsibility Segregation (CQRS) pattern

Denormalization

Azure Table storage

MongoDB

Caching

Local cache

Shared cache

Using Redis Cache in Azure

Creating the Redis Cache

Configuring the .NET Core app to use Redis Cache on Azure

Queuing

Logging and monitoring in Azure

Logging

ASP.NET Core logging in Azure

Web server diagnostics

Application diagnostics

Accessing logs

Accessing logs via FTP

Accessing Logs via Azure PowerShell

Monitoring

SCOM (System Center Operations Manager)

Application Insights

Application hosted on Azure

Application hosted on-premise

Use Application Insights API

Setting up Application Insights in ASP.NET Core Application

Summary

Microservices Architecture

Microservices architecture definition

What is microservices architecture?

Microservices and SOA

Microservices and monolithic applications

Web API and web services

Characteristics of a microservices architecture

Best for microservices architecture

Documentation

Business capabilities

Business processes

Microservice interfaces

Microservice code

Microservice data store

Logging and monitoring

Immutable Infrastructure

Containerization

Stateless

Architectural elements

Bounded Context in Domain Driven Design

DDD (Domain Driven Design)

Guiding principles

Foundational concepts

Bounded context

Microservices come in systems

Service discovery

Client-side service discovery

Server-side service discovery

Service registry

API gateway

Architectural motivations

Agile Manifesto

Reactive Manifesto

Reactive systems

Reactive microservices architecture

Key aspects of Reactive Microservices

Serverless architecture

Backend as a Service (BaaS)

Function as a Service (FaaS)

Key aspects of serverless architecture

Type of code

Stateless

Short-lived

Almost zero administration

Automatic scaling

Event-driven

Let's wrap it up

Azure for microservices

Azure Functions

Azure Service Fabric

Azure Container Service

Bringing it together

Implementation samples

Microservices architecture for our sample enterprise

Problem domains

Publishing team

Marketing team

Sales team

Platform administration team

Other teams

Contexts for the respective teams

Customer Relationship Management system

Document Management System

Understanding the Microservices Bounded Team Contexts

General service information flow

Sales Team Context

Marketing Team Context

Publishing Team Context

Platform Administration Team Context

Enterprise portal mockup

Overall microservices architecture

Common communication mechanismsin microservices

Serverless architecture for a sample application

Our sample application - Home automation

High-level application design

Serverless architecture in Azure

Let's wrap it up

Summary

Security Practices with .NET Core

Authentication and authorization modes

Securing applications with ASP.NET Core Identity

Security architecture in ASP.NET Core

Getting to know the core APIs of the Identity system

HttpContext and AuthenticationManager

Understanding the authentication and authorization process

Authentication

Implementing authentication using ASP.NET Core Identity and customizing the Identity data store

Configuring authentication using Identity in an empty web application project

Configuring Entity Framework Core

Defining data context and user classes

Configuring database connection and application configuration settings

Configuring Entity Framework and Identity services

Enabling authentication using Identity

Creating an identity data store in SQL server

Customizing existing Identity data store and adding new entities

Creating and Signing-in/Signing-out users

Adding claims in ASP.NET Identity membership

How authorization works

Using cookie middleware without ASP.NET Core Identity

Claims transformation

Cookie middleware events

Implementing external authentication in ASP.NET Core applications

Configuring external authentication in ASP.NET Core

Creating a web application project

Configuring apps on Facebook

Enabling Facebook middleware

Two-factor authentication

Setting up an SMS account

Enabling two-factor authentication

Security in an enterprise

Getting started with IdentityServer4

Understanding OAuth

Actors in OAuth

Flows of OAuth 2.0

Client credentials flow

Implicit flow

Authorization code flow

Resource owner password credentials flow

Understanding OpenID Connect

OpenID Connect flows

Authorization code flow

Implicit flow

Hybrid flow

Claims and scopes

Endpoints

Discovery endpoint

Authorize endpoint

Token endpoint

UserInfo endpoint

Developing a Centralized Authorization System using IdentityServer4

Creating a Centralized Authentication Service/Authorization Server

Setting up IdentityServer4

Defining scopes, clients and users

Adding UI to enable authentication using OpenID Connect

Creating an MVC web application project

Adding OIDC and cookie middleware in HTTP pipeline

Enabling MVC and controller

Adding a Web API

Authorization

Declarative authorization techniques

Basic authorization

Authorization filters

Filtering based on authentication schemes

Filtering based on authorization

Filtering based on policy

Custom policies

Imperative authorization techniques

Safe storage

Storing and retrieving safe storage values

Summary

Modern AI Offerings by Microsoft

Virtual machines and containerization

Virtual machine

Simulation

Emulation

Virtual machine implementation base

Containerization

Evolution of containerization concepts

Chroot

FreeBSD Jails

Solaris Zones

OpenVZ

Cgroups

LXC

Lmctfy

Docker

Modern container fundamentals

Docker components

Docker Engine

Docker Compose

Docker Machine

Docker registry

Docker Kitematic

Docker Swarm

Swarm mode

Docker Cloud

Docker containerization in Windows

Docker for Windows

Windows Containers

Modern development

Development editors

Development environment setup

Vagrant

Cloud development and test environment

DevOps

The Culture

Key motivational aspects

Sharing

Automation

Measurement

Software development and delivery process

Continuous Integration

Best practices

Benefits of CI

Improvement in Developer productivity

Quick identification and addressing of bugs

Faster Updates Delivery

Continuous Delivery

Continuous Delivery Pipeline

DevOps toolchain

A sample microservices application based on Docker containers

The sample application

Problem statement

Application architecture

Technical architecture

Setup in Azure Container Service

Architecture diagram

Network architecture

What is visible in this diagram?

Hands-on prerequisites

Why Azure Container Service?

Azure App Service (on) Linux

Creating VM directly on Azure

Azure Service Fabric (ASF)

Azure Container Service (ACS)

Implementing the Math app

Implementation approach

Implementation Steps

Installing the Hypervisor

CentOS virtual machine

CentOS configuration

Container installation and execution

Uploading container images to container registry

Creating Azure Container Service

Container installation and execution on ACS

Big Data and Microsoft

Definition of Schema

Schema free - NoSQL

Fixed vs no schema

NoSQL types

Architectural best practices

Microsoft HDInsight

HDInsight ecosystem

Introduction to Business Intelligence (BI)

Current trend

Road map

Power BI architecture

Power BI layers

Artificial intelligence (AI)

Core components

Machine learning (ML)

Data mining

Interconnectivity

AI at Microsoft

Industry Bots

Microsoft open source strategy

Cognitive Services

Microsoft Bot

Summary

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部