diff --git a/docs/csharp/fundamentals/types/index.md b/docs/csharp/fundamentals/types/index.md index 381a615c2adb3..209be162b385e 100644 --- a/docs/csharp/fundamentals/types/index.md +++ b/docs/csharp/fundamentals/types/index.md @@ -54,7 +54,7 @@ C# provides a standard set of built-in types. These represent integers, floating ## Custom types -You use the [`struct`](../../language-reference/builtin-types/struct.md), [`class`](../../language-reference/keywords/class.md), [`interface`](../../language-reference/keywords/interface.md), [`enum`](../../language-reference/builtin-types/enum.md), and [`record`](../../language-reference/builtin-types/record.md) constructs to create your own custom types. The .NET class library itself is a collection of custom types that you can use in your own applications. By default, the most frequently used types in the class library are available in any C# program. Others become available only when you explicitly add a project reference to the assembly that defines them. After the compiler has a reference to the assembly, you can declare variables (and constants) of the types declared in that assembly in source code. For more information, see [.NET Class Library](../../../standard/class-library-overview.md). +You use the [`struct`](../../language-reference/builtin-types/struct.md), [`class`](../../language-reference/keywords/class.md), [`interface`](../../language-reference/keywords/interface.md), [`enum`](../../language-reference/builtin-types/enum.md), and [`record`](../../language-reference/builtin-types/record.md) constructs to create your own custom types. The .NET class library itself is a collection of custom types that you can use in your own applications. By default, the most frequently used types in the class library are available in any C# program. Others become available only when you explicitly add a project reference to the assembly that defines them. After the compiler has a reference to the assembly, you can declare variables (and constants) of the types declared in that assembly in source code. One of the first decisions you make when defining a type is deciding which construct to use for your type. The following list helps make that initial decision. There's overlap in the choices. In most scenarios, more than one option is a reasonable choice. @@ -82,14 +82,14 @@ The following illustration shows the relationship between value types and refere Classes and structs are two of the basic constructs of the common type system in .NET. Each is essentially a data structure that encapsulates a set of data and behaviors that belong together as a logical unit. The data and behaviors are the *members* of the class, struct, or record. The members include its methods, properties, events, and so on, as listed later in this article. -A class, struct, or record declaration is like a blueprint that is used to create instances or objects at run time. If you define a class, struct, or record named `Person`, `Person` is the name of the type. If you declare and initialize a variable `p` of type `Person`, `p` is said to be an object or instance of `Person`. Multiple instances of the same `Person` type can be created, and each instance can have different values in its properties and fields. - +A class, struct, or record declaration is like a blueprint that is used to create instances or objects at run time. If you define a class, struct, or record named `Person`, `Person` is the name of the type. If you declare and initialize a variable `p` of type `Person`, `p` is said to be an object or instance of `Person`. Multiple instances of the same `Person` type can be created, and each instance can have different values in its properties and fields. + A class is a reference type. When an object of the type is created, the variable to which the object is assigned holds only a reference to that memory. When the object reference is assigned to a new variable, the new variable refers to the original object. Changes made through one variable are reflected in the other variable because they both refer to the same data. - + A struct is a value type. When a struct is created, the variable to which the struct is assigned holds the struct's actual data. When the struct is assigned to a new variable, it's copied. The new variable and the original variable therefore contain two separate copies of the same data. Changes made to one copy don't affect the other copy. Record types can be either reference types (`record class`) or value types (`record struct`). Record types contain methods that support value-equality. - + In general, classes are used to model more complex behavior. Classes typically store data that is intended to be modified after a class object is created. Structs are best suited for small data structures. Structs typically store data that isn't intended to be modified after the struct is created. Record types are data structures with extra compiler synthesized members. Records typically store data that isn't intended to be modified after the object is created. ### Value types diff --git a/docs/framework/data/adonet/dataset-datatable-dataview/datatables.md b/docs/framework/data/adonet/dataset-datatable-dataview/datatables.md index f80d993d90e3c..888d0ab29de35 100644 --- a/docs/framework/data/adonet/dataset-datatable-dataview/datatables.md +++ b/docs/framework/data/adonet/dataset-datatable-dataview/datatables.md @@ -6,53 +6,53 @@ ms.assetid: 52ff0e32-3e5a-41de-9a3b-7b04ea52b83e --- # DataTables -A is made up of a collection of tables, relationships, and constraints. In ADO.NET, objects are used to represent the tables in a **DataSet**. A **DataTable** represents one table of in-memory relational data; the data is local to the .NET-based application in which it resides, but can be populated from a data source such as Microsoft SQL Server using a **DataAdapter** For more information, see [Populating a DataSet from a DataAdapter](../populating-a-dataset-from-a-dataadapter.md). - - The **DataTable** class is a member of the **System.Data** namespace within the .NET Framework class library. You can create and use a **DataTable** independently or as a member of a **DataSet**, and **DataTable** objects can also be used in conjunction with other .NET Framework objects, including the . You access the collection of tables in a **DataSet** through the **Tables** property of the **DataSet** object. - - The schema, or structure of a table is represented by columns and constraints. You define the schema of a **DataTable** using objects as well as and objects. The columns in a table can map to columns in a data source, contain calculated values from expressions, automatically increment their values, or contain primary key values. - - In addition to a schema, a **DataTable** must also have rows to contain and order data. The class represents the actual data contained in a table. You use the **DataRow** and its properties and methods to retrieve, evaluate, and manipulate the data in a table. As you access and change the data within a row, the **DataRow** object maintains both its current and original state. - - You can create parent-child relationships between tables using one or more related columns in the tables. You create a relationship between **DataTable** objects using a . **DataRelation** objects can then be used to return the related child or parent rows of a particular row. For more information, see [Adding DataRelations](adding-datarelations.md). - -## In This Section - - [Creating a DataTable](creating-a-datatable.md) - Explains how to create a **DataTable** and add it to a **DataSet**. - - [DataTable Schema Definition](datatable-schema-definition.md) - Provides information about creating and using **DataColumn** objects and constraints. - - [Manipulating Data in a DataTable](manipulating-data-in-a-datatable.md) - Explains how to add, modify, and delete data in a table. Explains how to use **DataTable** events to examine changes to data in the table. - - [Handling DataTable Events](handling-datatable-events.md) - Provides information about the events available for use with a **DataTable**, including events when column values are modified and rows are added or deleted. - -## Related Sections - - [ADO.NET](../index.md) - Describes the ADO.NET architecture and components, and how to use them to access existing data sources and manage application data. - - [DataSets, DataTables, and DataViews](index.md) - Provides information about the ADO.NET **DataSet** including how to create relationships between tables. - - - Provides reference information about the **Constraint** object. - - - Provides reference information about the **DataColumn** object. - - - Provides reference information about the **DataSet** object. - - - Provides reference information about the **DataTable** object. - - [Class Library Overview](../../../../standard/class-library-overview.md) - Provides an overview of the .NET Framework class library, including the **System** namespace as well as its second-level namespace, **System.Data**. - +A is made up of a collection of tables, relationships, and constraints. In ADO.NET, objects are used to represent the tables in a **DataSet**. A **DataTable** represents one table of in-memory relational data; the data is local to the .NET-based application in which it resides, but can be populated from a data source such as Microsoft SQL Server using a **DataAdapter** For more information, see [Populating a DataSet from a DataAdapter](../populating-a-dataset-from-a-dataadapter.md). + + The **DataTable** class is a member of the **System.Data** namespace within the .NET Framework class library. You can create and use a **DataTable** independently or as a member of a **DataSet**, and **DataTable** objects can also be used in conjunction with other .NET Framework objects, including the . You access the collection of tables in a **DataSet** through the **Tables** property of the **DataSet** object. + + The schema, or structure of a table is represented by columns and constraints. You define the schema of a **DataTable** using objects as well as and objects. The columns in a table can map to columns in a data source, contain calculated values from expressions, automatically increment their values, or contain primary key values. + + In addition to a schema, a **DataTable** must also have rows to contain and order data. The class represents the actual data contained in a table. You use the **DataRow** and its properties and methods to retrieve, evaluate, and manipulate the data in a table. As you access and change the data within a row, the **DataRow** object maintains both its current and original state. + + You can create parent-child relationships between tables using one or more related columns in the tables. You create a relationship between **DataTable** objects using a . **DataRelation** objects can then be used to return the related child or parent rows of a particular row. For more information, see [Adding DataRelations](adding-datarelations.md). + +## In This Section + + [Creating a DataTable](creating-a-datatable.md) + Explains how to create a **DataTable** and add it to a **DataSet**. + + [DataTable Schema Definition](datatable-schema-definition.md) + Provides information about creating and using **DataColumn** objects and constraints. + + [Manipulating Data in a DataTable](manipulating-data-in-a-datatable.md) + Explains how to add, modify, and delete data in a table. Explains how to use **DataTable** events to examine changes to data in the table. + + [Handling DataTable Events](handling-datatable-events.md) + Provides information about the events available for use with a **DataTable**, including events when column values are modified and rows are added or deleted. + +## Related Sections + + [ADO.NET](../index.md)\ + Describes the ADO.NET architecture and components, and how to use them to access existing data sources and manage application data. + + [DataSets, DataTables, and DataViews](index.md)\ + Provides information about the ADO.NET including how to create relationships between tables. + + \ + Provides reference information about the **Constraint** object. + + \ + Provides reference information about the **DataColumn** object. + + \ + Provides reference information about the **DataSet** object. + + \ + Provides reference information about the **DataTable** object. + + [Core .NET libraries overview](../../../../standard/class-library-overview.md)\ + Provides an overview of the .NET class library. + ## See also - [ADO.NET Overview](../ado-net-overview.md) diff --git a/docs/framework/interop/blittable-and-non-blittable-types.md b/docs/framework/interop/blittable-and-non-blittable-types.md index ca2814a3c36ce..e9075328b0f1d 100644 --- a/docs/framework/interop/blittable-and-non-blittable-types.md +++ b/docs/framework/interop/blittable-and-non-blittable-types.md @@ -1,6 +1,6 @@ --- title: "Blittable and Non-Blittable Types" -description: Learn about blittable and non-blittable types. Blittable data types are commonly represented in managed and unmanaged memory and don't need special handling. +description: Learn about blittable and nonblittable types. Blittable data types are commonly represented in managed and unmanaged memory and don't need special handling. ms.date: "03/30/2017" helpviewer_keywords: - "interop marshalling, blittable types" @@ -9,62 +9,50 @@ ms.assetid: d03b050e-2916-49a0-99ba-f19316e5c1b3 --- # Blittable and Non-Blittable Types -Most data types have a common representation in both managed and unmanaged memory and do not require special handling by the interop marshaller. These types are called *blittable types* because they do not require conversion when they are passed between managed and unmanaged code. +Most data types have a common representation in both managed and unmanaged memory and don't require special handling by the interop marshaller. These types are called *blittable types* because they don't require conversion when they're passed between managed and unmanaged code. - Structures that are returned from platform invoke calls must be blittable types. Platform invoke does not support non-blittable structures as return types. + Structures that are returned from platform invoke calls must be blittable types. Platform invoke doesn't support nonblittable structures as return types. The following types from the namespace are blittable types: - - - - - - - - - - - - - - - - - - - - - - - The following complex types are also blittable types: - One-dimensional arrays of blittable primitive types, such as an array of integers. However, a type that contains a variable array of blittable types is not itself blittable. +- Formatted value types that contain only blittable types (and classes if they're marshalled as formatted types). For more information about formatted value types, see [Default marshalling for value types](default-marshalling-behavior.md#default-marshalling-for-value-types). -- Formatted value types that contain only blittable types (and classes if they are marshalled as formatted types). For more information about formatted value types, see [Default marshalling for value types](default-marshalling-behavior.md#default-marshalling-for-value-types). - - Object references are not blittable. This includes an array of references to objects that are blittable by themselves. For example, you can define a structure that is blittable, but you cannot define a blittable type that contains an array of references to those structures. + Object references aren't blittable. In addition, an array of references to objects that are blittable by themselves isn't blittable. For example, you can define a structure that's blittable, but you can't define a blittable type that contains an array of references to those structures. As an optimization, arrays of blittable primitive types and classes that contain only blittable members are [pinned](copying-and-pinning.md) instead of copied during marshalling. These types can appear to be marshalled as In/Out parameters when the caller and callee are in the same apartment. However, these types are actually marshalled as In parameters, and you must apply the and attributes if you want to marshal the argument as an In/Out parameter. - Some managed data types require a different representation in an unmanaged environment. These non-blittable data types must be converted into a form that can be marshalled. For example, managed strings are non-blittable types because they must be converted into string objects before they can be marshalled. + Some managed data types require a different representation in an unmanaged environment. These nonblittable data types must be converted into a form that can be marshalled. For example, managed strings are nonblittable types because they must be converted into string objects before they can be marshalled. - The following table lists non-blittable types from the namespace. [Delegates](default-marshalling-behavior.md#default-marshalling-for-delegates), which are data structures that refer to a static method or to a class instance, are also non-blittable. + The following table lists nonblittable types from the namespace. [Delegates](default-marshalling-behavior.md#default-marshalling-for-delegates), which are data structures that refer to a static method or to a class instance, are also nonblittable. -| Non-blittable type | Description | +| Nonblittable type | Description | |---------------------------------------------------|-----------------------------------------------| -|[System.Array](default-marshalling-for-arrays.md)|Converts to a C-style array or a `SAFEARRAY`.| -|[System.Boolean](/previous-versions/dotnet/netframework-4.0/t2t3725f(v=vs.100))|Converts to a 1, 2, or 4-byte value with `true` as 1 or -1.| -|[System.Char](/previous-versions/dotnet/netframework-4.0/6tyybbf2(v=vs.100))|Converts to a Unicode or ANSI character.| -|[System.Class](/previous-versions/dotnet/netframework-4.0/s0968xy8(v=vs.100))|Converts to a class interface.| -|[System.Object](default-marshalling-for-objects.md)|Converts to a variant or an interface.| -|[System.String](default-marshalling-for-strings.md)|Converts to a string terminating in a null reference or to a BSTR.| -|[System.ValueType](/previous-versions/dotnet/netframework-4.0/0t2cwe11(v=vs.100))|Converts to a structure with a fixed memory layout.| -|[T[]](default-marshalling-for-arrays.md)|Converts to a C-style array or a `SAFEARRAY`.| - -Class and object types are supported only by COM interop. For corresponding types in Visual Basic, C#, and C++, see the [Class Library Overview](../../standard/class-library-overview.md). +| [System.Array](default-marshalling-for-arrays.md) | Converts to a C-style array or a `SAFEARRAY`. | +| [System.Boolean](/previous-versions/dotnet/netframework-4.0/t2t3725f(v=vs.100)) | Converts to a 1, 2, or 4-byte value with `true` as 1 or -1. | +| [System.Char](/previous-versions/dotnet/netframework-4.0/6tyybbf2(v=vs.100)) | Converts to a Unicode or ANSI character. | +| [System.Class](/previous-versions/dotnet/netframework-4.0/s0968xy8(v=vs.100)) | Converts to a class interface. | +| [System.Object](default-marshalling-for-objects.md) | Converts to a variant or an interface. | +| [System.String](default-marshalling-for-strings.md) | Converts to a string terminating in a null reference or to a BSTR. | +| [System.ValueType](/previous-versions/dotnet/netframework-4.0/0t2cwe11(v=vs.100)) | Converts to a structure with a fixed memory layout. | +| [T[]](default-marshalling-for-arrays.md) | Converts to a C-style array or a `SAFEARRAY`. | + +Class and object types are supported only by COM interop. ## See also diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index 7b74f1965d772..5f6cb1b04327a 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -255,7 +255,7 @@ items: href: runtime-libraries/system-convert.md - name: Choose between anonymous and tuple types href: ../standard/base-types/choosing-between-anonymous-and-tuple.md - - name: Class library overview + - name: Core .NET libraries overview href: ../standard/class-library-overview.md - name: Supplemental API remarks items: diff --git a/docs/standard/class-library-overview.md b/docs/standard/class-library-overview.md index e00538be31682..9e34f12f75029 100644 --- a/docs/standard/class-library-overview.md +++ b/docs/standard/class-library-overview.md @@ -1,42 +1,9 @@ --- -title: .NET class library overview -description: Learn about the .NET class library. .NET APIs include classes, interfaces, delegates, and value types to provide access to system functionality. -ms.date: 04/22/2021 -helpviewer_keywords: - - "classes [.NET], library overview" - - ".NET, library overview" - - "class objects value type" - - "naming conventions [.NET]" - - "types, .NET" - - "user-defined types" - - "Visual Basic, data types" - - "data types [.NET], C++" - - "Visual C#, data types" - - "libraries, .NET" - - "data types [.NET], F#" - - "System namespace" - - "F#, data types" - - ".NET, class library" - - "type system [.NET]" - - "data types [.NET]" - - "value types" - - "data types [.NET], Visual Basic" - - "Common Language Specification" - - "namespaces [.NET]" - - "floating point value type" - - "class library [.NET]" - - "CLS" - - "logical value type" - - "built-in types" - - "namespaces [.NET], about namespaces" - - "Visual C++, data types" - - "members [.NET], type" - - "data types [.NET], C#" - - "integer value type" - - "base types, class library" -ms.assetid: 7e4c5921-955d-4b06-8709-101873acf157 +title: Overview of core .NET libraries +description: Learn about the core .NET libraries. .NET APIs include classes, interfaces, delegates, and value types to provide access to system functionality. +ms.date: 11/05/2025 --- -# .NET class library overview +# Core .NET libraries overview .NET APIs include classes, interfaces, delegates, and value types that expedite and optimize the development process and provide access to system functionality. To facilitate interoperability between languages, most .NET types are CLS-compliant and can therefore be used from any programming language whose compiler conforms to the common language specification (CLS). @@ -49,79 +16,58 @@ ms.assetid: 7e4c5921-955d-4b06-8709-101873acf157 - Invoke .NET security checks. - Provide data access, rich client-side GUI, and server-controlled, client-side GUI. -.NET provides a rich set of interfaces, as well as abstract and concrete (non-abstract) classes. You can use the concrete classes as-is or, in many cases, derive your own classes from them. To use the functionality of an interface, you can either create a class that implements the interface or derive a class from one of the .NET classes that implements the interface. +.NET provides a rich set of interfaces as well as abstract and concrete (non-abstract) classes. You can use the concrete classes as-is or, in many cases, derive your own classes from them. To use the functionality of an interface, you can either create a class that implements the interface or derive a class from one of the .NET classes that implements the interface. ## Naming conventions - .NET types use a dot syntax naming scheme that connotes a hierarchy. This technique groups related types into namespaces so they can be searched and referenced more easily. The first part of the full name—up to the rightmost dot—is the namespace name. The last part of the name is the type name. For example, `System.Collections.Generic.List` represents the `List` type, which belongs to the `System.Collections.Generic` namespace. The types in can be used to work with generic collections. + .NET types use a dot syntax naming scheme to represent a hierarchy. Related types are grouped into namespaces so they can be searched and referenced more easily. The first part of the full name is the namespace name. The last part of the name is the type or member name. For example, `System.Collections.Generic.List` represents the type, which belongs to the `System.Collections.Generic` namespace. The types in can be used to work with generic collections. - This naming scheme makes it easy for library developers extending .NET to create hierarchical groups of types and name them in a consistent, informative manner. It also allows types to be unambiguously identified by their full name (that is, by their namespace and type name), which prevents type name collisions. Library developers are expected to use the following convention when creating names for their namespaces: - - *CompanyName*.*TechnologyName* - - For example, the namespace `Microsoft.Word` conforms to this guideline. + This naming scheme makes it easy for library developers who extend .NET to create hierarchical groups of types and name them in a consistent, informative manner. It also allows types to be unambiguously identified by their full name (that is, by their namespace and type name), which prevents type name collisions. The use of naming patterns to group related types into namespaces is a useful way to build and document class libraries. However, this naming scheme has no effect on visibility, member access, inheritance, security, or binding. A namespace can be partitioned across multiple assemblies and a single assembly can contain types from multiple namespaces. The assembly provides the formal structure for versioning, deployment, security, loading, and visibility in the common language runtime. - For more information on namespaces and type names, see [Common Type System](base-types/common-type-system.md). + For more information on namespaces and type names, see [Common type system](base-types/common-type-system.md). ## System namespace - The namespace is the root namespace for fundamental types in .NET. This namespace includes classes that represent the base data types used by all applications, for example, (the root of the inheritance hierarchy), , , , , and . Many of these types correspond to the primitive data types that your programming language uses. When you write code using .NET types, you can use your language's corresponding keyword when a .NET base data type is expected. - - The following table lists the base types that .NET supplies, briefly describes each type, and indicates the corresponding type in Visual Basic, C#, C++, and F#. - -|Category|Class name|Description|Visual Basic data type|C# data type|C++/CLI data type|F# data type| -|--------------|----------------|-----------------|----------------------------|-------------------|---------------------|-----------------------| -|Integer||An 8-bit unsigned integer.|`Byte`|`byte`|`unsigned char`|`byte`| -|||An 8-bit signed integer.

