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.
SharpZipLib [1] - This is a library for compressing files in zip format.
[1] http://sharpdevelop.net/OpenSource/SharpZipLib/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/Castle [1] - ActiveRecord [2], Windsor [3], Monorail [4], NVelocity [5] - every project I work on uses at least one.
[1] http://www.castleproject.org/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.
Elmah [1]
It is indispensible when tracking those errors that only happen in production.
[1] http://code.google.com/p/elmah/MS Enterprise Library [1] (app blocks for data, logging, validation and security)
[1] http://msdn.microsoft.com/en-us/library/cc467894.aspxC5 (as you mentioned) and the PowerCollections [1] library.
[1] http://powercollections.codeplex.com/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.netDXperience 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/The AjaxControlToolkit [1] Project On Codeplex and Log4Net [2]
[1] http://www.codeplex.com/AjaxControlToolkitI 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/structuremapUmbrella [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/umbrellaNot exactly 3rd party, but does the XNA framework count?
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.comI 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/nxlHere are a good ones not yet mentioned:
NLog [1]
It's lightweight and very fast (faster than log4net), very simple for configuration and very extensible.
[1] http://www.nlog-project.orgYou should mention if you are referring to "FREE" or "NOT FREE" 3rd party libraries.
I find this one very usefull. http://mathnet.opensourcedotnet.info/
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.
For the Desktop Apps I like to use commercial component suite by DevExpress [5]
[1] http://rabdullin.com/autofac/The free Krypton Toolkit from Component Factory [1] (part of Krypton Suite which is commercial)
[1] http://www.componentfactory.com/I use SubSonic alot for ORM, Migrations, etc. It's pretty handy! (http://subsonicproject.com/)
Also, it's free.
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.comDon't forget about Web Integration Testing:
For XMPP/Jabber » agsXMPP [1] or jabber-net [2]
[1] http://www.ag-software.de/index.php?page=agsxmpp-sdkas mentioned: log4net, umbrella, nunit
[1] http://www.springframework.net/DigitalRune Text Editor Control for .NET [1]
[1] http://www.digitalrune.com/Products/TextEditorControl/Overview/tabid/597/default.aspxDigitalRune 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
DigitalRune Docking Windows [1]
[1] http://www.digitalrune.com/Products/DockingWindows/Overview/tabid/481/language/en-US/lang/en-US/default.aspxDigitalRune 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.
Starksoft .NET / Mono FTPS Component [1]
Very good FTP library.
[1] http://www.starksoft.com/prod_ftp.htmlIt'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.
mscorlib.dll (It sure is useful, isn't it?)
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.
A compression module for ASP.NET that works with WebResource.axd, JavaScript, and CSS
[1] http://www.codeplex.com/SharpTemplate[1] http://www.codeplex.com/FileDirectoryPathNDepend.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…)
Maybe Super 2d/3d Graph Library [1]? It's a nice charting control
[1] http://www.softwaresigloxxi.comChilkat [1] is a great toolbox especially for communication and encryption
[1] http://www.chilkatsoft.com/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."
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.....