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

Latest Posts

West Wind Web Connection 8.0 Release Notes

20 days ago

Web Connection 8.0 is here and this is the official release post for this new version.


West Wind Client Tools 8.0 Release Notes

1 month ago

West Wind Client Tools 8.0 has released as a major version rollup release. Here's all that's new and fixed.


wwDotnetBridge and Loading Native Dependencies for .NET Assemblies

3 months ago

If you're using a .NET component with wwDotnetBridge or plain COM Interop that has a native dependency on non-.NET DLLs, you need to be careful to ensure that the native libraries can be found. In this post I describe how .NET assembly loading works and how external native dependencies are resolved in .NET and subsequently how you have to deal with them in your FoxPro applications.


Web Connection 7.35 released

8 months ago

Web Connection 7.35 is out. This is a maintenance release but there are a handful of new features and improvements, with the key feature being a new REST Service Authentication scheme that integrates wwSession and wwUserSecurity for Bearer Token authentication.


Launching FoxPro in a Project Folder

April 15, 2023

I work with a lot of different customers that use FoxPro to build applications, and it always amazes me when I see developers launching into their application by starting FoxPro and then explicitly navigating - via `CD` commands or even interactively - to the actual project folder for about a minute. In this post I describe why it's a good idea to build a consistent startup environment for your development setup and some of the ways you can accomplish that task.


Web Connection 7.32 released

April 04, 2023

Web Connection 7.32 is out and it's a small maintenence update. In this post I go over some of the small feature updates and fixes and describe them in more detail.


Delaying or Waiting on Code in Web Connection Applications

January 12, 2023

Sometimes it's necesasry to wait for an external operation to complete, and when using Web Connection you have to be careful to do the right thing to avoid running into problems with user interface operations that might fail in COM mode. In this post I talk about different types of wait operations that you can use safely and how you should really try hard to minimize wait operations in your applications.


Watch out for 64 bit Incompatibility using the Visual FoxPro OleDb Provider

November 21, 2022

If you need to access FoxPro data from other application via the VFP OleDb driver, watch for problems with 64 bit applications, since they cannot use the 32 bit OleDb (or ODBC) driver.


Web Connection 7.26 has been released

January 17, 2022

Web Connection 7.26 is out and in this post I'll go over some of the new features in a little more detail.


Building and Consuming REST API Services with FoxPro

1 comment
October 20, 2021

REST API Services are no longer a novelty, but have become the standard way for organizations to publishing services for remote access. Whether it's public APIs both free and commercial, as well as SPA apps that use internal APIs for a backend, REST's simplicity and loose suggestions has won out of more complex service architectures of the past. In this article from Virtual FoxFest 2021 I talk about how you can access REST services from FoxPro and how to create REST services using FoxPro and Web Connection.


Updating Launch.prg to Latest Version in Web Connection

August 18, 2021

One of the nice improvements in recent Web Connection projects is the new `launch` command which makes it drop dead easy to start your Web Connection applications by launching Web Server, FoxPro application and browser all in one quick step. If you have an older version of Web Connection, or need to updated an earlier version of `launch.prg` to the latest version, here are some tips on how you can easily create a new `launch.prg` specific for your existing application.


Should we add Bootstrap 5.0 Support to Web Connection?

1 comment
June 28, 2021

Bootstrap 5 has been out for a while now and it was time to take it for a spin on the West Wind Message board application to see what's required to upgrade a Web Connection application to use Bootstrap 5. Here is review, some thoughts and some of my update notes.


West Wind Web Connection 7.20 has been released

March 15, 2021

Web Connection 7.20 is here. This is a maintenance release but it also features a number of new and updated features including support for Web Sockets, consolidated Administration UI, a new `OnRouting()` handler and a bunch of updates to core components.


Workflow for using wwDotnetBridge to call .NET Components

November 08, 2020

In this post I'll describe the common workflow I use when I use wwDotnetBridge to check out the .NET code I'm trying to call first in .NET before actually starting to create the FoxPro code. This helps in discovering the features available on the libraries I'm trying to call, but it also validates that I'm using the .NET code directly before I start adding that extra layer of FoxPro abstraction on top of it.


Web Connection 7.15 Release Notes

August 01, 2020

Web Connection 7.15 is here and it provides a few small enhancements as well as improved log format configuration, an updated Request Viewer that makes it easier to examine the last few requests, a few Cookie updates and a wwJsonSerializer bug fix.


Workaround for horrendously slow SUBSTR Character Parsing in FoxPro

July 03, 2020

FoxPro's string speed is reasonably good for most operations. But one shortcoming is character by character parsing which can only be accomplished via the `SUBSTR()` command, which as it turns out is horribly slow when strings get large. In this post I describe the problem and offer a couple of solutions to get better character by character parsing speed for string iteration.


FoxPro Date Rounding Errors in COM and .NET

June 04, 2020

