CleanCode logo
sitemap
SEARCH:
NAVIGATION: first page in sectionup one levelnext pagefinal page in section

Publications and Patents

Recent Publications

Database

Build a Generic Histogram Generator for SQL Server, http://www.devx.com, July 3, 2008
Histograms help people analyze large amounts of data, whether you display them as tables or as charts. This article shows you how to do both.
Add Custom XML Documentation Capability To Your SQL Code, http://www.devx.com, January 23, 2008
By adding XML-based documentation capability to your SQL code, you can automatically extract tagged comments and format them into truly useful documentation. Unlike other SQL documentation generators that document the schema and structure of a database, this article discusses a tool to generate a true API for the procedures and functions in your database.
Bring Array Mapping Capabilities to SQL, http://www.devx.com, November 1, 2007
Simplify your SQL tasks by giving your queries and stored procedures the ability to iterate over arrays of table names or values.

Visualization, Documentation, and XML

Introducing CAM, http://www.devx.com, March 5, 2009
Part 1 of my series Taking XML Validation to the Next Level, this discusses a more powerful and flexible alternative to XML Schema.
XSD Schema vs. CAM, http://www.devx.com, March 13, 2009
Part 2 of my series Taking XML Validation to the Next Level.
Explore CAM's Expressive Power, http://www.devx.com, March 16, 2009
Part 3 of my series Taking XML Validation to the Next Level.
XmlTransform:A General-Purpose XSLT Pre-Processor, http://www.devx.com, January 23, 2008
Use this XmlTransform application to generate sets of HTML pages, SQL documentation, or apply it to your own particular needs. XmlTransform is a general-purpose XML transformer and validator that operates on an arbitrarily deep directory tree containing files you want to transform, optionally generating multi-level indices and adding navigational linkages.
Visualizing Data: Self-Documenting Ant files, http://www.devx.com, October 10, 2007
How one visualizes a concept can greatly impact how well one understands it or, perhaps more importantly, how well one may communicate the concept to others. In this case study I focus on Ant build files and show how different perspectives on the same code allow you to absorb more information faster, reduce errors, and provide intuitive methods to help you comprehend, modify, and test build targets.

User Controls for .NET Windows Forms

A Unified Approach to Multi-DataBase Query Templates, http://www.simple-talk.com, September 30, 2009
No matter how good your SQL skills are, walking into a new situation with unfamiliar databases is only going to make that task trickier; and most large companies - and many small ones, too - will have a heterogeneous database environment, unless you are very fortunate. Mixtures of SQL Server and Oracle are fairly common, and every database type will have different structures and different syntax to remember. This article describes a .NET control called a QueryPicker, a cross-platform query template solution to make life easier.
How to build a Query Template Explorer, http://www.simple-talk.com, October 23, 2009
Part 2 of my series on the QueryPicker control, this article presents the technical details on how to integrate the QueryPicker into applications both simple and complex. With screenshots and code samples, this has everything you need to build your own powerful SQL editor or query template explorer.
.NET Building Blocks: Custom User Controls In Practice, http://www.devx.com, July 9, 2008
Part II on user controls delves into the differences between the various types of custom controls, and shows how to integrate your controls into Visual Studio and make them easy to use.
.NET Building Blocks: Custom User Control Fundamentals, http://www.devx.com, May 15, 2008
Part I of this article delves into the nitty gritty details required to create, test, use, inherit, install, and distribute .NET User Controls of all types.
.NET Building Blocks: Build a Configurable Database Credential Selector, http://www.devx.com, September 14, 2007
This handy control provides a complete solution for interactive handling of database credentials, giving you everything you need to control how users input usernames and passwords, select servers, and choose connection types. After I created a few different proprietary applications where I had to create a custom login form for each, I decided it was time to make one generic enough to be flexible and configurable with just a few lines to set properties.
.NET Building Blocks: Build a RichTextBox-Based Syntax-Highlighting Editor and IDE, http://www.devx.com, August 1, 2007
By using a SyntaxHilightTextBox control, you can build an editor for the language of your choice that highlights keywords, quoted strings, and comments. The article further shows just one example (a VBScript interpreter) of how easy it is to build an IDE leveraging this control.

