Foreword |
|
xxv | |
Introduction |
|
xxvii | |
Chapter 1 What's New In Asp.Net Core MVC |
|
1 | (36) |
|
|
1 | (2) |
|
|
2 | (1) |
|
|
2 | (1) |
|
|
2 | (1) |
|
|
2 | (1) |
|
Versions Covered in this Book |
|
|
2 | (1) |
|
A Brief History of the Microsoft .NET Web Stack |
|
|
3 | (2) |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (1) |
|
The Emergence of ASP.NET Core and .NET Core |
|
|
5 | (1) |
|
|
5 | (2) |
|
Getting Started with .NET Core |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (8) |
|
Overview of the New ASP.NET Core Web Application Project |
|
|
7 | (3) |
|
|
10 | (2) |
|
|
11 | (1) |
|
OWIN Communication Interface |
|
|
11 | (1) |
|
A Better Look at Middleware |
|
|
12 | (1) |
|
Anatomy of an ASP.NET Core Application |
|
|
12 | (3) |
|
Host Builder Console Application |
|
|
13 | (1) |
|
ASP.NET Core Startup Class |
|
|
14 | (1) |
|
New Fundamental Features of ASP.NET Core |
|
|
15 | (10) |
|
|
15 | (2) |
|
|
17 | (2) |
|
What Is Dependency Injection? |
|
|
17 | (1) |
|
Using Dependency Injection in ASP.NET Core |
|
|
18 | (1) |
|
|
19 | (2) |
|
|
19 | (1) |
|
|
19 | (1) |
|
Additional Logging Configuration |
|
|
19 | (2) |
|
|
21 | (4) |
|
Setting Up the Configuration Sources |
|
|
21 | (1) |
|
Reading Values from Configuration |
|
|
22 | (1) |
|
Using Strongly-Typed Configuration |
|
|
22 | (3) |
|
An Overview of Some ASP.NET Core Middleware |
|
|
25 | (2) |
|
|
25 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
27 | (9) |
|
Using the MVC Framework inside ASP.NET Core |
|
|
27 | (1) |
|
Using Dependency Injection in Controllers |
|
|
28 | (2) |
|
|
30 | (2) |
|
|
32 | (3) |
|
Using Tag Helpers from ASP.NET Core |
|
|
32 | (2) |
|
Writing Custom Tag Helpers |
|
|
34 | (1) |
|
View Components as Tag Helpers |
|
|
35 | (1) |
|
|
35 | (1) |
|
|
36 | (1) |
Chapter 2 The Front-End Developer Toolset |
|
37 | (22) |
|
Additional Languages You Have to Know |
|
|
38 | (5) |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
40 | (2) |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
43 | (6) |
|
|
43 | (3) |
|
|
46 | (1) |
|
|
47 | (2) |
|
|
49 | (1) |
|
|
49 | (4) |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
53 | (3) |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
56 | (1) |
|
|
57 | (2) |
Chapter 3 Angular In A Nutshell |
|
59 | (38) |
|
|
60 | (1) |
|
|
61 | (1) |
|
Setting Up an Angular Project |
|
|
62 | (2) |
|
|
62 | (1) |
|
Starting from the Quickstart Seed |
|
|
63 | (1) |
|
Using the Angular-CLI Tool |
|
|
63 | (1) |
|
The Structure of an Angular App |
|
|
64 | (4) |
|
|
64 | (1) |
|
|
64 | (2) |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
68 | (2) |
|
|
68 | (1) |
|
|
69 | (1) |
|
|
69 | (1) |
|
|
70 | (1) |
|
|
70 | (1) |
|
Services and Dependecy Injection |
|
|
71 | (2) |
|
|
73 | (2) |
|
Input and Output Properties |
|
|
75 | (3) |
|
|
78 | (5) |
|
|
79 | (1) |
|
Consuming the RxJS Observable |
|
|
80 | (3) |
|
Subscribing to the Observable |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
81 | (2) |
|
Using Angular with ASP.NET MVC |
|
|
83 | (9) |
|
Combining Angular and ASP.NET Core Projects |
|
|
84 | (8) |
|
Keeping Angular and ASP.NET Core as Two Separate projects |
|
|
85 | (1) |
|
Combining Angular and ASP.NET Core into One Project Using the Angular CLI |
|
|
86 | (3) |
|
|
89 | (2) |
|
Deciding Which Integration Method to Use |
|
|
91 | (1) |
|
Visual Studio 2017 Support for Angular |
|
|
92 | (3) |
|
|
92 | (1) |
|
IntelliSense in TypeScript Files |
|
|
93 | (1) |
|
IntelliSense in HTML Files |
|
|
94 | (1) |
|
|
95 | (2) |
Chapter 4 Bootstrap In A Nutshell |
|
97 | (32) |
|
Introduction to Bootstrap |
|
|
98 | (2) |
|
|
98 | (2) |
|
|
100 | (1) |
|
|
100 | (7) |
|
|
100 | (4) |
|
|
104 | (1) |
|
|
105 | (1) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
107 | (9) |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
109 | (1) |
|
|
110 | (6) |
|
|
111 | (2) |
|
|
113 | (1) |
|
|
114 | (1) |
|
|
115 | (1) |
|
|
116 | (1) |
|
|
116 | (6) |
|
|
117 | (1) |
|
Activating Tab Navigation with JavaScript |
|
|
117 | (1) |
|
Activating Tab Navigation with Data Attributes |
|
|
118 | (1) |
|
|
118 | (2) |
|
|
120 | (2) |
|
Customizing Bootstrap with Less |
|
|
122 | (2) |
|
Customizing via the Website |
|
|
122 | (1) |
|
|
123 | (1) |
|
Bootstrap Support in Visual Studio 2017 and ASP.NET Core |
|
|
124 | (4) |
|
|
126 | (1) |
|
|
126 | (1) |
|
Tag Helpers for ASP.NET Core |
|
|
127 | (1) |
|
|
128 | (1) |
Chapter 5 Managing Dependencies With Nuget And Bower |
|
129 | (16) |
|
|
130 | (1) |
|
|
130 | (7) |
|
Getting Packages via NuGet |
|
|
131 | (4) |
|
Using the Package Manager GUI |
|
|
131 | (1) |
|
Using the Package Manager Console |
|
|
132 | (1) |
|
Manually Editing the .csproj Project File |
|
|
133 | (2) |
|
What Happens Once You Install a Package |
|
|
135 | (1) |
|
Publishing Your Own Packages |
|
|
135 | (1) |
|
Adding Metadata for the Package |
|
|
135 | (2) |
|
|
136 | (1) |
|
Publishing to the Nuget.org Gallery |
|
|
137 | (1) |
|
NPM (Node.js Package Manager) |
|
|
137 | (2) |
|
|
137 | (1) |
|
|
138 | (1) |
|
Using the NPM Command Line |
|
|
138 | (1) |
|
Using NPM within Visual Studio |
|
|
139 | (1) |
|
Where Packages Are Installed |
|
|
139 | (1) |
|
|
139 | (4) |
|
|
140 | (1) |
|
Getting Packages with Bower |
|
|
140 | (2) |
|
Using the Bower Command Line |
|
|
140 | (1) |
|
Using the Bower Package Manager GUI in Visual Studio |
|
|
141 | (1) |
|
Editing the bower.json File |
|
|
141 | (1) |
|
Where Packages Are Installed |
|
|
142 | (1) |
|
Creating Your Own Packages |
|
|
142 | (1) |
|
|
143 | (2) |
Chapter 6 Building Your Application With Gulp And Webpack |
|
145 | (22) |
|
What Front-End Build Systems Are For |
|
|
146 | (1) |
|
|
146 | (10) |
|
Getting Started with Gulp |
|
|
147 | (1) |
|
|
147 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
148 | (1) |
|
|
148 | (1) |
|
A Typical Gulp Build File |
|
|
148 | (2) |
|
|
150 | (6) |
|
Naming Output Files from a Package Name |
|
|
150 | (1) |
|
|
151 | (1) |
|
Checking JavaScript Using JSHint |
|
|
151 | (2) |
|
Executing Tasks When Files Change |
|
|
153 | (1) |
|
Managing Bower Dependencies |
|
|
153 | (1) |
|
Replacing References Directly in the HTML Files |
|
|
154 | (2) |
|
|
156 | (4) |
|
|
156 | (1) |
|
|
156 | (4) |
|
|
156 | (2) |
|
|
158 | (1) |
|
Minifying and Adding Sourcemaps |
|
|
159 | (1) |
|
More Things webpack Can Do |
|
|
160 | (1) |
|
Visual Studio 2017 and Build Systems |
|
|
160 | (5) |
|
The Bundler and Minifier Extension |
|
|
160 | (4) |
|
|
164 | (1) |
|
|
164 | (1) |
|
|
165 | (2) |
Chapter 7 Deploying Asp.Net Core |
|
167 | (22) |
|
The New Hosting Model of ASP.NET Core |
|
|
167 | (1) |
|
Installing on Internet Information Services On Premise |
|
|
168 | (6) |
|
|
169 | (2) |
|
Installing AspNetCoreModule |
|
|
171 | (1) |
|
Publishing Applications via the Command Line |
|
|
171 | (1) |
|
|
172 | (1) |
|
Publishing the Applications via Visual Studio |
|
|
173 | (1) |
|
|
174 | (9) |
|
Deploying to Azure from Visual Studio with Web Deploy |
|
|
174 | (5) |
|
Continuous Deployment to Azure with Git |
|
|
179 | (4) |
|
Configuring the Azure Web App |
|
|
179 | (1) |
|
Configuring the Local Repository |
|
|
180 | (3) |
|
Deploying to Docker Containers |
|
|
183 | (4) |
|
Installing the Docker Support |
|
|
183 | (3) |
|
Publishing a Docker Image |
|
|
186 | (1) |
|
|
187 | (2) |
Chapter 8 Developing Outside Of Windows |
|
189 | (18) |
|
Installing .NET Core on macOS |
|
|
190 | (1) |
|
Building the First ASP.NET Core App on macOS |
|
|
191 | (5) |
|
Using dotnet Command-Line Interface |
|
|
191 | (4) |
|
|
195 | (1) |
|
|
196 | (8) |
|
|
197 | (1) |
|
Development Features in Visual Studio Code |
|
|
197 | (6) |
|
|
197 | (1) |
|
|
198 | (1) |
|
|
198 | (1) |
|
|
199 | (1) |
|
|
200 | (2) |
|
|
202 | (1) |
|
|
203 | (1) |
|
|
203 | (1) |
|
|
204 | (1) |
|
|
204 | (1) |
|
|
205 | (2) |
Chapter 9 Putting It All Together |
|
207 | (32) |
|
Building a Triathlon Race Results Web Site |
|
|
207 | (1) |
|
Building the Back-Office Site |
|
|
208 | (11) |
|
Setting Up Entity Framework |
|
|
211 | (5) |
|
|
211 | (2) |
|
|
213 | (1) |
|
|
214 | (2) |
|
|
216 | (7) |
|
|
217 | (1) |
|
|
218 | (1) |
|
Building the Registration Page |
|
|
219 | (4) |
|
Showing Real-Time Results |
|
|
223 | (9) |
|
Creating the Angular Client-Side Application |
|
|
223 | (5) |
|
|
228 | (4) |
|
Connecting with IoT Devices |
|
|
232 | (3) |
|
|
235 | (2) |
|
|
237 | (2) |
Index |
|
239 | |