Skip to content

Commit

Permalink
Merge
Browse files Browse the repository at this point in the history
  • Loading branch information
hrumhurum committed Jul 6, 2021
2 parents e066240 + e5331cc commit 20ca4d6
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
6 changes: 3 additions & 3 deletions Source/Gapotchenko.FX.Console/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ At later stages of development, teletypes were swapped with specialized computer
Those electronic devices provided not only the basic input/output capabilities,
but also colors, pseudographics, and a custom control language based around a then-emerging [ANSI X3.64](https://en.wikipedia.org/wiki/ANSI_escape_code) standard.

Unix operating systems have built-in support for ANSI escape sequences that constitute the control language defined by the standard. Windows ignored that practice for a long time, up until Windows 10 version 1511.
Unix operating systems have a built-in support for ANSI escape sequences that constitute the control language defined by the standard. Windows ignored that practice for a long time, up until Windows 10 version 1511.

### What ANSI Escape Sequences Are Useful For?

Indeed, .NET base class library already provides
[`System.Console`](https://docs.microsoft.com/en-us/dotnet/api/system.console) class with
[`ForegroundColor`](https://docs.microsoft.com/en-us/dotnet/api/system.console.foregroundcolor),
[`BackroundColor`](https://docs.microsoft.com/en-us/dotnet/api/system.console.backgroundcolor)
and other properties of [`System.Console`](https://docs.microsoft.com/en-us/dotnet/api/system.console) class
for controlling the console.
and other properties for controlling the console.

ANSI escape sequences become handy when the complexity of console output reaches a certain level:

Expand Down
4 changes: 2 additions & 2 deletions Source/Gapotchenko.FX.Diagnostics.Process/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@ Lost files, potentially corrupted extensions and so on.

Meet the `End()` method provided by `Gapotchenko.FX.Diagnostics.Process` module.
It allows to end a process according to a specified mode of operation.
The default mode of operation is `ProcessEndMode.Complete` that follows a sequence below:
The default mode of operation is `ProcessEndMode.Complete` that follows a sequence presented below:

1. Graceful techniques are tried first:
1.1. `End()` method tries to close a main window of a process
1.2. If that fails, it tries to send Ctrl+C (SIGTERM) signal
2. Forceful techniques:
2.1. If graceful techniques failed, `End()` method tries to exit the process (suitable for the current process only)
2.1. If graceful techniques fail, `End()` method tries to exit the process (suitable for the current process only)
2.2. If that fails, it kills the process (SIGKILL)

The method returns a `ProcessEndMode` value on completion indicating how the process was actually ended.
Expand Down
4 changes: 2 additions & 2 deletions Source/Gapotchenko.FX.Reflection.Loader/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Assembly loading plays a crucial role in .NET apps.
Once the app is started, .NET runtime ensures that all required assemblies are gradually loaded.

Whenever the code hits the point where a type from another assembly is used, it raises `AppDomain.AssemblyResolve` event.
The good thing is .NET comes pre-equipped with a default assembly loader which does a sensible job for most applications.
The good thing is .NET comes pre-equipped with a default assembly loader, which does a sensible job for most applications.

However, there are situations when having a default assembly loader is just not enough.
This is where `Gapotchenko.FX.Reflection.Loader` module becomes extremely handy.
Expand Down Expand Up @@ -216,7 +216,7 @@ In this way, assembly loaders from different plugins would not clash with each o
## Scenario #4. Automatic handling of binding redirects for a .DLL assembly

Assembly binding redirects allow to "remap" specific ranges of assembly versions.
The redirects are automatically created by build tools, and then put to corresponding `.config` files of resulting assemblies.
The redirects are automatically created by build tools, and then being put to corresponding `.config` files of resulting assemblies.
[(Learn more)](https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/how-to-enable-and-disable-automatic-binding-redirection)

Assembly binding redirects work well for apps, but get completely broken if you want to employ them for dynamically loaded assemblies like plugins.
Expand Down

0 comments on commit 20ca4d6

Please sign in to comment.