Explorations into .NET

Using LINQ to Manage File Resources and Context Menus, http://www.devx.com, May 8, 2009
This article takes a fairly simple technique involving both LINQ-to-Objects and extension methods (both new concepts in C# 3.0) and uses it as the heart of two moderate complexity components that could themselves be immediately incorporated as building blocks in a production application. What is interesting is that the two components are quite different on the surface: one involves managing an application's external (file) resources; the other involves initializing choices in a context menu upon a right-click to open the menu. I present a thorough discussion of the LINQ and extension methods that comprise the key portions of the code.
Exploring Secrets of .NET Keystroke Handling, http://www.devx.com, October 23, 2008
If you've ever been frustrated trying to figure out how to intercept or assign specific keystrokes to specific controls, you'll be glad you found this article. It reveals not only the fundamentals about how keystroke handling is exposed in the .NET framework, but also provides a handy Keystroke Sandbox to actually observe how keystrokes flow through an application, and concludes with a "cook book" detailing how to instrument your code for all the common key handling hooks.
Exploring Secrets of .NET Diagnostics, http://www.devx.com, March 14, 2008
Diagnostics, or program tracing, is a crucial-and often overlooked and underappreciated-component of application development. It is useful not only during program development but even more so once your application is deployed. Ongoing maintenance costs are one of the largest segments of software's true cost, and well-instrumented diagnostics can reduce maintenance costs significantly.
Exploring Secrets of the .NET DataGridView and Dynamic Data Manipulation, http://www.devx.com, June 22, 2007
Find out how to use a single DataGridView to display dynamic queries, adjusting columns automatically, and how to format individual cells exactly the way you want users to see them.
Exploring Secrets of BindingSource Filters, http://www.devx.com, April 23, 2007
Visual Studio gives developers the extraordinary capability to build a database application with a working graphical user interface using just a few mouse clicks. Populating the DataGridView requires a round-trip to the database every time the underlying query needs to be refreshed. This article discusses a technique to eliminate that round-trip, dynamically updating the underlying query of a DataGridView virtually instantaneously. The perceived performance difference is dramatic (akin to the difference between browser-embedded JavaScript updating versus page refreshing from a web server).
Exploring Secrets of Persistent Application Settings, http://www.devx.com, March 6, 2007
The MSDN documentation includes a lot of material on persisting application settings in a Windows application. But like much documentation, it's primarily a reference rather than a practical implementation guide, giving the complex and intricate usage details of settings without giving a clear and concise discussion of typical simple uses--exactly what a large number of users will be interested in. This article attempts to provide some tips on implementation.
Exploring Secrets of Windows Form Validation, http://www.devx.com, January 12, 2007
Input validation is something that every program needs, and every programmer dreads. Most developers craft hard-coded program logic to verify that a phone number consists of 7 or 10 digits; that an IP address consists of 4 octets; that a country name matches 1 of 193 choices, etc. While .NET 2.0 provides some support for streamlining input validation, it barely scratches the surface of automating and simplifying the input validation process.

Patents

Patent 6,317,848 (November 13, 2001): System for tracking and automatically communicating printer failures and usage profile aspects.

Older Publications

Golden Age of PCs

Teaching Old Screens New Tricks, Byte, September, 1987
Back in the days before WYSIWYG graphics, this article described how to create "fancy" screen displays for homegrown programs.
Automatic Porting Between Pascal Dialects, Dr. Dobb's Journal, March, 1986
The program DIALATE is presented, which converts one dialect of Pascal to another when code is instrumented according to its guidelines.
Filter, Softside Magazine, ??1984
An nroff-implementation in Turbo Pascal.
NumWord, Creative Computing, Vol 8, No. 6, June 1982
A short algorithm to change numbers to words, e.g. "1204" becomes "one thousand, two-hundred four".
Valid XHTML 1.0!Valid CSS!Get CleanCode at SourceForge.net. Fast, secure and Free Open Source software downloads
Copyright © 2001-2009 Michael Sorens • Contact usPrivacy Policy
Usage governed by Mozilla Public License 1.1 and CleanCode Courtesy License
CleanCode -- The Website for Clean DesignRevised 2009.10.31