Every so often, the business software industry's focus goes through a paradigm shift. I feel we're on the verge of another shift, but it's not the one you might think.
Originally, we had large centralized mainframe systems that relied on server-based applications and roll-and-scroll terminals. These systems were prohibitively expensive for most companies, except for large organizations. Companies that needed limited computer processing purchased a share or time on a computer that was hosted and run by a company such as IBM.
The era of server-based systems eventually gave way to a client-server architecture that was built on desktop PCs. Many applications took advantage of the advances in desktop systems and stored only their data on central servers. Some applications were entirely desktop based.
The newest release of the .NET Framework is starting to breathe new life into client-server based applications. For example, the .NET Framework 2.0 offers ClickOnce deployment. With this feature, you store a client application on a server and locally install that application on a client. The application on the client then keeps itself current with the application on the server.
ClickOnce applications have the potential to drive the paradigm in the direction of client-based applications again. However, I don't see this happening because of the upcoming release of Windows Vista, Longhorn Server, and Windows Presentation Foundation (WPF). I think that WPF's focus on allowing the same UI to be hosted in a server-based Web application or on a client will ensure that a paradigm shift back to the client-server architecture won't occur. Instead, I see a different shift starting.
As I mentioned previously, back in the days of mainframe systems, many organizations didn't own the central systems they used. However, that situation changed with the introduction of the client-server architecture. Most every company purchased one or more servers as well as server-based applications.
Even though hardware costs are relatively low, many companies are now seeing the cost of maintaining their servers and server-based applications become prohibitive. Thus, I see a new era emerging. In this era, companies will start to eliminate their server-based applications and their extranet infrastructure and instead allow these applications to live on servers for which they purchase a share or processing time. Truly large companies will likely still carry the expense associated with maintaining an internal IT environment, but many small and midsized companies will move to this hosted model--even for custom applications.
Vendors are already starting to offer application hosting services. For example, SalesForce.com offers the AppExchange (http://www.salesforce.com/appexchange), an on-demand application-sharing service. As subscribers, companies (and even individual developers) can design and run applications within the constraints of the AppExchange platform. If desired, they can have SalesForce.com review their applications and make them available for other subscribers to use. To use another subscriber's application, you pay an additional fee, which is paid to the application's owner/developer. Microsoft Office Live (http://officelive.microsoft.com/Misc/Links.aspx?linkId=partner) is setting up a similar service.
As you can see, I'm not projecting this paradigm shift out of thin air. Companies are already moving in this direction--and this movement is going to accelerate fast. Combining an on-demand application-sharing model with the ClickOnce's smart-client capabilities will undoubtedly provide a powerful paradigm for business software in the coming years.