FoxPro dates can be finicky when travelling over COM and COM Interop for .NET. Ran into a nasty issue with dates from cursors showing up as slightly rounded date values in .NET which lose some of the document definition. Here's what the problem is and how you can work around it in .NET.


Troubleshooting Asynchronous Callbacks into FoxPro Code

May 02, 2020

If you're passing FoxPro objects to COM objects and have .NET call back to you on objects that you passed makes it possible to effectively create asynchrnous applications where .NET code can process stuff in the background and notifying you when it's done or other needs to let you know that something changed. It's powerful but it brings its own set of problems in FoxPro, which wasn't design with Async code in mind. In this post I talk about some of the issue and some of the things you can do to avoid callback hell in FoxPro.


Web Connection 7.12 Release Notes

April 30, 2020

Web Connection 7.12 is here and this post goes over some of the high level improvements in some detail


Web Connection 7.10 is here

March 08, 2020

Web Connection 7.10 is out and this is the official release post with a lot of detail over what's new and what's changed. This release brings a new self-contained Web Connection Web server and part of the post goes behind the rational of adding this new server to make it easier to get started with Web Connection.


Enhancing Web Applications with VueJs

1 comment
February 06, 2020

Posting my session notes article from the 2019 SWFox conference about getting started with VueJS and using it for enhancing Web pages with VueJs much in the way we used to do it with jQuery.


Deploying and Configuring West Wind Web Connection Applications

1 comment
December 05, 2019

Need to know how to publish a Web Connection application to a new Web Server? This article takes you end to end through all the steps from setting a new Virtual Machine Server, to installing the Web Server, configuring the machine and setting up your Web application. If you're coming from an older version of Web Connection pre-7.0 you'll find that the process is a lot more automated than it has been in the past.


wwDotnetBridge: Getting and Setting COM Unsupported Values with ComValue

September 24, 2019

ComValue is a useful helper class in wwDotnetBridge that provides a wrapper around .NET Values that otherwise would not be accessible to FoxPro due to COM value incompatibilities. ComValues can be passed into .NET methods and are returned as result values for wwDotnetBridge's intrinsic indirect access methods. In this post I describe how ComValue works and why we need it in the first place.


West Wind Web Connection 7.08 Release Notes

September 01, 2019

West Wind Web Connection 7.08 is here. This is a small maintenance release with a number of bug fixes and a few small feature enhancements.


Using FoxPro to Connect to an Azure SQL Database

July 21, 2019

You can use FoxPro's SQL Server connectivity to connect to Microsoft's SQL Azure. This post describes a few things you have to do set up your application to work with Azure's SQL Server implementation which requires a little extra configuration work.


Web Connection 7.06 Release Notes

May 23, 2019

Web Connection 7.06 release notes. This is a maintenance release with a couple of cool new development time feature enhancements for Live Reload and an updated Launcher.


Web Connection 7.05 Release Notes

May 07, 2019

Web Connection 7.05 is here! This release is primarily a maintenance release that has a few small fixes and a few performance enhancements. But there are also a number of pretty cool new features that I'm pretty excited about. In this post I'll dig into some of the new features with more detail.


Building a Web Connection Live Reload Server

May 04, 2019

Live Reload is usually a client side only feature that provides the ability to make changes to client side web code - HTML, CSS and JavaScript - and have those changes immediately reflected in the browser. Web Connection provides a Browser Sync based implementation, but until v7.05 server based changes still required manual refreshes. In this post I'll describe a new 7.05 and later feature that allows you to automatically restart your Web Connection server when a code change is made and - if combined with Browser Sync - also refreshes the currently active browser page.


API Declarations in Performance Sensitive FoxPro Code

April 26, 2019

The FoxPro Declare API has been in FoxPro forever, but did you know that the actual step of calling DECLARE has significant performance overhead that often is much slower than the actual API calls? I recently ran into this checking out a third party library and decided to some closer examination and found some nice ways to speed up some of my existing API calls by separating (or static loading) declarations from invocations.


Web Connection 7.02 has been released

January 24, 2019

Web Connection 7.02 is here and this post provides a detailed look at most of the new features included in this maintenance update.


Marking up the World with Markdown and FoxPro

December 17, 2018

This post contains my session notes for the Southwest Fox 2018 session **Marking up the World with Markdown**. This article provides an overview of what Markdown is and why it is useful for generic writing tasks as well as for integration into FoxPro or Web applications. Markdown is immensely popular these days as a text entry format and in this post you learn how you can easily use it from your own FoxPro and more importantly why you might want to use it in the first place.


Web Connection Security

December 10, 2018

Security is hard especially for Web applications and configuration. This post is the White Paper for my Southwest Fox session on Web Connection Security and covers a wide range of internals of how IIS and Web Connection interact and how to configure both system level and application level security for your FoxPro Web Connection applications.


West Wind Web Connection 7.0 has been released

November 15, 2018

Web Connection 7.0 is and here is a detailed post that goes into some detail of many of the new and enhanced features in this new release


Using Browser-Sync to live refresh Server Side HTML and Script Changes