Not CLS-compliant.|`SByte`|`sbyte`|`char` or `signed char`|`sbyte`| -|||A 16-bit signed integer.|`Short`|`short`|`short`|`int16`| -|||A 32-bit signed integer.|`Integer`|`int`|`int` or `long`|`int`| -|||A 64-bit signed integer.|`Long`|`long`|`__int64`|`int64`| -|||A 16-bit unsigned integer.

Not CLS-compliant.|`UShort`|`ushort`|`unsigned short`|`uint16`| -|||A 32-bit unsigned integer.

Not CLS-compliant.|`UInteger`|`uint`|`unsigned int` or `unsigned long`|`uint32`| -|||A 64-bit unsigned integer.

Not CLS-compliant.|`ULong`|`ulong`|`unsigned __int64`|`uint64`| -|Floating point||A half-precision (16-bit) floating-point number.||||| -|||A single-precision (32-bit) floating-point number.|`Single`|`float`|`float`|`float32` or `single`| -|||A double-precision (64-bit) floating-point number.|`Double`|`double`|`double`|`float` or `double`| -|Logical||A Boolean value (true or false).|`Boolean`|`bool`|`bool`|`bool`| -|Other||A Unicode (16-bit) character.|`Char`|`char`|`wchar_t`|`char`| -|||A decimal (128-bit) value.|`Decimal`|`decimal`|`Decimal`|`decimal`| -|||A signed integer whose size depends on the underlying platform (a 32-bit value on a 32-bit platform and a 64-bit value on a 64-bit platform).| |`nint`| |`unativeint`| -|||An unsigned integer whose size depends on the underlying platform (a 32- bit value on a 32-bit platform and a 64-bit value on a 64-bit platform).

