share
Stack OverflowWhat is the most useful .net library you've found?
[+58] [47] tom.dietrich
[2008-10-24 14:01:22]
[ .net ]
[ http://stackoverflow.com/questions/233648/what-is-the-most-useful-net-library-youve-found ] [DELETED]

The .net framework comes with a bunch of really useful libraries, but there's always something better out there.

What 3rd party libraries have you found that you can't live without now?

is it C5 [1]?

is it db4o [2]?

is it something off CodePlex [3]?

Share with the rest of us!

EDIT: Please post both Free and Non-free libraries- but it would be nice if we knew which were which.

Should this be a community wiki question? I think so. stackoverflow.com/questions/128434/… - Chris Marasti-Georg
Yes. Yes it should. - Chris Lively
Yeah you're probably right. - tom.dietrich
[+36] [2008-10-24 14:07:44] Jon Tackabury

Log4Net [1]

[1] http://logging.apache.org/log4net/index.html

Why is this better than other solutions, like the MS Enterprise Library logging block? - Chris Marasti-Georg
Partially because it arrived before the MS Ent Lib, partially because I find it easier to configure and use. - Dillie-O
I've never tried the MS Enterprise Library, but I've had good luck with Log4Net so I really haven't had a reason to look into alternatives. - Jon Tackabury
I have tried both and I really prefer log4net. Whenever I have tried to do something with log4net I have been pleasantly surprised how easy it turns out to be and how much help you get on the newsgroups. The more you work with it, the more you realize how well designed it is. - Rob Prouse
Chainsaw! That's why its better. - dviljoen
Internal deadlocks!!! Boooooo - Andrei Rinea
(9) i wish we'd abolish log4net. .NET has a perfectly good Trace system and trace listeners which do everything l4n does. And you don't have to configure logging twice. - Paul Stovell
(1) Checkout NLog :) - dario-g
@PaulStovell Care to post a blog post or an answer as to how they are the same? I'd be interested in reading... - drozzy
1
[+36] [2008-10-24 14:14:22] Cristian Libardo

NHibernate [1]

[1] http://www.hibernate.org/343.html

2
[+29] [2008-10-24 16:21:26] craigb

NUnit [1]

[1] http://www.nunit.org/

Hell yes. Not just useful, but indispensable. Wouldn't write any serious code without it. - Joe White
3
[+28] [2008-10-24 14:07:44] mohammedn

SharpZipLib [1] - This is a library for compressing files in zip format.

[1] http://sharpdevelop.net/OpenSource/SharpZipLib/

4
[+20] [2008-10-24 14:43:59] yfeldblum

Moq [1] (a mocking framework).

[1] http://code.google.com/p/moq/

Why do you like this better than other frameworks, like Rhino mocks? - Chris Marasti-Georg
(1) For me, I didn't quite "get" mocking until I started using Moq. Now I wonder how I ever got along without it. - cfeduke
I like Rhino Mocks as well just fine. Those are the two that I have used. But Moq has a distinct flavor to it, which I like. - yfeldblum
5
[+19] [2008-10-24 15:43:10] Cristian Libardo

Rhino Mocks [1]

[1] http://ayende.com/projects/rhino-mocks.aspx

6
[+18] [2008-10-24 14:06:05] James Curran

HTML Agility (Html Parser) [1] - Largely compatible with XmlDocument in .NET, but loose enough to accept real-world HTML.

Micrsoft Enterprise Library [2] "a library of application blocks designed to assist developers with common enterprise development challenges" - Include Logging, Configuration, cross-platform database access and other areas.

[1] http://www.codeplex.com/htmlagilitypack/
[2] http://www.codeplex.com/entlib

Html Agility Pack has saved me many many hours of work... - Superdumbell
7
[+14] [2008-10-24 14:17:54] Mike

Castle [1] - ActiveRecord [2], Windsor [3], Monorail [4], NVelocity [5] - every project I work on uses at least one.

