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