Rick Strahl's FoxPro and Web Connection Web Log
White Papers | Products | Message Board | News |

Last 100 Posts

GAC Assemblies with wwDotnetBridge

wwDotnetBridge makes it easy to load up .NET assemblies and reference to access contained classes and other types. Standalone assemblies can be loaded easily enough by filename, but assemblies that live in the GAC should be referenced by their fully qualified assembly name. Here's how.

Persisting Static Objects in Web Connection Applications

One of the cool things about Web Connection is that Web Connection servers are persistant instances that can cache static data for subsequent requests. Besides the internal data caching FoxPro can do on an already running instance, you can also attach custom state to the server instance. In this post I'll show a number of approaches of how to access persistant object state on the server instance

Controlling the JSON.NET Version in wwDotnetBridge with Assembly Redirects

JSON.NET is the most popular .NET component used in more components than any other and because of that you can end up finding other components that also use JSON.NET and perhaps with a different version. Trying to load a different version of JSON.NET in an application can cause runtime failures for loading the assembly. The workaround is to use .NET Assembly Redirects in the application's .config file. Here's how to do this.

Creating Truly Unique Ids in FoxPro

Generating ids is a common thing for any Database applications. Whether it's for unique identifiers to records in a database, whether you need to send a unique, non-guessable email link to a customer or create a temporary file, unique IDs are common in software development of all kinds. In this post, Rick talks about how to generate unique ids in FoxPro.

Web Connection 6.10 Release Notes

West Wind Web Connection 6.10 has been released and here's a detailed run down on all the improvements and new features in this new maintenance release version.

Syntax Errors in the FoxPro Editor caused by Extended Characters

The FoxPro editor is prone to allow extended cahracters into the editor - some of which may be invisible and can cause some really nasty compiler bugs that are 'invisible'. Here's an example how that happened to me and how it caused me to think I'm going nuts.

Route Web Connection Scripts, Templates and Pages to a single Process Class

Web Connection supports automatic extension mapping to a single route handler by default. This typically means you can route a single extension to a single type of processing mechanism like the Script or Template engines or the Web Control Framework. However, the default behavior is easily overridable by explicitly overriding the script mode in OnProcessInit(). Here's how.

Visual Studio Gets Support for FoxPro Files

A new Visual Studio extension allows you to open FoxPro files right in Visual Studio with syntax color highlighting which makes working with Web Connection code a lot cleaner as you can keep code windows open right alongside your HTML markup pages.

Custom Row and Column Rendering in Web Connection with HtmlDataGrid()

DataGrids are popular for displaying lists of data and while I discourage people from excessively using DataGrids for storing data, many people do build complex and visual grids. The HtmlDataGrid() Html Helper in Web Connection provides a lot of flexibility for rendering custom column content as well as allowing for easy customization of each row and column's styling and formatting.

Calling JSON REST Services with FoxPro and wwJsonServiceClient

Calling JSON REST services is becoming more and more common and although various West Wind tools have provided support for calling services using wwHttp and wwJsonSerializer, the newly released wwJsonService class provides an even easier service call wrapper for calling JSON REST service endpoints. In this post I demonstrate basic functionality using the CallServiceMethod() method as well as properly abstracting all service calls into a dedicated class.

Web Connection 6.0 RTM is here

Web Connection 6.0 RTM is finally here and there's a lot of new stuff to check out. While a lot of new features have been added backwards compatibility has been maintained, with only very minor changes if any required for some applications. This post is an inaugrial that goes through a number of the the major features and describes them in some detail.

Outlook Email Automation–Watch out for Administrator Access

Today I ran into a problem with Outlook COM Automation which didn't allow me to access an existing running Outlook instance via GETOBJECT(). Turns out running as Administrator was causing the problem.

String Tokenizing based on StrExtract()

I've been doing a bunch of string parsing in the last few weeks as part of new Html Help Builder and Web Connection features and one thing I've repeatedly run into is the need to parse strings and tokenize subsections of strings for temporary exclusion for other processing. In this post I describe a couple of useful helpers that save a lot of time extracting string values and tokenizing a string for post processing.

Conference Materials from Southwest Fox