[1] http://www.castleproject.org/
[2] http://www.castleproject.org/activerecord/index.html
[3] http://castleproject.org/container/index.html
[4] http://www.castleproject.org/monorail/
[5] http://nvelocity.sourceforge.net/

needs 100% more linky - Neil N
8
[+13] [2008-10-24 14:21:48] Jon Simpson

Subsonic. I created a maintainence app for 200 lookup tables (countries, towns, airports etc.) in a day pointing at SQL server. A day later I was able to host the exact same set of tables on MySQL. I wouldn't use this for enterprise scale apps, but for rapid scaffold tooling for CRUD operations this can't be beaten for simplicity.


9
[+12] [2008-10-24 14:45:07] yfeldblum

Autofac [1] (a fluent and lambda-based IoC/DI container).

[1] http://code.google.com/p/autofac/

10
[+12] [2008-10-24 15:14:24] Chris Lively

Elmah [1]

It is indispensible when tracking those errors that only happen in production.

[1] http://code.google.com/p/elmah/

11
[+11] [2008-10-24 14:09:57] StingyJack

MS Enterprise Library [1] (app blocks for data, logging, validation and security)

[1] http://msdn.microsoft.com/en-us/library/cc467894.aspx

12
[+10] [2008-10-24 14:05:41] Mitch Wheat

C5 (as you mentioned) and the PowerCollections [1] library.

[1] http://powercollections.codeplex.com/

I really liked PowerCollections. It was an awesome bridge to until we got our hands on .NET 3.5 - Gord
C5 yes, PowerCollections - not so sure about. - drozzy
13
[+10] [2008-10-24 14:51:27] Adam Neal

WatiN [1] (Web Application Testing in .NET) is wonderful, so easy to automate IE (and soon Firefox). I didn't find it, but someone showed it to me, and I'm very grateful!

[1] http://watin.sourceforge.net

14
[+9] [2008-10-24 16:37:40] Alan

DXperience by Developer Express [1] - they make a comprehensive set of UI and ORM components w/source code, and I find their support very responsive and helpful. Not free at all, but well worth the cost IMO.

[1] http://www.devexpress.com/

15
[+8] [2008-10-24 14:07:55] whoisjake

xUnit [1]

[1] http://www.codeplex.com/xunit

Why is this better than other unit testing solutions, like NUnit? - Chris Marasti-Georg
they tweaked the NUnit framework interface... use of generics and anonymous functions... and no heavy setup and teardown methods which can cause test cruft and misrepresented conditions in your tests... - whoisjake
16
[+8] [2008-10-24 14:09:34] Eoin Campbell

The AjaxControlToolkit [1] Project On Codeplex and Log4Net [2]

[1] http://www.codeplex.com/AjaxControlToolkit
[2] http://logging.apache.org/log4net/index.html

17
[+7] [2008-10-24 15:02:56] Rob Prouse

I like StructureMap [1] for dependency injection and inversion of control. Combine that with MbUnit [2] for unit testing, log4net [3] for logging and SubSonic [4] or NHibernate [5] for an ORM (depending on your app) and you are off to a pretty good start for developing most apps.

Best yet, they are all free.

[1] http://sourceforge.net/projects/structuremap
[2] http://www.mbunit.com/
[3] http://logging.apache.org/log4net/
[4] http://subsonicproject.com/default.aspx
[5] http://www.hibernate.org/343.html

18
[+7] [2008-11-07 14:40:29] Francois Tanguay

Umbrella [1]

As the founder of Umbrella, the intent of this project on CodePlex is to provide a structure and central repository for extension libraries. We already cover much of that CodeBetter.Extensions is covering and contributors from other libraries have started to merge their content into Umbrella.

It is usint xUnit as its testing framework, is leveraging and extensind parts of Enterprise Library and Unity although it is not bound to it.

In upcoming contributions, we'll add "Umbrella Over DataServices, WCF, EF, WPF, ..."

Feel free to contribute by contacting us on CodePlex.

And don't worry, documentation is on the way...

[1] http://www.codeplex.com/umbrella

19
[+6] [2008-10-24 14:08:26] TraumaPony

