You've already forked linux-packaging-mono
Imported Upstream version 5.8.0.22
Former-commit-id: df344e34b07851d296efb3e6604c8db42b6f7aa3
This commit is contained in:
parent
5f4a27cc8a
commit
7d05485754
8
external/corefx/Documentation/README.md
vendored
8
external/corefx/Documentation/README.md
vendored
@@ -9,13 +9,19 @@ Intro to .NET Core
|
||||
Learn about .NET Core
|
||||
====================
|
||||
|
||||
- [[WIP] Official .NET Core Docs](http://dotnet.github.io/)
|
||||
- [Official .NET Core Docs](https://docs.microsoft.com/dotnet/core)
|
||||
|
||||
Get .NET Core
|
||||
=============
|
||||
|
||||
- [Get .NET Core SDK](https://www.microsoft.com/net/core)
|
||||
|
||||
Architecture Docs
|
||||
=================
|
||||
|
||||
- [.NET Core Globalization Invariant Mode](architecture/globalization-invariant-mode.md)
|
||||
- [Cross-Platform Cryptography](architecture/cross-platform-cryptography.md)
|
||||
|
||||
Project Docs
|
||||
============
|
||||
|
||||
|
120
external/corefx/Documentation/architecture/globalization-invariant-mode.md
vendored
Normal file
120
external/corefx/Documentation/architecture/globalization-invariant-mode.md
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
# .NET Core Globalization Invariant Mode
|
||||
|
||||
Author: [Tarek Mahmoud Sayed](https://github.com/tarekgh)
|
||||
|
||||
The globalization invariant mode - new in .NET Core 2.0 - enables you to remove application dependencies on globalization data and [globalization behavior](https://docs.microsoft.com/en-us/dotnet/standard/globalization-localization/). This mode is an opt-in feature that provides more flexibility if you care more about reducing dependencies and the size of distribution than globalization functionality or globalization-correctness.
|
||||
|
||||
The drawback of running in the invariant mode is applications will get poor globalization support. This new option is only recommended for developers that understand globalization and the impact of its absence.
|
||||
|
||||
The following scenarios are affected when the invariant mode is enabled. Their invariant mode behavior is defined in this document.
|
||||
|
||||
- Cultures and culture data
|
||||
- String casing
|
||||
- String sorting and searching
|
||||
- Sort keys
|
||||
- String Normalization
|
||||
- Internationalized Domain Names (IDN) support
|
||||
- Time Zone display name on Linux
|
||||
|
||||
## Background
|
||||
|
||||
Globalization rules and the data that represents those rules frequently change, often due to country-specific policy changes (for example, changes in currency symbol, sorting behavior or time zones). Developers expect globalization behavior to always be current and for their applications to adapt to new data over time. In order to keep up with those changes, .NET Core (and the .NET Framework, too) depends on the underlying OS to keep up with these changes.
|
||||
|
||||
Relying on the underlying OS for globalization data has the following benefits:
|
||||
|
||||
* .NET apps have the same globalization behavior on a given OS as native apps (assuming they also rely on the OS).
|
||||
* .NET apps do not have to carry this data.
|
||||
* The .NET team doesn't have to maintain this data themselves (it's very expensive to do this!).
|
||||
|
||||
Globalization support has the following potential challenges for applications:
|
||||
|
||||
* Different behavior across OSes (and potentially OS versions).
|
||||
* Installing/carrying the [ICU](http://icu-project.org) package on Linux (~28 MB).
|
||||
|
||||
Note: On Linux, .NET Core relies on globalization data from ICU. For example, [.NET Core Linux Docker images](https://github.com/dotnet/dotnet-docker/blob/master/2.0/runtime-deps/stretch/Dockerfile) install this component. Globalization data is available on Windows and macOS as part of their base installs.
|
||||
|
||||
## Cultures and culture data
|
||||
|
||||
When enabling the invariant mode, all cultures behave like the invariant culture. The invariant culture has the following characteristics:
|
||||
|
||||
* Culture names (English, native display, ISO, language names) will return invariant names. For instance, when requesting culture native name, you will get "Invariant Language (Invariant Country)".
|
||||
* All cultures LCID will have value 0x1000 (which means Custom Locale ID). The exception is the invariant cultures which will still have 0x7F.
|
||||
* All culture parents will be invariant. In other word, there will not be any neutral cultures by default but the apps can still create a culture like "en".
|
||||
* The application can still create any culture (e.g. "en-US") but all the culture data will still be driven from the Invariant culture. Also, the culture name used to create the culture should conform to [BCP 47 specs](https://tools.ietf.org/html/bcp47).
|
||||
* All Date/Time formatting and parsing will use fixed date and time patterns. For example, the short date will be "MM/dd/yyyy" regardless of the culture used. Applications having old formatted date/time strings may not be able to parse such strings without using ParseExact.
|
||||
* Numbers will always be formatted as the invariant culture. For example, decimal point will always be formatted as ".". Number strings previously formatted with cultures that have different symbols will fail parsing.
|
||||
* All cultures will have currency symbol as "¤"
|
||||
* Culture enumeration will always return a list with one culture which is the invariant culture.
|
||||
|
||||
## String casing
|
||||
|
||||
String casing (ToUpper and ToLower) will be performed for the ASCII range only. Requests to case code points outside that range will not be performed, however no exception will be thrown. In other words, casing will only be performed for character range ['a'..'z'].
|
||||
|
||||
Turkish I casing will not be supported when using Turkish cultures.
|
||||
|
||||
## String sorting and searching
|
||||
|
||||
String operations like [Compare](https://docs.microsoft.com/dotnet/api/?term=string.compare), [IndexOf](https://docs.microsoft.com/dotnet/api/?term=string.indexof) and [LastIndexOf](https://docs.microsoft.com/dotnet/api/?term=string.lastindexof) are always performed as [ordinal](https://en.wikipedia.org/wiki/Ordinal_number) and not linguistic operations regardless of the string comparing options passed to the APIs.
|
||||
|
||||
The [ignore case](https://docs.microsoft.com/dotnet/api/system.globalization.compareoptions.ignorecase) string sorting option is supported but only for the ASCII range as mentioned previously.
|
||||
|
||||
For example, the following comparison will resolve to being unequal:
|
||||
|
||||
* 'i', compared to
|
||||
* Turkish I '\u0130', given
|
||||
* Turkish culture, using
|
||||
* CompareOptions.Ignorecase
|
||||
|
||||
However, the following comparison will resolve to being equal:
|
||||
|
||||
* 'i', compared to
|
||||
* 'I', using
|
||||
* CompareOptions.Ignorecase
|
||||
|
||||
It is worth noticing that all other [sort comparison options](https://docs.microsoft.com/dotnet/api/system.globalization.compareoptions) (for example, ignore symbols, ignore space, Katakana, Hiragana) will have no effect in the invariant mode (they are ignored).
|
||||
|
||||
## Sort keys
|
||||
|
||||
Sort keys are used mostly when indexing some data (for example, database indexing). When generating sort keys of 2 strings and comparing the sort keys the results should hold the exact same results as if comparing the original 2 strings. In the invariant mode, sort keys will be generated according to ordinal comparison while respecting ignore casing options.
|
||||
|
||||
## String normalization
|
||||
|
||||
String normalization normalizes a string into some form (for example, composed, decomposed forms). Normalization data is required to perform these operations, which isn't available in invariant mode. In this mode, all strings are considered as already normalized, per the following behavior:
|
||||
|
||||
* If the app requested to normalize any string, the original string is returned without modification.
|
||||
* If the app asked if any string is normalized, the return value will always be `true`.
|
||||
|
||||
## Internationalized Domain Names (IDN) support
|
||||
|
||||
[Internationalized Domain Names](https://en.wikipedia.org/wiki/Internationalized_domain_name) require globalization data to perform conversion to ASCII or Unicode forms, which isn't available in the invariant mode. In this mode, IDN functionality has the following behavior:
|
||||
|
||||
* IDN support doesn't conform to the latest standard.
|
||||
* IDN support will be incorrect if the input IDN string is not normalized since normalization is not supported in invariant mode.
|
||||
* Some basic IDN strings will still produce correct values.
|
||||
|
||||
## Time zone display name in Linux
|
||||
|
||||
When running on Linux, ICU is used to get the time zone display name. In invariant mode, the standard time zone names are returned instead.
|
||||
|
||||
## Enabling the invariant mode
|
||||
|
||||
Applications can enable the invariant mode by setting the config switch System.Globalization.Invariant to true, in the `runtimeconfig.json` file, as you can see in the following example:
|
||||
|
||||
```json
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"configProperties": {
|
||||
"System.Globalization.Invariant": true
|
||||
},
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## APP behavior with and without the invariant config switch
|
||||
|
||||
- If the invariant config switch is not set or it is set false
|
||||
- The framework will depend on the OS for the globalization support.
|
||||
- On Linux, if the ICU package is not installed, the application will fail to start.
|
||||
- If the invariant config switch is defined and set to true
|
||||
- The invariant mode will be enabled and the app will get the behavior described in this document
|
||||
- Globalization data will not be used, even if available.
|
@@ -78,6 +78,18 @@ For more details, or to test an individual project, see the [developer guide top
|
||||
4. Set breakpoint appropriately
|
||||
5. F5 (Debug)
|
||||
|
||||
### Debugging NETFX tests in Visual Studio
|
||||
|
||||
Once you've built the source code for netfx from the root (`build.cmd -framework:netfx`) follow these steps:
|
||||
|
||||
1. Build test project with the following parameters `msbuild /t:buildandtest /p:targetgroup=netfx /p:testdebugger=devenv.exe`. This will open Visual Studio with the runner as startup project and its corresponding arguments.
|
||||
2. Open project properties and fill in the next information:
|
||||
* Debugger Type -> Managed (v4.6, v4.5, v4.0)
|
||||
* Environment -> you need to add an environment variable as follows:
|
||||
* DEVPATH -> `<corefxpath>\bin\testhost\netfx-Windows_NT-Debug-x64\`
|
||||
3. Set breakpoint appropriately
|
||||
4. F5 (Debug)
|
||||
|
||||
For advanced debugging using WinDBG see [Debugging CoreFX on Windows](https://github.com/dotnet/corefx/blob/master/Documentation/debugging/windows-instructions.md)
|
||||
|
||||
### Notes
|
||||
|
16
external/corefx/Documentation/debugging/crash-dumps.md
vendored
Normal file
16
external/corefx/Documentation/debugging/crash-dumps.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
Crash dumps can be useful for analyzing and debugging intermittent or hard-to-reproduce bugs. In all of our CI test runs and official build test runs, we use a utility called "Dumpling" to collect and archive crash dumps that are created during test execution. These crash dumps are archived on on the [Dumpling web portal](https://dumpling.azurewebsites.net/), which has download links, as well as auxiliary triage information gathered during crash dump collection.
|
||||
|
||||
When a crash is encountered in a test run (and crash dump collection is enabled), the following information will be printed to the log:
|
||||
|
||||
```
|
||||
Process is terminating due to StackOverflowException.
|
||||
processing dump file C:\Users\DOTNET~1\AppData\Local\Temp\CoreRunCrashDumps\dotnet.exe.13228.dmp
|
||||
creating dumpling dump 37ad6dce8b9d7f29def35b1ae1c9a3d4e3fc03bf
|
||||
uploading artifact 37ad6dce8b9d7f29def35b1ae1c9a3d4e3fc03bf dotnet.exe.13228.dmp
|
||||
```
|
||||
|
||||
The crash dump can then be located via this unique identifier from the Dumpling portal. In the example above, the identifier is "37ad6dce8b9d7f29def35b1ae1c9a3d4e3fc03bf".
|
||||
|
||||
Note that, while Dumpling archives the crash dumps for a long time, the Jenkins CI logs (containing the test info and the crash dump identifier) are not persisted for more than a few days.
|
||||
|
||||
Debugging crash dumps is a fairly involved process. Windows crash dumps are well-supported using existing and documented tools like Visual Studio, WinDBG, and SOS. The instructions for Unix platforms are complicated, and are documented [here](https://github.com/dotnet/corefx/blob/master/Documentation/debugging/unix-instructions.md#debugging-core-dumps-with-lldb).
|
@@ -149,6 +149,9 @@ The following EventSources are built-in to CoreFX. The ones that are not marked
|
||||
* `*System.Linq.Parallel.PlinqEventSource {159eeeec-4a14-4418-a8fe-faabcd987887}`: Provides an event source for tracing PLINQ information.
|
||||
|
||||
#### System.Net namespaces
|
||||
|
||||
Helper scripts are available at https://github.com/dotnet/corefx/tree/master/src/Common/tests/Scripts/Tools. Run `net_startlog.cmd` as Administrator, run the application, then run `net_stoplog.cmd`. Open the `.etl` file with PerfView.
|
||||
|
||||
* `*Microsoft-System-Net-Http {bdd9a83e-1929-5482-0d73-2fe5e1c0e16d}`: HTTP-related traces.
|
||||
* `*Microsoft-System-Net-Mail {42c8027b-f048-58d2-537d-a4a9d5ee7038}`: SMTP-related traces.
|
||||
* `*Microsoft-System-Net-NameResolution {5f302add-3825-520e-8fa0-627b206e2e7e}`: DNS-related traces.
|
||||
|
@@ -26,6 +26,19 @@ Pull Requests
|
||||
* **DO** refer to any relevant issues, and include [keywords](https://help.github.com/articles/closing-issues-via-commit-messages/) that automatically close issues when the PR is merged.
|
||||
* **DO** tag any users that should know about and/or review the change.
|
||||
* **DO** ensure each commit successfully builds. The entire PR must pass all tests in the Continuous Integration (CI) system before it'll be merged.
|
||||
* **DO** address PR feedback in an additional commit(s) rather than ammending the existing commits, and only rebase/squash them when necessary. This makes it easier for reviewers to track changes. If necessary, squashing should be handled by the merger using the ["squash and merge"](https://github.com/blog/2141-squash-your-commits) feature, and should only be done by the contributor upon request.
|
||||
* **DO** address PR feedback in an additional commit(s) rather than amending the existing commits, and only rebase/squash them when necessary. This makes it easier for reviewers to track changes.
|
||||
* **DO** assume that ["Squash and Merge"](https://github.com/blog/2141-squash-your-commits) will be used to merge your commit unless you request otherwise in the PR.
|
||||
* **DO NOT** fix merge conflicts using a merge commit. Prefer `git rebase`.
|
||||
* **DO NOT** mix independent, unrelated changes in one PR. Separate real product/test code changes from larger code formatting/dead code removal changes. Separate unrelated fixes into separate PRs, especially if they are in different assemblies.
|
||||
|
||||
Merging Pull Requests (for contributors with write access)
|
||||
----------------------------------------------------------
|
||||
|
||||
* **DO** use ["Squash and Merge"](https://github.com/blog/2141-squash-your-commits) by default for individual contributions unless requested by the PR author.
|
||||
Do so, even if the PR contains only one commit. It creates a simpler history than "Create a Merge Commit".
|
||||
Reasons that PR authors may request "Merge and Commit" may include (but are not limited to):
|
||||
|
||||
- The change is easier to understand as a series of focused commits. Each commit in the series must be buildable so as not to break `git bisect`.
|
||||
- Contributor is using an e-mail address other than the primary GitHub address and wants that preserved in the history. Contributor must be willing to squash
|
||||
the commits manually before acceptance.
|
||||
|
||||
|
@@ -137,7 +137,40 @@ Use it to pass extra msbuild properties, in this case to ignore tests ignored in
|
||||
build-tests -- /p:WithoutCategories=IgnoreForCI
|
||||
```
|
||||
|
||||
### Building individual CoreFx DLLs
|
||||
### Building individual libraries
|
||||
|
||||
**Note**: Before working on individual projects or test projects you **must** run `build` from the root once before beginning that work. It is also a good idea to run `build` whenever you pull a large set of unknown changes into your branch.
|
||||
|
||||
Similar to building the entire repo with build.cmd/sh in the root you can build projects based on our directory structure by passing in the directory. We also support
|
||||
shortcuts for libraries so you can omit the root src folder from the path. When given a directory we will build all projects that we find recursively under that directory.
|
||||
|
||||
**Examples**
|
||||
|
||||
- Build all projects for a given library (ex: System.Collections) including running the tests
|
||||
```
|
||||
build System.Collections
|
||||
```
|
||||
or
|
||||
```
|
||||
build src\System.Collections
|
||||
```
|
||||
or
|
||||
```
|
||||
cd src\System.Collections
|
||||
..\..\build .
|
||||
```
|
||||
|
||||
- Build just the tests for a library project.
|
||||
```
|
||||
build src\System.Collections\tests
|
||||
```
|
||||
|
||||
- All the options listed above like framework and configuration are also supported (note they must be after the directory)
|
||||
```
|
||||
build System.Collections -framework:netfx -release
|
||||
```
|
||||
|
||||
### Building individual projects
|
||||
|
||||
**Note**: Before working on individual projects or test projects you **must** run `build` from the root once before beginning that work. It is also a good idea to run `build` whenever you pull a large set of unknown changes into your branch.
|
||||
|
||||
@@ -157,13 +190,19 @@ For libraries that have multiple build configurations the configurations will be
|
||||
**Examples**
|
||||
|
||||
- Build project for Linux for netcoreapp
|
||||
`msbuild System.Net.NetworkInformation.csproj /p:OSGroup=Linux`
|
||||
```
|
||||
msbuild System.Net.NetworkInformation.csproj /p:OSGroup=Linux
|
||||
```
|
||||
|
||||
- Build project for uap (not if trying to build on non-windows you also need to specify OSGroup=Windows_NT)
|
||||
`msbuild System.Net.NetworkInformation.csproj /p:TargetGroup=uap`
|
||||
```
|
||||
msbuild System.Net.NetworkInformation.csproj /p:TargetGroup=uap
|
||||
```
|
||||
|
||||
- Build release version of library
|
||||
`msbuild System.Net.NetworkInformation.csproj /p:ConfigurationGroup=Release`
|
||||
```
|
||||
msbuild System.Net.NetworkInformation.csproj /p:ConfigurationGroup=Release
|
||||
```
|
||||
|
||||
**Note:** If building in a non-Windows environment, call `<repo-root>/Tools/msbuild.sh` instead of just `msbuild`.
|
||||
|
||||
@@ -300,7 +339,7 @@ This attribute can be applied either to a test class (will disable all the tests
|
||||
```cs
|
||||
[SkipOnTargetFramework(TargetFrameworkMonikers frameworks, string reason)]
|
||||
```
|
||||
Use this attribute over test methods to skip tests only on the specific target frameworks. The reason parameter doesn't affect the traits but we rather always use it so that when we see this attribute we know why it is being skipped on that framework.
|
||||
Use this attribute over test methods to skip tests only on the specific target frameworks. The reason parameter doesn't affect the traits but we rather always use it so that when we see this attribute we know why it is being skipped on that framework.
|
||||
|
||||
If it needs to be skipped in multiple frameworks and the reasons are different please use two attributes on the same test so that you can specify different reasons for each framework.
|
||||
|
||||
|
@@ -44,7 +44,7 @@ Areas are tracked by labels area-* (e.g. area-System.Collections). Each area
|
||||
|-----------------------------------------------------------------------------------------------|------------------|-------------|
|
||||
| [area-Infrastructure](https://github.com/dotnet/corefx/labels/area-Infrastructure) | [@mellinoe](https://github.com/mellinoe), [@ericstj](https://github.com/ericstj), [@weshaggard](https://github.com/weshaggard) |Covers:<ul><li>Packaging</li><li>Build and test infra for CoreFX repo</li><li>VS integration</li></ul><br/> |
|
||||
| [area-Meta](https://github.com/dotnet/corefx/labels/area-Meta) | [@tarekgh](https://github.com/tarekgh) | Issues without clear association to any specific API/contract, e.g. <ul><li>new contract proposals</li><li>cross-cutting code/test pattern changes (e.g. FxCop failures)</li><li>project-wide docs</li></ul><br/> |
|
||||
| [area-Serialization](https://github.com/dotnet/corefx/labels/area-Serialization) | [@shmao](https://github.com/shmao), [@zhenlan](https://github.com/zhenlan) | Packages:<ul><li>System.Runtime.Serialization.Xml</li><li>System.Runtime.Serialization.Json</li><li>System.Private.DataContractSerialization</li><li>System.Xml.XmlSerialization</li></ul> Excluded:<ul><li>System.Runtime.Serialization.Formatters</li></ul> |
|
||||
| [area-Serialization](https://github.com/dotnet/corefx/labels/area-Serialization) | [@shmao](https://github.com/shmao), [@zhenlan](https://github.com/zhenlan) | Packages:<ul><li>System.Runtime.Serialization.Xml</li><li>System.Runtime.Serialization.Json</li><li>System.Private.DataContractSerialization</li><li>System.Xml.XmlSerializer</li></ul> Excluded:<ul><li>System.Runtime.Serialization.Formatters</li></ul> |
|
||||
| **System contract assemblies** | | |
|
||||
| [System.AppContext](https://github.com/dotnet/corefx/labels/area-System.AppContext) | [@AlexGhiondea](https://github.com/AlexGhiondea) | | |
|
||||
| [System.Buffers](https://github.com/dotnet/corefx/labels/area-System.Buffers) | [@safern](https://github.com/safern) | |
|
||||
@@ -57,7 +57,7 @@ Areas are tracked by labels area-* (e.g. area-System.Collections). Each area
|
||||
| [System.Console](https://github.com/dotnet/corefx/labels/area-System.Console) | [@ianhays](https://github.com/ianhays) | |
|
||||
| [System.Data](https://github.com/dotnet/corefx/labels/area-System.Data) | [@saurabh500](https://github.com/saurabh500), [@corivera](https://github.com/corivera) | |
|
||||
| [System.Data.SqlClient](https://github.com/dotnet/corefx/labels/area-System.Data.SqlClient) | [@saurabh500](https://github.com/saurabh500), [@corivera](https://github.com/corivera) | |
|
||||
| [System.Diagnostics](https://github.com/dotnet/corefx/labels/area-System.Diagnostics) | [@joperezr](https://github.com/dotnet/joperezr) | |
|
||||
| [System.Diagnostics](https://github.com/dotnet/corefx/labels/area-System.Diagnostics) | [@joperezr](https://github.com/joperezr) | |
|
||||
| [System.Diagnostics.Process](https://github.com/dotnet/corefx/labels/area-System.Diagnostics.Process) | [@Priya91](https://github.com/Priya91) | |
|
||||
| [System.Diagnostics.Tracing](https://github.com/dotnet/corefx/labels/area-System.Diagnostics.Tracing) | [@brianrob](https://github.com/brianrob), [@vancem](https://github.com/vancem), [@valenis](https://github.com/valenis)| Packages:<ul><li>System.Diagnostics.DiagnosticSource</li><li>System.Diagnostics.PerformanceCounter</li><li>System.Diagnostics.Tracing</li><li>System.Diagnostics.TraceSource</li></ul><br/> |
|
||||
| [System.DirectoryServices](https://github.com/dotnet/corefx/labels/area-System.DirectoryServices) | [@tquerec](https://github.com/tquerec) | |
|
||||
@@ -78,17 +78,17 @@ Areas are tracked by labels area-* (e.g. area-System.Collections). Each area
|
||||
| [System.Reflection](https://github.com/dotnet/corefx/labels/area-System.Reflection) | [@dnlharvey](https://github.com/dnlharvey), [@AtsushiKan](https://github.com/AtsushiKan) | |
|
||||
| [System.Reflection.Emit](https://github.com/dotnet/corefx/labels/area-System.Reflection.Emit) | [@dnlharvey](https://github.com/dnlharvey), [@AtsushiKan](https://github.com/AtsushiKan) | |
|
||||
| [System.Reflection.Metadata](https://github.com/dotnet/corefx/labels/area-System.Reflection.Metadata) | [@tmat](https://github.com/tmat), [@nguerrera](https://github.com/nguerrera) | |
|
||||
| [System.Resources](https://github.com/dotnet/corefx/labels/area-System.Resources) | [@ramarag](https://github.com/ramarag), [@tarekgh](https://github.com/tarekgh) | |
|
||||
| [System.Runtime](https://github.com/dotnet/corefx/labels/area-System.Runtime) | [@AlexGhiondea](https://github.com/AlexGhiondea), [@joperezr](https://github.com/dotnet/joperezr) | Included:<ul><li>System.Runtime.Serialization.Formatters</li><li>System.Runtime.InteropServices.RuntimeInfo</li><li>System.Array</li></ul>Excluded:<ul><li>Path -> System.IO</li><li>StopWatch -> System.Diagnostics</li><li>Uri -> System.Net</li><li>WebUtility -> System.Net</li></ul> |
|
||||
| [System.Runtime.CompilerServices](https://github.com/dotnet/corefx/labels/area-System.Runtime.CompilerServices) | [@AlexGhiondea](https://github.com/AlexGhiondea), [@joperezr](https://github.com/dotnet/joperezr) | |
|
||||
| [System.Runtime.Extensions](https://github.com/dotnet/corefx/labels/area-System.Runtime.Extensions) | [@AlexGhiondea](https://github.com/AlexGhiondea), [@joperezr](https://github.com/dotnet/joperezr) | |
|
||||
| [System.Resources](https://github.com/dotnet/corefx/labels/area-System.Resources) | [@tarekgh](https://github.com/tarekgh) | |
|
||||
| [System.Runtime](https://github.com/dotnet/corefx/labels/area-System.Runtime) | [@AlexGhiondea](https://github.com/AlexGhiondea), [@joperezr](https://github.com/joperezr) | Included:<ul><li>System.Runtime.Serialization.Formatters</li><li>System.Runtime.InteropServices.RuntimeInfo</li><li>System.Array</li></ul>Excluded:<ul><li>Path -> System.IO</li><li>StopWatch -> System.Diagnostics</li><li>Uri -> System.Net</li><li>WebUtility -> System.Net</li></ul> |
|
||||
| [System.Runtime.CompilerServices](https://github.com/dotnet/corefx/labels/area-System.Runtime.CompilerServices) | [@AlexGhiondea](https://github.com/AlexGhiondea), [@joperezr](https://github.com/joperezr) | |
|
||||
| [System.Runtime.Extensions](https://github.com/dotnet/corefx/labels/area-System.Runtime.Extensions) | [@AlexGhiondea](https://github.com/AlexGhiondea), [@joperezr](https://github.com/joperezr) | |
|
||||
| [System.Runtime.InteropServices](https://github.com/dotnet/corefx/labels/area-System.Runtime.InteropServices) | [@tijoytom](https://github.com/tijoytom), [@yizhang82](https://github.com/yizhang82) | Excluded:<ul><li>System.Runtime.InteropServices.RuntimeInfo</li></ul> |
|
||||
| [System.Security](https://github.com/dotnet/corefx/labels/area-System.Security) | [@bartonjs](https://github.com/bartonjs), [@steveharter](https://github.com/steveharter) | |
|
||||
| [System.Security](https://github.com/dotnet/corefx/labels/area-System.Security) | [@bartonjs](https://github.com/bartonjs), [@ianhays](https://github.com/ianhays) | |
|
||||
| System.ServiceModel | N/A | [dotnet/wcf](https://github.com/dotnet/wcf) |
|
||||
| [System.ServiceProcess](https://github.com/dotnet/corefx/labels/area-System.ServiceProcess) | [@Priya91](https://github.com/Priya91) | |
|
||||
| [System.Text.Encoding](https://github.com/dotnet/corefx/labels/area-System.Text.Encoding) | [@krwq](https://github.com/krwq), [@tarekgh](https://github.com/tarekgh) | Included:<ul><li>System.Text.Encoding**s**.Web</li></ul> |
|
||||
| [System.Text.RegularExpressions](https://github.com/dotnet/corefx/labels/area-System.Text.RegularExpressions) | [@Priya91](https://github.com/Priya91) | |
|
||||
| [System.Threading](https://github.com/dotnet/corefx/labels/area-System.Threading) | [@kouvel](https://github.com/kouvel), [@alexperovich](https://github.com/alexperovich) | |
|
||||
| [System.Threading](https://github.com/dotnet/corefx/labels/area-System.Threading) | [@kouvel](https://github.com/kouvel) | |
|
||||
| [System.Transactions](https://github.com/dotnet/corefx/labels/area-System.Transactions) | [@jimcarley](https://github.com/jimcarley), [@qizhanMS](https://github.com/qizhanMS), [@dmetzgar](https://github.com/dmetzgar) | |
|
||||
| [System.Xml](https://github.com/dotnet/corefx/labels/area-System.Xml) | [@sepidehMS](https://github.com/sepidehMS), [@krwq](https://github.com/krwq) | |
|
||||
| **Microsoft contract assemblies** | | |
|
||||
|
@@ -10,7 +10,7 @@ All .NET Core assemblies are [strong-named](http://msdn.microsoft.com/en-us/libr
|
||||
## FAQ
|
||||
|
||||
### 1. Microsoft strong-names their assemblies, should I?
|
||||
For the most part, the majority of applications and libraries do not need strong-names. Strong-names are left over from previous eras of .NET where [sandboxing](http://en.wikipedia.org/wiki/Sandbox_(computer_security)) needed to differentiate between code that was trusted, versus code that was untrusted. However in recent years, sandboxing via AppDomains, especially to [isolate ASP.NET web applications] (http://support.microsoft.com/kb/2698981), is no longer guaranteed and is not recommended.
|
||||
For the most part, the majority of applications and libraries do not need strong-names. Strong-names are left over from previous eras of .NET where [sandboxing](http://en.wikipedia.org/wiki/Sandbox_(computer_security)) needed to differentiate between code that was trusted, versus code that was untrusted. However in recent years, sandboxing via AppDomains, especially to [isolate ASP.NET web applications](http://support.microsoft.com/kb/2698981), is no longer guaranteed and is not recommended.
|
||||
|
||||
However, strong-names are still required in some rare situations, most of which are called out on this page: [Strong-Named Assemblies](http://msdn.microsoft.com/en-us/library/wd40t7ad.aspx).
|
||||
|
||||
|
Reference in New Issue
Block a user