|
Section 1 Get off to a fast start |
|
|
|
Chapter 1 An introduction to web programming and ASP.NET Core MVC |
|
|
|
An introduction to web apps |
|
|
4 | (1) |
|
The components of a web app |
|
|
4 | (2) |
|
How static web pages are processed |
|
|
6 | (2) |
|
How dynamic web pages are processed |
|
|
8 | (2) |
|
An introduction to the MVC pattern |
|
|
10 | (2) |
|
An introduction to ASP.NET Core MVC |
|
|
12 | (1) |
|
Four ASP.NET programming models for web apps |
|
|
12 | (2) |
|
Some web components of NET Framework and NET Core |
|
|
14 | (2) |
|
An introduction to ASP.NET Core middleware |
|
|
16 | (2) |
|
How state works in a web app |
|
|
18 | (2) |
|
Tools for working with ASP.NET Core MVC apps |
|
|
20 | (1) |
|
An introduction to Visual Studio |
|
|
20 | (2) |
|
An introduction to Visual Studio Code |
|
|
22 | (2) |
|
How an ASP.NET Core MVC app works |
|
|
24 | (1) |
|
How coding by convention works |
|
|
24 | (2) |
|
How a controller passes a model to a view |
|
|
26 | (2) |
|
How a view uses Razor code, tag helpers, and Bootstrap CSS classes |
|
|
28 | (2) |
|
How the Program.cs file configures the middleware for an app |
|
|
30 | (8) |
|
Chapter 2 How to develop a one-page MVC web app |
|
|
|
How to create a Core MVC web app |
|
|
38 | (1) |
|
How to start a new web app |
|
|
38 | (2) |
|
How to configure a web app |
|
|
40 | (2) |
|
How to set up the MVC folders |
|
|
42 | (2) |
|
|
44 | (2) |
|
|
46 | (2) |
|
How to configure the middleware for an HTTP request pipeline |
|
|
48 | (2) |
|
How to run a web app and fix errors |
|
|
50 | (1) |
|
|
50 | (2) |
|
How to find and fix errors |
|
|
52 | (2) |
|
|
54 | (1) |
|
|
54 | (2) |
|
How to add a Razor view imports page |
|
|
56 | (2) |
|
How to code a strongly-typed view |
|
|
58 | (2) |
|
How to handle GET and POST requests |
|
|
60 | (2) |
|
The Future Value app after handling GET and POST requests |
|
|
62 | (2) |
|
How to organize the files for a view |
|
|
64 | (1) |
|
How to add a CSS style sheet |
|
|
64 | (2) |
|
How to add a Razor layout and view start |
|
|
66 | (2) |
|
The code for a Razor layout and view start |
|
|
68 | (2) |
|
How to add a Razor view when using a layout with a view start |
|
|
70 | (2) |
|
How to validate user input |
|
|
72 | (1) |
|
How to set data validation rules in the model |
|
|
72 | (2) |
|
The model class with data validation |
|
|
74 | (2) |
|
How to check the data validation |
|
|
76 | (1) |
|
How to display validation error messages |
|
|
76 | (1) |
|
The Future Value app after validating data |
|
|
76 | (8) |
|
Chapter 3 How to make a web app responsive with Bootstrap |
|
|
|
An introduction to responsive web design |
|
|
84 | (1) |
|
A responsive user interface |
|
|
84 | (2) |
|
How to add client-side libraries such as Bootstrap and jQuery |
|
|
86 | (2) |
|
How to manage client-side libraries with LibMan |
|
|
88 | (2) |
|
How to enable client-side libraries |
|
|
90 | (2) |
|
How to get started with Bootstrap |
|
|
92 | (1) |
|
The classes of the Bootstrap grid system |
|
|
92 | (2) |
|
How the Bootstrap grid system works |
|
|
94 | (2) |
|
|
96 | (4) |
|
How to work with buttons and images |
|
|
100 | (2) |
|
How to work with margins and padding |
|
|
102 | (2) |
|
The code for the view of the Future Value app |
|
|
104 | (2) |
|
More skills for Bootstrap CSS classes |
|
|
106 | (1) |
|
How to format HTML tables |
|
|
106 | (2) |
|
How to align and capitalize text |
|
|
108 | (2) |
|
|
110 | (2) |
|
More skills for Bootstrap components |
|
|
112 | (1) |
|
How to work with button groups |
|
|
112 | (2) |
|
How to work with icons and badges |
|
|
114 | (2) |
|
How to work with button dropdowns |
|
|
116 | (2) |
|
How to work with list groups |
|
|
118 | (2) |
|
How to work with alerts and breadcrumbs |
|
|
120 | (2) |
|
How to work with navigation bars |
|
|
122 | (1) |
|
|
122 | (2) |
|
|
124 | (2) |
|
|
126 | (8) |
|
Chapter 4 How to develop a data-driven MVC web app |
|
|
|
An introduction to the Movie List app |
|
|
134 | (1) |
|
|
134 | (2) |
|
The folders and files of the app |
|
|
136 | (2) |
|
|
138 | (1) |
|
How to add EF Core to your project |
|
|
138 | (2) |
|
How to create a DbContext class |
|
|
140 | (2) |
|
|
142 | (2) |
|
How to add a connection string |
|
|
144 | (1) |
|
How to enable dependency injection |
|
|
144 | (2) |
|
How to use migrations to create the database |
|
|
146 | (2) |
|
|
148 | (1) |
|
|
148 | (2) |
|
How to insert, update, and delete data |
|
|
150 | (1) |
|
How to view the generated SQL statements |
|
|
150 | (2) |
|
|
152 | (1) |
|
|
152 | (1) |
|
|
152 | (2) |
|
|
154 | (2) |
|
|
156 | (2) |
|
|
158 | (2) |
|
How to work with related data |
|
|
160 | (1) |
|
How to relate one entity to another |
|
|
160 | (2) |
|
How to update the DbContext class and the seed data |
|
|
162 | (2) |
|
How to use migrations to update the database |
|
|
164 | (2) |
|
How to select related data and display it on the Movie List page |
|
|
166 | (2) |
|
How to display related data on the Add and Edit Movie pages |
|
|
168 | (2) |
|
How to make user-friendly URLs |
|
|
170 | (1) |
|
How to make URLs lowercase with a trailing slash |
|
|
170 | (2) |
|
|
172 | (8) |
|
Chapter 5 How to manually test and debug an ASP.NET Core web app |
|
|
|
How to test an ASP.NET Core web app |
|
|
180 | (1) |
|
|
180 | (2) |
|
How to use the Hot Reload feature |
|
|
182 | (2) |
|
How to use the browser's developer tools |
|
|
184 | (2) |
|
How to use the Internal Server Error page |
|
|
186 | (2) |
|
How to use the Exception Helper |
|
|
188 | (2) |
|
|
190 | (1) |
|
|
190 | (2) |
|
How to work in break mode |
|
|
192 | (2) |
|
How to monitor variables and expressions |
|
|
194 | (2) |
|
|
196 | (8) |
|
Section 2 Master the essential skills |
|
|
|
Chapter 6 How to work with controllers and routing |
|
|
|
How to use the default route |
|
|
204 | (1) |
|
How to configure the default route |
|
|
204 | (2) |
|
How the default route works |
|
|
206 | (2) |
|
How to code a simple controller and its actions |
|
|
208 | (2) |
|
How to code a controller that uses the id segment |
|
|
210 | (2) |
|
How to create custom routes |
|
|
212 | (1) |
|
How to include static content in a route |
|
|
212 | (2) |
|
How to work with multiple routing patterns |
|
|
214 | (2) |
|
How to use attribute routing |
|
|
216 | (1) |
|
How to change the routing for an action |
|
|
216 | (2) |
|
More skills for changing the routing for an action |
|
|
218 | (2) |
|
How to change the routing for a controller |
|
|
220 | (2) |
|
Best practices for creating URLs |
|
|
222 | (2) |
|
|
224 | (1) |
|
|
224 | (2) |
|
How to associate controllers with areas |
|
|
226 | (8) |
|
Chapter 7 How to work with Razor views |
|
|
|
|
234 | (1) |
|
How to work with code blocks and inline expressions |
|
|
234 | (2) |
|
|
236 | (2) |
|
How to code inline conditional statements |
|
|
238 | (2) |
|
Essential skills for Razor views |
|
|
240 | (1) |
|
The starting folders and files for an app |
|
|
240 | (2) |
|
How to code controllers that return views |
|
|
242 | (2) |
|
How to create a default layout and enable tag helpers |
|
|
244 | (2) |
|
How to use tag helpers to generate URLs for links |
|
|
246 | (2) |
|
Three views that use the default layout and tag helpers |
|
|
248 | (2) |
|
The three views displayed in a browser |
|
|
250 | (2) |
|
More skills for Razor views |
|
|
252 | (1) |
|
More tag helpers for generating URLs for links |
|
|
252 | (2) |
|
How to format numbers in a view |
|
|
254 | (2) |
|
|
256 | (1) |
|
How to pass a model to a view |
|
|
256 | (2) |
|
How to display model properties in a view |
|
|
258 | (2) |
|
How to bind model properties to HTML elements |
|
|
260 | (2) |
|
How to bind a list of items to a <select> element |
|
|
262 | (2) |
|
How to display a list of model objects |
|
|
264 | (4) |
|
How to work with Razor layouts |
|
|
268 | (1) |
|
How to create and apply a layout |
|
|
268 | (2) |
|
|
270 | (4) |
|
|
274 | (2) |
|
|
276 | (2) |
|
|
278 | (1) |
|
The user interface for customers |
|
|
278 | (1) |
|
The user interface for administrators |
|
|
278 | (10) |
|
Chapter 8 How to transfer data from controllers |
|
|
|
How to use ActionResult objects |
|
|
288 | (1) |
|
An introduction to ActionResult subtypes |
|
|
288 | (2) |
|
How to return ActionResult objects |
|
|
290 | (2) |
|
How to use the ViewData and ViewBag properties |
|
|
292 | (1) |
|
How to use the ViewData property |
|
|
292 | (2) |
|
How to use the ViewBag property |
|
|
294 | (2) |
|
|
296 | (1) |
|
|
296 | (2) |
|
|
298 | (2) |
|
|
300 | (2) |
|
|
302 | (2) |
|
|
304 | (2) |
|
How to work with view models |
|
|
306 | (1) |
|
How to create a view model |
|
|
306 | (2) |
|
The updated Index() action method |
|
|
308 | (1) |
|
The updated Home / Index view |
|
|
308 | (2) |
|
How to redirect a request |
|
|
310 | (1) |
|
How to use the ActionResult classes for redirection |
|
|
310 | (2) |
|
How to use the Post-Redirect-Get pattern |
|
|
312 | (2) |
|
How to use the TempData property |
|
|
314 | (1) |
|
How to get started with TempData |
|
|
314 | (2) |
|
How to use methods of the TempData dictionary |
|
|
316 | (2) |
|
|
318 | (1) |
|
|
318 | (4) |
|
|
322 | (1) |
|
The Details() action method of the Home controller |
|
|
322 | (1) |
|
|
322 | (2) |
|
The Add() action method of the Favorites controller |
|
|
324 | (1) |
|
|
324 | (6) |
|
Chapter 9 How to work with session state and cookies |
|
|
|
How ASP.NET MVC handles state |
|
|
330 | (1) |
|
Six ways to maintain state |
|
|
330 | (1) |
|
An introduction to session state |
|
|
330 | (2) |
|
How to work with session state |
|
|
332 | (1) |
|
How to configure an app to use session state |
|
|
332 | (2) |
|
How to work with session state items in a controller |
|
|
334 | (1) |
|
How to get session state values in a view |
|
|
334 | (2) |
|
How to use JSON to store objects in session state |
|
|
336 | (2) |
|
How to encapsulate session values |
|
|
338 | (1) |
|
How to extend the ISession interface |
|
|
338 | (2) |
|
How to use a wrapper class |
|
|
340 | (2) |
|
|
342 | (1) |
|
|
342 | (2) |
|
|
344 | (2) |
|
|
346 | (1) |
|
|
346 | (2) |
|
|
348 | (2) |
|
|
350 | (2) |
|
|
352 | (2) |
|
The Favorites / Index view |
|
|
354 | (2) |
|
|
356 | (1) |
|
How to work with session cookies |
|
|
356 | (1) |
|
How to work with persistent cookies |
|
|
356 | (2) |
|
|
358 | (1) |
|
|
358 | (2) |
|
|
360 | (2) |
|
|
362 | (6) |
|
Chapter 10 How to work with model binding |
|
|
|
An introduction to MVC model binding |
|
|
368 | (1) |
|
How to use controller properties to retrieve GET and POST data |
|
|
368 | (2) |
|
How to use model binding to retrieve GET and POST data |
|
|
370 | (2) |
|
How to use model binding with complex types |
|
|
372 | (2) |
|
How to use model binding with nested complex types |
|
|
374 | (2) |
|
More skills for binding data |
|
|
376 | (1) |
|
How to use a submit button to post a value |
|
|
376 | (2) |
|
How to post an array to an action method |
|
|
378 | (2) |
|
How to control the source of bound values |
|
|
380 | (2) |
|
How to control which values are bound |
|
|
382 | (2) |
|
|
384 | (1) |
|
|
384 | (2) |
|
|
386 | (2) |
|
The database context class |
|
|
388 | (1) |
|
A utility class for filtering |
|
|
388 | (2) |
|
|
390 | (4) |
|
|
394 | (1) |
|
|
394 | (4) |
|
|
398 | (6) |
|
Chapter 11 How to validate data |
|
|
|
How data validation works in MVC |
|
|
404 | (1) |
|
The default data validation provided by model binding |
|
|
404 | (2) |
|
How to use data attributes for validation |
|
|
406 | (2) |
|
A Registration page with data validation |
|
|
408 | (2) |
|
How to control the user experience |
|
|
410 | (1) |
|
How to format validation messages with CSS |
|
|
410 | (2) |
|
How to check validation state and use code to set validation messages |
|
|
412 | (2) |
|
How to display model-level and property-level validation messages |
|
|
414 | (2) |
|
How to enable client-side validation |
|
|
416 | (2) |
|
How to customize server-side validation |
|
|
418 | (1) |
|
How to create a custom data attribute |
|
|
418 | (2) |
|
How to pass values to a custom data attribute |
|
|
420 | (2) |
|
How to check multiple properties |
|
|
422 | (2) |
|
How to customize client-side validation |
|
|
424 | (1) |
|
How to add data attributes to the generated HTML |
|
|
424 | (2) |
|
How to add a validation method to the jQuery validation library |
|
|
426 | (2) |
|
How to work with remote validation |
|
|
428 | (2) |
|
|
430 | (1) |
|
The user interface and CSS |
|
|
430 | (2) |
|
The Customer and RegistrationContext classes |
|
|
432 | (2) |
|
The MinimumAgeAttribute class |
|
|
434 | (1) |
|
The minimum-age JavaScript file |
|
|
434 | (2) |
|
The Validation and Register controllers |
|
|
436 | (2) |
|
|
438 | (2) |
|
The Register / Index view |
|
|
440 | (6) |
|
Chapter 12 How to use EF Core |
|
|
|
How to create a database from code |
|
|
446 | (1) |
|
How to code entity and DB context classes |
|
|
446 | (2) |
|
How to configure the database |
|
|
448 | (2) |
|
How to manage configuration files |
|
|
450 | (2) |
|
EF commands for working with a database |
|
|
452 | (2) |
|
How to use EF migration commands |
|
|
454 | (2) |
|
How to work with relationships |
|
|
456 | (1) |
|
|
456 | (2) |
|
How to configure a one-to-many relationship |
|
|
458 | (2) |
|
How to configure a one-to-one relationship |
|
|
460 | (2) |
|
How to configure a many-to-many relationship |
|
|
462 | (2) |
|
How to seed data in the linking table of a many-to-many relationship |
|
|
464 | (2) |
|
How to control delete behavior |
|
|
466 | (2) |
|
The Bookstore database classes |
|
|
468 | (1) |
|
|
468 | (1) |
|
The context and configuration classes |
|
|
468 | (6) |
|
How to create code from a database |
|
|
474 | (1) |
|
How to generate DB context and entity classes |
|
|
474 | (2) |
|
How to configure a generated DB context class |
|
|
476 | (2) |
|
How to modify a generated entity class |
|
|
478 | (2) |
|
How to work with data in a database |
|
|
480 | (1) |
|
|
480 | (2) |
|
How to work with projections and related entities |
|
|
482 | (2) |
|
How to insert, update, and delete data |
|
|
484 | (2) |
|
How to handle concurrency conflicts |
|
|
486 | (1) |
|
How to check for concurrency conflicts |
|
|
486 | (2) |
|
How handle a concurrency exception |
|
|
488 | (2) |
|
How to encapsulate your EF code |
|
|
490 | (1) |
|
How to code a data access class |
|
|
490 | (2) |
|
How to use a generic query options class |
|
|
492 | (2) |
|
How to use the repository pattern |
|
|
494 | (8) |
|
Chapter 13 The Bookstore website |
|
|
|
The user interface and folder structure |
|
|
502 | (1) |
|
|
502 | (2) |
|
|
504 | (2) |
|
|
506 | (4) |
|
Some general-purpose code |
|
|
510 | (1) |
|
Extension methods for strings |
|
|
510 | (1) |
|
The generic QueryOptions class |
|
|
510 | (2) |
|
The generic Repository class |
|
|
512 | (2) |
|
The paging and sorting of the Author Catalog |
|
|
514 | (1) |
|
The user interface and custom route |
|
|
514 | (2) |
|
The abstract GridData class |
|
|
516 | (1) |
|
The AuthorGridData subclass |
|
|
516 | (2) |
|
The Author/List view model and the Author controller |
|
|
518 | (2) |
|
|
520 | (2) |
|
The paging and sorting of the Book Catalog |
|
|
522 | (1) |
|
The user interface and custom route |
|
|
522 | (2) |
|
The BookGridData subclass |
|
|
524 | (2) |
|
The Book/List view model and the Book controller |
|
|
526 | (2) |
|
|
528 | (4) |
|
|
532 | (1) |
|
Extension methods for session and cookies |
|
|
532 | (2) |
|
|
534 | (1) |
|
|
534 | (8) |
|
|
542 | (4) |
|
|
546 | (2) |
|
|
548 | (1) |
|
The BookRepository subclass |
|
|
548 | (2) |
|
|
550 | (2) |
|
The DeleteO and Related() action methods |
|
|
552 | (8) |
|
Section 3 Add more skills as you need them |
|
|
|
Chapter 14 How to use dependency injection and unit testing |
|
|
|
How to use dependency injection (Dl) |
|
|
560 | (1) |
|
How to configure your app for DI |
|
|
560 | (2) |
|
How to use DI with controllers |
|
|
562 | (2) |
|
How to create an interface for an existing class |
|
|
564 | (2) |
|
How to use DI with an HttpContextAccessor object |
|
|
566 | (2) |
|
How to use DI with action methods |
|
|
568 | (2) |
|
|
570 | (2) |
|
How to get started with unit testing |
|
|
572 | (1) |
|
|
572 | (2) |
|
How to add an xUnit project to a solution |
|
|
574 | (2) |
|
|
576 | (2) |
|
|
578 | (2) |
|
How to test methods that have dependencies |
|
|
580 | (1) |
|
How to use a fake repository object |
|
|
580 | (2) |
|
How to use a fake TempData object |
|
|
582 | (2) |
|
How to create fake objects with Moq |
|
|
584 | (1) |
|
How to work with mock objects |
|
|
584 | (2) |
|
How to mock a repository object |
|
|
586 | (1) |
|
How to mock a TempData object |
|
|
586 | (2) |
|
How to mock an HttpContextAccessor object |
|
|
588 | (2) |
|
The Bookstore.Tests project |
|
|
590 | (1) |
|
|
590 | (2) |
|
|
592 | (1) |
|
The BookControllerTests class |
|
|
592 | (2) |
|
The Admin Book Controller Tests class |
|
|
594 | (4) |
|
|
598 | (8) |
|
Chapter 15 How to work with tag helpers, partial views, and view components |
|
|
|
An introduction to tag helpers |
|
|
606 | (1) |
|
|
606 | (1) |
|
How to register tag helpers |
|
|
606 | (2) |
|
How to create custom tag helpers |
|
|
608 | (1) |
|
How to create a custom tag helper |
|
|
608 | (2) |
|
How to create a tag helper for a non-standard HTML element |
|
|
610 | (2) |
|
How to use extension methods with tag helpers |
|
|
612 | (2) |
|
How to control the scope of a tag helper |
|
|
614 | (2) |
|
How to use a tag helper to add elements |
|
|
616 | (2) |
|
More skills for custom tag helpers |
|
|
618 | (1) |
|
How to use properties with a tag helper |
|
|
618 | (2) |
|
How to work with the model property that an element is bound to |
|
|
620 | (2) |
|
How to use a ViewContext object with a tag helper |
|
|
622 | (1) |
|
How to use dependency injection with a tag helper |
|
|
622 | (2) |
|
How to create a conditional tag helper |
|
|
624 | (2) |
|
How to generate URLs in a tag helper |
|
|
626 | (2) |
|
How to work with partial views |
|
|
628 | (1) |
|
How to create and use a partial view |
|
|
628 | (2) |
|
How to pass data to a partial view |
|
|
630 | (2) |
|
How to work with view components |
|
|
632 | (1) |
|
How to create and use a view component |
|
|
632 | (2) |
|
How to pass data to a view component |
|
|
634 | (2) |
|
|
636 | (1) |
|
|
636 | (2) |
|
The updated ActiveNavbar tag helper |
|
|
638 | (2) |
|
|
640 | (2) |
|
|
642 | (6) |
|
Chapter 16 How to authenticate and authorize users |
|
|
|
An introduction to authentication |
|
|
648 | (1) |
|
Three types of authentication |
|
|
648 | (2) |
|
How individual user account authentication works |
|
|
650 | (2) |
|
An introduction to ASP.NET Identity |
|
|
652 | (2) |
|
How to restrict access to controllers and actions |
|
|
654 | (2) |
|
How to get started with Identity |
|
|
656 | (1) |
|
How to add Identity classes to the DB context |
|
|
656 | (2) |
|
How to add Identity tables to the database |
|
|
658 | (2) |
|
How to configure the middleware for Identity |
|
|
660 | (2) |
|
How to add Log In/Out buttons and links to the layout |
|
|
662 | (2) |
|
How to start the Account controller |
|
|
664 | (2) |
|
|
666 | (1) |
|
|
666 | (2) |
|
The Account/Register view |
|
|
668 | (2) |
|
The Register() action method for POST requests |
|
|
670 | (1) |
|
The LogOut() action method for POST requests |
|
|
670 | (2) |
|
|
672 | (1) |
|
|
672 | (2) |
|
|
674 | (2) |
|
The LogIn() action method for POST requests |
|
|
676 | (2) |
|
|
678 | (1) |
|
Properties and methods for working with roles |
|
|
678 | (2) |
|
The User entity and view model |
|
|
680 | (2) |
|
The User controller and its Index() action method |
|
|
682 | (2) |
|
|
684 | (4) |
|
Other action methods of the User controller |
|
|
688 | (2) |
|
The code that restricts access |
|
|
690 | (2) |
|
How to seed roles and users |
|
|
692 | (2) |
|
More skills for working with Identity |
|
|
694 | (1) |
|
How to change a user's password |
|
|
694 | (4) |
|
How to add more user registration fields |
|
|
698 | (6) |
|
Chapter 17 How to deploy ASP.NET Core MVC apps |
|
|
|
How to work with Visual Studio's publish feature |
|
|
704 | (1) |
|
How work with publish profiles |
|
|
704 | (2) |
|
How to work with the Publish wizard |
|
|
706 | (2) |
|
How to publish to the file system |
|
|
708 | (1) |
|
How to create a publish profile for the file system |
|
|
708 | (1) |
|
How to deploy to a publish folder |
|
|
708 | (1) |
|
How to change the publish folder |
|
|
708 | (2) |
|
How to publish a simple app to Azure |
|
|
710 | (1) |
|
How to get started with Azure |
|
|
710 | (2) |
|
How to create a publish profile for an Azure App Service |
|
|
712 | (2) |
|
How to deploy to the Azure App Service |
|
|
714 | (2) |
|
How to publish a data-driven app to Azure |
|
|
716 | (1) |
|
How to add an Azure SQL Database to a publish profile |
|
|
716 | (4) |
|
How to configure a connection string and migrations in a publish profile |
|
|
720 | (1) |
|
How to deploy a data-driven app to the Azure App Service |
|
|
720 | (2) |
|
How to work with an Azure app |
|
|
722 | (1) |
|
An introduction to the Azure portal |
|
|
722 | (2) |
|
How to delete an Azure App Service |
|
|
724 | (6) |
|
Chapter 18 How to use Visual Studio Code |
|
|
|
How to work with existing projects |
|
|
730 | (1) |
|
|
730 | (1) |
|
How to open and close a project folder |
|
|
730 | (2) |
|
How to view and edit files |
|
|
732 | (2) |
|
How to run and stop a project |
|
|
734 | (2) |
|
How to create the database for a project |
|
|
736 | (2) |
|
A summary of NET EF Core commands |
|
|
738 | (2) |
|
How to start a new project |
|
|
740 | (1) |
|
How to create a new project |
|
|
740 | (1) |
|
How to add NuGet packages to a project |
|
|
740 | (2) |
|
How to work with the folders and files |
|
|
742 | (2) |
|
How to install and manage client-side libraries |
|
|
744 | (2) |
|
|
746 | (1) |
|
|
746 | (2) |
|
How to work in break mode |
|
|
748 | (6) |
|
Appendix A How to set up Windows for this book |
|
|
|
How to install Visual Studio |
|
|
754 | (2) |
|
How to install the source code for this book |
|
|
756 | (2) |
|
How to create the databases for this book |
|
|
758 | (4) |
|
Appendix B How to set up macOS for this book |
|
|
|
How to install Visual Studio |
|
|
762 | (2) |
|
How to install the source code for this book |
|
|
764 | (2) |
|
Problems and solutions when using macOS with this book |
|
|
766 | (2) |
|
How to install and use DB Browser for SQLite |
|
|
768 | |