Andrew Ross MacNeill - Articles & White Papers

A collection of all my FoxPro and other developer-related writings from Conferences, published white papers and other sources. Enjoy

Name: Andrew MacNeill
Location: Kanata, Ontario, Canada

Tuesday, April 20, 2010

This blog has moved


This blog is now located at http://whitepapers.aksel.com/.
You will be automatically redirected in 30 seconds, or you may click here.

For feed subscribers, please update your feed subscriptions to
http://whitepapers.aksel.com/feeds/posts/default.

Monday, June 01, 2009

Refactoring T-SQL

While much has been said about the benefits of refactoring application code (see VFPX Code Analyst), I typically haven't seen a lot of noise about refactoring T-SQL and stored procedure code.

The refactoring features found in SQL Manager tend to be more about refactoring your database design but not about the actual content of the SPs.

It's important to note that if you tend to rely on large stored procedures, then many of the same rules of refactoring apply:

1. Keep it short and sweet.
2. Make it readable.


So when dealing with a particularly unruly stored proc (over 1000 lines), I was quite happy to find Red Gate's SQL Refactor (here's a post from the lead developer).

Some of the features are pretty basic (renaming variables, etc) but the one of great interest was the Encapsulate as a new Stored Proc.

As with a number of tools that are add-ons to other components, its overall usefulness might seem limited if you are building your stored procs either using testing patterns or have good code review sessions - but if you're inheriting or just watching one procedure get too big, it's definitely useful.

What about your SQL applications? How big do you let your stored procedures get?
What tools do you use?

Labels: , ,

Friday, May 22, 2009

Refactoring and Profiling

(another session from Southwest Fox 2008)

Refactoring is the art of clean-up and can be useful. Many books have been written about it, so it can seem daunting but the VFPX Code Analyst does make it easier. In this session, we see how the Code Analyst along with existing tools like the Coverage Profiler can make figuring out how to clean up your code can be made easy, simple and dare I say it, fun!

You can also hear the full session on the FoxShow here.

Using VFPX : A Walkthrough features in CodePlex

This white paper is from a session originally given at Southwest Fox 2008, introducing many developers to how CodePlex works and how they can get involved with the VFPX Project.

You can also hear the audio of this session here.

So you want to help out in VFPX? This session goes through how to get started with the VFPX Project and dealing with issues like source control, the Wiki-style attitude of Codeplex and more.

What Is VFPX?

VFPX is the future of the Visual FoxPro IDE and developer tools we currently know today. It is based on the VFP 9 SP2 core but realistically, it is more like taking all of the tools that have grown up around the VFP engine and making them ours to grow and enhance. Microsoft is no longer doing active development on Visual FoxPro; the product is officially supported until 2015 but then many developers still have VFP 6 applications running and VFP6 support ended in 2004.

Visual FoxPro has a long running tradition of community enhancements. Back in 1990, the FoxPro CompuServe forums were among the busiest, with new downloads and an environment of users helping other users. Some of these tools were shareware, others were simply demos of commercial products and others still were released into the public domain, making them free. Since CompuServe closed down and the web became what it is today, a number of different avenues have cropped up as a way for keeping the FoxPro community in touch. Many offer downloads (such as the Universal Thread and Foxite) while others continue on the discussion aspect of the FoxPro forums.
VFPX is a community-driven effort to provide a single source for the latest in FoxPro tools, all offered under a single license for developers. It includes every FoxPro component provided by Microsoft that was written in xBase. For those developers who may have been unaware, a great deal of the tools provided with FoxPro, such as the Class Browser, Builders, Wizards and the Task Pane are all written in xBase, many of them by community members who were contracted by Microsoft. The Visual FoxPro engine (the executable and the runtime DLLs) are not being changed and are not available – but every other piece is. The last piece of core code that Microsoft provided for Visual FoxPro (Sedna) was put onto CodePlex. That's where we come in.

While a lot of the existing pieces of VFPX are tools that improve the development experience, a growing number of them are interface controls and libraries that you can use to improve your own applications. Just as the FoxPro Foundation Classes (FFC) and Component Gallery provide samples and techniques for implementing technologies, VFPX includes GDIPlusX which makes working with graphics in your application easy or ThemedControls which provides standard Windows and Mac UI components written directly in FoxPro.

If you have ever thought about how much better a particular tool in Visual FoxPro would be if it only had one extra feature, this is the opportunity to change it. If you have tools in your own developer arsenal that you think can benefit the entire developer community, propose it (more on that below) and get it in there. If you've developed interface components that you want to share with others, put it into the VFPX codebase. The main stipulation is that you will be offering it under a Shared Source license, making it available for anyone to use, change or distribute.

Read more from the link enclosed here.

Monday, October 01, 2007

Using the VFPX Code Analyst

The Code Analyst is a tool in VFPX designed to make FoxPro application development and code maintenance easier. It combines the extensibility with a Code references-like interface, analyzing pieces of code or entire projects and identifying key areas for refactoring - similar to the Code Analysis tool in Visual Studio.

You can identify your own project rules to highlight key areas of your application that may not match your own coding standards.

A PDF version is available here

Labels: , ,

Saturday, July 07, 2007

Alerting Users in your FoxPro Application

Every application needs a way of notifying users about something. The first "something" that may come to mind is an error, which unfortunately, needs a very special kind of alert or handler. But there are lots of other events that users need to be aware of, whether you as the developer plan for them or not. In January 2007 issue of FoxPro Advisor, Mike Lewis wrote about a forced system shutdown "event" that would let administrators get all users out of the system. If you are running a process that may take a while, you might need to let users know when it has been completed. If you have a large application, there could be many events that require user notification. Perhaps worse, there may be many events that your users could have reacted to, "if only they had known" before something was happening. Some applications rely on reports to display this information – but why waste paper when you can simply alert users to an event?

Labels: ,

Sunday, July 01, 2007

Refactoring in Visual FoxPro

(this article was written prior to the Code Analyst but identifies the origins of where this tool came from)
With the sheer number of functions, commands and tools available within Visual FoxPro, it's easy to find more than one way to do the job.

So multiply the number of ways by the number of developers on your team, and it's pretty easy to see why code maintenance is pretty important.

Refactoring is about making code more useable (not changing the functionality but making it easy to understand and maintain).

This article presents 3 core concepts:
1 - Never Use Keywords for variable or field names
2 - Use the most recent functions where appropriate
3 - Encapsulate, encapsulate, encapsulate

Labels: , ,

Friday, June 01, 2007

VFPX: New Tools based on Existing Code

Tools like Code Analyst and Class BrowserX all use code from existing Visual FoxPro tools. This is possible because in 2007, Microsoft released the code for all of their xBase components with a special license. This license allows developers to create and update components and applications based on these components. It explicitly gives two rights:

Copyright – "a non-exclusive, worldwide, royalty-free copyright license to reproduce the software, prepare derivative works of the software and distribute the software or any derivative works that you create"

Patent – "a non-exclusive, worldwide, royalty-free patent license under licensed patents to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the software or derivative works of the software"

There are some limitations; primarily that you can't use the Microsoft name, must include any existing copyright notices, and that the software is provided "as-is" but the real benefit is with how it can apply to your existing applications. Want to build something similar to the Task Pane in your application? You don't need to reverse-engineer it – you can simply look in the existing code and re-use it. Thanks to the Fox Team!

Labels: