Microsoft Application Foundation Classes: Frequently Asked Questions

Microsoft Corporation

January 21, 1997

What are the Application Foundation Classes?

AFC is a rich suite of graphics, user interface and multimedia capabilities, written entirely in Java, that build on top of the basic Java AWT library to provide a powerful set of building blocks for Internet and Java application developers.

Is AFC cross platform and cross browser?

Because AFC is written completely in Java, it is completely cross platform. It will run on any Java-capable browser or computing platform.

How does AFC relate to the basic Java AWT class library?

AFC is built on top of the basic Java AWT library and provides full compatibility with the AWT programming model. Developers can leverage their existing investment in AWT knowledge and code when using AFC.

How does AFC help developers write cooler and more sophisticated apps?

AFC has been carefully designed to make it easy and intuitive for people to build up their user interfaces for their applications in a natural yet powerful way, using sophisticated user interface elements. A wide variety of pre-built and easily customizable components saves developers considerable time. Developers do not have to create their user interface elements from scratch.

What do user interfaces built with AFC look like?

Developers can use the familiar Windows look and feel or they can easily customize the controls to whatever look and feel they desire. Because AFC is written entirely in Java, it can be easily modified incrementally (subclassed) without having to reimplement a particular control from scratch.

How does AFC speed the development process?

With a wide variety of sophisticated, pre-built user interface elements ranging from buttons all the way through tool and command bars, treeview, and listview controls, developers can mix, match, and customize these controls to create compelling user interfaces for their Java applications. Moreover, these controls offer state-of-the-art features like hot tracking and incremental type searching.

How easy is AFC to use?

We have designed AFC to be as flexible and powerful as possible. The controls build from each other in an intuitive, natural way, enabling developers to quickly and easily create effective user interfaces for their applications.

Will tools vendors support AFC?

Leading tools vendors are committing to support AFC. So far, Borland, Metrowerks and Microsoft have announced that they will be supporting AFC in their development tools. We expect all major tools vendors will fully support AFC.

When will you deliver AFC on which platforms?

AFC is on the same schedule as Internet Explorer 4.0, both betas and the final ship. The first beta will be in the first quarter, with final shipment later this year. Because it is written in Java, it will be available for all Java-capable platforms and browsers immediately when it ships, not just Windows. Customers can begin development immediately with the beta release.

How do developers get AFC?

AFC will ship with a variety of third party and Microsoft products, including future versions of Internet Explorer, Visual J++ and the Microsoft SDK for Java. The class libraries will also be available for free redistribution with Java products on any platform.

Does AFC require the Microsoft virtual machine?

No, it can run on any reasonable implementation of Java. Like most code written in Java, it will execute faster and more reliably when run on the Microsoft virtual machine.

Does AFC run better on Windows than on other platforms?

We certainly hope so. We have invested a lot of time and effort to make Java run better on Windows than any other platform.

Is Microsoft writing any applications in Java?

Yes, although we are not prepared to comment on these unannounced products specifically. The reason we developed AFC is that our internal Java application efforts quickly discovered there were no good "industrial strength" class libraries on the market, so building on our extensive Windows experience, we developed AFC and decided to make them available to all developers.

Is AFC a replacement for MFC?

No. MFC is designed for C++ programmers, AFC has been designed from the ground up for Java programmers.

Should MFC developers use AFC?

Only if they are starting to do development in Java. AFC is not accessible to C++ developers and MFC is not accessible to Java developers.

How does AFC relate to other class libraries for Java?

AFC is faster, smaller, offers richer functionality and is more flexible. Moreover, unlike other class libraries that force developers to choose between AWT and another class library, AFC is fully compatible with the AWT programming model.