Not exactly 3rd party, but does the XNA framework count?


20
[+6] [2008-10-24 14:33:54] Corey Gaudin

Ninject Framewor. It is a great fluent Dependancy Injection Framework. It is lighter weight and more very quick. I fell in love with it the more I use it in the ASP.NET MVC projects I am working on.

ASP.NET MVC - its about time, and boy are they doing it right.

jQuery - not really a 3rd part Framework for ASP.NET, but its a great compliment to ASP.NET and honestly I couldnt do my job without it.

MS Ajax Client Templates - If you havent checked this out yet, do yourself a favor and check it out. It is a way to bind Javascript Objects to controls and have live templating, so it a 2-way bind like in Silverlight and WPF. Its a great javascript library, that will hopefully get better and more mature.

If anyone is interested in these things, check out my latest 2 blog posts at polymorphicview.blogspot.com [1] to see how I am using them together.

[1] http://polymorphicview.blogspot.com

21
[+6] [2008-10-27 22:14:10] benpage

I really like CodeBetter.Extensions [1], in particular the IEnumerable.Each() extension for looping an action for a collection. I don't have a project without it!

Also, I know you only asked for one, but I must give an honourable mention to the Dynamic LINQ library blogged about my ScottGu here [2].

I feel i also need to anti-vote Dundas Charts - after spending a lot of money on v6.1, they tell me that in order to upgrade to a minor revision (v6.2), i needed to spend an additional $1500 or so just for the upgrade. I can understand having to pay for a major revision, but a minor one? What about bugs in the software?

[1] http://www.codeplex.com/nxl
[2] http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

22
[+6] [2009-01-06 02:32:35] CMS

Here are a good ones not yet mentioned:

[1] http://itextsharp.sourceforge.net/
[2] http://incubator.apache.org/lucene.net/
[3] http://www.rssdotnet.com/

23
[+6] [2009-06-21 21:46:28] dario-g

NLog [1]

It's lightweight and very fast (faster than log4net), very simple for configuration and very extensible.

[1] http://www.nlog-project.org

24
[+4] [2008-10-24 14:32:54] João Augusto

You should mention if you are referring to "FREE" or "NOT FREE" 3rd party libraries.

I find this one very usefull. http://mathnet.opensourcedotnet.info/


(5) So is your tool FREE or NOT FREE?? - Brian Schmitt
Can you click the link ? "A mathematical open source (LGPL & GPL) library written in C#" - João Augusto
(7) But you told people to mention if their libraries were free or not free, and you didn't specify what yours is in the answer... - Chris Marasti-Georg
25
[+4] [2008-10-24 14:47:06] Domenic

No love for Umbrella [1]?

[1] http://www.codeplex.com/umbrella

Umbrella needs XML documentation. There's... just... so... much! I have to dig through the source because anything generic I need is solved in Umbrella... somewhere. - cfeduke
@cfeduke: I agree! - Domenic
26
[+4] [2008-11-07 15:24:15] EricSchaefer

Depending on your definition of "library": Mono [1]

[1] http://www.mono-project.com/Main_Page

27
[+3] [2008-10-24 14:14:54] Chris Marasti-Georg

I'm looking forward to hearing the responses here, because I disagree with this:

The .net framework comes with a bunch of really useful libraries, but there's always something better out there.

Coming from the Java world, I found .NET to be sorely lacking in quality, free 3rd party libraries. Many that exist are half-implemented ports of Java libraries that may or may not have the functionality that you need.


