Email: scottlaing (at) gmail (dot) com


Project Platform.        Description
MS Projects of Note
WPF Applications (Various) WPF Applications using C# with .NET 3.51 Several WPF applications for internal Windows engineering teams utilizing Data Binding, WPF custom controls and mechanisms.
Windows Internal Components Website ASP.NET using C# with Main developer on the internal MS Windows site tracking components, binaries, and sources for internal engineering.
BcdEditUI SDK Tool WinForms application using Code sample for modifying and viewing settings in the new Bcd Boot Store, published in SDK for Windows Vista.
Prior to MS Projects
Flavors of Hilton - Hilton intranet site ASP.NET website in C# As an employee of BlueSquareStudios I was the primary dev and dba for the rewrite of Hilton internal Restaurant and Catering website from php to C#.NET. This is an award winning website and example of early adoption of .NET 1.1 technologies.
XML.NET Web Services XML Web Services using C#.NET This is a piece of the C# Entry App Port (see below in table), involving using an XML Service to make the entry application telecommute-able.
ASP.NET Queries Work Web Lookup modifications using .NET. Work on creation of new ASP.NET web queries on the SBOE site as well as porting existing web queries to ASP.NET.
C# Entry App Port Appeals port to C#.NET, SQLS2K Ongoing project porting large sophisticated entry and reporting application to C#.NET and MS SQL Server 2000 from Visual Foxpro 6.
Active-X TreeView Control COM/ATL Treeview control. A specialized Treeview with context menus, events firing, item node LPARAM storage, for use with FTPBackup project.
Web Stats Page ASP.NET web query An ASP.NET application that does some database lookups and miscellaneous statistics for site monitoring.
ODBC.NET Entry Dialog VB.NET Windows Application, ADO.NET A generic entry screen designed to work with ODBC tables via the ADODb class functions, since the OleDb functions do not work with generic ODBC driver connections like Foxpro (yet). I built extension logic via custom selects to emulate a generic optimistic batch mode type entry screen. Utilizies various .NET features and ADO.NET data usages like the DataSet, grid interaction and control DataBindings.
MassFile VC++ 6 MFC Dialog based app Web uploader program for database electronic filing for SBOE
SecureSock VC++ 6 MFC Dialog based app Online chat program similar to ICQ with many features, 50+ class files, lots of GUI features, supports private servers.
FTPPass DLL VC++ 6 Win32 DLL Misc DLL with functions to upload files to protected FTP sites, misc other stuff
PrinterDLL VC++ 6 Win32 DLL Misc DLL I wrote to change the default printer in windows, other assorted functions
Socket Class Visual VC++ 6 Class This is a socket class I wrote to avoid having to use the MFC socket functions when doing raw socket connections.
Database Class Visual VC++ 6 Class This is a raw database class I wrote some time ago, a basic wrapper of the ODBC calls.
COM Socket Class Visual VC++ 6, ATL Com Object Similar to socket class but rewritten as a COM component.
Agent Hearing Lookup Perl 5 CGI Data Lookup This is a sample of many perl lookups off the SBOE web site
Autotrader Data Miner Visual Foxpro 6, VC++ 6 Data Miner app to extract info off the AutoTrader web site with reporting and mailing built in.
Foxpro Automailer Visual Foxpro 6, VC++ 6 Automated emailer of various database emails, integrated with sophisticated custom application
Data Intermediation Visual Foxpro 6, VC++ 6 An add-on library for Foxpro to allow you to execute sql statements raw across the internet, using a web based C++ component, via socket communication, with server side execution. This is a non-browser implementation that runs seamlessly via code in the background.
DWG App CORBA port Java 2, Oracle 8i Port of a large application away from an old buggy CORBA Component to a normal database design.
Web Site Restructure, Redesign, Database Integration DHTML, CSS, Perl, PHP, dbi, Win32::odbc, Java  Substantial redesign and cosmetic reworking of SBOE state web site, adding multiple perl and php based lookups and database integrations for electronic filing, hearing agent scheduling, and various other processes.

ASP.NET Web Query Creation and Porting of existing queries

This was a project to port existing lookups on the SBOE Web site to ASP.NET using C# as my code behind language for scripting from original lookups written in Perl.

image of hearing officer lookup page

