views:

18542

answers:

95

I have used a lot of free .NET libraries, some from Microsoft itself! Which ones have you found the most useful?

Package managers for external libraries

  • NuGet (formerly known as NuPack) - Microsoft (developer-focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application during development)

Dependency Injection/Inversion of Control

Logging

Validation

Compression

Ajax

Data Mapper

ORM

Charting/Graphics

PDF Creators/Generators

Unit Testing/Mocking

Automated Web Testing

URL Rewriting

Controls

MS Word/Excel Documents Manipulation

  • DocX to create, read, manipulate formatted word documents. Easy syntax, working nicely, actively developed. No Microsoft Office necessary.
  • Excel XML Writer allows creation of .XLS (Excel) files. No Microsoft Office necessary. Been a while since it has been updated. It also provides code generator to create code from already created XLS file (saved as xml). Haven't tested this but looks very promising. Too bad author is long time gone.
  • Excel Reader allows creation/reading of .XLS (Excel) files. No Microsoft Office necessary. Been a while since it has been updated.
  • Excel Package allows creation/reading of .XLSX (Excel 2007) files. No Microsoft Office necessary. Author is gone so it's out of date.
  • EPPlus is based on Excel Package and allows creation/reading of .XLSX (Excel 2007). It is actually the most advanced even comparing to NPOI.
  • NPOI is the .NET version of POI Java project at http://poi.apache.org/. POI is an open source project which can help you read/write xls, doc, ppt files.

Social Media

  • LinqToTwitter - Linq-based wrapper for all Twitter API functionality in C#

Unclassified

[EDIT]
Please provide links to these free libraries as well. Once we have a huge list of this, it can be arranged in categories! Please do not mention .NET Applications/EXEs here.

+2  A: 

nHibernate sharp zLib

JoshBerke
Could you add links, please?
Jon B
+55  A: 
  1. Ajax Control Toolkit
  2. Silverlight Toolkit
  3. nUnit
  4. Rhino Mocks (Unit Test against Fake Resources)
  5. Moq (Unit Test against Fake Resources Alternative)
  6. Flickr.Net
  7. Live Services SDK
  8. Facebook Developer Toolkit
  9. Castle Windsor (DI)
  10. Open XML SDK 2.0 (Create/Edit Word/Excel/PowerPoint 2007 Formats)
  11. CSLA Framework (Business Objects Framework)
  12. TypeMock.Net (Another Mocking framework)
  13. Silverlight.FX (Additional Silverlight Controls)
  14. ScriptSharp (A Javascript Framework)
irperez
+14  A: 
BC
If you want to use linq to entities, you can use NHibernate with NHibernate Linq extension.
NetSide
+21  A: 
  1. Log4Net for Logging
  2. Watin for Web Application Testing
  3. Ajax.NET Pro for AJAX Framework. (Very successful alternative to Ajax Toolkit)
  4. Json.NET JSON library for .NET
  5. HTML Agility Pack for parsing HTML files.
Canavar
Please mention what it is used for.
Binoj Antony
+7  A: 

Krypton Toolkit - Windows Forms Controls

Gordon Bell
Please explain what it is used for.
Binoj Antony
GUI elements (buttons, forms etc.) The KT core is free.
boj
+1 Of all the libraries listed, this is the only one I use in every WinForms project I create. Really gives an app a professional look.
Michael Itzoe
A: 

NUnit

SharpZipLib

Log4Net

abatishchev
Could you add links, please?
Jon B
A: 

Two that have not been mentioned that I use a lot are:

Flee -- Expression Evaluator

PDFSharp -- PDF Editing

Bryan Rowe
Do explain what it is, what is it used for.
Binoj Antony
I wasn't aware you were unable to click through the links -- hard task, I know. Also, your original post never requested that we describe what they do.
Bryan Rowe
+21  A: 

Microsoft Chart Controls for Microsoft .NET Framework 3.5

Gordon Bell
+31  A: 

In-process database servers make my life easier.

SQLite

SQL Server Compact Edition

overslacked
They ARE libraries, not full applications or system services like SQL Server Express/Standard/Enterprise.
Lucas
... and free, too
Lucas
A: 

FlickrNet API Library

Gordon Bell
+8  A: 

For PDF, other than PDFSharp,

iTextSharp

Sung Meister
iTextSharp is great! It has saved me a lot of time instead of dealing with browsers printing web pages differently.
wsanville
+16  A: 

The Microsoft .NET Framework. I'd never get any work done without its libraries.