October 09, 2018

Live reloading is common in client side applications, but server side applications generally don't have the ability to automatically reload when a server side change is made. But there are tools that allow you to monitor your local development Web server - even non-NodeJs based ones - and can automatically reload the active page when a change is detected. In this post I look at how to use Browser Sync to be more productive


Fixing Windows Downloaded File Blocks and wwDotnetBridge

September 22, 2018

I'm happy to say that I've found a workaround for the nasty problem with wwDotnetBridge and not being able to load `wwdotnetbridge.dll` due to Windows file blocking for files or archives downloaded from the Internet. In this post i describe why files are blocked and how you can unblock them including a new solution that is fast and can be done from within a running application.


Testing a Web Connection COM Server with FoxPro or PowerShell

1 comment
August 15, 2018

If you run into problems with a Web Connection COM Server one of the first things you need to do is ensure that the server is properly registered and working on the Windows installation. In this post I look at using both Visual FoxPro and PowerShell to load and test to see whether a Web Connection server is installed and able to return a result.


Web Connection 6.21 is here

June 14, 2018

Web Connection 6.21 has been released. This is a small maintenance release that fixes a few small bugs and makes a few small performance tweaks. There are also a couple of new features: wwDotnetBridge Event handling for .NET Objects, new .NET Runtime Loader with better error reporting and a new Console Configuration task to fix the annoying Loopback Check that can prevent server local Windows account authentication.


IIS Server Authentication and Loopback Restrictions

June 14, 2018

If you've ever run into a problem on a Windows Server and weren't able to run a local browser and try to log in using your local network Windows credentials you might have found out the long way that your credentials are not working by default. Recently Windows 10 also seems to have enabled this policy and I noticed local Windows account log ins not working. This comes from a local Loopback access policy. In this post I describe what fails and how you can work around it both for Web Connection applications and manually.


Startup Error Tracing in West Wind Web Conection 6

June 08, 2018

One of the most common questions with Web Connection that come up are related to startup errors that cause File or COM Servers to fail during startup. These errors have been difficult to debug in the past but with Web Connection 6+ a number of improvements make it easier to avoid errors in the first place, and track them down if you do have them. In this post I go into detail on the Startup sequence of Web Connection.


Web Connection and TLS 1.2 Support

March 01, 2018

This week Authorize.NET switched of support for TLS 1.0 and 1.1, requiring all clients to use TLS 1.2. No surprise this was announced two years ago, but as is often the case two years is a long time away and so many were still caught off guard if you're running an oldish version of Windows. In this post I look at what versions of Windows don't support TLS 1.2 and how you can enable TLS 1.2 in those versions that didn't originally have support but can enable it. Unfortunately there are also several versions of Windows that don't support TLS 1.2 and we'll cover that too.


Locking down the West Wind Web Connection Admin Page

February 05, 2018

The West Wind Web Connection Admin page is the starting point for Web Connection Server Instance administration. But this page allows a number of administrative operations that should only be accessible by a properly authenticated user. I've been notified on many occasions that people have found wide open Admin pages and this post describes how to make sure your Admin pages are properly locked down


West Wind Web Connection 6.18 released

January 10, 2018

West Wind Web Connection 6.18 has been released. It's a small release with only one major feature update in the way of bringing back Apache support for Apache 2.4. Here's more info what's new.


Shutting down file-based Web Connection Instances with WM_CLOSE Messages

January 05, 2018

There are a number of issues related to shutting down specific instances of Web Connection servers remotely. Because of the way instances are managed there are difference between file and COM mode operation because file mode instances are not managed by a centralized manager. However with a few tricks you can trigger shutdown operations in a Web Connection server by hooking into Windows Events with BINDEVENT(). Here's how.


West Wind Web Connection 6.17 released

October 15, 2017

West Wind Web Connection 6.17 has been released. This post goes over the changes in more detail. This is a maintenance release with a few bug fixes and some minor feature updates.


Calling async/await .NET methods with wwDotnetBridge

October 10, 2017

More and more .NET APIs expose Async only interfaces and it might seem that calling `async` `await` code from FoxPro seems like it would be difficult. I had my doubts it would but as it turns out it does. In this post I describe how `async` `await` works in .NET and how the lower Task API is used to implement it, and more importantly how we can call async methods using the .NET Task API.


Web Connection 6.15 is Here

July 15, 2017

Web Connection 6.15 has been released and this post gives a lot more details on the new features of this update. This release is primarily focused on server loading and debugging improvements with a few relatively small but significant enhancements that improve load performance and make it easier to debug startup errors.


New Web Connection Server Startup Features in 6.15

July 01, 2017

Debugging startup issues has always been notoriously difficult in Web Connection. Starting with the forthcoming v6.15 Web Connection adds better error reporting that brings up an error page on failures and provides an easier way to log trace commands to a log file.


GAC Assemblies with wwDotnetBridge

May 22, 2017

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

1 comment
April 04, 2017

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

March 20, 2017

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.