1. Technology

A Library of Software written in C# with full source code.

The C# library holds full source code from example articles, reader submitted code and any code that is in the public domain. See also
C Code Library
C++ Code Library
  1. ASP.NET C# Library (17)
  2. C# Code for Mono (1)
  3. Cross Platform C# Code (2)
  4. Games in C# (22)
  5. Silverlight Examples (4)
  6. WPF Library (3)

.NETX - .NET Exe and Dll File Compressor
.NETZ is a free open source tool that compresses and packs the Microsoft .NET Framework executable (EXE, DLL) files to make them smaller and occupy less disk space and load faster. .NETZ is written in C# and is a pure .NET solution that can be used to pack .NET executables written in almost every .NET language.

A Generic Genetic Algorithm
This is an implementation by student Marc Tanti, the author of a 6 page thesis on a generic genetic Algorithm. If you are interested in the code, you should read the thesis. It gives some examples of uses in solving the 16 queens problem, the travelling salesman etc.

A Utility to help trim Header Files in C/C++ Projects
Though coded in C#, it's for looking at C++ and I guess C projects to identify which header files are included by what and try and trim then back. There's an article on it in the game developer blog.

AForge.NET Framework Vision and AI library
AForge.NET is a C# framework for developers and researchers in the fields of Computer Vision and Artificial Intelligence - it includes image processing, neural networks, genetic algorithms, machine learning, and robotics. There's also an image lab example built on the image library.

Aho-Corasick algorithm for string matching in C#

This is an implementation of the Aho-Corasick algorithm for searching a text string with a large set of words (for very small set of words String.IndexOf is better) and was developed by Tomáš Petrícek, a PhD student in computer science at Cambridge University.

Alchemy Websockets, a socket server
Alchemy Websockets library is a scalable, efficient library built to handle html5 websockets and flash websocket replacement libraries. It's a socket server on port 80 that can be used for websockets.

An editor for .NET Resource Files
Although .NET Resource Files (.resx) can be edited within Visual Studio, there is no way to edit them outside. This utility, written by Danish programmer Mads Kristensen provides this capability. Full C# source code included.

AWS SDK for .NET
The AWS SDK for .NET lets Windows developers build .NET applications that use the AWS cloud. Using the SDK, developers can build solutions for AWS infrastructure services, including Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), and Amazon SimpleDB.

Be Hex Editor - Change binary files
This is a binary file editor thats lets you load a file then search in hex or text and make changes and save them. it compiles in Visual C# 2010 Express. It contains a reusable hex edit control called HexBox that can be used in other .NET Framework applications.

BinaryRage - Simple Key/Value store with compression
BinaryRage is a lightweight ultra fast key/value store for .NET and production-ready, it's already in several large production-environments. It supports complex objects out of the box (and lists of objects), is 100% FREE and open. It needs no configuration, no strange driver/connector, server or setup. Just reference the dll and start using it in less than a minute.

C# Blackberry Development
This is a tool that allows you to write Blackberry mobile device applications using C#. A C# application gets converted into Java, compiled and then run on the Blackberry device. No manually written Java is needed.

C# OpenID Libraries
OpenID is a non centralized system for authenticating ID and logging into websites without requiring username and password credentials. This page includes links to several C# libraries.

C# Scripting Engine ( Open Source )
CS-Script is a CLR (Common Language Runtime) based scripting system which uses ECMA-compliant C# as a programming language. CS-Script currently targets Microsoft implementation of CLR (.NET1.1/2.0) with limited support on Mono.

C#-SQLite - a translation of C code into C#
C#-SQLite is an implementation of the SQLite software library version 3.6.17, ported into managed code, written in C#. It is not an official version of SQLite, and there is completely NO affiliation with SQLite.org

Difference Algorithm
An implementation of the difference algorithm published in "An O(ND) Difference Algorithm and its Variations" by Eugene Myers Algorithmica Vol. 1 No. 2, 1986, p 251. This is about comparing text files and the proven, best and most famous algorithm to identify the differences between them.

DotNetZip - ZIp Handling Library for .NET
DotNetZip is a 100% managed code library that works in any .NET application - Console, Winforms, WPF, ASP.NET, Sharepoint, Web services apps, from scripting environments or COM-capable environments. The library supports zip passwords, Unicode, ZIP64, stream input and output, AES encryption, multiple compression levels, self-extracting archives, spanned archives, and more.

