ProFast Computing

Software Development and Consulting Services

Specializing in Microsoft .NET and SQL Application Development

 

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.

This blog can be downloaded in Word DOCX format from here

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:

  1. Libraries did not charge royalties if they were included in your distributed application.

  2. Libraries had to encapsulate away the underlying complexity of the technology they wrapped (i.e. they had to be easy to use).

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

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

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