West Wind Hero Image

Rick Strahl's FoxPro Weblog

Web Connection • FoxPro • .NET • All things Web
Contact   •   Articles   •   Products   •   Support   •  
Sponsored by:
Markdown Monster - The Markdown Editor for Windows
If you're building REST Services that is called from a Web Browser using Http client calls via `fetch()` or `XMLHttpRequest` and that calls a domain or sub-domain other than the hosting page, you need to make sure your server implements the CORS protocol, or client requests will fail. In this post I describe the basics of CORS and how you can easily implement it Web Connection.

Read more...

Time again for a small update to West Wind Web Connection. This release is primarily a bug fix release so it's highly recommended that you update to this latest 8.x version as soon as possible.

Read more...

wwDotnetBridge lets you interface with .NET code directly, but if need to access more than a handful of lines of .NET code from FoxPro, it's a good idea to create a separate dedicated .NET component and call that instead. There are many benefits to easier and more discoverable access to functionality, better performance and support for a few features that don't work well through wwDotnetBridge. In this post I show how to create a .NET component, build and run it, and how debug it as well.

Read more...

I recently picked up a Windows ARM 'Co-Pilot' capable laptop and took it for a spin running my typical spread of Windows applications and tools. I also checked out how well it works with FoxPro - here's what I found.

Read more...

Web Connection 8.1 is out. This is a small maintenance release, but it does include a few significant updates.

Read more...

Web Connection in the past has not supported > 16mb direct output via plain string based output, due to FoxPro's 16mb string limit. 16mb is a lot of text and while I generally don't recommend returning that much data as part of non-file request (which does support larger files) it's a feature request that comes up from time to time as people overrun the limit. During last weekend's SW Fox conference I heard about this issue again in a session and decided to address it once and for all and this posts describes the change and how it's implemented.

Read more...

In this very long white paper for the Southwest Fox conference, I discuss the basics of wwDotnetBridge and then demonstrate a variety of functionality with 10 examples. We'll see basic usage, how to wrap classes in FoxPro and .NET, how to use a variety of .NET 3rd party libraries, how to handle .NET events and how to make Task based async calls.

Read more...

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

Read more...

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

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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.

Read more...

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

Read more...

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.

Read more...

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.

Read more...

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

Read more...