EPPlus - Working With Excel
EPPlus is a .net library that reads and writes Excel 2007/2010 files using the Open Office Xml format (xlsx). It's a work in progress but is well on and EPPlus supports Cell Ranges and styling with Border, Color, Fill, Font, Number, Alignments, Charts, Pictures, Shapes, Comments, Tables, Protection and Encryption.

Eraser - Secure Windows File Eraser
Eraser is a security tool for Windows that lets you remove sensitive data from your hard drive by overwriting it several times with carefully selected patterns.

Facebook SDK
Not, this replaces the Facebook Developer Toolkit which has been discontinued. It helps developers create Facebook iframe and web apps using the most current and fully supported Facebook APIs, or integrate their website with Facebook, The SDK uses the brand new Facebook Graph API and Javascript SDK, and also has compatibility with the old Rest SDK.

Faker.net - Library for generating fake data for testing
This is a port of a Ruby project for generating Fake data in C#. Useful for fake addresses, names, phone numbers etc.

Free Open Source (GPL) Object Oriented Database
db40 is an Object Oriented Database for .NET versions 1.0, 1.1 and 2.0. It is licensed under the GPL.

Google APIs Client Library for .NET (Beta)
This is a generic .NET runtime client for Google Services that supports OAuth1.0a and OAuth2.0 authentication, and generates strongly typed client libraries for Discovery-based services. The Wiki tabs on the linked page lists all of the Google API supported by this client.

Google Contacts Data API (plus Code)
The Google Contacts Data API allows client applications to view and update Contacts content in the form of Google Data API feeds. Client applications can request a list of a user's contacts, edit or delete content in an existing contact, and query the content in an existing contact. A .NET library is provided for use in Web or Desktop applications.

Google Translate API Client
This is an example of calling the Google Translate API from a C# application to translate text from English to Spanish.

IRC Code

This is a C# library for chatting on an IRC (Internet Relay Protocol) network. It supports most of RFC 1459 and a little of 2812. The author says its a Work in progress.

IRC.NET - Open Source .NET Client for Windows and Mono
IRC.NET is an IRC (Internet Relay Chat) client library for the .NET Framework 4.0 and Silverlight 4.0. Currently at version 0.4 it will provide a complete implementation of the IRC protocol as described in RFCs 1459 and 2812, including modern features of the protocol.

iSpy motion Detection in C#
iSpy is C# software that uses your webcam and microphone to detect movements or sounds and can record and/or perform any other action when detected. Typical applications include security, surveillance, ghost hunting, home automation, baby monitoring, staff activity supervising, general surveillance and more. iSpy can be scheduled to run whenever you like and can also stream live video over the web and even send out email and SMS alerts.

IText PDF Creation Library

iText is a library that lets you create and manipulate PDF documents dynamically and can serve PDF to a browser, generate dynamic documents from XML files or databases, use PDF's many interactive features and add bookmarks, page numbers, watermarks, etc asnd much more. It's available in Java as well as in C#.

Jint - .NET JavaScript Interpreter
Jint in an interpreter for JavaScript. Jint embeds it's own parsing logic, and really interprets the scripts so you can load JavaScript scripts at runtime and evaluate them. it lets you create applications that users can automate by providing a programmable interface similar to VBA in Microsoft Office or add runtime configurability by scripting.

Jurassic - JavaScript Compiler for .NET
Jurassic is an implementation of the ECMAScript language and runtime supporting version 3 and 5 functionality. It is intended to be integrated into .NET programs. If you are the author of a .NET program, you can use Jurassic to compile and execute JavaScript code with a simple yet powerful API. It compiles JavaScript into .NET bytecode (CIL) and is deployed as a single .NET assembly.

Kd-Tree implementation in C#
This library lets you construct kd-trees for faster nearest neighbor searches. It provides Tree construction, Dynamic node addition, Dynamic node removal, Nearest neighbour search and Range search. It also requires the free Mathdotnet numerics library.

KeePass Password Manager
KeePass is a free open source password manager, that helps you to manage your passwords securely. You can keep all your passwords in one database, locked with one master key or a key file and just one master password or select the key file to unlock the whole database. Databases are encrypted using AES and Twofish. The earlier version was written in C++, version 2.0 is in C#

Lua Implemented in C#