Joe
I never get to come up with a smart-ass answer...
Sung Meister
could not help but laugh
dbones
+11  A: 

NLog for logging

slolife
+7  A: 
CodeMonkeyKing
I wanted to mention NAnt, but wasn't sure if it fit the poster's criteria. It's definitely crucial for CI.
TrueWill
+5  A: 

Google Data APIs Client Library

Gordon Bell
Why was this down voted? Google offers a .NET library for their API on that very page.
Matt Olenik
+37  A: 

ELMAH

ELMAH (Error Logging Modules and Handlers) is an application-wide error logging facility that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment.

Update: To work with Asp.Net MVC

Gulzar
+9  A: 

Microsoft Chart Controls for WinForms

A free high quality charting library for .NET supported by Microsoft.

Andrew Moore
+8  A: 

Dependency Injection: Ninject

Web MVC framework: ASP.NET MVC (1.0 released yesterday!)

Client MVP-ish (or is that MVVM?) framework: patterns & practices Composite Application Guidance for WPF and Silverlight, aka Prism (v2 released Feb 2009)

Lucas
After going through the samples in detail, I think it's MVCP-VM ;)
Richard Szalay
Wow, thanks for the Ninject link, it looks really useful.
Tamás Szelei
+28  A: 

Subsonic. An open source object-relational mapper.

CmdrTallen
A: 

