Toolkit for Independent .NET Developers
Introduction
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
ClipMate
http://www.thornsoft.com/
Clipboard Extender that simplifies saving, organizing and re-using
multiple entries in the Windows Clipboard.
COST: $34.95
7+ Taskbar Tweaker
http://rammichael.com/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.
COST: Free
Notepad++
https://notepad-plus-plus.org/
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.
COST: Free
XML Notepad
https://xmlnotepad.codeplex.com/
XML Notepad provides a simple intuitive User Interface for browsing and
editing XML documents.
COST: Free
Beyond Compare
http://www.scootersoftware.com/
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
http://astrogrep.sourceforge.net/
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.
COST: Free
MagicDisc
http://www.magiciso.com/tutorials/miso-magicdisc-overview.htm
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.
COST: Free
HxD – Hexeditor
https://mh-nexus.de/en/hxd/
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.
COST: Free
PKZip for Windows
https://www.pkware.com/pkzip/
PKWare developed the zip file standard and still provides a top notch
compression product for a reasonable price.
COST: $29
Tools for Building, Managing and Distributing Apps
TortoiseSVN
https://tortoisesvn.net/
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.
COST: Free
VisualSVN
https://www.visualsvn.com/visualsvn/
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
http://www.nunit.org/
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.
COST: Free
PAD Manager
http://padmanager.org/
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.
COST: Free
ILMerge
https://www.microsoft.com/en-us/download/details.aspx?id=17630
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.
COST: Free
ILSpy
http://ilspy.net/
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.
COST: Free
LINQPad
https://www.linqpad.net/
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.
COST: Free
Pay $45, $75 or $95 for Pro, Developer & Premium Editions
Expression Web 4
https://www.microsoft.com/en-us/download/details.aspx?id=36179
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).
COST: Free
Visual Studio Professional
https://www.microsoft.com/en-us/download/details.aspx?id=36179
The
gold standard in Windows development IDEs.
COST: Standalone:
$499
With MSDN: $1,199
Visual Studio Enterprise
https://www.visualstudio.com/en-us/products/visual-studio-enterprise-vs.aspx
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
https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx
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:
https://www.visualstudio.com/en-us/products/compare-visual-studio-2015-products-vs.aspx
COST: Free
InstallShield Limited Edition
https://msdn.microsoft.com/en-us/library/dn531020.aspx
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.
COST: Free
InstallShield Express
http://www.flexerasoftware.com/producer/products/software-installation/installshield-software-installer/
A quick and easy tool for creating Windows installer (MSI)
installations.
Pricey but has enough features to generate professional installations
for your product.
COST:
$699
VB.NET to C# Converter
http://vbconversions.com/
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.
COST: $199
Quantum Whale
http://www.qwhale.net/
Allows you to integrate syntax text editing or .NET scripting into your
application.
COST:
Editor.Net:
$399
Scripter.Net:
$199
SoftActivate
http://www.softactivate.com/
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
https://sandcastle.codeplex.com/
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.
COST:
Free
SnagIt
https://sandcastle.codeplex.com/
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.
COST:
$49.95
RoboHelp
http://www.adobe.com/products/robohelp.html
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.
COST:
$999
Libraries for .NET Applications
Compare .NET Objects
https://comparenetobjects.codeplex.com/
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.
COST:
Free
.NET Encryption Library
http://kellermansoftware.com/products/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.
COST:
$99.95
Open PGP Library for .NET
https://www.didisoft.com/net-openpgp/
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.
COST:
$399
DotNetZip Library
http://dotnetzip.codeplex.com/
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.
COST:
Free
C1Zip
C1TrueDBGrid
http://www.componentone.com/Studio/
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
http://www.activequerybuilder.com/product_net.html
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
http://www.querytool.com/
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
Extended:
$360
SQL Server CE 3.5 SP2
http://www.microsoft.com/en-us/download/details.aspx?id=5783
Easy to install, use and deploy local database that you can ship
with your application.
COST: Free
SQL Server CE 4.0
http://www.microsoft.com/en-us/download/details.aspx?id=17876
An updated version of the SQL CE desktop database.
COST:
Free
Access Database Engine
(ACE OLEDB 12.0)
http://www.microsoft.com/en-us/download/details.aspx?id=13255
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.
COST:
Free
SQL Server Compact Toolbox
https://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1
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.
COST:
Free
CompactView
https://sourceforge.net/p/compactview/home/Home/
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.
COST:
Free
Tools and Libraries for Networking Applications
.NET FTP Library
http://kellermansoftware.com/products/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..
COST:
$99.95
.NET SFTP Library
http://kellermansoftware.com/products/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.
COST: $199.95
CoreFTP Server
http://www.coreftp.com/server/
http://www.coreftp.com/order/server_versions.html
Low cost FTP & SFTP server that you can use to test your FTP and
SFTP code.
COST:
Basic Edition: $49.95
SMTP4DEV
https://smtp4dev.codeplex.com/
Utility that allows you to test SMTP email code you have included in
your application.
COST:
Free
Libraries for Document Processing Applications
Office Primary Interop 2007
http://go.microsoft.com/fwlink/?LinkId=72637
Office Primary Interop 2010
http://go.microsoft.com/fwlink/?LinkId=166026
Visual Studio Tools for Office
Runtime Redistributable
https://msdn.microsoft.com/en-us/library/ms178739(v=vs.100).aspx
Programming interfaces for accessing Office objects (e.g. Word,
Excel) can be retrieved from above links. 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.
COST:
Free
C1Excel
http://www.componentone.com/Studio/
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
GEMBOX Document
http://www.gemboxsoftware.com/document/overview
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.
COST:
$580
RTF Document Constructor
http://www.codeproject.com/Articles/98062/RTF-Document-Constructor-Library
Library that allows the building of RTF documents without requiring
Microsoft Word to be installed.
COST:
Free
Sharp2Word Library
http://code.google.com/p/sharp2word
Library of routines that allows the building of Word documents in
DOC format (Word 2003 format) without requiring Microsoft Word to be
installed.
COST:
Free
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:
https://pfcodelibrary.codeplex.com/
https://pfappslibrary.codeplex.com/
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.