SonghayCore.xUnit
6.1.1
See the version list below for details.
dotnet add package SonghayCore.xUnit --version 6.1.1
NuGet\Install-Package SonghayCore.xUnit -Version 6.1.1
<PackageReference Include="SonghayCore.xUnit" Version="6.1.1" />
paket add SonghayCore.xUnit --version 6.1.1
#r "nuget: SonghayCore.xUnit, 6.1.1"
// Install SonghayCore.xUnit as a Cake Addin #addin nuget:?package=SonghayCore.xUnit&version=6.1.1 // Install SonghayCore.xUnit as a Cake Tool #tool nuget:?package=SonghayCore.xUnit&version=6.1.1
SonghayCore
The Core code to install as a NuGet package for all of my studio Solutions. Anyone who may be reading this π is free to do the same. This package is based on a project file that supports multi-targeting, declaring support for net6.0
.
NuGet package π¦: SonghayCore
documentation π: SonghayCore
API
coverlet test coverage π¬β: [report]
version 6.0 changes
The dominant theme in version 6.0 is about adopting .NET 6.0. The GitHub project for this release has the most documented details. Many version 6.0 changes are breaking changes.
Notable changes:
- Issue #131 was about removing direct support for WPF and any members marked obsolete in previous releases.
- Issue #135 was about separating Newtonsoft JSON routines from the Core.
- Issue #137 was about recognizing the new nullability features of .NET.
- Issue #140 was about finally adding coverlet code coverage.
core reusable, opinionated concerns
Songhay.Diagnostics
This Core is exclusively concerned with tracing. Logging concerns should be logically above this Core. TraceSources
and TraceSourceExtensions
define how tracing should be implemented with a bias toward using all source levels. When tracing is not configured for this Core then it will be ignored without throwing exceptions.
For a review of the organizational difference between tracing and logging, see βTracing vs Logging vs Monitoring: Whatβs the Difference?β by Chrissy Kidd.
Documentation π: Songhay.Diagnostics
Songhay.Extensions
The Songhay System uses imperative C# code with a view to make it more functional in an effort to control complexity and enhance maintainability.
The preference for extension methods encourages stateless, reusable routines (many of them are βpureβ functions).
Notable extensions:
IConfigurationBuilderExtensions
β defines shared routines for application configuration building under .NET Standard.HttpRequestMessageExtensions
β defines shared routines for HTTP access under .NET Standard with a lazy-loadedHttpClient
. Routines for Azure Blob Storage are included here.HttpWebRequestExtensions
β defines shared routines for HTTP access for the legacy .NET Framework.TraceSourceExtensions
β defines shared routines forTraceSource
-based logging, using work by Zijian Huang.
There is support for URI templates (to be used with RestApiMetadata
) in the form of extension methods, running on top of Tavis.UriTemplates
.
Documentation π: Songhay.Extensions
Songhay.Models
The Core models of the Songhay System define types for MIME, XHTML, OPML, REST, the Repository, the Display Item (for WPF and other MVVM solutions), etc.
The Core models are βanemicβ by design (there are very few abstract classes)βany logic would be found first in an Extension Method.
Notable models:
DisplayItemModel
β defines the conventional way to display data.MenuDisplayItemModel
β defines the conventional way to display nested/grouped data.RestApiMetadata
β defines conventional REST API metadata.
Documentation π: Songhay.Models
Songhay.Xml
The βcoreβ of the Core is concern for XML. The Songhay System started out as utilities around XPathDocument
and grew into LINQ for XMLβover XDocument
.
Documentation π: Songhay.Xml
satellite packages
SonghayCore.xUnit
Defines reusable class definitions for xUnit. Featured is the ProjectFileDataAttribute
, allowing test data files to be loaded from a relative path.
NuGet package π¦: SonghayCore.xUnit
Documentation π: Songhay.Tests
SonghayCore.Newtonsoft
Core reusable, opinionated Newtonsoft concerns for my C# projects.
GitHub repo: https://github.com/BryanWilhite/SonghayCore.Newtonsoft
NuGet package π¦: SonghayCore.Newtonsoft
Studio packages dependent on SonghayCore
graph BT
netstandard2[.NET Standard 2.0]
net6[.NET 6.0]
1[`SonghayCore`]
2[`SonghayCore.Newtonsoft`]
net6-->1
netstandard2-->2
2-..->|optional addition|1
1-->3[`SonghayCore.xUnit`]
1-->4[`Songhay.DataAccess`]
1-->5[`Songhay.Feeds`]
1-->6[`Songhay.Publications`]
1-->7[`Songhay.Social`]
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.DependencyInjection (>= 6.0.1)
- SonghayCore (>= 6.1.1)
- xunit (>= 2.7.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
6.1.4 | 90 | 10/20/2024 |
6.1.2 | 150 | 6/9/2024 |
6.1.1 | 126 | 2/20/2024 |
6.1.0 | 130 | 2/9/2024 |
6.0.1 | 500 | 7/23/2022 |
6.0.0 | 461 | 7/17/2022 |
5.0.7 | 519 | 5/21/2022 |
5.0.6 | 437 | 6/26/2021 |
5.0.5 | 423 | 6/7/2021 |
5.0.4 | 437 | 5/16/2021 |
5.0.3 | 394 | 5/16/2021 |
5.0.2 | 407 | 5/16/2021 |
5.0.1 | 502 | 5/15/2021 |
5.0.0 | 666 | 1/1/2021 |
3.0.21 | 617 | 7/12/2020 |
3.0.20 | 565 | 6/28/2020 |
3.0.19 | 649 | 2/13/2020 |
3.0.18 | 625 | 12/25/2019 |
3.0.17 | 558 | 12/17/2019 |
3.0.16 | 592 | 12/17/2019 |
3.0.15 | 541 | 12/6/2019 |
3.0.14 | 523 | 12/5/2019 |
3.0.13 | 542 | 12/5/2019 |
3.0.12 | 545 | 11/30/2019 |
3.0.11 | 534 | 11/30/2019 |
3.0.10 | 524 | 11/28/2019 |
3.0.9 | 531 | 11/26/2019 |
3.0.8 | 576 | 10/4/2019 |
3.0.7 | 626 | 7/16/2019 |
3.0.6 | 570 | 6/12/2019 |
3.0.5 | 593 | 6/10/2019 |
3.0.4 | 622 | 6/9/2019 |
3.0.3 | 620 | 5/30/2019 |
3.0.2 | 605 | 5/18/2019 |
3.0.1 | 626 | 5/18/2019 |
3.0.0 | 557 | 5/9/2019 |
2.0.0 | 676 | 1/30/2019 |