View Sample Lookup Code Behind File (C#)
Actual Live Lookup
Back to Table

Active-X Treeview Control

This is COM/ATL based Active-X control I created to give me a more sophisticated Treeview control for a high level application. It supports a context menu, fires control events to the control's container, and stores additional info in the treeviews LPARAM data member in each node for a file listing, storage functionality to save or show files selected for a backup (for my FTPBackup project).

View Main Control CPP file
Back to Table

ODBC.NET Entry Dialog

This is a generic dialog VB.NET entry screen for an Agents table for the SBOE. I created this to get more familiarity with ADO.NET. Note that VB.NET has some very nice ways to create an optimistic batch mode entry screen via DataSets, DataAdapters and similar features but the generic OleDb functions only support a few database drivers at this time like Access. To work with another data driver like Foxpro, which uses generic ODBC drivers, requires usage of the AdoDb class which has more limited abilities than the new OleDb functions. The dialog uses some custom logic to get around these difficulties and it designed to be easily modifiable for ports to other ODBC type connections.

View Main VB.NET File
Back to Table

SBOE Appeals porting to C#.NET

This was a project to port a sophisticated user entry and reporting application to C#.NET and to MS SQL Server 2000, from Foxpro. It attempted to use XML Web Lookups for data connectivity so the application can be run from home also to make it work with telecommuting.

Sample Class File from Project
Back to Table

XML Web Services Work

As a part of the SBOE Entry Appeals program port to C# Project I decided to use XML to create a data intermediation piece that would allow people to use the application from home via the internet. The ease with which I was able to do this was somewhat surprising, thanks partly to the excellent coverage in Jesse Liberty's Programming C#.

C# Code Behind File
Wrapper class for Client program accessing XML Web Service
WSDL File (Visual Studio's new IDL file format)
Back to Table

Web Stats Page, ASP.NET web lookup

This is an ASP.NET lookup I wrote to do some statistical queries into my database for common SBOE stats I wanted to be able to check on online, and also so the staff can get lookup info on some critical processes. ADO.NET and ADODB functions access the end data.

ASP Code Behind File
Back to Table

Massfile Utility - MFC, Dialog based App, VC++ 5 or 6

Electronic filing utility for SBOE (Arizona State Board of Equalization). This was a Visual C++ project, using a Dialog Based App with MFC. A dialog box is used to allow them to specify a file and enter information, and then the utility uploads it to the SBOE website via FTP. Used by property agents to file large bulk filings of various database formats automatically to the SBOE web site. This app is currently in production and used by agents to upload BULK property filings to the SBOE. Feel free to download the EXE to see more of how it works.

View Main CPP File
Online Documentation
Download EXE
Back to Table

FTP Functions DLL - win32 DLL, VC++ 5

This is a little project but somewhat useful, it's hard to send password protected ftp sendings to web sites from high level languages like VB - usually the only command for sending an ftp file that is included in the language doesn't ask for any user or password information, not too helpful when connecting to a protected site.  So these are some useful wrappers functions in a basic DLL.  Also early versions of java didn't support connecting to FTP sites which required a password, so these functions came in very useful at one point.

View Main CPP File
Back to Table

Printer Utility DLL - win32 DLL VC++ 5/6

For some reason the Foxpro command to change the default printer became buggy with windows 98+.  So I wrote some useful printer utilities, to change the default printer, and also to list all the installed printers.  There is also a mapi send email wrapper function in here as well, and a way to write and/or read a string directly into memory (useful for interprocess communication).

View Main CPP File
Back to Table

SecureSock - Large Chat Program with customized servers - VC++ 6sp5

This is a large project of my own in the last year to write a chat program that could replace icq while adding some security to it to make the communication secure.  It still needs some work but is a functioning alpha at this stage, and allows you to use your own servers, making it useful for an intranet application for, say, a hospital, who wanted to use another mechanism than email.  Uses a lot of nice stuff, threading, complex tree controls, multiple users per client, busy modes, incoming sounds, etc.  50 class files in total so far in project.  I'm hesitant to make this source totally public although if you ask kindly I will let you look it over.  But feel free to download the EXE and signup (just enter bogus info if you want) to get an idea of how it works.

View Main Dialog's Class File (MFC Dialog based app)
Back to Table

Maricopa County Draw Client Mods, Java 2, JDBC

This was a modification to a large scale java application written in an older version of Java using an old custom CORBA implementation which proved to have lots of bugs. I was enlisted to remove the CORBA pieces from it as a transition to moving it over to a more recent version of Java eventually to use J2EE type features, and also to eliminate the bugs caused by the bad CORBA driver. Maricopa county uses this application to calculate parcel sizes for their county assessors to help determine property values for the county valuations each year.

Sample file
Back to Table

Socket Class

I wrote this as a raw class based on the berkeley sockets. Several years ago the MFC socket functions were a bit slow and also, it's nice to have a version of the socket functions which doesn't require MFC for example, for tight downloadable projects over the web. This class has been fully tested and can be used for a variety of purposes as an alternative to the MFC socket connection classes, or to get web stuff on a socket level without relying on the higher level functions.

View Main CPP File
C++ client usage
Back to Table

ComSocket - basic socket connections as a COM object - ATL COM object, VC++ 5/6

This is similar to the Socket Class example but now as a COM object for easier invocation from other languages.

View Main CPP File
Sample Foxpro invocation
Back to Table

Data Connectivity Piece

This routine handles a cgi request for data and returns the data in a formatted structure. I wrote it to allow me to create a remote data piece for foxpro programmatically to create a remote version of the main entry program which could run raw over the internet. I am currently looking at porting this to an XML service type approach with ADO.NET.

View Main CPP File
Back to Table

Agent Lookup - Perl Lookup Sample

Here's a sample Perl lookup from the SBOE site.  Pretty much standard stuff but interesting probably for those learning perl. I tried using but found bugs in the dbd:odbc parts of it, especially when handling more than one table at once, so currently I am still using Roth's win32::odbc module to access data.

Agent Lookup - Perl
Web Site Lookup Page
Sample Results
Back to Table

Automailer Web Bot - Foxpro Web Data Mining Program

I wrote this in Visual Foxpro for ease of development, a friend wanted a bot to look up info off of the autotrader site and send emails to people who matched a criteria via the autotrader server (which sends emails through the server itself and hides the emails addresses). It was an interesting project.

Main Procedure File - Foxpro
Back to Table