Not CLS-compliant.| |`nuint`| |`unativeint`| -|||The root of the object hierarchy.|`Object`|`object`|`Object^`|`obj`| -|||An immutable, fixed-length string of Unicode characters.|`String`|`string`|`String^`|`string`| - -In addition to the base data types, the namespace contains over 100 classes, ranging from classes that handle exceptions to classes that deal with core runtime concepts, such as application domains and the garbage collector. The namespace also contains many second-level namespaces. - -For more information about namespaces, use the [.NET API Browser](../../api/index.md) to browse the .NET Class Library. The API reference documentation provides documentation on each namespace, its types, and each of their members. +The namespace is the root namespace for fundamental types in .NET. This namespace includes classes that represent the base data types used by all applications, for example, (the root of the inheritance hierarchy), , , , , and . + +Many of these types correspond to the primitive data types that a programming language uses. When you write code using .NET types, you can use the corresponding language keyword when a .NET base data type is expected. For more information, see: + +- [Built-in types (C# reference)](../csharp/language-reference/builtin-types/built-in-types.md) +- [Primitive types (Visual Basic)](/dotnet/visual-basic/reference/language-specification/types#primitive-types) +- [Basic types (F#)](../fsharp/language-reference/basic-types.md) + +In addition to the base data types, the namespace contains over 100 classes, ranging from classes that handle exceptions to classes that deal with core runtime concepts, such as garbage collection. The namespace also contains many second-level namespaces. + +The [.NET API reference documentation](../../api/index.md) provides documentation on each namespace, its types, and their members. ## Data structures .NET includes a set of data structures that are the workhorses of many .NET apps. These are mostly collections, but also include other types. -* - Represents an array of strongly typed objects that can be accessed by index. Has a fixed size, per its construction. -* - Represents a strongly typed list of objects that can be accessed by index. Is automatically resized as needed. -* - Represents a collection of values that are indexed by a key. Values can be accessed via key. Is automatically resized as needed. -* - Provides an object representation of a uniform resource identifier (URI) and easy access to the parts of the URI. -* - Represents an instant in time, typically expressed as a date and time of day. +- - Represents an array of strongly typed objects that can be accessed by index. Has a fixed size, per its construction. +- - Represents a strongly typed list of objects that can be accessed by index. Is automatically resized as needed. +- - Represents a collection of values that are indexed by a key. Values can be accessed via key. Is automatically resized as needed. +- - Provides an object representation of a uniform resource identifier (URI) and easy access to the parts of the URI. +- - Represents an instant in time, typically expressed as a date and time of day. ## Utility APIs .NET includes a set of utility APIs that provide functionality for many important tasks. -* - An API for sending HTTP requests and receiving HTTP responses from a resource identified by a URI. -* - An API for loading and querying XML documents with LINQ. -* - An API for reading files. -* - An API for writing files. +- - An API for sending HTTP requests and receiving HTTP responses from a resource identified by a URI. +- and : An API for writing logging and debugging information during application execution. +- and - APIs for reading and writing files. +- - An API for serializing objects or value types to JSON and deserializing JSON into objects or value types. ## App-model APIs There are many app models that can be used with .NET, for example: -* [ASP.NET](https://dotnet.microsoft.com/apps/aspnet) - A web framework for building web sites and services. Supported on Windows, Linux, and macOS (depends on ASP.NET version). -* [.NET MAUI](https://dotnet.microsoft.com/apps/maui) - An app platform for building native apps that run on Windows, macOS, iOS, and Android using C#. -* [Windows Desktop](https://www.nuget.org/packages/Microsoft.WindowsDesktop.App.Ref/) - Includes Windows Presentation Foundation (WPF) and Windows Forms. +- [ASP.NET Core](https://dotnet.microsoft.com/apps/aspnet) - A web framework for building web sites and services. Supported on Windows, Linux, and macOS. +- [.NET MAUI](https://dotnet.microsoft.com/apps/maui) - An app platform for building native apps that run on Windows, macOS, iOS, and Android using C#. +- [Windows Desktop](https://www.nuget.org/packages/Microsoft.WindowsDesktop.App.Ref/) - Includes Windows Presentation Foundation (WPF) and Windows Forms. ## See also diff --git a/docs/standard/runtime-libraries-overview.md b/docs/standard/runtime-libraries-overview.md index 1230de6cbc559..42b69d05b4c2b 100644 --- a/docs/standard/runtime-libraries-overview.md +++ b/docs/standard/runtime-libraries-overview.md @@ -1,7 +1,7 @@ --- title: Runtime libraries overview description: Learn what is included in the Runtime libraries section of the table of contents. -ms.date: 05/30/2024 +ms.date: 11/05/2025 --- # Runtime libraries overview @@ -19,16 +19,18 @@ Some libraries are provided in NuGet packages rather than as part of the runtime The following table shows some examples of package-provided libraries. -| NuGet package | Conceptual content | -|-------------------------------------------------------|--------------------------------------------------------------------| -| [`Microsoft.Extensions.Configuration`][configuration] | [Configuration](../core/extensions/configuration.md) | -| [`Microsoft.Extensions.DependencyInjection`][di] | [Dependency injection](../core/extensions/dependency-injection.md) | -| [`Microsoft.Extensions.FileSystemGlobbing`][fsg] | [File globbing](../core/extensions/file-globbing.md) | -| [`Microsoft.Extensions.Hosting`][host] | [Generic Host](../core/extensions/generic-host.md) | -| [`Microsoft.Extensions.Http`][http] | [HTTP](../core/extensions/httpclient-factory.md) | -| [`Microsoft.Extensions.Localization`][loc] | [Localization](../core/extensions/localization.md) | -| [`Microsoft.Extensions.Logging`][log] | [Logging](../core/extensions/logging.md) | - +| NuGet package | Conceptual content | +|---------------------------------|----------------------------------------| +| [`Microsoft.Extensions.AI`][ai] | [AI](../ai/microsoft-extensions-ai.md) | +| [`Microsoft.Extensions.Configuration`][configuration] | [Configuration](../core/extensions/configuration.md) | +| [`Microsoft.Extensions.DependencyInjection`][di] | [Dependency injection](../core/extensions/dependency-injection.md) | +| [`Microsoft.Extensions.FileSystemGlobbing`][fsg] | [File globbing](../core/extensions/file-globbing.md) | +| [`Microsoft.Extensions.Hosting`][host] | [Generic Host](../core/extensions/generic-host.md) | +| [`Microsoft.Extensions.Http`][http] | [HTTP](../core/extensions/httpclient-factory.md) | +| [`Microsoft.Extensions.Localization`][loc] | [Localization](../core/extensions/localization.md) | +| [`Microsoft.Extensions.Logging`][log] | [Logging](../core/extensions/logging.md) | + +[ai]: https://www.nuget.org/packages/Microsoft.Extensions.AI [configuration]: https://www.nuget.org/packages/Microsoft.Extensions.Configuration [di]: https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection [fsg]: https://www.nuget.org/packages/Microsoft.Extensions.FileSystemGlobbing diff --git a/docs/visual-basic/developing-apps/programming/drives-directories-files/classes-used-in-net-framework-file-io-and-the-file-system.md b/docs/visual-basic/developing-apps/programming/drives-directories-files/classes-used-in-net-framework-file-io-and-the-file-system.md index 20c007be36897..090f8a47ad0b9 100644 --- a/docs/visual-basic/developing-apps/programming/drives-directories-files/classes-used-in-net-framework-file-io-and-the-file-system.md +++ b/docs/visual-basic/developing-apps/programming/drives-directories-files/classes-used-in-net-framework-file-io-and-the-file-system.md @@ -2,62 +2,61 @@ description: "Learn more about: Classes Used in .NET Framework File I/O and the File System (Visual Basic)" title: "Classes Used in .NET Framework File I/O and the File System" ms.date: 07/20/2015 -helpviewer_keywords: +helpviewer_keywords: - "file I/O classes" ms.assetid: 4a5ca924-eea8-4a95-a5f0-6ac10de276a3 --- # Classes Used in .NET Framework File I/O and the File System (Visual Basic) -The following tables list the classes commonly used for .NET Framework file I/O, categorized into file I/O classes, classes used for creating streams, and classes used to read and write to streams. - -For a more comprehensive listing, see [Class Library Overview](../../../../standard/class-library-overview.md). - -## Basic I/O Classes for Files, Drives, and Directories - - The following table lists and describes the main classes used for file I/O. - -|Class|Description| -|-----------|-----------------| -||Provides static methods for creating, moving, and enumerating through directories and subdirectories.| -||Provides instance methods for creating, moving, and enumerating through directories and subdirectories.| -||Provides instance methods for creating, moving, and enumerating through drives.| -||Provides static methods for creating, copying, deleting, moving, and opening files, and aids in the creation of a `FileStream`.| -||Defines constants for read, write, or read/write access to a file.| -||Provides attributes for files and directories such as `Archive`, `Hidden`, and `ReadOnly`.| -||Provides static methods for creating, copying, deleting, moving, and opening files, and aids in the creation of a `FileStream`.| -||Controls how a file is opened. This parameter is specified in many of the constructors for `FileStream` and `IsolatedStorageFileStream`, and for the `Open` methods of and .| -||Defines constants for controlling the type of access other file streams can have to the same file.| -||Provides methods and properties for processing directory strings.| -||Controls the access of files and folders by defining , , and permissions.| - -## Classes Used to Create Streams - - The following table lists and describes the main classes used to create streams. - -|Class|Description| -|-----------|-----------------| -||Adds a buffering layer to read and write operations on another stream.| -||Supports random access to files through its method. opens files synchronously by default but also supports asynchronous operation.| -||Creates a stream whose backing store is memory, rather than a file.| -||Provides the underlying stream of data for network access.| -||Defines a stream that links data streams to cryptographic transformations.| - -## Classes Used to Read from and Write to Streams - - The following table shows the specific classes used for reading from and writing to files with streams. - -|**Class**|**Description**| -|---------------|---------------------| -||Reads encoded strings and primitive data types from a .| -||Writes encoded strings and primitive data types to a .| -||Reads characters from a , using to convert characters to and from bytes. has a constructor that attempts to ascertain the correct for a given stream, based on the presence of a -specific preamble, such as a byte order mark.| -||Writes characters to a `FileStream`, using to convert characters to bytes.| -||Reads characters from a `String`. Output can be either a stream in any encoding or a `String`.| -||Writes characters to a `String`. Output can be either a stream in any encoding or a `String`.| - +The following tables list the classes commonly used for .NET Framework file I/O, categorized into file I/O classes, classes used for creating streams, and classes used to read and write to streams. + +## Basic I/O Classes for Files, Drives, and Directories + + The following table lists and describes the main classes used for file I/O. + +|Class|Description| +|-----------|-----------------| +||Provides static methods for creating, moving, and enumerating through directories and subdirectories.| +||Provides instance methods for creating, moving, and enumerating through directories and subdirectories.| +||Provides instance methods for creating, moving, and enumerating through drives.| +||Provides static methods for creating, copying, deleting, moving, and opening files, and aids in the creation of a `FileStream`.| +||Defines constants for read, write, or read/write access to a file.| +||Provides attributes for files and directories such as `Archive`, `Hidden`, and `ReadOnly`.| +||Provides static methods for creating, copying, deleting, moving, and opening files, and aids in the creation of a `FileStream`.| +||Controls how a file is opened. This parameter is specified in many of the constructors for `FileStream` and `IsolatedStorageFileStream`, and for the `Open` methods of and .| +||Defines constants for controlling the type of access other file streams can have to the same file.| +||Provides methods and properties for processing directory strings.| +||Controls the access of files and folders by defining , , and permissions.| + +## Classes Used to Create Streams + + The following table lists and describes the main classes used to create streams. + +|Class|Description| +|-----------|-----------------| +||Adds a buffering layer to read and write operations on another stream.| +||Supports random access to files through its method. opens files synchronously by default but also supports asynchronous operation.| +||Creates a stream whose backing store is memory, rather than a file.| +||Provides the underlying stream of data for network access.| +||Defines a stream that links data streams to cryptographic transformations.| + +## Classes Used to Read from and Write to Streams + + The following table shows the specific classes used for reading from and writing to files with streams. + +|**Class**|**Description**| +|---------------|---------------------| +||Reads encoded strings and primitive data types from a .| +||Writes encoded strings and primitive data types to a .| +||Reads characters from a , using to convert characters to and from bytes. has a constructor that attempts to ascertain the correct for a given stream, based on the presence of a -specific preamble, such as a byte order mark.| +||Writes characters to a `FileStream`, using to convert characters to bytes.| +||Reads characters from a `String`. Output can be either a stream in any encoding or a `String`.| +||Writes characters to a `String`. Output can be either a stream in any encoding or a `String`.| + ## See also - [Composing Streams](../../../../standard/io/composing-streams.md) - [File and Stream I/O](../../../../standard/io/index.md) - [Asynchronous File I/O](../../../../standard/io/asynchronous-file-i-o.md) - [Basics of .NET Framework File I/O and the File System (Visual Basic)](basics-of-net-framework-file-io-and-the-file-system.md) +- [Core .NET libraries overview](../../../../standard/class-library-overview.md) diff --git a/docs/visual-basic/reference/net-framework-reference-information.md b/docs/visual-basic/reference/net-framework-reference-information.md index bd46906deb022..88b50a81a39b5 100644 --- a/docs/visual-basic/reference/net-framework-reference-information.md +++ b/docs/visual-basic/reference/net-framework-reference-information.md @@ -2,7 +2,7 @@ description: "Learn more about: .NET Framework Reference Information (Visual Basic)" title: ".NET Framework Reference Information" ms.date: 07/20/2015 -helpviewer_keywords: +helpviewer_keywords: - "language reference [Visual Basic], .NET Framework" - ".NET Framework [Visual Basic], reference" - ".NET Framework class library [Visual Basic], reference information" @@ -10,21 +10,21 @@ ms.assetid: 8b202505-608b-4223-bbd9-2ace3d73e6cd --- # .NET Framework Reference Information (Visual Basic) -This topic provides links to information about how to work with the .NET Framework class library. - -## Related Sections +This topic provides links to information about how to work with the .NET Framework class library. - [Getting Started](../../framework/get-started/index.md) - Provides a comprehensive overview of the .NET Framework and links to additional resources. - - [Class Library Overview](../../standard/class-library-overview.md) - Introduces the classes, interfaces, and value types that help expedite and optimize the development process and provide access to system functionality. - - [Development Guide](../../framework/development-guide.md) - Provides a guide to all key technology areas and tasks for application development, including creating, configuring, debugging, securing, and deploying your application. This topic also provides information about dynamic programming, interoperability, extensibility, memory management, and threading. - - [Tools](../../framework/tools/index.md) - Describes the tools that you can use to develop, configure, and deploy applications by using .NET Framework technologies. - - [.NET API Browser](../../../api/index.md) +## Related Sections + + [Getting Started](../../framework/get-started/index.md)\ + Provides a comprehensive overview of the .NET Framework and links to additional resources. + + [Core .NET Libraries Overview](../../standard/class-library-overview.md)\ + Introduces the classes, interfaces, and value types that help expedite and optimize the development process and provide access to system functionality. + + [Development Guide](../../framework/development-guide.md)\ + Provides a guide to all key technology areas and tasks for application development, including creating, configuring, debugging, securing, and deploying your application. This topic also provides information about dynamic programming, interoperability, extensibility, memory management, and threading. + + [Tools](../../framework/tools/index.md)\ + Describes the tools that you can use to develop, configure, and deploy applications by using .NET Framework technologies. + + [.NET API Browser](../../../api/index.md)\ Provides syntax, code examples, and related information for each class in the .NET Framework namespaces.