I've posted my session notes for Southwest Fox. This post contains links to samples, slides and white papers on SOAP Web Services, Mobile and Angular Web applications.

Web Connection 6.0 Feature: New Project Server Configuration Script

Web Connection 6.0 introduces a new MyApp_ServerConfig.prg file that is generated with new projects that can automatically configure your Web site with IIS. The Fox code can be modified but by default works to configure a Web site. You can compile the PRG into its own EXE file or embed it as part of your server via command line switch.

An Updated Web Connection Add-in for Visual Studio 2015

Visual Studio 2015 has changed a number of internal APIs that make using the old Web Connection Add-in no longer work. To support VS2015 I've created a new VSIX based add-in that does and provides a few new features and enhancements in the process.

Clicks not working in Internet Explorer Automation from FoxPro

Starting with IE 10 and later, COM Automation from FoxPro causes certain events to no longer be triggered from FoxPro code. Due to the DOM compliance mode in IE 10 and later it appears that DOM access is case sensitive and FoxPro unfortunately doesn't support case sensitive COM calls. In this post I show why this is a problem and provide a couple of work arounds.

Drive Mapping in Web Applications

Errors with drive mapping can cause major headaches in Web applciations hosted in IIS because the IIS envrionemnt often obliterates existing drive maps that you might expect to be there. In this post I explain how mapped drives work inside of a system context and show a few ways that you can ensure that your drives map properly before your application starts and runs into a problem.

Visual FoxPro and Multi-Threading

Using multi-threaded Visual FoxPro components often comes up for discussion and there's lots of confusion on how FoxPro's multi-threading features actually work and how they can and cannot be used effectively. In this post Rick describes how MTDLL components work and where they work well as well as what they can't do.

A Preview of Features for Web Connection 6.0

I've started putting together some new features and updates for Web Connection 6.0 that are coming together nicely. Here's a preview of some of the features as well as a discussion of some other things to come.

Single File Image Uploads with plUpload and Web Connection

Web Connection has included plUpload support for a while, but it uses the hefty plUpload Queue component which provides a rich UI. If your needs are simpler, you can also use the raw programmatic plUpload API directly to handle uploads. In this post I show how the new image uploader on the West Wind Message Board is implemented using the raw plUpload base client API and Web Connection's plUploadHandler.

Access-Control-Allow-Origin Header in West Wind Web Connection

When trying to access Web Connection served JSON data from mobile device applications or from Web applications hosted on other domains you might have found that you run into Cross-site access restrictions of the XHR calls that don't allow the cross site calls. Luckily there's an easy work around using the CORS protocol that allows your server to specify which domains it allows to access your content.

Use wwJsonSerializer to create Sample Data

When creating Sample code it's often tedious to create sample data structures in code. In some situations using a JSON string and then encoding the string to JSON can save some time and make it much easier to visualize the data structure that's being built.

Visual Studio Community Edition–Visual Studio for Web Connection

Microsoft recently released a community edition of Visual Studio that is essentially a full, non-restricted version of Visual Studio Professional. The community edition is available to most developers in small to medium sized business and public organizations for free. If you're doing Web development, or specifically using Web Connection and the Web Control Framework, be sure to check out Visual Studio's Community Edition.

SSL Vulnerabilities and West Wind Products

In light of today's SSL POODLE vulnerability announcements I've been inundated with questions regarding security in Web Connection and wwHttp. In this post I go over a few of the things to check and whether they affect any of your West Wind products indirectly.

Figuring out Web Connection Versions

In recent months I've been getting a number of questions regarding web connection versions. What version should I be using, do I need to install this small update and more often than not, how can I check for the Web Connection version easily especially in a running applicaiton. In this post I describe the various places where Web Connection exposes version information and then suggest how to keep up to date.

Creating .DLL Script maps with the Web Connection .NET Managed Module

Many old applications are being migrated to newer versions of IIS and for these newer versions we recommend using the managed module. However, many old applications are still stuck referencing the wc.dll ISAPI extension directly instead of using script maps. It turns out you can use .DLL as a script map extension with the .NET module. This post shows you how and why this is a good idea to go on IIS 7 and later if you absolutely must stick to explicit wc.dll usage.