Can... Worms... Everywhere... ;) watches the .NET Developers grab their torches & pitch forks - Eoin Campbell
Not my intention - as I said, I look forward to seeing the answers here. But if Log4NET, NUnit, NHibernate, Spring.NET, etc. end up at the top, will that kind of prove this point? I want to see tools that were created for .NET, not ported to .NET - Chris Marasti-Georg
For instance, C5 looks very interesting, and I had not yet been exposed to it. - Chris Marasti-Georg
If you dont take it as offence, most of the frameworks you are thinking (from java prospective) usually developed by those devs which like the tone of these apps/frameworks and then move them to work in .NET. As my experience suggests most .NET developers hardly go out shopping for except ctrls etc - Gripsoft
I've also used C5. It's EXCELLENT. The basic architecture of the library is loosely based on Josh Bloch's java collections API, but the devil is in the details, and they've paid a great deal of attention to making the library extremely functional and modular. - benjismith
As It should be obvious , .NET has more rich library and especilly they cover their platform well enough along with their partners that if you are looking for something, u either find it from M$ or their partners. This trend has recently been reversed so it will take time to see a real thing frm .NE - Gripsoft
IMHO, there are so many libraries ported over from Java because it has been around much longer than .NET. When trying to solve a problem, its usually easier to port a library over rather than write it from scratch. Now that most of those needs are filled, we are seeing newer libraries being created. - Rob Prouse
28
[+3] [2008-12-20 04:10:26] Rinat Abdullin

For the Desktop Apps I like to use commercial component suite by DevExpress [5]

[1] http://rabdullin.com/autofac/
[2] http://rabdullin.com/shared-libraries/
[3] http://www.nunit.org/index.php
[4] http://logging.apache.org/log4net/index.html
[5] http://www.devexpress.com/Products/NET/DXperience/

29
[+3] [2009-05-01 18:49:47] kpax

The free Krypton Toolkit from Component Factory [1] (part of Krypton Suite which is commercial)

[1] http://www.componentfactory.com/

30
[+2] [2008-10-24 14:50:50] WillCodeForCoffee

I use SubSonic alot for ORM, Migrations, etc. It's pretty handy! (http://subsonicproject.com/)

Also, it's free.


31
[+2] [2008-10-24 14:55:28] Dave_H

It's commercial software (you have to pay for it), but Aspose [1] makes some good products for working with office files. I've used their software to greatly simplify working with Excel spreadsheets and creating Word documents as part of a CMS solution.

Open-source: NUnit, Log4Net, SharpZipLib.

[1] http://www.Aspose.com

32
[+2] [2008-10-24 16:18:43] cfeduke

iBATIS.NET [1] for data mapping (free).

[1] http://ibatis.apache.org/dotnetdownloads.cgi

33
[+2] [2008-11-27 02:59:17] Samnang

Don't forget about Web Integration Testing:

  • WebAii
  • WatiN
  • Selenuim

34
[+2] [2009-01-06 02:24:23] nab

For XMPP/Jabber » agsXMPP [1] or jabber-net [2]

[1] http://www.ag-software.de/index.php?page=agsxmpp-sdk
[2] http://code.google.com/p/jabber-net/

35
[+1] [2008-11-24 19:51:33] dotob

as mentioned: log4net, umbrella, nunit

[1] http://www.springframework.net/
[2] http://www.infragistics.com/dotnet/netadvantage.aspx#Overview
[3] http://nvelocity.sourceforge.net/

