-
Surprise, Surprise, Surprise!
David Stevenson reflects on three pleasant surprises: his unexpected return to publishing as CODE Magazine’s editor, the persistent shift toward “stateless” business communication (email-driven negotiations) and its tradeoffs, and the exciting independence and advances of Visual FoxPro 7—arguing that the magazine will deepen developer coverage, that distributed communication is here to stay despite its challenges, and that VFP7’s standalone direction and Web Services support bode well for its users.
-
Understanding Visual Inheritance in .NET
Markus Egger’s article offers a practical, real‑world tour of visual inheritance in .NET, showing how to design a base data-entry form and create subclassed forms that inherit and extend behavior across languages (C# and VB.NET). He demystifies how inherited forms, controls, and event bindings work, explains the difference between compile-time versus runtime method binding (virtual methods), and demonstrates how to override and invoke base functionality while preserving or extending default behavior. The piece emphasizes pragmatic guidance on scope, protection levels, and multi‑level subclassing, framing inheritance as a simple, powerful tool for maintainable UI design in .NET.
-
An XML and XSLT Shopping Cart
Michiel van Otegem demonstrates how to build a simple, portable and highly extensible shopping cart using XML and XSLT: product data and per-user baskets are represented as XML, XSLT templates handle display, adding and updating items, and transformations enable platform- and client-specific rendering. By placing logic in XSLT (server-side for broad compatibility) the system gains cross-platform portability, easy handling of evolving product attributes, and reusable processing for totals, payments and multiple output formats.
-
Introduction to Wireless Application Protocol
In this article, Mike Helland introduces Wireless Application Protocol (WAP) as a solution for delivering Internet content to mobile devices with limited resources. He explains WAP’s core components, including Wireless Markup Language (WML) for content structuring, device-specific browser challenges, and navigation techniques. Helland highlights the importance of WML’s XML foundation, event handling, variables, and WMLScript for client-side scripting to optimize performance and user interaction on constrained devices. He also demonstrates practical WAP applications, emphasizing the protocol’s efficiency and adaptability for mobile environments while discussing its future potential and integration with emerging technologies.
-
XSL Patterns
In this article, Simon Ferguson explains XSL patterns as a powerful, simplified subset of XPath used to query and manipulate XML documents. He highlights how XSL patterns function similarly to SQL Select statements by allowing precise selection, filtering, and transformation of XML nodes. Through examples and explanations of syntax, Ferguson demonstrates how understanding and using these patterns enable efficient extraction and restructuring of XML data, making them essential for working with XSL stylesheets and advanced XML querying tasks.
-
Introduction to Gathering Requirements and Creating Use Cases
Ellen Whitney argues that rigorous requirements gathering and well-written Use Cases are essential to prevent costly defects and miscommunication in software projects; she details types and qualities of requirements, practical techniques (cards, lists, templates, collaboration tools), and how to turn requirements into clear, actor-driven Use Cases and diagrams to guide design, improve estimates, and produce maintainable, scalable systems.
-
Building a 21st Century Application
Markus Egger presents a blueprint for building a 21st‑century distributed application by integrating COM+ components, Queued Components, COM+ Security, XML/XMLHTTP access to SQL Server 2000, and BizTalk Server 2000. He walks through designing a vendor-order system with a secure, flexible business object that can operate in disconnected, offline, or online modes and expose multiple interfaces (rich client, web, and potential Web Services). The article emphasizes loose coupling, event-driven extensibility, and practical deployment considerations (COM+ catalogs, queued processing, templates, and BizTalk routing) as a path to 100% available, adaptable enterprise software.
-
Static Content in a Dynamic World
Web applications are essentially made up of functions that map inputs (requests) to outputs (responses).This article looks at a way to store the relationship between request and response and pre-generate responses, thus reducing the resources needed fulfill requests.
-
Handling long Web Requests with Asynchronous Request Processing
Web Applications tend to be stateless, and running long requests can be problematic for Web backends. Long-running requests can tie up valuable Web server connections and resources. In this article, Rick describes one approach that can be used to handle lengthy requests. A polling mechanism and an Event manager class can be used to pass messages between a Web application and a processing server running the actual long task.
-
Customers vs. Code: Maintaining Relationships
Nancy Folsom argues that successful software projects hinge on disciplined requirements gathering that centers the customer and the domain, not just code. By illustrating common scenarios and advocating active stakeholder engagement, use-case thinking, and interim validation, she shows how to uncover real needs, challenge assumptions, and align design with business realities. The piece champions a flexible, process-driven approach within the unified process, emphasizing that software is ultimately about people, and that sustained customer involvement yields clearer specifications, better alignment, and more deliverable value.
-
A developer's life...
This page is dedicated to strictly non-technical aspects of our lives as a developers.After all, most developers are real people, too (except for automated code-generating programs, of course). Look here in each issue for commentary and insight into the struggles (and joys) of balancing life and logic, people and programming, fun and flowcharts, and (you fill in the blanks).You will be invited each time to think on a topic, then express yourself via email for possible inclusion in a future issue. Enjoy!

