An Insider's Look at the New Visual InterDev 6.0

An Interview with Product Co-Designer John Shewchuk

MSDN Interview
September 2, 1998

With the release of Visual InterDev™ 6.0, Microsoft is trying to make it easier for developers to build sophisticated Web applications. In this continuing series of interviews with the architects who created Visual Studio 6.0, MSDN talks with John Shewchuk, who co-designed Visual InterDev 6.0 with Steve Millet.

When you're done learning what Shewchuk has to say, be sure to read our interview with Millet, who explains the new scripting object model in Visual InterDev 6.0.

MSDN: What was your role with the Visual InterDev 6.0 development team?

SHEWCHUK: I led the design team for Visual InterDev 6.0 in conjunction with Steve Millet, who was the chief architect. In a sense, I'm kind of the chief pathfinder. I go out there and figure out where we're going, what kind of problems we should be working on, and then sketch the overall solution. Then Steve and I together sort out how the code will work. Lest you think that I don't do any development, I'm also the guy who wrote scriptlets and some of the remote scripting stuff in Visual InterDev.

MSDN: I'm sure our readers will be relieved that we're interviewing someone who actually writes code [grin]. Can you start by giving us an overview of Visual InterDev 6.0?

SHEWCHUK: Here's the 10,000-foot view of where Visual InterDev 6.0 fits into the whole Microsoft tools picture. If you think about what's going on in the marketplace, there are a couple of tidal waves.

One big wave is the PC, which every year gets faster and faster and more and more capable. PCs are very quickly turning into machines that can handle the kind of jobs mainframes used to handle.

The other tidal wave that's hitting is the Web. The Web is giving everybody ubiquitous connectivity.

Visual InterDev rides both waves in a way that enables it to be the command center for a multitier application. This lets Visual InterDev 6.0 address the kind of problems going on inside of an enterprise—the problems that traditionally IBM and Oracle have been good at solving.

Visual InterDev 6.0 lets you build a multitier application. You can use Visual Basic® and Visual C++® to do the heavy lifting, and then bring in Visual Studio® to flesh out the rest of the infrastructure. Visual InterDev is the thing that pulls it all together.

Here's a quick example. Let's say you want to debug an app where you've got a client talking to a server that has a middle-tier component. Visual InterDev lets you put a breakpoint in the client, step to that, see where it breaks, then switch over to the server that is going to handle that request, step into the VB component, take a look inside it and then step back to the Web server and browser. It's a way to look at the whole thing, end to end.

MSDN: Can you summarize the most important new features in Visual InterDev 6.0?

SHEWCHUK: The biggest thing Visual InterDev 6.0 does is bring RAD programming to the Web. It lets you do WYSIWYG form editing, with events behind that, setting breakpoints in your code, and getting that really iterative programming style going. Visual InterDev 6.0 also lets you compose components that are built in different languages and use them to encapsulate data access or business rules, or integrate other back-end systems, and integrate them into your Web app.

So in summary, I'd say Visual InterDev 6.0 offers an integrated RAD development for multitier architecture, drag-and-drop data access, debugging, statement completion, and WYSIWYG editing. Those are the hot new things in Visual InterDev 6.0.

MSDN: Do you distinguish between developing a Web site and a Web application? Is Visual InterDev 6.0 a tool for both?

SHEWCHUK: I think of Web sites as sites with a lot of content, while Web applications are sites like Dell.com. Dell has the largest e-commerce site out there. They're doing five million bucks a day. Dell.com is all about knowing what their inventory is, collecting that inventory, and presenting it as forms accessed through a data engine.

They even go beyond that. Dell is actually building customized intranets for their customers, with presentations specific to each company. For example, if I'm an engineer at Ford, Dell will set up their site so I can only purchase the kind of PCs Ford has approved. That's an example of people using PC architectures and the Web to build a direct connection to their customers. That's the kind of Web application Visual InterDev is great at pulling together.

MSDN: Is Visual InterDev a mature product now? Visual InterDev 6.0 is the successor to Visual InterDev 1.0. Unlike the other new tools in Visual Studio 6.0, it skipped a few version numbers.

SHEWCHUK: Yes, it is mature. We've leveraged a lot of the components in Visual Studio 6.0 and synched up with them. We're leveraging database tools that have been around a while, and leveraging the shell that's been around a while. So, yes, the whole tool (Visual InterDev 6.0) has matured across the board. We've added quite a bit to it.

It may be pushing it to justify this as the sixth whole version of Visual InterDev, but this is definitely more than just version number two.

MSDN: What does Visual InterDev 6.0 do for developers who want to support non-Microsoft browsers, namely Netscape Navigator?

SHEWCHUK: Visual InterDev 6.0 does a great job of creating cross-browser solutions. We use a new programming model, where you can drop components on a form and wire up the event handlers. The applications then support either Internet Explorer 4.0 or any HTML 3.2 browser, including Netscape Navigator 3.0 and later.

We're doing some pretty cool stuff with our script libraries that enable you to do all of that programming on the server. If you're targeting Internet Explorer, then you can take a lot of that processing and move it down to the client. You just flip a property switch to decide which platform you'd like to target.

This gives developers a consistent way to build Web applications. You can target your applications at a rich, up-to-date browser such as Internet Explorer 4 if you want to take advantage of all the latest browser capabilities. Or you can target other browsers for reach, and do all your processing in Active Server Pages. Either way, with Visual InterDev 6.0 you use the same programming model, same controls, same everything.

