"Our primary focus is writing apps that people use all day, every day," says Jeff Murray, proprietor of Jeff Murray's Programming Shop. That's one reason he decided against an HTML interface for his Ryan White CareWare, an application used by more than 250 providers of services to HIV patients in the United States.
With browser-based applications, Murray says, "You have to do backflips to make the user interface something that's a pleasurable experience." Instead, Murray opted to build CareWare using Microsoft Corp. .Net's Windows Forms, which enable rapid development of full-fledged Windows desktop applications.
For many other Microsoft developers, the main attraction of .Net has been ASP .Net, which makes the construction of interactive Web pages much easier than plain old ASP. But Murray was determined to use Window Forms -- and not just to deliver a better user experience.
A Web-based application wouldn't have worked because CareWare has two functions: clinic management for AIDS care providers and store-and-forward data collection for the Health Resources Services Administration (HRSA). For clinic management, patient information is stored locally in an Access database. Regardless of the patient information collected by the clinic, all information exported to HRSA must be anonymous, so a smart-client application was needed to filter the data.
Of course, a smart client raises the specter of client/server tribulations: deploying, versioning, and upgrading client software. Murray loves how .Net fixes this. After a .Net Framework has been installed, "it's just a matter of copying a few DLLs to a client machine to get it to run the client," Murray says. "You can actually have the client download itself if there's an update."
With the CareWare client, "every single .dll and .exe file and icon file and everything else you need is about 300KB," Murray says. "All you have to do is copy that to the client machine. You don't even have to prompt (users) if you don't want to. It's just incredible."
At one point, Murray considered creating a Java client instead. But there were a couple of stumbling blocks. "Java is not going to be distributed on every version of Windows, and .Net is. Whether it's fair or not, that's the way it will be," he says. Of course, Murray was already running a Microsoft shop. Another reason: "We never could find a development environment we liked for Java. They all had their shortcomings."
Murray has no such reservations about Visual Studio .Net, Microsoft's flagship development environment. "It's all integrated -- 100 percent. It's stable. It rocks."