Infragistics??? Are you joking? The worst components for web development - too expensive, a lot of bugs, no support, poor backward compatibility, version 2011 only supports IE 7 and Firefox 3.6 - nothing newer :( I use it since 2004 and it was the worst decision. - Pavel Hodek
36
[+1] [2009-01-05 23:06:10] nab

DigitalRune Text Editor Control for .NET [1]

DigitalRune Text Editor is a .NET control for Windows Forms. It offers syntax-highlighting, source code formatting, code completion, and more.

The control is derived from the text editor in the SharpDevelop IDE.

The software is open-source

[1] http://www.digitalrune.com/Products/TextEditorControl/Overview/tabid/597/default.aspx

37
[+1] [2009-01-05 23:10:46] nab

DigitalRune Docking Windows [1]

DigitalRune Docking Windows is a .NET library that adds docking capabilities to Windows Forms. Features

  • Dockable windows similar to Microsoft® Visual Studio®
  • Docking via drag-and-drop (including visual docking hints)
  • Complex layouts
  • Tabbed documents
  • Auto-hide windows
  • Floating windows
  • Custom tooltips and context menus
  • Persistence of window layout to XML
  • Different rendering styles and color themes

The software is free for non-commercial use. If you want to use the software for commercial purposes, you can test the software for 30 days and then you must purchase a valid license.

[1] http://www.digitalrune.com/Products/DockingWindows/Overview/tabid/481/language/en-US/lang/en-US/default.aspx

38
[+1] [2010-02-27 02:55:37] Max Toro

Starksoft .NET / Mono FTPS Component [1]

Very good FTP library.

[1] http://www.starksoft.com/prod_ftp.html

39
[0] [2008-10-24 16:02:21] David.Chu.ca

It's really dynamic and depends on what you are doing and what is your area. One thing I find useful .Net libraries is to read other people blogs. That's always true. In the same way, you should write some blogs about your programming experience as well, for yourself or sharing with others.


40
[0] [2008-11-07 15:22:09] EricSchaefer

mscorlib.dll (It sure is useful, isn't it?)


This is not 3rd party - Max Toro
That depends on your view point. Where does the core lib live in mono? Is that file also called mscorlib.dll? You get my point... - EricSchaefer
41
[0] [2009-01-05 11:51:58] community_owned

SharpTemplate [1]

SharpTemplate.NET is a lightweight general-purpose template engine for .NET 2.0. It is very easy to use, yet very powerful. It supports a pluggable syntax, full C# compliant expression parser, caching and macros.

LazyParser [2]

LazyParser.NET is a light-weight late-bound expression parser compatible with C# 2.0 expression syntax. It allows you to incorporate user-supplied mathematical expressions or any C# expression in your application which can be dynamically evaluated at runtime, using late binding.

HTTP Compression Module [3]

A compression module for ASP.NET that works with WebResource.axd, JavaScript, and CSS

[1] http://www.codeplex.com/SharpTemplate
[2] http://www.codeplex.com/LazyParser
[3] http://www.codeproject.com/KB/aspnet/httpcompression.aspx?fid=413041&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26

42
[0] [2009-01-06 01:11:27] nab

FileDirectoryPath [1]

NDepend.Helpers.FilePathDirectory is the library used by the tool NDepend to handle common path operations. Benefits of the NDepend.Helpers.FilePathDirectory over the .NET Framework class System.IO.Path include:

  • Strongly typed File/Directory path.
  • Relative / absolute path conversion.
  • Path normalization API
  • Path validity check API
  • Path comparison API
  • Path browsing API.
  • Path rebasing API
  • List of path operations (TryGetCommonRootDirectory, GetListOfUniqueDirsAndUniqueFileNames, list equality…)
[1] http://www.codeplex.com/FileDirectoryPath

43
[0] [2009-07-18 00:38:01] Miguel

Maybe Super 2d/3d Graph Library [1]? It's a nice charting control

[1] http://www.softwaresigloxxi.com

44
[0] [2011-06-20 19:13:11] The_Black_Smurf

Chilkat [1] is a great toolbox especially for communication and encryption

[1] http://www.chilkatsoft.com/

45
[0] [2012-08-01 09:58:01] SkeetJon

NSubstitute; simpliest mocking framework I've used

http://nsubstitute.github.com/

"Another library? There are already some great mocking libraries around for .NET, so why create another? We found that for all their great features, none of the existing libraries had the succinct syntax we were craving — the code required to configure test doubles quickly obscured the intention behind our tests.

We've attempted to make the most frequently required operations obvious and easy to use, keeping less usual scenarios discoverable and accessible, and all the while maintaining as much natural language as possible.

Perfect for those new to testing, and for others who would just like to to get their tests written with less noise and fewer lambdas."


46
[-1] [2012-01-06 08:34:18] Shailesh

I think.....a useful .Net library is

dotNetTips.Utility 4.0 R1

Very interesting Open Source .Net Library with a lot of utility code ready to use ! You can download it from http://dotnettips.codeplex.com/releases/view/59050

Just try it.....


47