MSDN: How will switching to Visual InterDev 6.0 change the way developers work?

SHEWCHUK: Today if you're doing Web development, there's a lot of complexity in moving information from the server down to the client, getting things like drop-downs filled in, and then getting that information back to the server in a way that is simple and straightforward.

In Visual InterDev 6.0, we invented something called the scripting object model. What this scripting object model does is give you a consistent object model on both the server and the client, making very simple to do something like add an item to a drop-down.

[Editor's note: See our related article that details the new scripting object model in Visual InterDev 6.0.] 

To do this in HTML today you'd have to know all the HTML tags. You'd have to know how to write the script. If you wanted go back to the server and change what's selected and so on, you'd have to change a bunch of text. In Visual InterDev 6.0, we've bumped up the abstraction that developers are working with to a more object-oriented model. That's what the scripting object model enables.

MSDN: How hard is it hard to learn this new scripting object model?

SHEWCHUK: If you know Visual Basic, it's like that. We made the scripting object model look very similar to Visual Basic controls. So it should be very simple for anyone who understands VB.

MSDN: What was the hardest problem you had to solve in designing Visual InterDev 6.0? Was it creating this new object model?

SHEWCHUK: Yes, that was one of the trickiest things because, as I mentioned before, HTML has a very different way of doing everything.

By adding this object model, we simplify things for developers. But for us, getting the object model right was a bit tricky. We had to get it to run in Netscape, Internet Explorer, and on the server. We also had to get all the plumbing to work, and we had to make sure the object model worked consistently on everything, so developers would only need to learn it once.

MSDN: Does Visual InterDev 6.0 help developers build the type of multitier Windows DNA applications Microsoft is promoting?

SHEWCHUK: Yes. At its core, Visual InterDev is all about building Windows DNA applications. These are multitier application where you have rich clients talking to middle tiers, and on those middle tiers you can use components written in a variety of different languages, particularly VC and VB.

Visual InterDev makes it really easy to pick up those components, drop them into an Active Server Page, and then do things like turn on transactions and have those transactions flow through all the components. The components can talk to databases, collect information from them, send the information down to the client, display it there, and then have the page or component ask MTS [Microsoft Transaction Server] to commit or abort.

What Visual InterDev 6.0 does is take some of the great technologies Microsoft has developed for client-server applications, such as COM and COM+, and wed them with our Web products such as Internet Explorer and IIS [Internet Information Server]. The result is this new integrated, multitier, development environment.

MSDN: What part of Visual InterDev 6 do you think developers will have the hardest time learning?

SHEWCHUK: I think it's actually going to be a pretty easy tool for people to pick up. Anyone who has used Visual InterDev 1.0 will love new enhancements like the WYSIWYG editor, which will make it much easier to create HTML documents.

We've done a great job on the new controls in the product. They reduce the need to use things like wizards, because they're fully programmable.

New users will find Visual InterDev 6.0 very easy to pick up. Visual InterDev gives you the ability to build forms and connect to components in a WYSIWYG manner. Visual Basic, clearly our richest, most capable tool for building enterprise applications, adds deep support for COM components. By plugging these two tools together, you get a really powerful set of capabilities.

MSDN: What is the Data Environment in Visual InterDev 6.0, and why is it significant?

SHEWCHUK: The Data Environment is, in a sense, a reusable palette of database commands and objects that you can use to quickly assemble data-driven Web pages. You add commands to the Data Environment by typing in SQL or using a visual query designer. Then you drag the command to the page to bring the notion of a record-set object to the page. Then you drag out fields to create data-bound controls on the page.

This is important to developers because it provides them with a single point of entry into a project's database connections. It also gives them a well-known metaphor for doing what is usually a very hard task—moving data back and forth between Web pages and a database.

MSDN: How does Visual InterDev 6.0 address the most important concerns of its users—Web application developers?

SHEWCHUK: Productivity is a huge issue for these folks. Visual InterDev 6.0 goes a long way toward addressing that with its WYSIWYG editing, drag-and-drop data environment, integrated debugging, statement completion on objects, and so on.

Another big concern for developers is integration with all the other stuff out there—components, languages, and broad-reach clients. We've done a pretty good job of addressing those.

MSDN: Let's close with a prediction. Where do you think Web application development is headed in the next year or two?

SHEWCHUK: I think we'll continue to see browsers getting increasingly sophisticated, UIs getting more and more capable, and more processing moving off the server and into browsers.

I think we'll also see Web servers become increasingly sophisticated, to the point where they become application servers that are deeply connected into enterprise organizations. They'll connect to AS/400 servers, DB2 and Oracle databases, and the whole, huge PC infrastructure.

And finally, I really see Web developers becoming enterprise developers.

--------------------

John Shewchuk and Steve Millet are development managers in the Microsoft Developer Tools Division. They have been collaborating on software projects for the past eight years, and together led the design of Visual InterDev 6.0.

Since joining Microsoft in 1993, they have developed a number of core technologies that went into Internet Explorer, such as the 2D layout and scriptlet technology in IE 4.0. Earlier, they helped develop a publishing tool for the Microsoft Network (MSN) code-named Blackbird. When Microsoft turned its online efforts toward the Internet, they expanded Blackbird into a Web development tool that eventually became Visual InterDev.