UTC Time in FoxPro

Date processing especially in Web applications can become problematic if people from different timezones access the application. UTC dates solve this problem but FoxPro doesn't have native support. In this post I look at how UTC dates solve many date issues and how you can use UTC dates easily from FoxPro with a couple simple helper functions.

Showing a Wait Message when submitting longer Requests

Form submissions to long running requests can be a problem in Web apps as users tend to be impatient and walk off or worse resubmit forms. To avoid this a little bit of JavaScript capturing onsubmit event of the form can go a long way to improve user experience with very little extra code, using the Web Connection client script library.

wwFtp and WinInet Problems with IE 11

Looks like IE 11 has introduced a WinInet bug for the FTP client that causes random failures due to Ftp message parsing. The end result is that in some situations wwFTP send operations can break. Here's what the problem is and a few workarounds you can try to get around them.

Fixing wwDotnetBridge "Unable to load Clr Instance" Errors

When you get "Unable to load Clr Instance" Errors while trying to load wwDotnetBridge, look for an unfortunate but simple to fix security issue with Windows. Here's how to get around this error.

Publishing your Web Connection Web site from Visual Studio

Visual Studio includes a Web Deploy feature that makes it easy to publish content from your projects to a live Web site. Until recently you couldn't do this with Web Connection content, but since VS 2012 Update 2 you can now publish from Web Site Projects. Here's all you need to know on how to publish and organize your project for publishing.

Web Connection Tip: Virtual Path Resolving with ~/

Making sure that all links and css and script references are linked relatively in your application is crucial. Page relative paths work great, but sometimes you need to use virtual relative paths from within code or components that don't have generic access to the current page path. Web Connection supports automatic fixup for ~/ based paths to replace the virtual path - take advantage of it. Here's how.

wwDotnetBridge and .NET Versions

wwDotnetBridge supports explicitly specifying which version of the .NET Runtime is loaded. But only one version of the runtime can be loaded into the FoxPro application process, and so the first wwdotnetbridge load wins. Here's how loading works and how you can ensure you're loading the right version for your application.

Using IIS Express with West Wind Web Connection

Web Connection 5.65 adds support for running Web Connection sites on IIS Express, which is a self contained, installable and very small version of IIS that can be run on most Windows machines with minimal to no configuration. It's a great way to develop locally without a full copy of IIS. Here's more on what you need to know.

SouthwestFox Sessions Slides, Samples and Links

I've posted my session white papers, slides and examples from the Southwest Fox conference last month. My two sessions where FoxPro and .NET Interop related and covered a few new recent developments that have improved the ease with which Interop can be done.

wwDotnetBridge for FoxPro .NET Interop is now Free and Open Source

wwDotnetBridge is a FoxPro library to help with accessing .NET functionality from Visual FoxPro is now free and open source.

Custom Manifest Files in Visual FoxPro EXEs

Unbeknowst to me FoxPro allows easy creation of custom Windows Manifests when building EXE applications. Simply creating a manifest file and putting it in the same folder as the project file allows easy embedding of custom manifests into FoxPro EXE files. Here's how.

UTF-8 Encoding with West Wind Web Connection

UTF-8 Encoding is ubiquous on the Web and with good reason: It simplifies display of extended characters in a consistent manner that's easily handled by browsers and non-visual HTTP clients. Although not the default encoding format, UTF-8 encoding is easily configured in Web Connection with a couple of commands. Here's how.

Extensionless Urls with Web Connection and the IIS UrlRewrite Module

The question of how to implement extensionless URLs with Web Connection has come up frequently in recent months. This post describes what extensionless URLs are and describes one implementation using the IIS UrlRewrite Module that you can plug into your Web Connection applications today.

FoxPro EXE DCOM Configuration on 64 Bit Systems

FoxPro 32 bit EXE COM Servers don't show up in the default DCOMCNFG Component Manager. Here's how you can view your DCOM settings for a VFP COM server anyway by viewing the 32 bit DCOM manager.

Root Path Support with ~ in Web Connection Response Output

Web Connection includes a small but unobvious feature that can properly fix up virtual paths. Here's how it works and why you should take advantage of it.

Global Values in Web Connection

