Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...


Warning
titleWarning

This page is now hosted on https://odp.finos.org/docs/development-infrastructure/continuous-integration/csharp

C# is an object-oriented language that runs on the .NET Framework; feel free to browse the Foundation hosted projects written in C#.

Below are listed some of the most common processes that are involved in a C# project lifecycle and how they interact with the project infrastructure provided by the Foundation.

Table of Contents

Build

The easiest way to locally build a C# project is to use Visual Studio, although it's also possible to use the MSBuild command-line tool; you can find more info on Microsoft Developer Network.

There is an open source, cross-platform alternative to the .NET Framework implementation called Mono, based on the ECMA standards for C# and the Common Language Runtime, however not all .NET applications can run on this platform, therefore it's safer to run all builds on a Windows environment that is configured with the .NET Framework installed.

Release on NuGet

NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers.

To release a project on NuGet, it is currently required to run the build process from a .NET (Windows) environment, as there are some known issues for NuGet to run with Mono on Linux and OSX; please refer to Mono issues on GitHub for more info.

...


Code Block
titleNuGet Badge
[![NuGet Packages Status](https://img.shields.io/nuget/v/<package name>.svg?maxAge=2592000)](https://www.nuget.org/packages/<package name>/)

This will appear as follows and link to the MyGet project page.

Image Modified

You can also run this process continuously on each commit and publish pre-releases by integrating with MyGet.