CodeJam.Blocks is a set of basic blocks aimed to easy creation of infrastructure serviceas such as mappers, DI service providers et cetera.


Keywords
mapper, services, csv, algorithm, assertions, async, codejam, collections, data-structures, discriminated-unions, io, list, range, reflection, string, suffix-tree, threading, utilities, xml
License
MIT
Install
Install-Package CodeJam.Blocks -Version 4.1.0

Documentation

CodeJam Library

CodeJam.Main.Icon

CodeJam

CodeJam is a set of handy reusable .NET components that can simplify your daily work and save your time when you copy and paste your favorite helper methods and classes from one project to another.

The CodeJam project includes three parts:

  • Main - stable and feature complete code.
  • Blocks - app building blocks, more specific and feature oriented functionality.
  • Experimental - A workspace for code development. Contains incomplete and/or unstable parts.
  • CodeJam.PerfTests - a performance testing framework for .Net projects.

CodeJam is dedicated to one principal goal: creating and maintaining reusable code. The CodeJam main package is a place for collaboration and sharing, where developers community can work together on code to be shared by the CodeJam.

CodeJam developers will make an effort to ensure that their components have no dependencies on other third-party libraries, so that these components can be deployed easily. In addition, CodeJam will keep their interfaces as stable as possible, so that users can use it without having to worry about changes in the future.

We welcome participation from all who are interested, at all skill levels. Coding, documenting, testing and development process itself are all critical parts of the software development process. If you are interested in contribute in any of these aspects, please join us!

Main

Main doc

The main library containing feature complete and stable code of production quality.

Blocks

PerfTests

CodeJam.PerfTests is performance testing framework for .Net projects.

It allows to compare multiple implementations by execution time (memory limits coming soon), to annotate test methods with timing limits and to check the limits each time the test is run.

.NET Standard 1.6, 1.5 support (dropped in 4.0)

Almost all features are supported. Functionality not supported:

  • XmlAttributeReader

.NET Core 1.1, 1.0 support (dropped in 4.0)

Almost all features are supported. Functionality not supported:

  • XmlAttributeReader

.NET Framework 2.0 support (dropped in 4.0)

.NET Framework 2.0 support is limited. Functionality not supported in addition to .NET Framework 3.5 limitations:

  • LINQ to XML extensions - .NET 2.0 doesn't have LINQ XML related classes

.NET Framework 3.0 support (dropped in 4.0)

.NET Framework 3.0 support is limited. Functionality not supported in addition to .NET Framework 3.5 limitations:

  • LINQ to XML extensions - .NET 3.0 doesn't have LINQ XML related classes

.NET Framework 3.5 support

.NET Framework 3.5 support is limited. Functionality not supported:

  • Mapping - all mapping related classes not supported due to expression tree incompatibility
  • ExpressionExtensions - all visitor related functionality excluded due to expression tree incompatibility
  • MemberAccessor/TypeAccessor - excluded due to expression tree incompatibility
  • ComparerBuilder - excluded due to absence of TypeAccessor and MemberAccessor classes
  • PerfTests package not support FW 3.5 at all.

Contribute!

Some of the best ways to contribute are to try things out, report bugs, and join in design conversations.

Looking for something to work on? The list of up for grabs issues is a great place to start.

Download

Just install CodeJam nuget package via Visual Studio Package Manager and use it!

To install the latest release without Visual Studio, run nuget command line:

nuget install CodeJam

To get the latest "preview" drop, add the -pre switch to the nuget commands

Links

Licensing & notices

The CodeJam project is free software. There is no warranty; not even for merchantability or fitness for a particular purpose.

You may use, copy, modify and redistribute all files included in this distribution, individually or in aggregate, subject to the terms and conditions of the MIT license. See the file LICENSE for details.

The project includes code parts taken from (mostly to ease targeting to previous versions of .Net) or inspired by third-party implementations.

All such places are marked with // BASEDON: comment. Here they are:

In addition, you may -- at your option -- use, copy, modify and redistribute all images included in this distribution under the directory named images according to the terms and conditions of the Creative Commons Attribution-ShareAlike 4.0 International License. Use following text as a template for attribution:

CodeJam logo (c) by Arthur Kozyrev

CodeJam logo is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.

You should have received a copy of the license along with this
work. If not, see <http://creativecommons.org/licenses/by-sa/4.0/>

See the file LICENSE-CC-BY-SA for details.