A question that frequently comes up is how to store 'global' data in Web Connection. While global data generally is a bad idea, there are a number of ways that you can store global data in Web Connection without resorting to the undesirable use of PUBLIC variables. Here's how.

Creating Gravatar Web Image Avatars in FoxPro

Gravatar is a great Web Service based way to associate an images with user accounts that are based on email addresses. It's easy to use and can provide a nice touch of personalization with very little effort. This post shows how you can use Gravatar from within your FoxPro based applications.

Transparent Bitmaps on Buttons and other Controls

By default Visual FoxPro doesn't do a good job of using transparent image resources on controls. With a little bit of effort however you can make your UI work properly with transparent images. Here's how.

How to work around Visual FoxPro's 16 Megabyte String Limit

FoxPro has a 16meg string limit, but with a little bit of trickery it's possible to work past these issues and create strings larger than 16 meg strings. Here's how.

SetFocus() in Form Init() kills @K Select All Formatting on Textboxes

Ran into a small issue today that deals with @K not working when using SetFocus() in the Init() of a form. Apparently SetFocus() causes selections to not be made during form startup. Here's the issue and a couple of simple workarounds.

ClassIDs in Visual FoxPro COM Projects

Creating Visual FoxPro COM objects is pretty easy and painless. But on occasion there can be problems with COM registration due to the way FoxPro projects manage COM ClassIDs. Here are some of the issues and some easy tips on how to avoid problems.

Dropping in MetaWeblog Provider into my FoxPro Weblog