Bloatware ( don't have the link )

Seriously, if you stack up log4net, NHibernate, Prism, Unity and few of them together you really get something slower than JDK 1.6. Incredible.

And it becomes such a monster for well.. pretty much bad engineering adoption magnet.

Here comes votes..

rama-jka toti
I have no idea why you felt it necessary to waste my time. I was reading a thread about .NET libraries. Not JDK. -1, come back one year!
Cj Anderson
I'll vote for you. Hear hear (even if it is off topic)
Chris
Err, I felt it was necessary as most of the bloatware so far mentioned was dumped years back as people realised the overhead in Java space.. .NET guys copied, refuse to look at Task Manager and face that it is identical and even worse with log4net, log4bloat, Prism, Unity, NHibernate and friends..
rama-jka toti
Don't feed the troll, kids
Richard Szalay
Yes, kids, listen to Richard but do check occasionally what it does when you start a few apps of such kind.. Snaaailll for love...
rama-jka toti
May be a bit off topic, but a good point.
Cookey
+14  A: 

AForge.net

AForge.NET is a C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, machine learning, robotics, etc.

Gordon Bell
Wow, this looks awesome, thanks!
Matt Olenik
+2  A: 

I use the Spring Framework and quite like it for dependency injection.

It can do most of every sub category you specified out of the box but does not have any Ajax support. For that I use jQuery and ASP.NET AJAX.

w4ymo
+2  A: 

The Ventaur Web Page Security project (available here: http://www.codeproject.com/KB/web-security/WebPageSecurity%5Fv2.aspx) is incredibly useful for (ASP, admittedly) .NET.

Paul Suart
A: 

I've found that SharpZipLib is slow and doesn't compress nearly as good as winzip. I've used the C# version of 7-zip's LZMA algorithm is muuuch better.

Chris
+17  A: 

I have found that the C5 Collections library is the most extensive and well designed collections framework for .NET.

Matt Olenik
+1 Looks very interesting!
Dog Ears
I agree, definately one of the best, if not THE best, collection library out there.
JohannesH
Dont forget PowerCollections.NET. I was an avid user but a lot of requirement for it goes away with LINQ to objects / C# 3
Ruben Bartelink
A: 

Some that haven't been mentioned:

  • Gentle an ORM
  • Enterprise Library for validation, caching and logging
  • Json.NET for Linq over Json
GiddyUpHorsey
Gentle.NET's a great O/RM (it's what we use), but AFAIK the author's no longer evolving it.
TrueWill
I too use Gentle.NET and even contributed a little bit to it, but Morten (its author) has stopped its development.
Martín Marconcini
A: 

Automated web testing: Selenium. It has support for .NET.

Jonathan Parker
+4  A: 

How about:

Recaptcha - captcha control

url rewriter - open source URL rewriting

UrlRewriting.Net - another URL rewriter

GoogleMaps.Subgurim.NET - Google maps server control

Luke Lowrey
+2  A: 

DotNetZip for ZIP file handling.

Cheeso
+1  A: 

nUnit and Typemock Isolator

+3  A: 

LuaInterface

If you want to embed a small, fast, easy to learn and very poverful scripting language in .NET applications, this is the way to go.

Visual Web Gui

The SDK includes the complete WinForms Toolkit, 58 WinForms Controls and integration into ASP.NET. It also includes the revolutionary Visual WebGui runtime which enables desktop application-like responsiveness and heavy-lifting abilities for data centric web applications supporting multiple presentation layers* from the same source code.

majkinetor
+4  A: 

Well, Jon Skeet's MiscUtil, of course! (Shameless plug -> My library)

Lucas Jones
+12  A: 

For me, by far and away the single most useful library is:

System.Data.SQLite

Perfect for websites on a shared hosting package with fairly "light" database needs.

CraigTP
I love the fact that the same assembly contains the native SQLite engine AND the managed ADO.NET provider...
Thomas Levesque
+6  A: 

OpenNETCF, essential if you're working with Compact Framework and makes work there much less gruesome.

Quibblesome
+7  A: 

ZedGraph for graphing.

Steve
+8  A: 

IKVM brings the extensive world of Java libraries to .NET.

Todd Stout
I've used it; it's truly amazing. If the startup speed hit isn't a dealbreaker, it gives you access to a larger world.
TrueWill
@TrueWill Startup time has never been an issue for me. Do you find slow startup times after using ikvmc to compile the jars to assemblies?
Todd Stout
+1  A: 

I can't see a link for mbUnit which is a powerful alternative to NUnit.

John Nolan
A: 

Fluent NHibernate offers a statically compiled mapping alternative to NHibernate's XML mappings. Castle's ActiveRecord is a great implementation of the active record mapping pattern.

Matt Olenik
A: 

For me:

  • Fluent NHibernate
  • NHibernate
  • log4net
  • AutoFac
Min
+2  A: 

The Free and amazing SourceGrid

Pondidum
A: 

Charting

Winforms Controls

ASP.NET Controls

kay.herzam
+1  A: 

Gallio/MbUnit for unit testing.

Samuel Jack
+1  A: 

ORM - Sooda (http://sooda.sourceforge.net/)

Sooda is object-relational mapping software for the .NET (http://msdn.microsoft.com/net) environment. It lets you automatically generate an object-oriented data access layer (DAL) for your application. Instead of writing SQL code, you can now focus on writing business rules in object-oriented .NET languages.

Sooda is an open source software distributed under the terms of the BSD license.

I strongly recomend NLog which is very easy to use and very fast.

dario-g
+1  A: 

HTML Agility Pack. For scraping HTML and accesing it as XML.

ZedGraph. For charting in web or Windows Forms.

Romias
+4  A: 

It may push the boundaries of what's considered a "library", but as a longtime advocate of embedding scripting languages into LOB applications, I'd say IronPython.

Disclaimer: I'm also biased. :)

Curt Hagenlocher
A: 

NMock2 for unit-testing/mocking. NMock2

Lucene.NET: an open-source .NET port of a popular search engine API. Lucene.NET

azheglov
+1  A: 

DevExpress also has a free set of controls.

Saif Khan
unfortunately the free one aren't the most useful...
Thomas Levesque
true, but they are free.
Anonymous Type
+6  A: 

Lucene.net -> For text indexing/searching

JSmyth
+4  A: 

For 3D graphics OpenTK is probably the best for OpenGL.

OpenTK (OpenGL for .NET and Mono.)

SlimDx (Managed DirectX, great altenative to XNA.)

docflabby
A: 

TA-Lib for those who love trading stocks using technical analysis.

Mark Lavin
+1  A: 

Microsoft Learning Components from Microsoft's SharePoint Learning Kit (www.codeplex.com/SLK) (E-Learning/SCORM libraries).

FreeImage.Net (freeimage.sourceforge.net/download.html) (.NET wrapper for FreeImage) -- I use this to get 4:4:4 subsampling for saving JPEGs.

(Can't post proper links yet.) :)

A: 

Please correct me if I go wrong with Microsoft.ReportViewer.

adopilot
+2  A: 

DevExpress has 60 free controls (both ASP.NET and WinForms)... definitely check them out...

DevExpress 60 Free Controls

Thanks :)

Chalkey
I was about to remove this from the question then looked for this answer. Man they don't provide a single mention of "free" in their entire website until you click on that link :)
Earlz
no suprise there. still the free ones are great and worthy of adding to the toolbox.
Anonymous Type
+2  A: 

More of an XNA specific one but Farseer Physics is a great XNA 2D physics library.

RCIX
+7  A: 

Postsharp for aspect-oriented programming (AOP) or policy injection.

Hugo Assanti
+2  A: 

HTML Parsing : Html Agility Pack

Ben
A: 

These are the ones of those listed that I've found useful:

  • DI/Ioc: Unity
  • Logging: Log4Net
  • Testing: NUnit, Moq
  • Unclassified: Json.NET (I've played around with this a little, but haven't used it extensively.)

(We use another O/RM, but it's no longer maintained.)

This is not to say that I've fully evaluated all of the alternatives!

Other libraries of note:

HtmlAgilityPack (easy parsing of HTML)

Wow, this is hard if you leave out the EXEs and add-ins! :)

TrueWill
A: 

Sharp SVN for Subversion operations is very good.

Troy Hunt
+1  A: 

More ORMS

Chris S
Con you add a description please?
Mendy
A: 

Spell Checker NHunspell (.NET Wrapper of the OpenOffice spell checker Hunspell).

Thomas Maierhofer
+2  A: 

Math.NET Iridium

From their homepage:

Iridium is the numerical foundation of Math.NET, aiming to provide commonly used mathematical elements for scientific numerical computations. It offers the infrastructure for basic numerics, linear algebra, random generators and distributions, integral transformations, etc.

What I've used it for is PCA (Principal Component Analysis) (eigenvalue decomposition) which worked like a charm. License: LGPL. Self-contained (no extra dependencies).

Link: http://www.mathdotnet.com/Iridium.aspx

ChristopheD
+2  A: 

You've got all of my favorite libraries covered. Here is my humble attempt to share a collection of utilities I wrote over the years and reused across various projects:

My.Utilities Class Library

This collection includes helper classes for ASP.NET web forms (time localization, etc), Windows services, error reporting, and more. Please read help file for detailed description and examples.

UPDATE: I just discovered a multi-purpose utilities library by James Newton-King, which looks pretty handy.

Alek Davis
+3  A: 

I'd like to add AutoMapper to the list, as tooling. It's so useful if you are doing any kind of application development where you are mapping DTOs or Update/View Models to domain object. It is convention based, and lets you do some awesome object mapping so easily.

Chad Ruppert
+2  A: 

Unclassified (specifically, serialization)

Marc Gravell
Json.NET is a really handy library.
Alek Davis
+2  A: 

A great free Silverlight Charting library: Visifire

Colin
A: 

I would also recommend the book

:Windows Developer Power Tools: Turbocharge Windows Development with More Than 140 Free and Open Source Tools (Paperback)

Not only does it list a lot of tools it also provides information on how to use them etc. in one place.

link text

anirudhgarg
+2  A: 

I've found these free Winforms Controls. They seem to be quite good and there's also a documentation and samples available. The guys also have a Free WPF Components.

gary72
+2  A: 

The Fast Artificial Neural Network Library (FANN) found at http://leenissen.dk/fann/ is great.

Nice list all.

SetiSeeker
+2  A: 

Code generation and O/R Mapping: My Generation.

(Sorry if this has already been posted.)

Kane
+3  A: 

Open Source Enterprise Service Bus Projects:

Mass Transit - http://masstransit.pbworks.com/

NServiceBus - http://www.nservicebus.com/

Karthik Hariharan
+7  A: 

I've created a new library for making it easier to consume REST APIs in .NET: RestSharp

John Sheehan
RestSharp is great.
Ryan Farley
+3  A: 

For all your syndication & social networking needs

  • RSS Toolkit : Covers publication and consumption of RSS feeds, building classes for a specific feed. Good for working with one or two feeds
  • Argotic Syndication Framework : Much more useful than RSS toolkit for dealing with RSS and ATOM feeds in a generic way.
  • Tweetsharp : Fluent interface to the Twitter API. Very actively developed.
  • Facebook Developer Toolkit : .NET API for Facebook. v3 released last week.
Hmobius
+1  A: 

DotNetTransitions is a library that does control animation and transitions in a WinForm application. Very smooth and easy to use.

Ryan Farley
+1  A: 

Spark View Engine - a really good ASP.NET MVC (and not only) open source view engine.

ILog
+1  A: 
  • XML-RPC.NET by Cook Computing - A great open source XML-RPC library for dealing with services like Pingbacks and MetaWeblog API.

  • NVelocity by the Castle Project - Super powerful templating library.

  • Janrain OpenID library

Kevin Harder
+1  A: 

Quartz.NET - Enterprise Job Scheduler for the .NET Platform.

Simone Falconi
+1  A: 

Zodiac.NET is a good framework for building forms, surveys and questionnaires from XML.

mnour
+2  A: 

two other cool free libraries I haven't seen in the list yet:

  • NPOI which enable one to create/read/write excel files without having to install MS Office on your machine
  • Protobuf-net, developped by Marc Gravell, serialization library inspired by Procotol Buffer developped by Google.

And I don't remember if someone mentions Json.NET... If not, here's the link !

PierrOz
+3  A: 

SharpPcap - .NET pcap wrapper to capture and parse network packets

Evan Plaice
+5  A: 

I can't believe nobody suggested FluentValidation so far.

Darin Dimitrov
+1  A: 

LinFu, a framework that adds mixins, inversion of control, and AOP (see also the CodeProject articles.)

Kris Erickson
+7  A: 

Nini is an uncommonly powerful .NET configuration library designed to help build highly configurable applications quickly. Generally it is about INI files.

adopilot
+3  A: 

IBatis is also XML-based Object/Relational mapping and persistence framework as well as a data access abstraction layer.This framework is available for .Net as well as Java too.

Ramesh
+2  A: 

NodeXL is a great open source library for computing and visualizing Network graphs. It includes an Excel template and a .NET library with a presentation library in WPF.

SiN
+9  A: 

Word / Documents:

  1. DocX to create, read, manipulate formatted word documents. Easy syntax, working nicely, actively developed. No Microsoft Office necessary.

Compression

  1. SevenZipSharp to pack, unpack a lot of different packages.

Excel Spreadsheets

  1. Excel XML Writer allows creation of .XLS (Excel) files. No Microsoft Office necessary. Been a while since it has been updated. It also provides code generator to create code from already created XLS file (saved as xml). Haven't tested this but looks very promising. Too bad author is long time gone.

  2. Excel Reader allows creation/reading of .XLS (Excel) files. No Microsoft Office necessary. Been a while since it has been updated.

  3. Excel Package allows creation/reading of .XLSX (Excel 2007) files. No Microsoft Office necessary. Author is gone so it's out of date.

  4. EPPlus is based on Excel Package and allows creation/reading of .XLSX (Excel 2007). It is actually my favorite when it comes to Excel. It's actively developed and so far have been able to do most things i needed (which I can't say the same about 3-5 packages), but it's only limited to .XLSX (which from one side is good thing). I'm still testing it thou :-)

  5. NPOI is the .NET version of POI Java project at http://poi.apache.org/. POI is an open source project which can help you read/write xls, doc, ppt files.
MadBoy
+4  A: 

ExcelLibrary is a really light and simple library to create and read .xls file. It has little formatting options though.

Code example to export a dataset to an Excel file :

ExcelLibrary.DataSetHelper.CreateWorkbook(@"C:\report.xls", myDataset);
DrDro
I've used this with great success on a side project. Lets you run linq queries directly against Excel spreadsheets. http://code.google.com/p/linqtoexcel/
Tim Coker
+1  A: 

CruiseControl.Net ? - I don't think that's listed already?

DaveHogan
It's a build tool, not a library. Also, TeamCity or Hudson are far better tools, unless you enjoy spending forever writing .build files by hand...
alimbada
+1  A: 

BlogEngine.Net

Blogger APIs

Google Chart API

renjucool
+5  A: 

I do not think these have been mentioned

dbones
Dot less looks awesome, thanks!
KallDrexx
+1  A: 

Sprite and Image Optimization Framework for optimizing the website images

Currently still at Preview 2

It's a part of the ASP.NET MVC Framework project on codeplex, Works fine with WebForms too

Manaf Abu.Rous
+4  A: 

Since you added LinqToTwitter I think it would only be fair to add the following libraries

.NET Facebook API Client

A .NET client library for the Facebook API that allows developers to create Facebook Applications in C# and VB.NET with support for ASP.NET and ASP.NET MVC.

Facebook Developer Toolkit

This toolkit is provided as a Facebook Client Library similar to Facebook’s PHP Client Library or Facebook’s javascript library. The goal is to enable .NET developers to quickly and easily leverage the various features of the Facebook Platform.

Manaf Abu.Rous
+2  A: 

Another useful ORM framework: ADO.NET Entity Framework

Andre Haverdings
Isn't it part of .net?
Vitalik
true, as of .net 3.5 SP1
Andre Haverdings