During the past three plus years I have been engaged in building several Windows .NET applications for the shareware/freeware market. This activity has been done as an independent developer.
Applications were built and distributed for the following areas: database, encryption, networking and file management
One of the key challenges in preparing for this project was insuring that I had a toolkit that enabled me to quickly and effectively build the various applications that were planned. To this end, I researched the web to find the best and most cost effective tools for use in a Windows .NET environment.
This article summarizes the tools I wound up using. My hope is that this will help jump start the work of independent .NET developers that are just starting and facing many of the issues I had to solve.
Tools for Managing Daily Development Activities
Clipboard Extender that simplifies saving, organizing and re-using multiple entries in the Windows Clipboard.
7+ Taskbar Tweaker
7+ Taskbar Tweaker allows you to rearrange and group the items on your taskbar.
The tool is designed for Windows 7, Windows 8, Windows 8.1, and Windows 10.
Notepad++ is a free source code editor and Notepad replacement that supports several languages It can be very useful when opening XML formatted data files.
XML Notepad provides a simple intuitive User Interface for browsing and editing XML documents.
Beyond Compare allows you to quickly and easily compare your files and folders. Use this for comparisons of files outside of your normal source code environment.
COST: $30 ((Standard Ed.)
$60 (Pro Ed.)
AstroGrep is a Windows grep utility. AstroGrep’s visual interface searches within multiple files for keywords. AstroGrep supports regular expressions and versatile printing options. It stores the most recently used paths and has a "context" feature which is nice for looking at source code.
MagicDisc is a helpful utility designed for creating and managing virtual CD drives and CD/DVD discs. Use this to mount ISO files as virtual drives.
HxD – Hexeditor
HxD is an intuitive and fast hex editor which, in addition to raw disk editing and the modifying of main memory (RAM), handles files of any size.
PKZip for Windows
PKWare developed the zip file standard and still provides a top notch compression product for a reasonable price.
Tools for Building, Managing and Distributing .NET Apps
TortoiseSVN is an Apache™ Subversion (SVN) source control client that is implemented as a Windows shell extension. Since it doesn't require the Subversion command line client to run, it has an intuitive and easy to use interface, It is free to use, even in a commercial environment.
Visual Studio plug-in that tightly integrates TortoiseSVN source control into the Visual Studio environment. This is an invaluable addition to the independent developer’s toolkit.
The free Community License can only be used on a computer that is not a member of an Active Directory domain.
COST: Community License: Free
Professional License: $99
NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 3.0, has been completely rewritten with many new features and support for a wide range of .NET platforms.
Tremendously useful way of automating all your unit tests. Visual interface provides at-a-glance results that tell you if your latest changes have broken anything.
PADManager is an advanced PAD (Portable Application Description) editing and managing application. Portable Application Description or PAD is a standard developed by the Association of Shareware Professionals (ASP). PAD files are a standard way of identifying your application to shareware and freeware sites.
ILMerge is a utility that can be used to merge multiple .NET assemblies into a single assembly. Using this tool simplifies the structure of the installation folder by rolling all DLLs into one executable. This can give your distributed application a much more professional appearance that will be similar to the appearance large commercial software companies achieve in their app distributions.
CAUTION: Some applications may have a complex structure that defeats ILMerge and you may have retreat to distributing your DLLs as separate files.
ILSpy is the open-source .NET assembly browser and decompiler. Development started after Red Gate announced that the free version of .NET Reflector would cease to exist by end of February 2011. ILSpy requires the .NET Framework 4.0.
LINQPad is not just for LINQ queries, but any C#/F#/VB expression, statement block or program. This tool eliminates need for Visual Studio Console projects that only exist to test a code snippet.
Pay $45, $75 or $95 for Pro, Developer & Premium Editions
Expression Web 4
Expression Web is a full-featured professional tool for designing, developing, and publishing feature-rich websites that conform to web standards. The intuitive interface allows you to switch between a visual design mode and a code view mode (HTML, scripting).
Visual Studio Professional
The gold standard in Windows development IDEs.
COST: Standalone: $499
With MSDN: $1,199
Visual Studio Enterprise
Visual Studio Enterprise has almost all the bells and whistles you could ask for. Price, however, is extremely steep.
COST: With MSDN: $5,999
Visual Studio Community
If you are an individual developer, this edition may work for you.
If you are working for an enterprise, there will be license restrictions that make this a bad choice.
CAUTION: Some Visual Studio plug-ins do not work with the community edition.
See following link for a comparison of Visual Studio editions:
InstallShield Limited Edition
InstallShield Limited Edition allows you to create a setup file and distribute it to users so that they can install a desktop application or component without being connected to a network. InstallShield Limited Edition is free for users Visual Studio Professional and Enterprise editions. It replaces Windows Installer technology, which Visual Studio no longer supports.
A quick and easy tool for creating Windows installer (MSI) installations.
Pricey but has enough features to generate professional installations for your product.
VB.NET to C# Converter
Can be used to convert legacy VB.NET code to C# quickly and easily using a visual UI. You can convert code snippets or entire projects with this tool.
Allows you to integrate syntax text editing or .NET scripting into your application.
COST: Editor.Net: $399
The SoftActivate Licensing SDK is a secure software licensing and copy protection framework for safely distributing Windows applications.
Use this tool to generate license keys. Use the SDK to incorporate the license checks into your application.
COST: Standard Ed.: $49
Pro Ed.: $99
Enterprise Ed. For .NET: $299
Tools for Documenting Applications
Sandcastle produces accurate, MSDN style, comprehensive documentation by reflecting over source assemblies and optionally integrating XML Documentation Comments. Supports Generics and .NET.
Very useful way of packaging your XML comments into a professional Help file.
Captures images on your screen. Can be used to edit the captured images.
Useful for capturing images you intend to include in your application documentation.
Builds Help files in a variety of formats. It is very pricey but the intuitive interface and range of features helps simplify and speed the help building process.
Product has been around for quite awhile and has consistently received top grades.
Libraries for .NET Applications
Compare .NET Objects
Performs a deep compare of any two .NET objects using reflection. Shows the differences between the two objects. You can use this library to enable your code to quickly determine if the state of a particular object has changed. This is accomplished by comparing the current object contents to a saved version of the object from earlier processing.
.NET Encryption Library
The .NET Encryption Library supports the strongest encryption algorithms and key sizes currently available. It also has public and private key encryption with RSA. It supports all .NET project types including ASP.NET MVC, WPF, Webforms, Winforms, WCF, Windows Services, and Web Services. It can be used with any .NET language including VB.NET and C#.
This library is an alternative to .NET’s built-in encryption functionality found in the System.Security.Cryptography namespace.
Open PGP Library for .NET
Library of routines that allows you to incorporate PGP encryption in your application.
This library supplies encryption technology not found in the .NET encryption libraries.
DotNetZip is a FAST, FREE class library and toolset for manipulating zip files. It works with VB, C# or any .NET language to easily create, extract, or update zip files.
C1Zip provides full set of routines for reading and writing zip archives.
C1TrueDBGrid is a venerable grid component that has been around for ages. It has several features not built-in by default to the Microsoft DataGridView control.
COST: Part of Component One Studio: $1,495
Tools and Components for Database Applications
Active Query Builder
A full-featured API to parse, analyze, modify or create SQL queries from scratch. It is also a full-featured set of tools to manage metadata, work with SQL queries, and assist in retrieval of data from the database.
There are editions for WinForms, WPF and ASP.NET. AQB uses a Microsoft Access style user-friendly interface with drag & drop support for its visual interface. It supports all the major database platforms. ODBC and OLEDB support plus a generic Universal provider further extends the reach of this tool. AQB allows users to preview results for their query definitions in separate data grid.
Users of your application can define their queries using the visual interface and the SQL text is passed back to your application for processing.
The Core Edition does not contain a visual interface but allows you to build and parse SQL statements from within your application.
Overall, this was a singularly useful and powerful library/user interface for my database applications. While somewhat expensive, there appeared to be nothing else at a lower price range and only a few alternatives at much higher prices.
COST: Core (Non-Visual) $299
Professional (All-in-one / .NET) $799
Professional (Winforms/WPF) $599
Standard (Winforms/WPF) $399
Standard (ASP.NET) $499
Advanced Query Tool
Advanced Query Tool is a fast and powerful multi-database query tool. AQT uses a native ODBC interface which runs reliably and efficiently against databases of all sizes.
AQT ships with an extensive query environment and a wide range of DBA and developer tools. AQT’s single interface greatly simplifies your access to multiple different database platforms. The tool supports 25 different database types, including those from all the major database vendors.
COST: Standard: $180
SQL Server CE 3.5 SP2
Easy to install, use and deploy local database that you can ship with your application.
SQL Server CE 4.0
An updated version of the SQL CE desktop database.
Access Database Engine
(ACE OLEDB 12.0)
Allows you read and write Access databases without requiring the MS Access application to be installed.
There is no visual UI for this library. You use it from your code.
SQL Server Compact Toolbox
SQL Server Compact/SQLite Toolbox is very useful add-in for Visual Studio that adds several features to help you edit and view embedded databases. Included features include scripting of tables, data import from SQL Server and CSV files and viewing of database object properties in the Visual Studio properties window.
CompactView is a database viewer for Microsoft SQL Server Compact Edition (SQLCE) database files (*.sdf). CompactView can open database files of versions 3.1, 3.5 and 4.0. This utility allows you to open an SDF file with a double-click in the Windows Explorer. The tool will list the CE data tables for easy selection and display the contents of the tables on a grid.
Tools and Libraries for Networking Applications
.NET FTP Library
Set of routines that allow you to incorporate FTP file transfer routines in your application.
This library is an alternative to using the .NET FTP classes found in the System.Net namespace..
.NET SFTP Library
Library that allows you to include SFTP file transfer processing in your application.
This library provides capabilities not found in the Microsoft System.Net namespace.
Low cost FTP & SFTP server that you can use to test your FTP and SFTP code.
COST: Basic Edition: $49.95
Utility that allows you to test SMTP email code you have included in your application.
Libraries for Document Processing Applications
Office Primary Interop 2007
Office Primary Interop 2010
Visual Studio Tools for Office Runtime Redistributable
Programming interfaces for accessing Office objects (e.g. Word, Excel) can be retrieved from links at left.
They can also be installed as part of a Microsoft Office installation. You can use the Word Interop library to create DOCX, DOC, PDF and RTF documents.
DOWNSIDE: Office applications such as Word and Excel have to be pre-installed on the target machine for these libraries to be useful.
Library of routines that enable you to create and modify Excel documents from your code without requiring Microsoft Excel to be installed. Supports XLSX, XLS and CSV formatted documents.
COST: Part of Component One Studio: $1,495
Library that enables the building of Word DOCX formatted documents (Word 2007 and later) without requiring Microsoft Word to be installed. You can also use this library to create PDF documents.
RTF Document Constructor
Library that allows the building of RTF documents without requiring Microsoft Word to be installed.
Library of routines that allows the building of Word documents in DOC format (Word 2003 format) without requiring Microsoft Word to be installed.
Points of Interest
The above mentioned tools were used to build a set of six database, encryption and file management applications. They were also used to build a set of networking libraries.
The code was built on top of the .NET 4.0 Framework (Full) using Visual Studio 2010 Ultimate Edition.
Primary selection criteria for the above tools included:
- Libraries did not charge royalties if they were included in your distributed application.
- Libraries had to encapsulate away the underlying complexity of the technology they wrapped (i.e. they had to be easy to use).
- The tools had to be cost effective, free if possible but relatively low priced if purchased.
- Exceptions included
RoboHelp for application help files.
InstallShield Express for application setups.
Active Query Builder for dynamic SQL building and parsing.
Advanced Query Tool and querying multiple database platforms during testing.
- Where possible, the tools and libraries selected should not require the clients to already have specific products installed.
- The Office Interop libraries were not used in the applications that I distributed because they required Word, Excel or Access to already be installed on the client.
- The Office Interop libraries were, however, used in an Open Source version of the application code in order to remove dependencies on third party products that needed to be purchased in order to be included in source code development.
- A similar exception was made for zip processing code. The C1Zip component from ComponentOne was used in the distributed applications while the DotNetZip library was used in the Open Sourced application code.
- Database libraries for specific vendor platforms like SQL Server, Oracle, DB2, etc. required that the client machine have the database specific software pre-installed before the custom database libraries included in the data distributions could be used. Pre-installed software could be .NET Providers, OLEDB providers or ODBC drivers.
- Building code using the .NET libraries, when available for particular task, was preferred over third party libraries.
- Examples of where .NET built-in libraries were used instead of third-party products include
- .NET encryption classes for AES, Triple-DES and DES encryption instead of third party product.
.NET WinForms DataGridView control instead of the C1TrueDBGrid control.
- Examples of where .NET did not provide built-in capabilities include
- PGP Encryption
SFTP File Transfers
Office document creation and editing
Robust ZIP functionality
Open sourced versions of the applications that were developed using the tools described in this article can be found in CodePlex at the following links:
NOTE: Prices mentioned in this article were retrieved from vendor websites in late June 2016 and early July 2016. Check vendor websites for latest pricing and version information when you are looking to purchase a product.
Initial release of this article was on July 4, 2016.
Two additions made to the Tools and Components for Database Applications section of the article on July 6, 2016.
Fixed link to SnagIt site in Tools for Documenting Applications on July 7, 2016.