For a while I've been slacking on my FoxPro blogging. Part of the reason has been that I'm spoiled - spoiled by using Windows Live Writer on my main Weblog (where I post most of my .NET and general...

Doing .NET COM Interop with FoxPro? You need a .NET Disassembler

If you're doing any sort of Interop with .NET, it's extremely useful to have a .NET disassembly like Reflector, JustDecompile or ILSSpy at hand to let you discover the functionality available in the assemblies you are interacting with in .NET. You can find out full type names required for instantiation, the exact method signatures for methods to call, and easy navigation to follow parameter names to actual type implementations. .NET disassemblers make Interop discovery much easier to work with.

Writing to the Windows Console from Visual FoxPro

It's not the first time this has come up for me: I need to have a FoxPro application that writes out to the Windows console when running in 'command line mode'. Unfortunately there's no real clean way to do this as Windows applications don't support console output. In this post I demonstrate how you can actually create console output from FoxPro, although it's not all that useful since the console output is terminated before any FoxPro code runs. I show what works and what doesn't along with a workaround solution by using an external application to handle console output.

Form Submissions and Request Redirection in the Web Control Framework

A question that frequently comes up is how to handle page transitions in the Web Control Framework. By default WCF pages use Postback style submissions that always post back to the same page, it's sometimes not obvious how to move to the next page when a form submissions and operation is complete. Here are a few scenarios and how you can effectively move to other pages using the Web Control Framework

Determining if a User is an Administrator

With Windows 7 and Vista User Access Control places a number of restrictions on desktop applications. In some scenarios it's simply necessary to override the default behavior and require to run as an administrator. Here's how you can use FoxPro code to quickly check for Admin rights.

Running Ghostscript with Web Connection/Client Tools on a 64 bit Machine

Ran into a small problem today with the wwGhostscript class on a 64 bit machine. It just wouldn't work due to a simple problem: Installed the wrong version of Ghostscript which doesn't work with 32 bit FoxPro applications. Here's a detailed look at what the problem is and the easy fix to work around it.

Web Connection Training at Southwest Fox

There's another West Wind Web Connection training seminar coming up at Southwest Fox this year on October 25th and 26th. Need a little extra motivation to come to an a training event like this? Here are a few more insights that explain why this training is a fun experience that's a worthwhile expense.

Handling Multiple Screens in Visual FoxPro Desktop Applications

Storing Window locations for applications is a common desktop application feature and it's easy enough to implement. If you have multiple monitors however and one of those monitors gets removed things can get tricky. Here's how you can detect changes to monitors in Visual FoxPro and properly size up your forms in the face of monitor removal

Unwanted Macro Expansion in FoxPro Class String Properties

Ran into a weird issue today with a string that contained an & in a URL in a string class property. The property would macro expand the ampersand from within the string constant assigned to the class header. This appeads to be a bug in the VFP code parser resulting in some interesting behavior.

Running AJAX Requests in Web Connection 5.0 with Classic Request Processing

Web Connection 5.0's AJAX features were originally designed for the new Web Control Framework with controls that make using the AJAX features very simple. However you can also use these features from class wwProcess method and classic script/template pages with only a little extra effort using Web Connection's jQuery functionality and extensions. Here's how.

Playing Media via Media Player Automation

This short entry shows a couple of ways how you can play media content from your FoxPro applications using ShellExecute and Windows Media Automation.

Understanding wwServer::lUnattendedComMode

wwServer::lUnattendedMode in Web Connection provides automated SYS(2335) support for Web Connection requests. This entry describes what SYS(2335) does and why it is quite useful in Web Connection applications.

Root-Relative Paths (~/path) in Web Connection

Root relative paths allow you to create location independent urls that work regardless from where within the application they are called. This means you can use a url with root-relative path syntax and get consistent results in any directory of the application which makes the url portable – easy to copy and/or use in other pages without changes. Web Connection supports root-relative paths in various ways. Here’s how.

Updated Web Connection Web Control Framework Training Videos

I have recently update the Web Connection video tutorials on the site to the latest version of the latest version of Web Connection. The new videos are completely up to date to the current version of Web Connection, somewhat more detailed than the original videos and provided in higher resolution and audio quality. you can also view these videos onlin.

A few Thoughts on Web Connection and Security

Security is an important topic that's unfortunately addressed way too late in the development process many times. I can attest to that personally. Recently there have been a few questions regarding a security bulletin that points out a couple of vulnerabilities in Web Connection, that have been fixed since, but are worth going over again especially in light of older versions that might not have been updated to the latest shipping releases of Web Connection.

COM Interop and .NET Guids

Guid values in .NET are unfortunately not directly accessible in VFP via COM interop because the type is not marshalled in a meaningful way over COM for VFP to consume. You get an error when trying to access a Guid value. This is a common problem for Value types marshalled over COM. In this post I'll describe a way around this by way of an intermediary function to intercept method calls and convert parameters and return values into something that can be consumed in FoxPro.

Web Connection Version Updates and Compilation

Several people have run afoul a recent Web Connection version update. All of the issues come back to proper recompilation of the PRG files distributed with Web Connection and in this post I review the steps for proper recompilation of the Web Connection files after a version update and why it is necessary.

Important Bug Fix Regarding Cookies in Web Connection

After December 28th, 2008 a number of people have been seeing problems in their Web Connection applications due to permanent Cookies not saving properly. This typically manifests in Session objects not keeping Session state properly or any code that uses custom, permanent cookies. This post outlines the problem and how to fix it.

Javascript and jQuery Intellisense in Web Control Pages

Visual Studio provides fairly decent Intellisense and with a little bit of tweaking of your pages you can get Intellisense for jQuery and the Web Connection client script library.

Watch out for SYS(2335) in non-COM Applications

SYS(2335) can have some unexpected side effects if it is activated in non-COM applications even though the documentation states that in non-COM applications it is ignored.

Header Manipulation in the Web Control Framework

Header access via is currently not supported in the Web Connection Web Control Framework, but that doesn't mean that you can't manipulate the header fairly easily. Using Expressions is one way that works today. In the next update there will also be an explicit Header object that allows dynamically adding content to the header that the top or bottom more easily.

Partial Control Rendering in AJAX Callbacks

Partial Rendering in AJAX callbacks allows you to create AJAX requests very quickly by reusing the HTML server side controls already produce. Web Connection makes partial rendering very easy simply by calling the .Render() method on any control on the page and returning HTML. In this example I demonstrate how to update a grid and an error display dialog in a single AJAX callback.

Running Web Connection on Windows Server 2008 64 Bit

I've just got done upgrading my server to Windows 2008 64 bit and the process of getting Web Cinnection to run on it was pretty painless. A few improvements in IIS 7 make it easy to dial the 32 bit functionality of IIS to the Web Connection application. Here's how it works.

Http File Uploads in Classic and Web Control Framework Web Connection

File uploads are an operation that trip up Web developers frequently because the process of uploading files changes the rules of typical form behavior a little. Web Connection makes the process of handling file uploads pretty easy but depending on the approach - classic or using the Web Control framework - the process is handled a little differently.

Automating Configuration of Web Connection with Code

Every Web Connection application you build will need to be deployed at some point. Among the required tasks are copying files and then configuring the application to create virtuals, scriptmaps, set permissions and register your servers with COM. There are a lot of different approaches that you can take to configure your application, but Web Connection includes the tools to automate this process completely. Here's some boilerplate code you can use.

Handling BindingErrors in Tab Pages

The wwWebTabControl requires some special handling when dealing with binding errors as it's possible that binding errors are in controls that live in hidden tab pages. When clicking on error links it may be necessary to activate the tab page. Web Connection 5.37 includes a new global OnBindingErrorLink client function that can be used to activate a tab page. Here's how.

Dynamically creating TabPages with the wwWebTabControl

The wwWebTabControl in the Web Connection Web Control Framework is basically a Tabstrip control, which means it doesn't manage page content, only the display of tabs. A number of questions have come up regarding creating pages and tabs dynamically through code and although not built in this process is very easy to implement with a few lines of code.

Weird Performance Differences of PRG vs. EXE vs. COM Object in Large Apps

I've run into an application scenario where we are seeing radically different performance between the application running as PRG files, running as a standalone EXE or running as a COM object with perf differences of over 300% between fastest and slowest.

Repeater Item Referencing through the Page

If you've used the wwWebRepeater a lot in Web Connection you've probably found that it gets tricky to conditionally show content based on some global condition. There's a little trick you can use to easily access template controls directly from the page and set properties as long as the change is global and doesn't need to change based on each databound item.

Some new features coming in Web Connection 5.37

A few new features coming in the next Web Connection release to take a look at. These features are based on some recent work I've been doing with a client as well as some common usage scenarios that have popped up in questions on the message board. Let us know if you have thoughts on these features that are not quite final yet. Applies to Web Connection 5.37.

VFP String Concatenation Issue in Loops

I got bit again by a nasty string concatenation problem in VFP. This isn't the first time I've hit this particular issue and I've known about it for years, but it's one that's easy to miss and so from time to time I hit it again. The problem occurs when you have string concatenation code that involves an expression that returns results from a function and where the function often returns a large amount of text.

IIS 7 Default Request Filtering and Web Connection

IIS 7 provides a number of request filtering features by default and at least one of these options - blocking of URL access to the bin directory - potentially affects older Web Connection applications that aren't built using script maps.

Detecting hung Objects in Visual FoxPro

Circular references in Visual FoxPro are a bitch! If you've ever been hit by a creeping memory leak you've probably experienced the circular reference problem in VFP. There are ways to deal with the immediate problem but they require a bit of discipline and even then it's still possible to end up with circular references. Here's an overview on the problem, some workarounds and a tip that might help isolating circular references and find the offending objects.

Web Control Framework or Classic Web Connection?

There are still a host of questions out there regarding Web Connection 5.0's Web Control Framework. In this post I address a few recurring questions and contrast with classic Web Connection to clarify where the Web Control Framework fits.

Watch out for _VFP/Application Object hangs with VFP 9 SP2 Installations

Watch out for VFP 9 SP2 not getting properly registered on your machine if you're running COM servers. Apparently VFP 9 SP2 installations often fail to register the VFP9r and VFPt runtimes properly which causes some problems with VFP's internal COM objects.

Visual Studio 2008 Hotfix Patch for Html Editing Improvements

Microsoft recently released a hotfix for Visual Studio 2008 that's a worthwhile install for Web Connection developers using Visual Studio 2008. The hotfix addresses many slow performance and inconsistent editor behaviors.

Commenting via ShortCut Key in Visual FoxPro

I work a lot in Visual Studio and when I return to FoxPro one thing I really miss is the instant ability...

Showing Windows AutoComplete Dropdowns in Visual FoxPro

Getting the Windows behavior to show dropdown windows for File paths or MRU URL lists is a common feature in Windows, but it's not quite intuitive to add this behavior to Visual FoxPro because it requires an HWnd value that FoxPro Controls don't possess. Here's a way around this problem using the RichText control and some tricks to make it display properly in a FoxPro form.

Visual Studio 2008 and Web Connection

Visual Studio 2008 shipped about a month ago and there are a number of useful enhancements that are beneficial to Web Connection developers primarily related to the new Html editor enhancements. Here's an overview of some of the new features.

Speeding up slow Control Renaming in Visual Studio

Ever curse the fact that if you rename a control in the visual designer in Visual Studio, that it's dreadfully slow? This is VS.NET trying to be overly helpful and trying to...

Finding hung References in Visual FoxPro

One of the big problems with Visual FoxPro development is the issue of hung references because Visual FoxPro's garbage collector is often not smart enough to deal with circular or often even simple multiple references. It's not easy to find exactly what's hanging but if the object in question has code in the Destroy method you can point get the debugger to step into it.

Should you upgrade to Web Connection 5.x?

Several people have asked me recently whether they should upgrade to Web Connection 5.x because they don't want to use .NET. There's some misconception about what Web Connection 5.x represents in relation to .NET and in this post I'll try to clear up the relationship and talk about why Web Connection 5.x is a worthy update even if you don't use the new Web Control Framework.

Executing an EXE with Run As Administrator Dialog

In Vista it's sometimes required to restart an EXE with Administrative rights to get the necessary permissions. Here's how you can do this with an example of an application updater.

Running Web Connection on 64 bit IIS

64 bit Windows poses some special considerations for Web applications and running Web Connection on a 64 bit machine requires some special configuration. The process is not difficult but it requires knowing what to tweak. There are two ways to do this one that is somewhat intrusive on IIS and another using the new Web Connection Managed Module.

Web Connection Web Control Framework Pages and Page Code Reuse

This post reviews how Web Connection Web Control pages work and then discusses some ways that you can dynamically load these pages. By default pages are loaded via direct script links which is fully automatic, but you can also explicitly force a Page - which is just a class - to execute and even be parsed and compiled on the fly.

Hosting the .NET Runtime inside of Visual FoxPro

This article details how you can host the .NET runtime in Visual FoxPro and dynamically activate .NET components without requiring COM registered components. The article describes implementation using a small C++ DLL wrapper that can be called from VFP and shows a few examples of accessing arbitrary .NET objects.

Fix up Paths with FULLPATH()

Fixing up paths is a fact of life in most applications. One easy and often overlooked way (at least by me) is to rely on FULLPATH() to handle proper fixup of backslashes in its myriad of combinations.

Apache 2.2 Support in Web Connection

Spent a bit of time in the last couple of days of getting Web Connection to work with Apache 2.2. Apache 2.2 changed its module API so a number of changes were required to get the Web Connection Apache module to run properly under 2.2. In the process I also fixed a few other issues and Apache can now properly work with non-file backed links.

Absolute Positioning Layout with Web Connection and Visual Studio

When using Visual Studio for layout with Web Connection (or ASP.NET for that matter) you can absolute positioning basically which uses an X,Y layout coordinate system to lay out controls. This seems very attractive especially to developers coming from desktop applications, but it's far from optimal in a Web environment.

IIS 7 and ISAPI Dlls in a BIN directory

IIS 7 introduces some further URL mapping restrictions one of which is the inability to access any content from within a BIN directory. If you have existing applications that link to the Web Connection DLL directly in your BIN directory here are a few ways you can work around this or prepare to for the future.

Creating a generic Timer Evaluation class to handle Refresh issues

In this post I show how to create a timer class that can be generically used to fire delayed operations via dynamic execution of code. This has been a great timesaver for many operations dealing with ActiveX control refresh issues in FoxPro code.

Unicode to ANSI Translation in VFP 9.0 - Sys(987)

One of the difficult things to deal with properly in VFP -> Sql Server connectivity is Unicode -> ANSI translation. There are a few ways to deal with this but one - SYS(987) - is a new feature of VFP 9 that until today I completely missed.

© Rick Strahl, West Wind Technologies, 2003 - 2017