| Site Contents
Intro & News E-mail Contact RSS 2.0 Feed Development Developer Books Developer Links Developer Tools Microsoft Links Check .NET Version Comment Reflower NDoc 2.0 Alpha Region Tools Struct Performance WPF Performance Weird .NET Issues Miscellaneous Structured Documents FrameMaker & DITA Windows & High DPI Other Links Other Software Subscriptions Projects Tektosyne Class Diagrammer Hexkit Star Chess Civilization IV Civilization V
| | | Developer Tools
This page contains links to free and commercial development tools that I found useful, excluding those which are hosted by Microsoft. Please see Microsoft Links for the latter, Developer Books, for book reviews and Developer Links for general programming information.
There are three sections on this page:
-
Comment Reflower by Ian Nowland reflows block comments in multiple programming languages, including C# XML comments, to match a configurable line width and configurable regular expressions. An essential utility for painless management of XML comments!
Sadly, this tool has not been updated since January 2006 but I’ve cobbled together a version for Visual Studio 2008 and 2010.
-
DPack by USysWare offers several helpful features, including browsers for solution files, types and members, and the entire BCL; solution backup and statistics; and various navigational aids.
-
I C# Code offers several tools and libraries for .NET developers. #develop is an IDE for C# and VB.NET, #cvslib is a CVS client library written in C#, #usblib provides low-level access to USB devices, and #ziplib implements the zip, gzip, tar, and bzip2 algorithms in C#.
All programs are GPL’ed freeware but the authors have made a special exception so that programs using the libraries are not bound to the GPL as a whole.
-
ILSpy by the #develop team is a browser and decompiler for arbitrary .NET assemblies, including the Framework libraries. – The standard tool for this purpose used to be Reflector by Lutz Roeder, but after its acquisition by Red Gate all free licenses were forcibly disabled, ensuring that no sane developer would ever buy the commercial version.
-
Mole for Visual Studio 2005 & 2008 is a powerful general-purpose debug visualizer for all sorts of complex data structures, including the visual and logical trees of WPF applications. The current edition even allows runtime editing of property values. – Mole for Visual Studio 2010 is now a commercial product, but a similar tool, the WPF Visualizer, is already built into VS2010.
-
NAnt is a .NET build tool based on Ant for Java. NAnt is similar to the traditional make utility but processes XML files rather than line-oriented makefiles, and provides its own set of file processing commands instead of invoking shell commands. Since the release of MSBuild with .NET 2.0 this tool is essentially obsolete, though.
-
NDoc was a popular documentation generator for .NET programs. Using the
/doc option, the C# compiler can extract XML comments embedded in C# source code and place them in separate XML files. NDoc reads these XML files and turns them into a variety of output formats, including compiled HTML Help, JavaDoc, and LaTeX.
The NDoc project has been discontinued, and even the last alpha version is hopelessly outdated by now. Use Microsoft Sandcastle instead (see Microsoft Links).
-
NUnit is a unit-testing framework for all .NET languages. NUnit provides several attributes for your test methods so that they can be executed programmatically by the NUnit frontend, complete with result checking and execution timing. – Manfred Lange’s csUnit is a similar project that was independently created.
-
PDFsharp by empira Software defines a document object model with multiple output options, most importantly Adobe PDF which isn’t natively supported by the .NET Framework. You can either create a document from scratch using PDFsharp types, or convert an existing XPS document into a PDFsharp document for PDF output. Since the latter option is virtually undocumented and not part of the official precompiled distribution, you may want to check out my Class Diagrammer application for a demonstration.
-
7-Zip by Igor Pavlov is an open-source file packer that offers an extremely compact native compression scheme, but can also produce standard ZIP/GZip/BZip2 archives and unpack most other formats. The distribution comprises a command-line executable and a GUI with Explorer integration, and the separate LZMA SDK (C/C++/C#/Java) allows you to use 7-Zip’s native format in your own applications.
-
Boost.org is a website dedicated to providing “free peer-reviewed portable C++ source libraries.” Their repository covers many common programming tasks, ranging from STL compliant containers and function objects to graph algorithms to regular expressions.
-
CppCheck is a “lint”-like analysis tool for C/C++ source code, with a precompiled GUI executable for Windows. Much less thorough than PC-lint, but of course also much less expensive – and certainly better than nothing.
-
GnuWin is an open-source project dedicated to bringing the well-known GNU utilities to Windows. Unlike similar efforts, these high-quality ports don’t require an emulated Unix environment, don’t trip over backslashes in directory paths, and come with nicely formatted PDF documentation instead of raw troff source code. Unless you need cross-system development capabilities, the GnuWin programs are a viable alternative to the powerful but very expensive MKS Toolkit.
-
Info-ZIP is an open-source implementation of the popular ZIP packing algorithm, comprising a packer, unpacker, and graphical front-end. The programs are based on the free zlib compression library. Sadly, there are no precompiled executables for the current release, so you should use 7-Zip if you just need a file packer.
-
Inno Setup by Jordan Russell creates self-installing Windows executables to deploy your software packages, similar to InstallShield except that Inno Setup is much smaller and free! Common installation actions can be defined by simple variables, and a Pascal scripting facility allows the execution of more complex operations.
If you want to use Inno Setup to install a .NET application, take a look at Check .NET Version with Inno Setup.
-
The Netlib Repository is a vast collection of mathematical software, papers, and databases, made accessible by convenient browse and search features. This is the place to go for standard benchmarks, matrix algorithms, numerical test data, and the like.
-
Perforce is a commercial multi-platform source code control system based on RCS. This fairly expensive software is designed to handle large teams, but Perforce Systems offers an otherwise unrestricted two-user version as a free download that is more than sufficient for managing projects on a single machine. The setup can be a bit cumbersome but the actual operation is very convenient, thanks to the best GUI tools I’ve seen for any SCCS.
You should also consider buying Practical Perforce (O’Reilly Media 2006, ISBN 0-596-10185-6) by Laura Wingerd, VP of Technology at Perforce Systems. This well-written book offers detailed background information and lots of practical advice on common Perforce tasks, from basic file management to branching and integration.
-
Silicon Graphics now maintains the C++ Standard Template Library created by Hewlett-Packard. You can access on-line documentation and download the STL source code, but there’s no guarantee it will actually compile on your system. Check out the STLport website for ready-made ports of this library to a large variety of systems, including even a version with a run-time debug mode.
Note that the STL is part of the C++ Standard Library which means you’ll get an up-to-date STL implementation specifically adapted to MS Visual C++ if you either buy a copy of Dinkumware’s C++ Library for VC++ 5.0/6.0 (see Commercial Software) or update to Visual C++ 7.0 or later (which comes with current Dinkumware libraries).
-
WinMerge is a graphical differencing and merging tool for individual text files and entire directories. While not quite as powerful as ExamDiff Pro, it does surpass the feature set of the free ExamDiff version.
This page was last updated on 25 June 2011.
Current version available at http://www.kynosarges.org/ |