This is an summary archive of links to articles, white papers and in
depth blog posts I've published since the late 90's. This list does not
include everything, but everything is occasionally culled to remove
content that is no longer relevant or obsolete. Enjoy.
Rebooting Database Localization for ASP.NET with West Wind Globalization 2.0
June 23rd, 2015
The West Wind Globalization library provides database resource localization for
ASP.NET Web applications by providing a host of database resource managers and providers
to serve resources from various databases. Database resource management allows for live
and interactive editing of database resources, and the tooling provides a rich Web based
editor that makes it easy to create database resource content and see the results displayed
and the abililty to switch back and forth between Resx and Database resources. In this article
Rick describes features and practical applications of this powerful toolkit.
Strongly typed AppSettings Configuration in ASP.NET 5
June 3rd, 2015
ASP.NET 5 features a new configuration system that includes a number of new configuration
sources as well as an easy way to consume strongly typed resources. In this article Rick
demonstrates how to use the basic features and show how you can use different configuration
stores to hold configuration data.
Adding minimal OWIN Identity Authentication to an Existing ASP.NET MVC Application
April 29th, 2015
ASP.NET 4 provides a new Identity Authentication/Authorization framework that's very
comprehensive and works reasonably well for new applications. However, if you have
existing applications or use custom user management, it's not very clear how to
use just the basic OWIN Authentication/Authorization layer without the full UserManager
and Entity Framework implementation. In this article Rick describes how to use the bare
minimum Identity features to hook up a custom domain model for both local and external
logins in an ASP.NET MVC application.
Using FontAwesome Fonts for HTML Radio Buttons and Checkboxes
February 10th, 2015
Spruce up your boring checkboxes and radio buttons with custom FontAwesome symbols using a
little bit of CSS. If you're tired of boring checkboxes and radio buttons, or you simply want
a more consistent look of these controls across browsers and controls check out FontAwesome
to provide you with customizable checks and boxes to use for selection boxes. In this article I'll
show how to use pure CSS to set up FontAwesome checkboxes and radios and talk about a
few gotchas I ran into along the way.
Back to Basics: UTC and TimeZones in .NET Web Apps
February 10th, 2015
Storing dates in persistent storage using UTC dates is a widely accepted best practice.
But it's surprisingly complex using date data effectively if you want to let the user see dates and
query data in their local time zone. Looking around I noticed that there's not a lot of
comprehensive info on this topic, so I decided to take notes and write down some of the approaches
I've used in this post. This article combines and overview and a number of helper routines
specifically geared towards user timezone adjustments in typical ASP.NET Web applications.
Using Cordova and Visual Studio to build iOS Mobile Apps
January 12nd, 2015
Cordova is a hybrid mobile toolset to build Mobile applications using Web
preview of its toolset for building Cordova applications with Visual Studio.
In this article Rick takes a look at the Visual Studio Tools for Apache Cordova
for building, debugging and running iOS mobile applications from Windows.
A First Look at ASP.NET vNext
January 2nd, 2015
In this article Rick takes you on a tour of ASP.NET vNext from the ground up,
starting with some of the low level, command line features up to the high level
frameworks to demonstrate the differences in this new stack, while still staying
true to the concepts and ideology that has made ASP.NET such a popular platform
over the last 15 years. While this release marks breaking changes, the concepts
to build applications should be at once familiar and comfortable to existing
ASP.NET vNext: The Next Generation
January 2nd, 2015
ASP.NET vNext reimagines the core ASP.NET framework from the ground up with a more modern stack
that provides better performance, lower resource consumption, and an async model for improved
performance, scalability, and economy in cloud-based hosting scenarios. In this article Rick
describes some of the motivations behind this radical change, why it?s needed, and how it's
going to affect planning going forward with ASP.NET.
Creating multi-target NuGet Packages with vNext
December 2nd, 2014
The ASP.NET vNext Platform makes it much easier to create multi-targeted NuGet packages,
through support of multiple build targets from a single project and the ability to compile
project output directly to a NuGet package. This article shows you how you can mix and
match various versions of .NET and the new vNext platform all in a single assembly right
out of Visual Studio 2015.
The broken Promise of the Mobile Web
August 18th, 2014
The Mobile Web has come a long way to provide the abillity to create rich UI and
interactive, immersive and smooth Web based mobile applications. But there are still
big gaps between mobile device features and what's available to Web developers when
interacting with mobile devices. In this post I cover and contrast what's wrong
with mobile Web development today and where I hope we are going, going forward.
Using FiddlerCore to capture HTTP requests with .NET
July 29th, 2014
If you have an application that needs to capture HTTP or monitor HTTP traffic, FiddlerCore
is the tool you can use to do it easily. In this post I demonstrate how easy it
is to integrate FiddlerCore into an application to capture HTTP requests and save
the data, as well as discuss how to deal with configuring FiddlerCore for SSL Certificate
installation for HTTPS captures.
A dynamic RequireSsl Attribute for ASP.NET MVC
June 18th, 2014
In ASP.NET MVC the RequireHttps attribute allows for securing controllers and
controller methods, but it's limited to either on or off statically. In this post
I discuss a
custom attribute that can dynamically set SSL usage based on a configuration setting
Creating ASP.NET MVC Negotiated Content Results
May 20th, 2014
ASP.NET MVC doesn't directly support content negotiation, but with a little bit of
work it's very straight forward to implement a NegotiatedContent ActionResult
that can switch its response type based on the Accept header.
Filtering List Data with a jQuery-searchFilter Plugin
May 10th, 2014
When dealing with HTML based list data, filtering that data based on search text
is a nice UI feature that's very useful for quickly finding what you're looking for.
In this post I show you how to can create this nice UI effect with a few lines of
jQuery code, and then provide a jQuery plug-in that simplifies the process further.
Auto Selecting Cultures for Localization in ASP.NET
March 27th, 2014
When creating multi-language Web sites, one of the key issues you need to deal with
is how to assign a culture to display the appropriate resources. Whether you need to
auto-switch locales based on browser language, or explicitly assign a locale based
on user preferences there is generally some code logic involved in making these decisions.
In this post I show what options are available and a small helper that simplifies
setting the culture in ASP.NET applications.
Using CSS Transitions to SlideUp and SlideDown
March 27th, 2014
CSS Transitions are a nice way to replace jQuery animations with smoother counterparts.
Some transitions however, like height and width transitions can be tricky to handle
with pure CSS code due to container sizing issues. In this post I show how create
create transitions to mimic most of jQuery's slideUp() and slideDown() functions
using CSS and small jQuery plug-in.
Accepting Raw Request Body Content with ASP.NET Web API
December 13th, 2014
One ASP.NET Web API related question that frequently comes up frequently is how
to capture the raw request content to a simple parameter on a controller method.
Turns out that's not as easy as it should be. In this post I discuss how to natively
capture the raw request content and then create a [NakedBody] attribute that makes
it easy capture the raw content in a string or byte parameter.
Use IIS Application Initialization for keeping ASP.NET Apps alive
October 2nd, 2013
Ever want to run a service-like, always-on application inside of ASP.NET instead
of creating a Windows Service or running a Console application? Need to make sure
that your ASP.NET application is always running and comes up immediately after
an Application Pool restart even if nobody hits your site? The IIS Application
Initialization Module provides this functionality in IIS 7 and later, making it
much easier to create always-on IIS applications.
Self Hosting SignalR in a Windows Service
September 22nd, 2013
Self-hosting of SignalR in a standalone application opens
up all sorts of opportunities for dashboard and notification style Web applications
frontends that weren't easy to create previously. With SignalR's real time communication
directly from a backend application, it's almost too easy to build rich messaging
front ends from server applications. In this article I show an example of a Windows Service
that integrates SignalR to provide real time status updates and describe the required
process of bringing up SignalR from within that service application.
A first look at ASP.NET SignalR
May 22nd, 2013
Last month I finally had a chance to use SignalR in a live project for the first time,
and I've been impressed by what this technology offers to .NET developers. It's easy
to use and provides rich real-time two way messaging between client and server applications,
as well as the ability to broadcast message to all connected clients.
This is technology that offers many opportunities to rethink of what we can build
with Web applications today.
A WebAPI Basic Authentication Authorization Filter
Security is a requirement in most Web applications and ASP.NET WebApi is no exception.
Recently I needed to implement user based security in a WebApi application that's easily
accessible from a variety of clients and the request was specifically for Basic Authentication
support. In this article I describe a simple AuthorizationFilter based implementation of
Basic Authentication for ASP.NET WebApi.
Using plUpload to upload Files with ASP.NET
plUpload is a popular client side multi-file upload component. In this article I describe a
small library that abstracts the server side processing of uploaded files with an ASP.NET HTTP handler
and demonstrate putting it all together with a small Image Upload sample Web page.
Building a better .NET Application Configuration Class
December 28th, 2012
Application configuration is a key feature for application customization and adaptability
and .NET provides some fairly decent built-in support for configuration management. Personally
however I prefer a code-first approach to configuration management and so I've long ago
created a custom component to handle configuration using strongly typed .NET classes that
can read and write configuration data from various data stores. In this article I describe
the built-in features in .NET and then demonstrate the Westwind ApplicationConfiguration component
to show how configuration management in your apps can be even easier.
WCF WS-Security and WSE Nonce Authentication
November 24th, 2012
WS-Security is built into WCF, but it's quite common to have Web Services that require Nonce Authentication
using the WSE protocol that WCF does not natively support. In this article I review how to use
WS-Security with WCF and how you can customize the headers to provide Nonce/WSE support
for your service client.
Using JSON.NET for dynamic JSON parsing
August 30, 2012
Parsing JSON dynamically rather than statically serializing into objects is becoming much more common
with today's applications consuming many services of varying complexity. Sometimes you don't need to map an
entire API, but only need to parse a few items out of a larger JSON response. Using JSON.NET and
JObject,JArray,JValue makes it very easy to dynamically parse and read JSON data at runtime and
manipulate it in a variety of different ways. Here's how.
An Introduction to ASP.NET Web API
August 19, 2012
This article is a practical introduction and hands on overview of ASP.NET Web API. From the basics
of setting up a new API Controller to calling the service via AJAX calls to handling errors, dealing
with model binding this article serves as tour of the core features of Web API by example.
Creating STA COM Components in ASP.NET
August 15, 2012
If you still have to use STA COM components with ASP.NET you'll find that other than
WebForms STA COM support in ASP.NET is non-existant. If you want to use MVC, Web Services
or WCF natively you'll find they all run with MTA and have no easy mechanism to allow STA
components to run reliably. In this article I show how you can create STA compatible handlers
for MVC and ASMX and WCF Web Services.
Calling .NET Components from Visual FoxPro using wwDotnetBridge
October 25, 2012
.NET is here to stay, and you can take advantage of the rich functionality in the .NET framework from Visual FoxPro.
You can access code in the .NET framework as well as Microsoft, third party and your own .NET libraries.
This article expands on my previous COM interop articles and introduces the open source wwDotnetBridge library
that lets you instantiate and interact with most .NET types directly from Visual FoxPro code. It's a great way
to extend Visual FoxPro's reach as well as allowing FoxPro developers to create their own .NET components that can
be interacted with from FoxPro.
Calling FoxPro COM Components from ASP.NET Revisited
October 25, 2012
If you need to call FoxPro COM components from ASP.NET recent changes in .NET 4.0 have made
this process a bit easier. This article expands on how to create FoxPro COM components in .NET and
ASP.NET in particular by using more modern technologies like ASP.NET MVC and Web Services to call
FoxPro COM Components taking advantage of the Dynamic language improvements in .NET that make it much
easier to consume FoxPro COM components.
.NET HTML Sanitation for rich HTML Input
July 19, 2012
Securing HTML input from users in Web applications is a thorny subject, but there are not many good solutions
out there for .NET. In this article I describe an HTML sanitation scenario and a custom solution I used
to allow posting of relatively rich HTML on a Web site.
Accessing Spatial Data with SQL Server and Entity Framework 5.0
June 20, 2012
Spatial data has been available for a while in SQL Server, but if you wanted to use it with Entiry Framework
you had to jump through some hoops. In this article I show how basic SQL Spatial data works and then how you
can utilize the new features in EF 5.0 and later to directly access spatial data using your CodeFirst models.
Rendering ASP.NET Views to String
May 30th, 2012
Creating templated text output that's not tied to the HTTP output stream is a frequent requirement
in many applications. Rendering confirmation emails, password resets, validations and notifications
all generate text through templates that require string or stream output that doesn't get sent to HTTP.
In this article I show a few helpers that make it easy to create string output from MVC Views.
Creating JSONP Formatter for ASP.NET Web API
April 2nd, 2012
Web API doesn't include native JSONP support, but it's pretty easy to create a custom formatter that handles this task.
Here's how to create a JsonpFormatter and hook it up as well as a short review of how JSONP works.
Creating a dynamic, extensible C# Expando Object
May 30th, 2012
Dynamic types in .NET make it very easy to create custom types in .NET. In this article we'll look
at using a custom dynamic type that can extend an existing type at runtime with dynamic properties and methods.
Using the HTML5 <input type="file" multiple="multiple"> Tag in ASP.NET
March 6th, 2012
Upload controls in HTML are a pain, but HTML5 at least allows for multiple files to selected from the file picker to
effectively upload multiple files from a single control. Here's how you use the HTML5 control and how you handle
receiving the files in ASP.NET.
Debugging Application_Start and Module Initialization with IIS and Visual Studio
December 15, 2011
If you're running the full version of IIS and you try to debug your Web application's startup code in Application_Start
you might have found that you can't debug this code as the debugger doesn't break there. Here's why
and some easy ways you can work around this limitation.
A Key Code Checker for DOM Keyboard Events
There are browser difference and different behaviors for various key events. Here's a refresher on
key codes in the various events available.
Creating a Dynamic DataReader for easier Property Access
How do you display editable time values in Web applications? While date display has a pretty clear UI
choice with date pickers, visual time picking isn't very efficient. In this post I show a keyboard based
alternative to navigating and entering time (and date values) values using hotkeys hooked up through
a jQuery plugin.
jQuery Time Entry with Time Navigation Keys
November 30th, 2011
How do you display editable time values in Web applications? While date display has a pretty clear UI
choice with date pickers, visual time picking isn't very efficient. In this post I show a keyboard based
alternative to navigating and entering time (and date values) values using hotkeys hooked up through
a jQuery plugin.
Using the West Wind Web Toolkit to set up AJAX and REST Services
November 3rd, 2011
In this post I describe how to use the West Wind Web Toolkit to create an AJAX/REST service that can serve data
Create Side by Side registrationless COM Manifests with Visual Studio
October 9th, 2011
Registrationless COM makes it possible to run COM components without registry configuration making for an xCopy deployable solution. The process is not terribly difficult
but not easy to debug if something goes wrong. Here's how you can use registrationless COM in your apps.
An Xml Serializable PropertyBag Dictionary Class for .NET
October 9th, 2011
.NET includes many Dictionary related types but serialization of Dictionaries leaves a
lot to be desired. In this post I show how to create a serializable PropertyBag class
that makes it easy to XmlSerialize arbitrary key/value pairs into XML and back.
Web Browser Control – Specifying the IE Version
May 21st, 2011
The Web Browser control's default rendering mode is not very standards compliant - it's stuck in IE 7
quirks mode which is less than ideal for any HTML preview operations. It also fails to display the
latest CSS and HTML 5 enhancements of IE 9. Luckily there's a workaround via some registry hacks that
you can add to make your application render the Web Browser control using a specific version of IE.
Custom ASP.NET Routing to an HttpHandler
March 28th, 2011
Routing support in ASP.NET 4.0 has been vastly improved, but custom routing still involves a fairly complex process of creating RouteHandlers and mapping requests
properly. In this post I show an example of how to create custom routes automatically via Attribute route mapping
for Http Handler endpoints.
A jQuery Plug-in to monitor Html Element CSS Changes
Feb. 22nd, 2011
there are no events that fire if HTML elements are moved around the document either via dragging
or by programmatic location changes. As a workaround I created a jQuery CSS monitoring plugin
that fires event when a given CSS property changes.
Hosting the Razor Engine for Templating in Non-Web applications
December 28, 2010
Microsoft's new Razor View Engine is now available with WebMatrix and MVC 3 and the good news is that the engine
can be easily and efficiently hosted in non-Web applications. In this article I'll discuss a library that makes it
easy to embed Razor based templating into your own applications and in the process describe how Razor hosting works.
Making Sense of ASP.NET Paths
January 10, 2010
ASP.NET includes a plethora of functions and utilities to retrieve information about the current requests
and paths in general. So much so that it's often hard to remember exactly which path property or method
you are actually looking for. This article summarizes many of the paths and path related operations that
are available in ASP.NET.
A free standing ASP.NET Pager Web Control
December 18, 2009
ASP.NET includes several controls that support paging but they vary fairly drastically for different
controls and can't be controlled purely by assignment. This article discusses the shortcomings of native
paging in ASP.NET and introduces a free standing pager control that is generic and works without dependencies
on DataSource or other specific ASP.NET controls and provides SEO friendly navigation.
Capturing and Transforming ASP.NET Output with Response.Filter
November 13th, 2009
Capturing ASP.NET response output can be done in a variety of ways. In this
article I discuss how you can use a Response.Filter to capture output and transform it
using a simple class that provides event hooks to make it easy to capture and transform output generically.
Integrating OpenID in an ASP.NET MVC Application using DotNetOpenAuth
September 17th, 2009
OpenId is getting more popular and with it come requests to
integrate it into Web sites as a user authentication mechanism. In
this article I give an overview of what OpenId is, how it works
and demonstrate implementing it in an MVC Web application using the
DotNetOpenAuth toolkit with a detailed walk through of the integration
Making jQuery Calls to WCF/ASMX with a ServiceProxy Client
September 10th, 2009
This article describes a self-contained mechanism for calling
WCF/ASMX services using only the jQuery client library and a bit of
custom code by providing a reusable ServiceProxy class that makes
calling service methods as easy as a single method call.
WPF Localization Guidance
July 1st, 2009
This article introduces the core localization features in the .NET framework relevant for WPF as well
as specific localization approaches supported for WPF. Covered are the static and rigid approach using
LocBaml as well as a couple of approaches using a Resx markup extension or using a more Windows Forms
based approach using attached properties. This article is hosted on the CodePlex site as a downloadable
Microsoft Word document.
Creating Visual Studio Project Templates from your Web Projects
April 27, 2009
Visual Studio provides an easy way to create project
templates from an existing project and this makes it real easy to create
custom project types that are tailored to the way that you work.
.closeable Plug-in for jQuery
April 14, 2009
Sometimes you just want to close DOM elements and this little
plug-in provides an easy way to display an icon, handle the closing
of the item and allow for handler to fire in response. Simple
reusable functionality and a small, useful example of jQuery plug-in
Using Enums in ASP.NET List Controls
February 20, 2009
Sometimes it can be handy to display data from Enum values in
lists in the user interface as a quick way to present pick lists,
especially in administration interfaces. Here is how you can load up
enum values in DropDown lists along with some ideas on when this
practice does and does not make sense.
Monitoring HTTP Output with Fiddler in .NET Clients and Proxies
January 14th, 2009
When working with HTTP clients or Web Services being able to capture
HTTP output is crucial. HTTP monitors are invaluable in this process and
using them with .NET clients requires some special care. Here's what you
need to know.
jQuery and ASP.NET (Part 2: Making Ajax Callbacks to ASP.NET)
December 3, 2008
Part 2 of this series introduces focuses on connectivity
between the jQuery client and ASP.NET server. This article discusses the
Ajax functionality available in jQuery and demonstrates a variety of
ways on how to retrieve data from the server and use on the client with
jQuery. Topics covered using .load() with external content, making Page
callbacks with HTML fragments and JSON results and using WCF and ASMX
service to create raw Ajax applications that only consume server data.
An Introduction to jQuery (Part 1: The Client Side)
December 3, 2008
library and provides an overview of the functionality this powerful
library provides. Article starts with an overview of what jQuery is and
does followed by a walkthrough of some of jQuery's prominent features
starting with Selectors, Wrapped Set functions, event handling all the
way up to simple plug-in creation. Part 1 deals purely with client side
functionality. Part 2 addresses ASP.NET integration and AJAX
Digitally signing and validating an XML Document
March 1, 2008
This article describes the complete process of signing an XML
document with a private 7key certificate, and then validating the same
document with the public key. The includes step by step instructions
including creating a test certificate and installing it and how to use
the certificate from your code for signing and validation. It also
covers installation of a full certificate from a qualified CA which is a
slightly different process. A sample class that works with any SOAP
Envelope XML document is provided to demonstrate.
Setting up and running Subversion and Tortoise SVN
August 9, 2007
This article is a quick start step by step guide for setting
up Subversion for Source Control and using Tortoise SVN to set up and
manage your repository and local copies of projects. This article uses a
Visual Studio Solution as an example, but the same concepts can be
applied to any tool or set of files for that matter. The article
discusses installation and setup, creating of a repository, creating
local copies and basic day to day operations.
Creating a data driven ASP.NET Resource Provider & Editor
July 7, 2007
Find out how to build an ASP.NET 2.0 Resource Provider that
uses database data for its localization storage rather than Resx files.
Database resources can be much more flexible and this article
demonstrates how to build a powerful ASP.NET resource editing front end
that allows editing of resource data in a live ASP.NET application in a
context sensitive manner.
Introduction to Localization in ASP.NET 2.0
July 2, 2007
Check out the localization features in ASP.NET 2.0 and
understand how they work under the covers. This introduction focuses on
the ASP.NET 2.0 specific technology for localization and discusses how
Resource Providers are used to provide the various integrated
localization features in ASP.NET 2.0 and Visual Studio .NET. The focus
of this article is on the technology rather on the deep semantics of
localization. Serves as an introduction for the Resource Provider
Screen Capture Plugin for Windows Live Writer
March 25, 2007
This article demonstrates how to build a Windows Live Writer
plugin that allows for embedding screenshots into the current Blog entry
being edited. The article describes the basics of content plugins for
Live Writer and uses a plugin that uses SnagIt from Techsmith to provide
an easy and flexible way to do screen captures directly into your blog
content using C# code...
Calling and Hosting FoxPro Web Services through .NET
January 9th, 2007
Web Services with Visual FoxPro have always been problematic
with Visual FoxPro especially if dealing with services that publish
complex types. The most common Web Service tool for FoxPro is the SOAP
Toolkit which has been discontinued and has a host of problems dealing
with complex types. In this article I discuss how you can leverage .NET
to make Web Service calls from Visual FoxPro and how to host Visual
FoxPro components in .NET Web Services. The article also demonstrates
how to use Windows Communications Foundation (WCF) for the same tasks.
two-way data binding Extender Control for ASP.NET 2.0
November 15, 2006
As much as ASP.NET 2.0 improves data binding, one aspect -
simple control binding for controls like textboxes, checkboxes and
selected values of lists for example - is still tedious especially when
it comes to unbinding data. This article demonstrates a
powerful extender control that can provide easy to use two-way databinding
semantics. Using the control you can easily bind and unbind any control
properties to any data field or property of an object with full control
over binding, unbinding and dealing with binding errors at runtime. The article
demonstrates the control functionality and discusses the design of building an ASP.NET
2.0 extender control that provides the flexibility to extend any existing controls
on a Page, Master Page or
User Control. Article is published on MSDN
Integrating Electronic Payment Processing into ASP.NET
April 11th, 2006
Find out to integrate Credit Card processing into your
ASP.NET applications. This long article starts at the beginning
discussing how the actual payment processing works from the provider
level and delves into details with specific implementations for several
common gateway services and a set of classes you can use for payment
processing. Finally an example shows how to integrate these classes in a
Advanced FoxPro COM Interop Article Series
December 26th, 2005
Are you using COM Interop from Visual FoxPro to communicate
with .NET? This series of articles takes you
through some of the scenarios you are likely to run into once you go
beyond the basics of calling simple COM objects and show more
sophisticated .NET functionality that you can take advantage of in your
FoxPro code with a little extra work.
Passing objects between FoxPro and .NET COM Components
Handling .NET Events in FoxPro via COM Interop
Creating multi-threaded components for COM Interop
A low-level Look at the ASP.NET Architecture
July 18th, 2006
Ever wonder how requests get into the ASP.NET pipeline from IIS?
Find out about the low level plumbing of ASP.NET starting with a
detailed discussion of how requests route from IIS, through the ASP.NET
ISAPI extension into the ISAPRuntime and finally into the ASP.NET
pipeline for HttpApplication processing with Http Modules and Handlers.
This article takes a on the low-level aspects of ASP.NET for those that
want to understand the inner workings of the framework.
Building a better Application Configuration Settings Class
July 18th, 2006
NET provides rudimentary support for storing and retrieving
configuration settings out of .config files. But there are a number of
important features missing. Find out how to build a better mousetrap by
creating a class that provides strong typing, read/write capability and
encryption for values stored in your configuration files.
Using Unicode in Visual FoxPro Web and Desktop Applications
July 18th, 2006
Visual FoxPro doesn’t have native Unicode support which means
that you have to do some extra work and understand how the process works
in order to work with it. In this article I’ll describe the issues in
the context of supporting of multiple languages simultaneously, rather
than through the view of code page translation which Visual FoxPro
readily supports. I’ll start with an overview of the issues and how to
work with Unicode in general, then show how to retrieve and update
Unicode data using Visual FoxPro and SQL Server data. Finally I'll talk
about how to get the Unicode content to display both in your Web and
Desktop user interfaces.
PayPal Integration into e-Commerce Solutions with ASP.NET
September 19th, 2004
PayPal provides one mechanism to process payments on the Internet.
While it's not the first choice for payment processing for typical
e-Commerce sites it does provide additional choices for those customers
that don't feel comfortable paying by credit card over the Web. It's
also an easy solution for first time Shop owners who might not want to
invest in a full merchant account. This article describes PayPal
integration from the perspective of a full featured e-Commerce
application and focuses on integrating PayPal seamlessly into this
environment. The article also provides a PayPal helper class
(ASP.NET/C#) and a skeleton sample application that demonstrates the
process and makes it easy to hook your own code into. Although the code
provided is .NET, the concepts in this article apply to any Web
Calling .Net Web Services for Data Access from Visual FoxPro
July 7th, 2004
Find out how to create a .Net Web Service that serves up data
in a variety of ways, then see how to consume this data with Visual
FoxPro. .Net Web Services are easy to develop, debug and deploy, but
consuming the data, especially with Visual FoxPro is not always as
straight forward as you think. This article discusses how to pass
complex data between .Net Web Services and Visual FoxPro and provides
several tools to facilitate and standardize the process of building
solid Web Service clients for your applications.
Building a Web XML Data Service with Visual FoxPro
March 5th, 2004
Have you ever wanted to build a remote data access mechanism
into an application where you can talk to data that is coming over the
Web rather than from a local or network data source? Wouldn’t it be cool
if you simply pointed at a URL and could remotely execute some SQL code
and return data to you on the client? In this article Rick shows how to
build a generic Web Sql data service that can be used with any Visual
FoxPro based Web backend and any Visual FoxPro client to provide remote
data access to Visual FoxPro and ODBC datasources.
Using the Shell API and Internet Explorer Components with VFP
August 8th, 2003
Want to integrate external content into your Visual FoxPro
desktop applications? Then look into the Shell APIs that allow using
Windows components easily in your own applications. This article digs
into using the ShellExecute API, the InternetExplorer.Application COM
object and the Microsoft Web Browser ActiveX control for displaying Web
and Windows content dynamically in your own applications. Article
includes lots of short immediately useful samples and a detailed
reference of how to use the HTML DOM object model from VFP.
Web Farming with Network Load Balancing in Windows Server 2003
June 4th, 2003
Hit the limits of your hardware for a Web application? Find out how to
scale out your application to run on multiple machines using the Windows
Server Network Load Balancing Service. Windows Server 2003 brings a new
front end to the Network Load Balancing Service that makes it easier and
cheaper to implement a Web Farm of multiple redundant servers that can
work in tandem to handle the meanest traffic you can throw at it.
Using the ASP.Net Runtime for Scripting in Desktop Applications
June 4th, 2003
Want to embed the power of ASP.Net into your application to provide
rich and dynamic HTML displays in your applications? Add the ability to
dynamically execute script code that is changeable after compilation?
Don't want to give up debugging and the rich VS environment even in script
code? Then take a look at hooking the ASP.Net runtime into your own
applications. This article describes what it takes to integreate the
ASP.Net runtime in desktop apps and provides an easy to use class that
makes integration a matter of a few lines of code.
Creating a custom Statusbar Control in Visual FoxPro
April 20th, 2003
Irritated by the lack of Theme support and inconsistent
behavior of the Statusbar control in MSCOMCTL.OCX? This article
describes how to take advantage of a number of Visual FoxPro 8's new
features to build a useful replacement to the MSCOMTL statusbar control.
Besides showing off some new VFP features like collections, BINDEVENTS,
the new Empty object and ADDPROPERTY, it provides a ready to use class
that provides the most common functionality of the StatusBar with VFP
Using .NET Components via COM from Visual FoxPro
January 2nd, 2003
This article describes how to use .Net components from unmanaged
applications such as Visual FoxPro or Visual Basic. The topics describe
the basic process of creating .Net components and exporting them to COM
and then delves into additional topics of how to pass and access various
special types passed over the COM boundaries. In addition, the article
also points out a number of things to watch out for such as debugging,
installation, dealing with type issues and more.
Calling VFP COM components from ASP.NET
January 1st, 2003
Find out how to call VFP COM components from .Net and
specifically ASP.Net. The article introduces the basics of importing COM
components into .Net and then referencing the component. It also touches
on how to pass various types of data between VFP and .Net when import
types don't work. You'll also learn how to debug COM components from ASP/ASP.Net
as well as the performance implications of using VFP components in ASP.Net.
.NET Interop for Visual FoxPro
Sept. 23, 2002
Find out how you can use VFP code in .NET and how to use .NET code
in Visual FoxPro, in this comprehensive article that covers a number of
different ways that you can integrate Visual FoxPro and .NET. The main
three areas that are discussed are using the VFP OleDb provider, COM
Interop both calling VFP components from .NET (and ASP.NET specifically)
and calling .NET components from VFP and finally using Web Services for
interop. The document points out some pitfalls and workarounds and tricks
for working with data retrieved from .NET. This article is very detailed
and hence fairly long at 45 printed pages.
Dynamically executing code in .NET
Sept. 8th, 2002
This article discusses in detail how to execute code dynamically
by creating code and compiling it at runtime. This is a useful feature for
extending applications with user extensions or for adding support for
advanced templating. The article discusses the process of compiling code
and utilizing the new assembly. Also provided are classes that simplify
the process and an ASP like script parser that can be plugged into any
application with a few lines of code.
Automatic Code Updates over the Web with Visual FoxPro
Ever have that sinking feeling when you find a critical bug in an
application that's gone out to a few hundred or more clients? How are you
going to update these installations without a lot of fuss and tracking
down customers with the bad news? This article describes how to build
automatic version checks and code updates into your desktop applications.
The detailed article discusses the process and provides a class that makes
this job easy.
Retrieve HTTP content with .NET
This article discusses the .NET WebRequest and WebResponse classes
used to retrieve HTTP content over the Web in detail. In the process a
number of related .NET development issues are described including stream
handling, string encoding, using delegates, implementing events and
creating new threads to run HTTP requests simultaneously. The article also
provides a preliminary implementation of a wwHttp wrapper class that
abstracts many of the features of the .NET classes into a simpler front
Visual Foxpro Reports on the Web with Adobe Acrobat
Ever wanted to run a Visual FoxPro report over the Web without
having to recode it in HTML or forcing it through some hokey HTML converter? Find out how
you can use Adobe Acrobat's PDFWriter software to generate reports on the fly and display
them on the Web. Looking like the real thing! This article discusses how it works and
provides a class simplify the process. This article and code has been
updated for Acrobat 5.0, AmyUni and ActivePDF drivers.
Passing data over .NET Web Services
This article is a continuation of the introductory Web Services article
and expands with specific examples of passing ADO.NET DataSet objects over
Web Services to be consumed in a Windows Form application. The article
discusses the DataSet object in some detail and delves into how data is
consumed and displayed in the Windows Form environment along with a number
of related issues such as security.
Using the Office Web Components to create dynamic graphs
for GUI and Web applications
Graphs can add significant impact to applications and you can use the
Office Web Components to generate graphs easily. This article shows how
the OWC work and provides a Visual FoxPro class that wraps the
functionality to generate charts directly from Fox cursors and arrays.
Web Services with .NET and Visual Studio.NET
Find out how Web Services work and are created in the .Net framework. This
article introduces the concepts of Web Services, the technology and then
demonstrates how Web Services are created and consumed via several
examples. Source code available for download.
long Web Requests with Asynchronous Request Processing
Running long requests on a Web server can be problematic since
long requests can tie up valuable Web server resources and not give the
user feedback on the operation running. In this article Rick shows a
message based approach to offload long requests to application servers
while providing the browser with information on progress.
IIS via code with the IISAdmin Objects
As you build Web applications it's becoming ever more important
to configure the server under program control for install routines for
distribution and replication of functionality. This article shows how to
perform common tasks like creating virtuals and scriptmaps and a few other
tips that you'll need to create your own Web install wizards.
SOAP Web Service with West Wind Web Connection
Find out how to build a Web Service that exposes Stock quote
information from a Web Serivce, then learn how to consume and use that
data in a variety of different environments. This article describes the
concepts of SOAP and Web Services and shows a live example you run online
and play with.
Services in distributed applications
Find out about generic XML Data Services that can provide data
directly to your client application. This article discusses the SQL 2000
XML features as well as a VFP based XML data server implementation that
lets you serve VFP and ODBC data from a VFP backend application.
Building distributed applications with XML messaging
Have you been thinking about using XML in your applications,
but aren't quite sure why and how to use it intelligently? This article
discusses why XML is an important technology especially in the context of
distributed applications that run over the Internet. The article starts
with an overview and then jumps into practical examples that demonstrate
how you can easily convert VFP data and objects into XML and then move
this data over the Web via HTTP. Several examples show how you can share
and access this XML based data with just a few lines of code.
Balancing Web Application with Windows 2000 Advanced Server
Find out how to build scalable Web applications that span
multiple servers in a Web Server Farm environment. Windows 2000 Advanced Server ships with the Network Load
Balancing service that can handle
large amounts of traffic by spreading the load across multiple redundant
machines. Find out how to use this feature and what it means to your Web
Using SOAP to call Remote Objects
Check out how to use Microsoft's Simple Object Access Protocol
(SOAP) toolkit to call remote functions and component methods over the
Web. This paper describes how to use the toolkit and how to create and
call components from Visual FoxPro as well as examples on how to create
custom SOAP clients.
VFP COM components with Active Server Pages
Active Server Pages and Visual FoxPro both use objects to expose functionality
for your application development. This paper describes the basics and more advanced topics
on creating, debugging, installing, optimizing and maintaining COM VFP components in
Active Server applications. It also shows how to create more flexible Active Server
applications that take advantage of ASP's built in objects and ADO inside of Visual
FoxPro. You'll also find out how create objects in Visual FoxPro and use them inside of
ASP pages. There are also a few hints on debugging COM objects built in
Stress Testing Web
Applications with Microsoft's Web Application Stress Tool
As Web development is becoming more prevalent, the need to test
Web applications in order to determine the breaking points on a given set
of hardware becomes very important. Microsoft's Web Application Stress
Tool provides an easy way to test Web applications in a realistic
environment that simulates large numbers of users. This article describes
the test tool as well as discussing stress testing issues that you need to
think about when using it.
Using Microsoft Transaction
Server with VFP11/12/99
Microsoft Transaction Server is a big part of Microsoft's
Enterprise strategy, but the functionality and features of this powerful
system component is often misunderstood and misjudged. This article
discusses what MTS is and how it works and most importantly how it affects
your VFP applications in various scenarios.
Distributed Applications over HTTP11/12/99
Tired of hearing about having to rewrite your applications with an HTML
interface? Tired of the limitations of an HTML based user interface? Here's some
information on how to take advantage of Visual FoxPro on both the client and the server
ends of the Web for building rich distributed applications that can take advantage of the
Web's architecture without HTML. Discusses HTTP data transfers, WinInet and specific
examples of how you can use this technology built into the FREE wwIPStuff
class available from this site.
Internet Enabling Visual FoxPro Applications4/22/99
Find out how to enhance your existing Visual FoxPro applications with Internet
functionality without having to do a full Web conversion. Learn how using a few
simple techniques that don't require much code can spruce up exsiting applications. This
document describes how to integrate Hyperlinks, Email, FTP and HTTP access, a few ways to
access data on the server, use DCOM to access COM objects on the server and use RDS to
connect to data over an HTTP connection.
Scale Web Applications with Visual FoxPro6/3/98
This document contains my session notes from Visual FoxPro DevCon '98 and discusses some
of the issues involved in building a high volume Web site using a live site as an example.
The Surplus Direct site is discussed in
detail with descriptions of some of the issues of integrating FoxPro development with the
HTML design, dealing with server management and site analysis, scaling the site for
traffic peaks and ever increasing load and how to deal with security issues. This document
also talks about some of the new VFP 6.0 scalability features and how they affect server
Visual FoxPro COM objects from Visual C++10/18/98
Find out several different way of how you can access Visual FoxPro COM
objects from Visual C++. This white paper describes how to use native COM IDispatch calls,
using the ATL CComDispatchDriver class and using VC++ smart pointer type library imports
for accessing your servers. Also includes some discussion of how VFP COM objects are
implemented and some utility code useful for accessing COM objects.
Microsoft's FoxISAPI 6/3/98
This document contains my session notes from the Visual FoxPro DevCon '98.
Discusses the basic mechanics of FoxISAPI and introduces by discussion a framework that
simplifies processing requests and generating output quickly.
FoxPro COM components with IIS 4.0 12/27/97
Things have changed for using COM/Automation servers with IIS in the latest
version. This document overviews what it takes to configure, debug and run your VFP COM
objects under IIS 4.0.
Active Directory and the IIS Admin Objects with VFP 12/27/97
Active Directory is a new Microsoft Operating System service that allows a
common access interface to NT system components for resource and hardware mapping. Active
Directory will be prominent feature of NT 5.0, but it's implemented today for
administration of IIS 4.0 and Transaction Server. This article discusses how you can
access ActiveDirectory from VFP and a component that helps make the job easier.
Things have changed for using COM/Automation servers with IIS in the latest version.
Connectivity on the Internet with Visual FoxPro
Want to find out more about connecting databases in general and Visual FoxPro specifically
to the Web? This HTML document is based on my DevCon '96 session notes
and provides an overview on how to tie backend applications to Web pages. This document
also goes into some detail on how FoxISAPI, ActiveX Server and Web Connection work.Powerpoint slides are also available.
Visual FoxPro COM objects from Visual C++08/18/98
Find out several different way of how you can access COM objects through
IDispatch interfaces from Visual C++. This document describes how to use native COM
IDispatch calls, using the ATL CComDispatchDriver class and using VC++ smart pointer type
library imports for accessing your servers.