This is a version of Lua 5.2, translated from C to C# with the focus on compatibility with Unity3D. Note part of the GitHub page is in Chinese, so use Google Translate if you don't understand Chinese. It has examples of calling Lua functions from C# and vice-versa.

LZMA Compression SDK
LZMA SDK provides the documentation, samples, header files, libraries, and tools needed to develop applications that use the LZMA compression algorithm.

Math.NET Numerics a Numeric library for .Net, Silverlight and Mono.
Math.NET Numerics is an open source numerical library for .Net, Silverlight and Mono, used in the Math.NET project, and provides methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms (FFT) and more.

Micro Benchmarking by Jon Skeet
This is a single file that provides a [Benmchmark] attribute and shows how long static, parameterless methods take to execute.

Microsoft Reasearch's Singularity Development Kit
The Singularity Research Development Kit (RDK) is based on the Microsoft Research Singularity project. It includes source code, build tools, test suites, design notes, and other background materials. The Singularity RDK is for academic non-commercial use.

Microsoft Synch Framework
The Microsoft Sync Framework is a synchronization platform that lets you create collaboration and offline applications, synching services and devices with support for any data type, data store, transfer protocol, and network topology. Note this is currently at CTP 2 (a sort of beta).

Microsoft's SandCastle - a Documentation Compiler
Sandcastle produces accurate, MSDN style documentation by reflecting over source assemblies and optionally integrating XML Documentation Comments. Sandcastle works with or without authored comments, supports Generics and all .NET Frameworks up to 3.5. It's used to build Microsoft Visual Studio and .Net Framework documentation

MPI.NET: High-Performance C# Library for Message Passing
MPI.NET is a high-performance, easy-to-use implementation of the Message Passing Interface (MPI) for Microsoft's .NET environment. MPI is the de facto standard for writing parallel programs running on a distributed memory system, such as a compute cluster, and is widely implemented in C and C++. This add C# capability.

MusicBrainz - Online library for identifying music tracks
MusicBrainz is a community music metadatabase. You can use the MusicBrainz data from a client program or use a client API in your own software to provide information about the CD, the artist or related information. Use the version 3.01 or higher language bindings.

Nasa World Wind - Displaying GeoData
World Wind lets you zoom from satellite altitude into any place on Earth. It uses Landsat satellite imagery and Shuttle Radar Topography Mission data to let you experience Earth terrain in 3D, as if you were really there.

Nlog - Flexible Logging Software for .NET
NLog is a free logging platform for .NET with rich log routing and management capabilities. It lets you produce and manage high-quality logs for your application regardless of its size or complexity and send them to Windows Event log, a Database, networking or even Email. It's licensed under the terms of BSD license.

Nocco - Side by Side comments and code

Based on a similar system docco (for CoffeeScript- simplified JavaScript), Nocco is a command line utility that processes your code and outputs html files showing comments next to the code. If you look at the linked page, you'll see examples of it with the comments to the left of the source code.

