ProductivityExtensionMethods 1.0.0-beta.2
This is a prerelease version of ProductivityExtensionMethods.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package ProductivityExtensionMethods --version 1.0.0-beta.2
NuGet\Install-Package ProductivityExtensionMethods -Version 1.0.0-beta.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ProductivityExtensionMethods" Version="1.0.0-beta.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ProductivityExtensionMethods --version 1.0.0-beta.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ProductivityExtensionMethods, 1.0.0-beta.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ProductivityExtensionMethods as a Cake Addin
#addin nuget:?package=ProductivityExtensionMethods&version=1.0.0-beta.2&prerelease
// Install ProductivityExtensionMethods as a Cake Tool
#tool nuget:?package=ProductivityExtensionMethods&version=1.0.0-beta.2&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ProductivityExtensionMethods
Extension methods done right! A series of useful extension methods based on many BCL types and you can opt-in to enable in your solution. No more messy big junk classes!
Currently only for C# language.
How is it different from other Extension Method DLLs?
This is NOT a DLL assembly!
DLLs are not good, because:
- A DLL that only contains extension methods, in essence a series of so-called "utility" or "helper" functions, is not a good design approach. It's just ugly, and I'm sure I don't need to explain more.
- It is an extra totally unnecessary addition to the deployment, especially if you need to deal with strong names and/or signing the assembly. This is especially not justified when you did not use the extension methods extensively.
- Referencing such DLL adds in hundreds of extension methods that pollute your IntelliSense. No way to choose only what you need on a project-level basis.
- You need to add a reference in all your projects in the solution to have it available everywhere. Bad practice, on so many levels.
- You may need to add an extra using statements in ALL your code files to have them available everywhere by default.
How ProductivityExtensionMethods tackles the problem?
- Referencing nuget package only adds one T4 Template file to your project.
- The T4 template generates a C# code file (.cs) in that project. It is a single partial static class, under the default namespace of the assembly.
- You add the nuget package to the project that is referenced by all your other projects. The methods are now available everywhere!
- The top section of the T4 template file has a configuration that you can use to switch on only the set of the methods that you need.
- When new version of this package arrives, you just update the package. It automatically takes care of porting your configuration to the new version.
- It automatically picks up whether or not nullable reference types are enabled in your project and uses that feature as necessary.
Important Notes
- The generated class is in C#.
- This package is only tested for .net standard project in Visual Studio 16.3 though the implementation should work on other project types as well.
- The C# code contains C#8 syntax.
There are no supported framework assets in this package.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- No dependencies.
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 | |
---|---|---|---|
1.0.0-beta.7 | 625 | 2/21/2020 | |
1.0.0-beta.6 | 251 | 12/8/2019 | |
1.0.0-beta.5 | 274 | 11/24/2019 | |
1.0.0-beta.4 | 280 | 10/11/2019 | |
1.0.0-beta.3 | 368 | 10/11/2019 | |
1.0.0-beta.2 | 371 | 10/9/2019 | |
1.0.0-beta.1 | 379 | 10/8/2019 |