tags:

views:

3656

answers:

45

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?

is it db4o?

is it something off CodePlex?

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.

+9  A: 

C5 (as you mentioned) and the PowerCollections library.

Mitch Wheat
I really liked PowerCollections. It was an awesome bridge to until we got our hands on .NET 3.5
Gord
+14  A: 

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

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

James Curran
Html Agility Pack has saved me many many hours of work...
Superdumbell
+22  A: 

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

mnour
+32  A: 

Log4Net

Jon Tackabury
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
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
+6  A: 

xUnit

whoisjake
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
+5  A: 

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

TraumaPony
+7  A: 

The AjaxControlToolkit Project On Codeplex and Log4Net

Eoin Campbell
+10  A: 

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

StingyJack
+27  A: 

NHibernate

Cristian Libardo
+3  A: 

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.

Chris Marasti-Georg
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
+13  A: 

Castle - ActiveRecord, Windsor, Monorail, NVelocity - every project I work on uses at least one.

Mike
needs 100% more linky
Neil N
+12  A: 

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.

Jon Simpson
+5  A: 

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/

João Augusto
So is your tool FREE or NOT FREE??
Brian Schmitt
João Augusto
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
+5  A: 

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 to see how I am using them together.

Corey Gaudin
+11  A: 

Moq (a mocking framework).

Justice
Why do you like this better than other frameworks, like Rhino mocks?
Chris Marasti-Georg
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.
Justice
+5  A: 

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

Justice
+4  A: 

No love for Umbrella?

Domenic
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
+2  A: 

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

Also, it's free.

WillCodeForCoffee
+8  A: 

WatiN (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!

Adam Neal
+1  A: 

It's commercial software (you have to pay for it), but Aspose 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.

Dave_H
+7  A: 

I like StructureMap for dependency injection and inversion of control. Combine that with MbUnit for unit testing, log4net for logging and SubSonic or NHibernate 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.

Rob Prouse
+10  A: 

Elmah

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

Chris Lively
+14  A: 

Rhino Mocks

Cristian Libardo
A: 

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.

David.Chu.ca
+2  A: 

iBATIS.NET for data mapping (free).

cfeduke
+15  A: 

NUnit

craigb
Hell yes. Not just useful, but indispensable. Wouldn't write any serious code without it.
Joe White
+7  A: 

DXperience by Developer Express - 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.

Alan
+4  A: 

I really like CodeBetter.Extensions, 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.

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?

benpage
+6  A: 

Umbrella

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...

A: 

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

EricSchaefer
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
+2  A: 

Depending on your definition of "library": Mono

EricSchaefer
+1  A: 

as mentioned: log4net, umbrella, nunit

+2  A: 

Don't forget about Web Integration Testing:

  • WebAii
  • WatiN
  • Selenuim
Samnang
+2  A: 

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

Rinat Abdullin
A: 

SharpTemplate

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

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

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

+1  A: 

DigitalRune Text Editor Control for .NET

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  A: 

DigitalRune Docking Windows

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.

A: 

FileDirectoryPath

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  A: 

For XMPP/Jabber » agsXMPP or jabber-net

+5  A: 

Here are a good ones not yet mentioned:

CMS
+2  A: 

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

kpax
+4  A: 

NLog

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

dario-g
A: 

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

Miguel
A: 

GemBox.Spreadsheet. Excellent library for reading and writing Excel files in a variety of formats (XLS, XLSX, ODS, CSV, HTML).

+1  A: 

Starksoft .NET / Mono FTPS Component

Very good FTP library.

Max Toro