Note, it requeires Vs 2010 (or possibly Visual C# 2010 Express?)

Noda-Time - .NET implementation of Java Joda-Time
Developed by author and Microsoft MVP, Noda-time is a .NET implementation of Joda-time, a popular Java library that is a major improvement on the standard Java Date time libraries.

Open Source Zip Compatible Compression Library in C#
#ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 compression/decompression library written entirely in C# for the .NET platform. (Both 1.0 and 2.0) It is implemented as an assembly (installable in the GAC), and thus can easily be incorporated into other projects (in any .NET language). You can also use this library in commercial closed-source applications.

Open Toolkit for Open GL, openGL ES, openCL and OpenAL
The free licensed open Toolkit is for any C# developer on .NET or Mono. It also includes cross-platform GUI and a high performance GameWindow class. There's also support functions: a 3D math toolkit supplies Vector, Matrix, Quaternion and Bezier structs, an Input API provides Keyboard, Mouse and Joystick interfaces and a Display API for multiple monitors.

OpenRasta
OpenRasta is a resource-oriented framework for .NET enabling easy ReSTful development of web sites and services. OpenRasta runs on .NET 2.0 and above, and co-exist side by side with existing ASP.NET and WCF deployments.

OpenSimulator - 3D Worlds in C#
For Windows and Mono, this server software lets you create entire 3D environments. It supports online, multi-user 3D environments from 1 to thousands of simulators. 3D virtual spaces can be variable size within a single instance. It has supports for multiple clients and protocols - access the same world at the same time via multiple protocols.

PAINT.NET - Free Drawing Software
Paint.NET is free image editing and photo manipulation software for .NET 2.0 on Windows. It supports layers, unlimited undo, special effects, and many powerful tools.

Source Code includes nearly 600 C# files. Visual Studio 2005 is needed to build an installation but the software can be viewed in the free Visual C# 2005 Express Edition. Read A Review.

PDFsharp - open Source library for creating PDFs
PDFsharp is an Open Source library hosted on Sourceforge.net that creates PDF documents in any .NET language, on screen to file or to a printer. It can use either GDI+ or WPF and includes support for Unicode in PDF files.

Phalanger - .NET implementation of PHP
Phalanger is a new PHP implementation to let PHP apps run natively on .NET. It provides PHP applications an execution environment that is fast and extremely compatible with the vast array of existing PHP code.

Phalanger Tools; free Visual Studio Addin for PHP development
To assist development of PHP using Visual Studio, Phalanger tools is a free open source add-in. It provides code collapsing, syntax highlighting, brace matching, wrong code underlining, solution explorer and navigation bar to quickly navigate through objects and functions in your code.

Porter Stemming Algorithm
A stemming algorithm removes the ends of words to reveal the original root of the word. For instance "fishing", "fished", "fish", and "fisher" are all based on "fish". The Porter Stemming Algorithm is a popular and free to use algorithm with implementations in many languages including C and C#.

PostSharp - Enhance .NET Code after compilation
PostSharp is a GPL AOP Framework that lets you enhance code by implementing custom attributes and modifying the IL code after compilation. This makes possible some interesting programming techniques that would otherwise require messy alternatives.

PowerCommands for Visual Studio 2008
PowerCommands 1.1 is a set of useful extensions for the Visual Studio 2008 which enhances various areas of the IDE. The source code is included and needs the VS SDK for VS 2008 to allow modification of functionality or as a reference to create additional custom PowerCommand extensions.

QRCode Library - Encode and decode QR Barcode Images
QRCode Library is a .NET component that can be used to encode and decode QRCode. QRCode is a 2 dimensional bar code that originated in Japan. Nowadays it is widely used in a wide range of industries, e.g. for vehicle parts tracking and inventory management. Note- this requires registration.

Quartz.NET Scheduler
This is a fully fledged scheduling system that uses a database to track when processed should be run. It's a port of very propular open source Java job scheduling framework.

QuickSharp IDE - for editing and compiling C# Applications
QuickSharp lets you write, compile and run programs for the Microsoft .NET platform using the C# programming language. It provides a complete integrated development environment (IDE) for Microsoft Windows 7, Vista and XP and supports the development of console, library, Windows Forms and ASP.NET web applications.

Reactive Extensions from Microsoft

The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators.

Developed originally by Microsoft, it's now been open sourced by them.

SharpMap Graphical Information System (GIS)
SharpMap is an easy-to-use mapping library for use in web and desktop applications. It can read GIS data in many different formats (both raster and vector) and enables spatial querying of that data, and renders beautiful maps. The engine is written in C# and based on the .Net 2.0 framework. SharpMap is released under GNU Lesser General Public License

SharpSSH - Secure Communications Library
SharpSSH is a pure .NET implementation of the SSH2 client protocol suite. It provides an API for communication with SSH servers and can be integrated into any .NET application. SharpSSH allows you to read/write data and transfer files over SSH channels using an API similar to JSch's API.

SlimDX - Alternative to XNA
SlimDX is an open source framework that lets developers build DirectX applications in C#, VB.NET, and IronPython. It is efficient, simple, and lean wrapper that fully includes all of Microsoft's gaming and multimedia technologies from managed code. All SlimDX code is licensed under the MIT/X11 license.

smtp4dev - Testing smtp sending
This is a Windows 7/Vista/XP/2003/2010 compatible dummy SMTP server. It sits in the system tray and shows that emails have arrived but does not deliver the received messages. The received messages can be quickly viewed, saved and the source/structure inspected. Useful for testing/debugging software that generates email.

SQLite for .NET - System.Data.SQLite
System.Data.SQLite is an enhanced version of the original SQLite database engine. It's a complete drop-in replacement for the original sqlite3.dll (you can even rename it to sqlite3.dll) with no linker dependency on the .NET runtime so can be distributed independently of .NET, yet embedded in the binary is a complete ADO.NET 2.0 provider for full managed development.

Strokes- A Visual Studio Addin for Learning C# through Gamification
This addin, encourages you to learn C# by using static analysis to look for coding techniques you've used and give you awards.

Syndicated Client Framework
These applications use the push capabilities of RSS in a model to sync content down to the local computer. Each application handles presentation of the content and uses Microsoft’s Sync Framework-based Subscription Center to take care of syncing, local storage, subscription management and the safe caching of authentication credentials.

To help in collision detection
Asteroids Graphics Edge Detection Utility in C#

Tao Framework
The Tao Framework for .NET is a collection of bindings to facilitate cross-platform game-related development utilizing the .NET platform. The libraries it wraps include SDL, OpenAl,OpenGl, PhysFs, FreeGlut, Ode, Cg, Lua, FreeType and FFMpeg.

Task Scheduler Managed Wrapper
This provides a single assembly wrapper for the 1.0 and 2.0 versions of Task Scheduler found in all Microsoft operating systems since Windows 98. It simplifies the coding, deals with multiple versions, and provides an editor and allows for localization support.

UserAssist - Windows Utility to Show Executed Programs
The UserAssist utility displays a table of programs that have been run on a Windows (XP Mainly but some Windows 7) machine, complete with running count and last execution date and time. This information is held by Windows Explorer in the UserAssist registry entries. This program displays and manipulate these entries.

Using Amazon Simple Storage Service (S3) from .NET
This is an advanced C# library that interfaces with the Amazon S3 system. It has full support for data streaming without needing to load data into memory before sending to S3. There's also Data encryption and thread safety that lets you perform multiple simultaneous uploads and downloads.

VS-Android Development in Visual Studio
This lets you set up a new platform in Visual Studio so that Android NDK applications (from version 5 of the NDK forward) can be compiled and linked in Visual Studio and no longer needss cygwin.

Webserver - that can be embedded in any .NET application.
Add a webserver to your .NET applications. It adds features using modules and supports REST and all http verbs (and not just GET). Use as few modules (or all) according to your need.

White- Windows Automation Project
The documentation for White can be found on Codeplex though the sources have been moved to both Google and Github. White is a framework for automating client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It does not require the use of any proprietary scripting languages. Tests and automation programs using White can be written in whatever .NET language, IDE and tools you prefer.

Windows® API Code Pack for Microsoft® .NET Framework
This is a source code library that lets you use some new Windows 7 features plus some existing features of older versions of Windows operating system, all from managed code. These Windows features are not available to developers today in the .NET Framework.

Wintellect Power Collection
This is a collection of C# Generic Collections published originally by Wintellect and now on Codeplex. It comes with documentation in a .chm file and classes for various algorithms, bag,deque, hash,multi-dictionary and others. You'll need to upgrade it for Visual Studio 2008 or later.

Wix - open Source Installer for Windows
Wix, the Windows Installer XML is a toolset that builds Windows installation packages from XML source code. It supports a command line environment that developers may integrate into their build processes to build MSI and MSM setup packages.

xacc - C# IDE
acc.ide is a small, fast IDE for .NET development with support for 27 languages and various compilers. It has support for step debugging .NET based executables. Also featured is brace matching and folding support for some languages.

XmlBuilder for .NET

This is a nice alternative way to create XML files in C#. The author Sergio Pereira wrote it to make XML file creation a little easier and possibly less error prone. You can read his post on how to use it.

YAReG - Yet Another R(eiser)FStool GUI
YAReG is a free GUI for rfstool. It provides easy and comfortable read access to your ReiserFS formatted Linux partitions through a Windows Explorer type interface.

ZedGraph - Open Source Charting Software
ZedGraph is a class library, user control, and web control for .net, written in C#, for drawing 2D Line, Bar, and Pie Charts. It features full, detailed customization capabilities, but most options have defaults for ease of use.

ZipStorer - Class for handling Zip files
ZipStorer is a cmall C# class that stores and extract uncompressed and deflated files in new or existing Zip files, without needing an external library. It works with .net 2.0 and up, and Compact Framework and can also handle ePub files for e-books.

Zscreen - Open Source Utility for Screen Capture on Windows
ZScreen is an open-source screen capture program that can capture region, window or full-screen screenshots. It can FTP screenshots and put the URL in your clipboard in a single keystroke and supports automatic custom naming conventions with variables.

©2014 About.com. All rights reserved.