Projects

Collection of code samples, applications and articles I have written, most of which include source code.

IMPORTANT! All software is provided “AS IS”, without any express or implied warranty. In no event will the author(s) or their employer(s) be held liable for any damages arising from the use of this software. Please review the license included in each project download for more infomration.

BackLINQ: LINQ to Objects for .NET 2.0/3.0

BackLINQ allows applications written in C# 3.0, but which need to target .NET Framework 2.0 and/or 3.x, to reap the benefits and expressivity of LINQ to Objects and lambda expressions. It provides a complete and tested implementation of the LINQ Standard Query Operators.

Clipboard Tool

The Clipboard Tool is a console-based utility for copying and pasting text between the Windows clipboard and standard input and output.

DBMethods

DBMethods is a library that allows you to express parameterized SQL and stored procedures as managed code functions in your language of choice (Visual C#, Visual Basic and others) using Microsoft .NET Framework. Just as Platform Invoke (P/Invoke) allows you to call unmanaged code APIs in platform libraries (DLLs) by supplying a compatible method definition in managed code, DBMethods allows you to call stored procedures and parameterized SQL in a database by defining a compatible method definition in managed code.

DHCP Objects

DHCP Objects is an automation object-model library for the Microsoft DHCP server. It allows administrators and developers to write applications and scripts to administer a DHCP server remotely. It provides enhanced capabilities over dhcpcmd.exe (a tool included in the Microsoft Windows 2000 Support Tools), such as the ability to remove a DHCP lease.

Dynamically Bind Your Data Layer to Stored Procedures and SQL Commands Using .NET Metadata and Reflection (Updates)

C# and Visual Basic .NET samples and updated code to my article—Dynamically Bind Your Data Layer to Stored Procedures and SQL Commands Using .NET Metadata and Reflection—that appeared in the August 2002 issue of MSDN Magazine.

ELMAH: Error Logging Modules & Handlers

HTTP modules and handlers can be used in ASP.NET to provide a high degree of componentization for code that is orthogonal to a web application, enabling entire sets of functionalities to be developed, packaged and deployed as a single unit and independent of an application. ELMAH (Error Logging Modules and Handlers) illustrates this approach by demonstration of an application-wide error logging that is completely pluggable. It can be dynamically added to a running ASP.NET web application, or even all ASP.NET web applications on a machine, without any need for re-compilation or re-deployment.

FindPath

FindPath is a console-based utility that locates a file using the standard search path of the Windows operating system. Given just the name of the file, FindPath will search for the file in the standard search locations and, if found, display its full path.

Fizzler: CSS Selectors Level 3 Engine for .NET

Fizzler is an open source (LGPL) CSS Selectors Level 3 engine for Microsoft .NET Framework and Mono platforms.

Gurlte: TortoiseSVN issue tracker plug-in for Google Code

Gurtle is TortoiseSVN issue tracker plug-in (an IBugTraqProvider implementation) for projects hosted at Google Code.

Hilite - Console Syntax Hilighter

Hilite is a console-based syntax highlighter for a number of language files and scripts, including (but not limited to) batch files,JavaScript, VBScript, Visual Basic, C#, SQL, Python, HTML, XML, XHTML and XSLT. It makes quick reading of source code files a lot easier without leaving the Windows Command Prompt.

IE Cache Utility

IE Cache Utility is a small and simple console-based application written in C++ to list resources cached and cookies persisted by Internet Explorer.

Jayrock (JSON and JSON-RPC for ASP.NET)

Jayrock is a modest and open source implementation of JSON and JSON-RPC for the Microsoft .NET Framework and particularly ASP.NET. Jayrock allows client-side JavaScript to be able to call into server-side ASP.NET methods using JSON as the wire format. The methods can be called synchronously or asynchronously.

Jazmin: JavaScript Source-Compressor

Jazmin is a console-based utility and an MSBuild task that filters JavaScript by removing comments and unnecessary whitespace. It typically reduces the size of the script by half, resulting in faster downloads.

JSON Checker

JSON Checker is a console-based tool implemented as a Pushdown Automaton that very quickly determines if a JSON text is syntactically correct. It could be used to filter inputs to a system, or to verify that the outputs of a system are syntactically correct.

JSONPath in C#

An implementation of JSONPath in C# 1.0, permitting XPath-like queries for JSON data.

Managed Application Runtime Selector

CLRAS (Run with CLR) allows you to run a managed application with a runtime version of your choice. For example, you can take an application complied against CLR version 1.0 and it run against version 2.0 of the runtime (or vice versa) without making any changes to the application code or configuration files. Sometimes you need to enforce this and other times you just want to test whether a paritcular combination of the application and runtime versions are compatible.

Mixed Authentication Disposition ASP.NET Module (MADAM)

MADAM is an HTTP module for ASP.NET that allows a single web application to employ standard HTTP authentication schemes (like Basic and Digest) to be used in addition to the non-standard Forms authentication. MADAM also includes a Basic authentication HTTP module.

NCrontab (Crontab for .NET)

NCrontab is an open source library written in C# 3.0 that applications can use to parse and format crontab expression as well as calculate schedules represented by those expressions.

Simplify and Enhance Your Application's User Interface with Dynamic Dialog Boxes

“Dynamic Dialog Boxes contain controls determined at development time that may change at run time if the need for them arises. Atif Aziz examines a number of methods for implementing these dialogs for both Windows 3.1 and Win32®.”

System Message

System Message is a utilitiy for looking up the descriptive text that corresponds to a Windows system error number. System Message can be used either as a desktop application or as a simple out-of-process OLE Automation server.

Tidy JSON - JSON Pretty Printer/Colorer

Tidy JSON is a console-based syntax highlighter and pretty printer for JSON text (RFC 4627).

Visual Studio .NET Code Generator Shim

The VS Code Generator Shim is a generic custom tool for Visual Studio .NET 2002 and 2003 that enables code generators to be written easily and quickly in just about any .NET language and using familiar .NET Framework constructs. A standard custom tool designed for Visual Studio must use COM interoperability (when written in managed code) and register with the IDE to be fully operational, but the shim helps eliminates these requirements entirely. You only need to create a class and expose a single method to write a code generator now. What is more, the code generator can be completely idependent of Visual Studio releases.