What you will learn in .NET in Action, Second Edition
Chapter by chapter
Concepts explained in this book
- integration testIntegration testing evaluates whether multiple software components work together correctly through their real integration points.
- .NET.NET is a free, cross-platform, open-source software platform whose runtime executes code compiled to Common Intermediate Language.
- dbcontextDbContext is the Entity Framework Core class that coordinates entity operations, querying, change tracking, and persistence for a data model.
- IEnumerableIEnumerable is a .NET interface representing a sequence whose elements can be enumerated.
- authorizationAuthorization is the process of determining which actions or resources an authenticated or anonymous principal is permitted to access.
- container imageA container image is an immutable package containing an application, its dependencies, and the filesystem data needed to create containers.
- parameterA query parameter is a key-value input appended to a URL that supplies options or filters for a web request.
- nullable reference typesA nullable reference type is a C# type annotation that allows a reference to represent null and participates in compile-time nullability analysis.
- garbage collectionA garbage collector is a runtime component that identifies unreachable allocated memory and reclaims it for future allocations.
- stack frameA stack frame is the portion of a call stack containing a function invocation's local data, arguments, and return information.
- Entity Framework CoreEntity Framework Core is a .NET object-relational mapping framework for accessing data stores.
- resource fileA resource file is an externalized application-data file containing content such as localized strings separately from source code.
- database transactionA transaction is a database operation boundary whose changes are committed together or discarded together to prevent partial completion.
- JSON Web TokenA JSON Web Token is a compact, URL-safe token format for conveying claims between parties, commonly with a digitally signed or authenticated representation.
- culture codeA culture is a set of language, formatting, sorting, and other regional conventions that influences software behavior and presentation.
- memory management modelMemory management is the process of allocating, tracking, and reclaiming computer memory during program execution.
- SelectSelect is a LINQ extension method that projects each element of an enumerable sequence into a new form.
- commitThe commit phase is the stage of a transaction in which its pending changes are finalized in the data store.
- SQL injectionA SQL injection vulnerability is a weakness that allows crafted input to alter or execute unintended SQL statements.
- JSONJSON is a text-based data-interchange format that represents structured values such as objects, arrays, strings, numbers, booleans, and null.
- asynchronous programmingAsynchronous programming is a programming technique in which operations can progress without blocking the execution flow while waiting for external work to complete.
- stackA stack is a runtime memory region that stores function-local variables, arguments, and return addresses using call-order allocation.
- User SecretsUser secrets are development-time configuration values stored outside a project to keep sensitive data out of source control.
- Common Language RuntimeThe .NET runtime is the execution environment that loads .NET assemblies and translates their intermediate code into processor-specific instructions.
- EF Core in-memory providerAn in-memory database provider is an EF Core provider that stores database data in application memory instead of a separate persistent database.
- code-first approachA code-first schema is a database schema generated from application entity definitions and ORM configuration.
- minimal APIMinimal APIs are an ASP.NET Core programming model for defining HTTP endpoints with minimal ceremony and without requiring controller classes.
- openid connectOpenID Connect is an identity layer built on OAuth 2.0 that enables clients to verify user identities and obtain basic profile information.
- development certificateA development certificate is a locally trusted certificate used to support secure HTTPS connections during software development.
- dotnet testdotnet test is a .NET CLI command that builds a test project, discovers its tests, and executes them.
- DockerfileA Dockerfile is a text file containing instructions for building a Docker container image.
- money transferA money transfer is an operation that debits one account and credits another by a specified amount.
- rollbackA rollback discards the changes made within a database transaction.
- BenchmarkDotNetBenchmarkDotNet is a .NET library and tool for measuring the performance of code.
- interfaceAn interface is a C# contract that specifies members an implementing type must provide.
- async streamAn async enumerable, or async stream, is an asynchronously produced sequence whose elements can be consumed as they become available.
- DockerDocker is a platform and command-line tool for building, distributing, and running containerized applications.
- IQueryableIQueryable is a LINQ interface representing a queryable data source whose query expression can be interpreted by a provider.
- SQLiteSQLite is an embedded relational database engine that stores a complete database in a local file or in memory.
- Swagger UISwagger UI is a browser-based interface that renders an API description and allows users to send test requests to the API.
- compactionGarbage-collection compaction moves live objects together to reduce fragmentation and create larger contiguous free-memory regions.
- fixed keywordThe C# fixed keyword prevents referenced managed objects from being relocated by garbage collection within a fixed statement or block.
- generation 0Generation 0 is the youngest .NET garbage-collection generation, containing newly allocated objects and collected most frequently.
- generation 2Generation 2 is the oldest .NET garbage-collection generation for objects that have survived earlier collections and are generally long-lived.
- heapA heap is a runtime memory region from which programs dynamically allocate contiguous chunks of memory.
- heap fragmentationHeap fragmentation is a memory-allocation condition in which free heap space is divided into separated regions that may not provide a sufficiently large contiguous block.
- memory leakA memory leak is a condition in which memory remains allocated or unreachable despite no longer being needed by a program.
- pointerA pointer is a value that represents a memory address and can be used to access or manipulate the addressed storage.
- arrayAn array is an indexed, typically fixed-size sequence of elements of a specified type.
- unsafe keywordThe C# unsafe keyword enables code that can use pointers and perform operations the runtime cannot verify as memory-safe.
- ResourceManagerResourceManager is a .NET class that retrieves resources according to the requested culture and resource-set organization.
- just-in-time compilationA just-in-time compiler translates intermediate code into machine code during program execution.
- LINQLanguage Integrated Query (LINQ) is a .NET language-integrated query technology for querying collections and data sources with a common syntax.
- async/awaitThe await keyword asynchronously suspends a C# method until an awaitable operation completes and then resumes it.
- CancellationTokenA cancellation token is a .NET value that communicates a cooperative request for an operation to stop.
- CancellationTokenSourceCancellationTokenSource is a .NET type that creates and controls cancellation signals represented by CancellationToken values.
- connection poolingA connection pool is a managed collection of reusable network connections that limits and coordinates simultaneous access.
- taskTask is a .NET type representing an asynchronous unit of work that may complete in the future.
- Task Parallel LibraryThe Task Parallel Library is the .NET library for expressing task-based asynchronous and parallel operations.
- Task.WhenAllTask.WhenAll is a .NET method that creates a task completing when all supplied tasks have completed.
- thread poolA thread pool is a managed collection of reusable worker threads that execute queued work items.
- deferred executionDeferred execution is evaluation of a query only when the resulting sequence is enumerated or otherwise requested.
- named tupleA named tuple is a C# tuple whose elements have programmer-defined names in addition to positional access.
- paginationPaging divides a result set into separately retrievable portions, typically controlled by a page size and position.
- lambdaAn anonymous method is a C# method implementation declared without a named method declaration and commonly represented as a delegate or function value.
- repository patternThe repository pattern is an architectural pattern that encapsulates access to and persistence of domain entities through a collection-like interface between the domain model and data-mapping or persistence layers.
- intermediate languageAn intermediate language is a processor-independent compiled representation that can later be translated into machine code.
- cascading deleteCascade delete is a relational-data behavior in which deleting a principal record also deletes its related dependent records.
- OpenAPI specificationOpenAPI is a machine-readable specification for describing HTTP APIs, including their endpoints, operations, parameters, and representations.
- PATCHPATCH is an HTTP method conventionally used to apply a partial update to a resource.
- SwashbuckleSwashbuckle is a .NET library that generates OpenAPI documentation and exposes Swagger UI for ASP.NET Core APIs.
- web serviceA web service is a software service that exposes functionality or data for interaction over a network, commonly through web protocols.
- dotnet newdotnet new list is a .NET CLI command that displays the project templates installed for use by dotnet new.
- abstract classAn abstract class is a C# class that may contain incomplete implementations and cannot be instantiated directly.
- method chainingMethod chaining is a programming style in which successive method calls are applied to the object returned by the preceding call.
- extensionAn extension method is a static method that can be invoked with instance-method syntax on a type without modifying or inheriting from that type.
- genericsA generic type or method is parameterized by one or more types so the same definition can operate with different type arguments.
- missing valueA null value indicates that a reference or nullable value does not refer to an object or contain a non-null value.
- multistage buildA multistage build constructs an image through multiple Dockerfile build stages so that artifacts from an earlier stage can be copied into a later runtime stage.
- DbCommandInterceptorDbCommandInterceptor is an Entity Framework Core base class for intercepting database command execution and related events.
- interceptorAn interceptor is a component that observes or modifies an operation before it is sent to an external system.
- principle of least privilegeLeast privilege is an authorization principle that grants an identity only the permissions required for its tasks.
- VerifyVerify is a .NET snapshot-testing library that compares test results with approved files.
- appsettings.Development.jsonappsettings.Environment.json is the conventional ASP.NET Core configuration file whose Environment placeholder is replaced by the current environment name.
- appsettings.jsonappsettings.json is a conventional .NET application configuration file containing default JSON settings.
- narrow integration testA narrow integration test is an integration test focused on a small component while exercising a real external dependency.
- base imageA base image is an existing container image from which another image is constructed.
- Dockerfile instructionA Dockerfile instruction is a directive written with an instruction keyword and arguments that controls image construction.
- dockerignore.dockerignore is a Docker configuration file that specifies files and directories excluded from a build context.
- EXPOSE instructionThe EXPOSE instruction documents a container port on which an application listens without publishing that port to the host.
- from instructionThe FROM instruction selects a base image and begins a build stage in a Dockerfile.
- image layerA container image layer is a separate immutable filesystem change produced by an image-build step and stored as part of the image.
- port numberA network port is a numbered endpoint used by networked software to identify a service on a host or container.
- port mappingPort mapping associates a host network port with a port exposed by a container.
- dependency injectionDependency injection is a pattern in which an object receives its dependencies from an external composition mechanism rather than creating them itself.
- null-forgiving operatorThe null-forgiving operator is the C# postfix ! operator that suppresses compiler nullability warnings without changing runtime behavior.
- HTTPHTTP is an application-layer protocol for transferring resources and exchanging messages between clients and servers.
- filteringA filter operation removes a matching stack frame and all frames below it from a profiling stack trace.
- identity providerAn identity provider is a service that authenticates users and supplies identity and authorization metadata to client applications.
- serializationSerialization is the conversion between structured in-memory objects and an external data representation such as JSON.
- retryA retry policy is a resilience rule that automatically repeats an operation after qualifying failures.
- testTesting is the systematic evaluation of software behavior against expected functionality and correctness.
- dependency inversionThe dependency inversion principle is a software design principle in which high-level modules depend on abstractions rather than concrete low-level implementations.
- dotnet watchdotnet watch is a .NET command-line tool that monitors source files and reruns or reloads an application when changes occur.
- WebApplicationFactoryWebApplicationFactory is an ASP.NET Core testing API that creates an in-memory application host and a client for sending requests to it.
- namespaceA namespace is a programming-language construct that groups related types and identifiers under a qualified name.
- internationalizationInternationalization is the design of software so that it can support multiple languages, locales, and regional conventions without major code changes.
- using statementA using statement is a C# resource-management construct that ensures an IDisposable resource is disposed when its enclosing scope ends.
- expression-bodied memberAn expression-bodied member is a C# member whose implementation is written as a single expression following an expression-body operator.
- compilerA compiler is a program that translates source code in a programming language into another executable or intermediate representation.
- AddDbContext<T>AddDbContext is an Entity Framework Core service-registration method that registers a DbContext type with a dependency injection container.
- AsNoTrackingAsNoTracking is an Entity Framework Core query extension method that prevents returned entities from being tracked by the context.
- change trackingChange tracking is an ORM capability that records changes to entity instances so they can be persisted to a data store.
- IAsyncEnumerable<T>IAsyncEnumerable is a .NET interface for asynchronously enumerating a sequence whose elements may become available over time.
- route templateA route template is a URL pattern containing segments and parameters that ASP.NET Core uses to match requests to endpoint actions.
- yieldyield return is C# iterator syntax that produces an element and suspends execution until the next element is requested.
- reference typeA reference type is a .NET type whose values identify objects or locations containing the type's data.
- value typeA value type is a .NET type whose values contain their data directly.
- DbSet<T>DbSet is an Entity Framework Core API type representing a queryable and persistable collection of entities in a database context.
- LINQ extensionA LINQ extension is a query operation exposed as an extension method for filtering, transforming, ordering, partitioning, or otherwise processing sequences.
- primary keyA primary key is a column or set of columns whose values uniquely identify rows in a database table.
- SaveChangesSaveChanges is the EF Core DbContext method that persists tracked changes to the database.
- database tableA table is a database structure that stores related records in rows and columns.
- CoreFXA base class library is the core collection of reusable types and APIs supplied by a programming platform.
- benchmarkA benchmark is a standardized or repeatable performance measurement of a component, operation, or system.
- IDisposableIDisposable is a .NET interface for types that expose deterministic release of unmanaged or other disposable resources.
- secret managementSecret Manager is a .NET development tool for storing and retrieving user secrets outside an application's project files.
- ActionAction is a .NET generic delegate family representing methods that accept parameters and return no value.
- launchSettings.jsonlaunchSettings.json is a .NET project configuration file that defines local launch profiles and development settings such as URLs and environment variables.
- MapGetMapGet is an ASP.NET Core endpoint-mapping method that associates HTTP GET requests with a handler.
- empty web templateAn empty web template is a .NET project template that creates a minimal web application without extensive generated boilerplate.
- routingA route is a URL pattern that an HTTP request can match to select an endpoint handler.
- type inferenceType inference is the compiler's deduction of a program expression or variable's type from available context and assignments.
- array boundsAn array bound is a limit defining the valid index range of an array.
- authorization handlerAn authorization handler is a component that evaluates an authorization requirement against the current user and resource context.
- authorization requirementAn authorization requirement is a condition that must be satisfied for an authorization policy to succeed.
- policyAn authorization policy is a set of access-control rules composed of requirements that determine whether an authenticated principal may perform an action.
- System.Text.JsonSystem.Text.Json is the .NET library that provides JSON serialization, deserialization, and document-processing APIs.
- globalizationGlobalization is the preparation of software and its data for operation across different regions, cultures, languages, formats, and conventions.
- bearer authenticationBearer authentication is an HTTP authentication method in which possession of a bearer token grants access to a protected resource.
- integer square rootAn integer square root is a square root whose result is an integer.
- containerA container is an isolated execution environment that packages an application with its dependencies while sharing the host operating system kernel.
- secretA secret is sensitive information, such as a credential or cryptographic key, that must be protected from unauthorized disclosure.
- claimA claim is a named assertion about a subject or token context represented as a property in a security token.
- JsonDocumentJsonDocument is a .NET type that provides read-only, in-memory access to the structure and values of a JSON document.
- entityA database entity is an application object or distinct unit of data whose state is represented and persisted in a database.
- command-line argumentA command-line argument is a value supplied to a program when it is invoked from a command-line interface.
- streamingStream is a .NET abstraction for reading and writing sequences of bytes across sources such as files, network responses, memory, and console I/O.
- Common Type SystemThe Common Type System is the .NET type model that defines types and their behavior across .NET languages.
- using-directiveA using directive is a C# declaration that makes types in a namespace available without their fully qualified names.
- Razor PagesA Razor page is an ASP.NET Core web page that combines view rendering with request-handling logic without requiring an explicit controller.
- HTTPSHTTPS is HTTP carried over a TLS-protected connection.
- endpointAn endpoint is a network-accessible interface that receives requests and returns responses for a defined operation or resource.
- measurementA measurement is a quantified observation of a software or system characteristic such as execution time or resource usage.
- default constructorA default constructor is a parameterless constructor supplied by the compiler or explicitly declared for a type.
- Docker DesktopDocker Desktop is a desktop application that provides Docker container development and runtime capabilities on supported operating systems.
- arrange act assert patternThe Arrange, Act, Assert pattern organizes a unit test into setup, invocation of the method under test, and behavioral verification.
- CSVCSV is a delimited text format in which records are represented as lines and fields are separated by commas, with quoting and escaping rules for special content.
- data transfer objectA data transfer object is an object that defines the data communicated across a boundary without necessarily exposing the structure of the underlying domain or persistence model.
- csv parsingCSV parsing is the process of interpreting comma-separated values text into records and fields while handling delimiters, quoting, and escaping.
- join tableA join table is an intermediary database table that stores associations between entities in a many-to-many relationship.
- eager loadingEager loading retrieves an entity and specified related entities as part of the same query operation.
- entity-relationship modelAn entity relationship is an association between entities or records that expresses how their data is connected.
- foreign keyA foreign key is a relational-database column or set of columns whose values reference a key in another table.
- IncludeInclude is an Entity Framework Core query extension method that specifies related entities to load with the queried entities.
- many-to-many relationshipA many-to-many relationship allows multiple instances of each of two entity types to be associated with multiple instances of the other.
- navigation propertyA navigation property is an ORM-mapped object or collection property that traverses a relationship to related entities.
- one-to-many relationshipA one-to-many relationship associates one instance of a principal entity with multiple instances of a dependent entity.
- principal entityA principal entity is the entity on which the existence or identity of a dependent entity is based.
- dependent entityA dependent entity is an entity whose existence or identity depends on a principal entity.
- authenticationAuthentication is the process of verifying the identity of a user, service, or other principal.
- security tokenAn authentication token is a credential presented by a client to convey verified identity information to a service.
- tiered compilationTiered compilation is a runtime compilation strategy that initially favors fast compilation and later recompiles code using execution information.
- machine languageMachine code is processor-executable instructions encoded in a form that a computer's hardware can directly execute.
- PollyPolly is a .NET resilience library for expressing policies such as retries, circuit breakers, timeouts, and fallbacks.
- volumeA volume is storage made available to a container by mounting a host folder or file at a path in the container.
- configurationConfiguration is the set of externally supplied settings that control an application's behavior.
- JavaScript runtimeA runtime is the execution environment that loads and runs program code while providing language and system services.
- operator overloadingOperator overloading is a language feature that lets a type define the behavior of an operator for its values.
- Document Object ModelA DOM is an in-memory tree representation of structured document data whose nodes can be inspected and modified.
- regular expressionA regular expression is a pattern language for matching and processing text according to specified character sequences.
- JSON file providerA JSON configuration provider is a .NET configuration component that loads settings from a JSON file.
- controllerAn MVC controller is the component that receives requests or user input and coordinates the model and view used to produce a response.
- vulnerabilityA vulnerability is a weakness in software, configuration, or architecture that can be exploited to compromise security.
- dependencyA dependency is an external software component required by an application or another software component.
- ASP.NET Core IdentityASP.NET Core Identity is an extensible membership system for managing users, authentication, authorization, and related identity data in ASP.NET Core applications.
- connection stringA connection string is a configuration string that specifies how an application connects to a data source and its connection options.
- PerfViewPerfView is a Windows performance analysis tool for collecting, inspecting, and comparing runtime traces and profiles.
- global using directiveA global using directive makes a namespace or type import available throughout all files in a C# compilation unit.
- dotnet dev-certsdotnet dev-certs is a .NET CLI command for creating, checking, and trusting development HTTPS certificates.
- hsts headerHTTP Strict Transport Security is a web security policy that tells browsers to access a site only through HTTPS.
- HTTPS redirectionHTTPS redirection is the practice of responding to HTTP requests by redirecting clients to the corresponding HTTPS URL.
- HttpsRedirectionMiddlewareUseHttpsRedirection is ASP.NET Core middleware configuration that redirects HTTP requests to HTTPS URLs.
- certificateA certificate is a digitally signed credential that binds an identity to a public key for establishing authenticated secure connections.
- result resourceActionResult is an ASP.NET Core result abstraction that represents the outcome of handling a web request, including its response content and HTTP status code.
- barcodeA barcode is a machine-readable visual encoding of data using structured marks or symbols.
- BarcodeLibBarcodeLib is a .NET library for generating barcode images in multiple barcode formats.
- FileResultA File ActionResult is an ASP.NET Core action result that sends file or binary content in an HTTP response.
- HTTP response codeAn HTTP status code is a three-digit response code indicating the outcome of an HTTP request.
- IResultIResult is an ASP.NET Core interface representing the result of executing an HTTP endpoint.
- output parameterAn out parameter is a C# method parameter that the method must assign before returning and that provides an additional output value to the caller.
- Results.NotFoundResults.NotFound is an ASP.NET Core factory method that creates an HTTP 404 Not Found result.
- ternary conditional operatorA ternary operator is a conditional C# operator that evaluates a Boolean expression and selects one of two value expressions.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
