The CleanCode site includes a myriad of open-source software libraries and applications in PowerShell, C#, Java, T-SQL, Perl, and JavaScript (see the Products
menu above or the tables below).
Lately my focus has been on PowerShell and .NET, both in developing code and in writing articles (see my publications page).
The diagram at left (click to enlarge) gives you a graphical map of my applications and libraries, separated by language. Several concept bubbles span multiple languages indicating I have touched upon those technologies with either an implementation of the same engine (e.g. Diagnostics in Perl and JavaScript have the identical engine) or with a different but related concept (e.g. C# also has Diagnostics, but it is quite different).
The source code for virtually everything here is available on the download page.
As far as documentation, I have endeavored to be thorough. javadoc and ndoc have been immensely helpful in generating a complete API for Java and C#, respectively, building not just HTML files for each class, but a documentation tree for all modules. My CleanCode utility Pod2HtmlTree included below performs similarly for Perl documentation (since the standard pod2html operates on single files only); DocTreeGenerator creates a PowerShell documentation set, and my general XML tool XmlTransform was configured to generate my SQL documentation set. Regrettably I have not yet had a need to generate more than an overview page for my JavaScript tools.
I have grouped what I consider the top-level components of the CleanCode libraries into the three tables below, grouped by .NET Controls, Applications, and Engines.
Notation: All of the controls listed have API references. The following symbols are used in the tables below: a formally published article on Simple-Talk.com () or DevX.com () -- each typically includes further code resources to download, separate from the libraries available for download here; an internally published article on this website () -- some include links to live sandboxes for experimentation; a C#/.NET API reference (); a PowerShell/.NET API reference (); a T-SQL API reference (); a Perl API reference (); and a Java API reference ().
The newest addition to my collection of open-source material is a useful set of user controls for .NET Windows Forms applications. The major ones are shown below. (Others may be found at the CleanCode.GeneralComponents.Controls) and CleanCode.GeneralComponents.Dialogs APIs.) I also have written two detailed articles on user controls in general: .NET Building Blocks: Custom User Control Fundamentals and .NET Building Blocks: Custom User Controls in Practice.
Image | References | Description |
---|---|---|
FileMask: Provides a panel for specifying one or more file masks to filter a directory by file name patterns using standard Windows wildcards. The control displays the selected set of files as well as a count of files; these update instantly as masks are entered or updated. Beyond being a completely generic filter-by-mask control, the FileMask control may be customized (using LINQ lambda expressions) to add an additional arbitrary filtering capability. You could require files to be later than a certain date, have a particular attribute, contain certain data, or anything else you might need. | ||
ConnectionStringManager:
A plug-and-play control that allows defining and testing
connection strings for a SqlServer database, an Oracle database, or any data source that has ODBC connectivity.
This provides a complete solution for interactive handling of database credentials: usernames and passwords, server choices, and connection types.
MultiConnectionStringManager: Manages a set of database connection strings and associated details, providing a mechanism for easy loading and saving of the set to persistent storage (configuration file). |
||
ChameleonRichTextBox: This second generation syntax-highlighting control includes much faster performance, much easier customization (even at runtime), and keyword completion (a simple Intellisense). Supports SQL Server, Oracle, MySql, and any ODBC connection out-of-the-box, and may be easily customized with an XML context file--no subclassing required. The DevX article at left discusses its predecessor (SyntaxHilightTextBox) but it is still partially relevant to this new control. | ||
ExtendedDataGridView: Extends a DataGridView with filtering, searching, sizing, masking, formatting, and export capabilities. See also my DevX articles on enhancing any DataGridView: Exploring Secrets of the .NET DataGridView and Dynamic Data Manipulation and Exploring Secrets of BindingSource Filters. | ||
SqlEditor: A complete SQL-editor-in-a-box, combining a ChameleonRichTextBox with an ExtendedDataGridView. This control is designed to synchronize with a partner instance when you use two of them together in a WinForm application. | ||
QueryPicker: Builds meta-queries from templates, dynamically generating a set of input fields for the place holders within a meta-query template, then letting the user enter values in any or all fields, and finally returning a finished meta-query. Meta-queries included with the control (for SQL Server, Oracle, and MySql): displaying the version of a database, listing columns for a given table, finding tables containing a given column, listing the size of all non-empty tables, and more. See also my three-part Simple-Talk series on the QueryPicker: A Unified Approach to Multi-DataBase Query Templates, How to build a Query Template Explorer, and Using Three Flavors of LINQ To Populate a TreeView. | ||
ProgressBarMessager: Enhances a standard .NET ProgressBar with progress messages that appear sequentially beneath the bar, to provide useful feedback during a lengthy operation. As you add progress steps the message panel expands vertically to contain a selectable number of messages. Messages beyond that count cause the panel to scroll messages. You can set each step to optionally show the duration of the step. |
This section contains the major engines--building blocks--to plug into your code. (Others may be found at the CleanCode C# API as well as Java, SQL, JavaScript, and Perl.)
This section contains applications that may be run "out of the box", in various languages as noted in the table.