SECTION 1-Internet Technologies
Chapter 1: Introduction
Who should read this book
How this book works
What we'll cover
What you need to work through the book
What you should know about me
Is the Web in your future?
Commercial Internet development is exploding
The move to develop the active Web
Why build a Web application?
Advantages of building Web applications
Distribute widely, administer centrally
Universal client interface
The application development platform of the future
Limitations to building Web applications
Configuration issues
Interface limitations of HTML
Server-based programming model
Another state of mind
Take a load off
Security is not optional

Chapter 2: Internet Application Technologies
Open standards open doors to the world
Of clients and servers
Servers
Clients
Clients on a diet
HTTP makes clients and servers go 'round
From Web browser to Web server
A closer look at the server side
ISAPI, the high-performance extension interface
Calling all Visual FoxPro servers
Microsoft's Component Object Model-
The glue tying Windows to the Web
COM and Visual FoxPro
What else do you need to know?

Chapter 3: Setting Up
Windows NT-Platform of choice for Web applications
Internet Information Server
Configuration of the site
SSL and secure certificates
Active Server application options
Explore the dialogs
IIS admin objects-do it programmatically
Starting out

SECTION 2-Server-Side Development
CHAPTER 4: Active Server Pages
Scripting people in a component world
How it works
Scripting for the masses
Objects galore
All input comes from the Request object
All coded output goes through the Response object
System services through the Server object
Keeping state with Session and Application objects
Getting down to business-Simple data access with ASP and ADO
Creating an ODBC data source
Working with the demo code
Creating the ASP document
Error handling with ASP and ADO
Displaying the logging results
Looping through the recordset
Other ways to handle ADO
A TasTrade invoice viewer application
Watching out for unnecessary data display
Complex forms and data access
How the form works
A few reservations about VFP and ADO
Scripting as an application environment?
Taking advantage of COM with Active Server Pages
Calling all VFP servers
Beware of errant paths!
Understanding server security
Using VFP to generate HTML
Getting around slow HTML tables
Using ASP objects with your VFP COM server
The IScriptingContext interface
Objects from Visual FoxPro
Example-an object-based customer browser
Sharing data with ASP-passing ADO objects
An objective warning
Understanding ASP/COM scalability
What is Apartment Model Threading and why should you care?
Summing up
ASP pros
ASP cons
ASP resources

CHAPTER 5: FoxISAPI
What is FoxISAPI?
How it works
Build your application code with Visual FoxPro
Building the COM server
Server configuration
Copy Foxisapi.dll into a Web script directory
Run DCOMCNFG to configure your server
Unloading and managing servers
COM server instancing
In-process COM objects
Out-of-process COM objects
Building FoxISAPI requests
Returning HTTP output
Content types
HTTP directives
Show me the data!
Decoding form variables
Retrieving ServerVariables from the INI file
The next step-a basic framework
Why do you need a framework?
The wwFoxISAPI framework
wwFoxISAPI
wwRequest
wwResponse
Centralizing the FoxISAPI entry point
Error handling
Eliminating those long URLs
Scripting and Templates
Implementing a scripting engine with Active Server Syntax
Templates with MergeText
Scripting-more power and more work
Hooking it in...
An example application
Other cool things you can do
Queries against SQL Server
Creating Adobe Acrobat documents from VFP reports
Sending data over HTTP
Rendering Visual FoxPro forms
Multiple instances via the pool manager
FoxISAPI debug mode
Summary
FoxISAPI pros
FoxISAPI cons

Chapter 6: Internet Enabling Your VFP Applications
The easy way to the Internet
The Shell API
What about Visual FoxPro's Hyperlink object?
The Internet protocols of wwIPStuff
Sending SMTP Internet e-mail
FTP transfers
Using the Internet Explorer Shell COM interface
Capturing IE COM events
The WebBrowser ActiveX control
It's not just for Web content
The Internet Explorer document model
A Web Browser example
Editing HTML
HTML markup formatting problems
Using the DHTML Edit Control
Summary

Chapter 7: Building Distributed Applications over HTTP
Hyper thinking
How can you use HTTP in your applications?
WinInet with Visual FoxPro
Doing data over HTTP
Real data over HTTP
Sending data with HTTP POST
Posting application data
Hey, Mr. Postman, bring me some data
Building in even more functionality!
Putting it all together
Don't forget about security!
What about other server tools?
WinInet issues
Summary
Pros
Cons

Chapter 8: Remote Data Service
How RDS works
An example using Internet Explorer
Table-based data binding with RDS
Using RDS inside VFP
Error handling
Using RDS results in your code
Problems, problems, problems with RDS data access
ODBC problems with Visual FoxPro
RDS problems
Internet Explorer data binding problems
Summary
Accessing objects over HTTP with the RDS.DataSpace control
How it works
An example-a generic server object
Summary
Beware of security issues!
Data security
Object security
Some workarounds
DCOM over HTTP
Summary
Pros
Cons

SECTION 4-Enterprise Development
Chapter 9: Visual FoxPro and COM
COM scalability and Visual FoxPro
What is Apartment Model Threading and why should you care?
Problems with the initial release of VFP
An interim release to the rescue
Using the new multi-threaded runtime
Multi-threading is not a magic bullet
Microsoft Transaction Server
Do you need Microsoft Transaction Server?
The state of the stateless
Understanding JITA
MTS security
MTS summary
Pool managers in FoxISAPI/Web Connection
Pool of single-use EXE servers or in-process DLL servers
Full administrative control over servers
Not generic
Reaching out over the network with DCOM
Direct instantiation via CREATEOBJECTEX()
Remote objects without CREATEOBJECTEX()
Beating the beast: DCOM security
Security and the IIS client
Performance and network issues
DCOM conclusion
COM summary


Chapter 10: Building Large-Scale Web Applications
Visual FoxPro is ready for the server!
What is a large-scale application?
Web site operation
Performance
Data optimization
To SQL or not to SQL
Code optimization
Web site optimization
Web server optimization
Visual FoxPro and multithreading
IIS and ISAPI are multithreaded, but VFP is not!
Understanding CPU load and speed
Scalability
Multiple instances of VFP required
Best scalability achieved with multiple processors on a single box
Use network machines to spread load
IP Routing/Dispatch Manager
Data becomes the bottleneck
Scalability summary
Site application administration
Decisions, decisions-online or offline data
Remote application administration
Detailed site and user statistics
Should you use cookies?
COM server management
Security on the Web
Keep data in an unmapped path
NT Challenge Response-directory and file security
Basic Authentication for your applications
Non-NT custom security
Do you need secure transactions via SSL?
Summary

Chapter 11: The Development Process
Source code integration
Visual FoxPro developers
HTML designers
Consultants and staff
Separate staging test server
Integrating HTML and code
HTML is the front-end interface
Understand the limitations of HTML
Data connectivity
Keep HTML and code separate
Scripting and templates for data and display logic