Welcome!

Java IoT Authors: Pat Romanski, Yeshim Deniz, Elizabeth White, Carmen Gonzalez, Liz McMillan

Related Topics: Java IoT

Java IoT: Article

Application Foundation Classes

Application Foundation Classes

What Is The AFC?
I know that football season is right around the corner, but you're not going to find an in-depth analysis of football's weaker conference here. The Application Foundation Classes, or AFC, are Microsoft's answer to the Abstract Windowing Toolkit (AWT). The AFC builds on the AWT foundation to provide more user-friendly controls for your applications. The AFC is currently available only as a preview release and requires a Java 1.02 or 1.1 compatible compiler and Virtual Machine.

Last month, I showed you how to obtain, install and use the latest Java SDK 2.0 from Visual J++. You'll need to get the Java SDK 2.0 to begin using the Application Foundations Classes. The Java SDK 2.0 currently is available in a preview release. Check out the Microsoft Java SDK Web site at http://www.microsoft.com/java for the latest information.

AFC Packages
The Application Foundation Classes are provided in three packages:

  • com.ms.ui: The User Interface package, which provides the primary framework for applets, applications and user interface controls. The User Interface package is what most people will be referring to when they speak of the AFC. It includes menus, buttons, canvases, edit controls, frames, lists, marquees, panels, radio buttons, scrollers and tree view controls.
  • com.ms.fx: The FX package provides advanced graphic controls in your applications including control over colors, fonts, curves, text and textures. The FX package provides more flexibility than AWT because it is not limited only to system-defined standards. Especially when developing Intranet applications, you can use the FX classes to use all of the fonts and colors available to your system.
  • com.ms.resource: The Resource package provides access to Win-32 resources, including dialog boxes and string tables, from your Java applications.

    The User Interface package is the heart of the AFC. The focus here will be on how to begin to integrate the User Interface package into your own applications. I'll take a closer look at the FX and Resource packages in the near future.

    AFC Hierarchy
    The Application Foundation Classes are built on the foundation laid by the AWT. If you're already familiar with using the AWT, much of what you already know will remain familiar. Figure 1 illustrates the Application Foundation Class Hierarchy. The class names preceded by an asterisk (*) are AWT classes. As you can see, all of the Application Foundation Classes are extended from these base AWT classes. Figure 2 illustrates the class hierarchy of the user interface elements provided by the Application Foundation Classes. Many of these elements will be familiar to those familiar with AWT (i.e., button, check boxes, radio button) while others were not previously available (i.e., tree control, marquee).

    AWT and AFC Compared
    Before you think, "Here goes Microsoft again, trying to usurp yet another piece of the Java world", let's take a closer look. The Application Foundation Classes are built upon and extend the AWT, making it possible to mix both user interface models in your applications, which helps to preserve your user interface investment in your current applications and ease the transition over to a new programming model. Other user interface class models usually force a developer to choose between the AWT and another library.

    Like the AWT, the Application Foundation Classes are written completely in Java, making them completely cross platform-independent. They provide new and better scroll bars and sliders, a tree control, a tab display, the ability to move through the user interface using just the keyboard and a file system explorer. The Application Foundation Classes permit the development of applications with user interfaces that are familiar to users of traditional Windows-based applications.

    How To Use The AFC
    Building Java applications with the Application Foundation Classes is no different from building your applications using the AWT. Instead of using the Applet and Frame classes, the UIApplet and UIFrame classes are substituted instead. Since the UIApplet and UIFrame classes are extended from the AWT Applet and Frame classes, it is possible to mix both AWT and Application Foundation Classes components. Listing 1 demonstrates how to create a shell AFC applet. Listing 2 demonstrates how to call the HTML necessary to call the shell applet. The AFC can also be used to create standalone applications. Listing 3 demonstrates how to create a standalone shell application using the Application Foundation Classes. Remember, you-ll need to have the Microsoft Java SDK 2.0 preview version installed and have your Visual J++ environment configured to use the pre-release version of the compiler. I described how to configure your Visual J++ environment to use the new version of the compiler in detail last month. In its current release, the Application Foundation Classes support both the traditional event handling model as used in these examples and the event delegation model supported by Java 1.1.

    Availability
    The Application Foundation Classes are available as part of the Microsoft Java SDK 2.0 on the Microsoft Java Web site, http://www.microsoft.com/java. If you're looking to use the Application Foundation Classes on non-Windows based platforms, the classes are also provided separately. Since the new compiler and the Application Foundation Classes are still pre-release versions, a few bugs still exist and they aren't optimized yet for full production use. The final version of the Application Foundation Classes is scheduled to ship with Internet Explorer Version 4.0 later this year.

    Impressions
    It's clear that the Application Foundation Classes will play an increasingly important role in the development of Java applications from a Microsoft perspective. It's uncertain if the Application Foundation Classes will win over the hearts and minds of all Java developers - given the current state of relations between Microsoft, Sun and JavaSoft. The Application Foundation Classes do provide a number of user interface elements that allow developers to create applications with familiar user interfaces (at least to Windows users). I'm sure that when the Application Foundation Classes and the Java SDK 2.0 are released in their final form, Microsoft will provide Visual J++ wizards which help to automate the process of creating applications and applets which use the Application Foundation Classes.

    Microsoft currently does not plan on releasing the source code for the Application Foundation Classes. The plan is to make up for the lack of source code with documentation and support. This stance may hurt the Application Foundation Classes- chances of gaining wider acceptance; stay tuned though, this story is just beginning.

    Next Month: Using Application Foundation Class User Interface Controls.

  • More Stories By John Fronckowiak

    John Fronckowiak is the President of IDC Consulting, Inc., providing consulting and technical writing. He is also a Clinical Assistant Professor in Information Systems at the Adult Learning Program of Medaille College and is the author of several books and articles about iPhone development, programming, database design and development and networking. Fronckowiak has previously spoken at the Internet Commerce Expo in Boston, and the Conference on Instructional Technologies. In addition, he has over a decade of experience in the classroom as a college professor and runs dozens of training sessions for application developers.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    @ThingsExpo Stories
    SYS-CON Events announced today that CA Technologies has been named "Platinum Sponsor" of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, New York, and 21st International Cloud Expo, which will take place in November in Silicon Valley, California.
    Who are you? How do you introduce yourself? Do you use a name, or do you greet a friend by the last four digits of his social security number? Assuming you don’t, why are we content to associate our identity with 10 random digits assigned by our phone company? Identity is an issue that affects everyone, but as individuals we don’t spend a lot of time thinking about it. In his session at @ThingsExpo, Ben Klang, Founder & President of Mojo Lingo, discussed the impact of technology on identity. Sho...
    You think you know what’s in your data. But do you? Most organizations are now aware of the business intelligence represented by their data. Data science stands to take this to a level you never thought of – literally. The techniques of data science, when used with the capabilities of Big Data technologies, can make connections you had not yet imagined, helping you discover new insights and ask new questions of your data. In his session at @ThingsExpo, Sarbjit Sarkaria, data science team lead ...
    Bert Loomis was a visionary. This general session will highlight how Bert Loomis and people like him inspire us to build great things with small inventions. In their general session at 19th Cloud Expo, Harold Hannon, Architect at IBM Bluemix, and Michael O'Neill, Strategic Business Development at Nvidia, discussed the accelerating pace of AI development and how IBM Cloud and NVIDIA are partnering to bring AI capabilities to "every day," on-demand. They also reviewed two "free infrastructure" pr...
    In his keynote at @ThingsExpo, Chris Matthieu, Director of IoT Engineering at Citrix and co-founder and CTO of Octoblu, focused on building an IoT platform and company. He provided a behind-the-scenes look at Octoblu’s platform, business, and pivots along the way (including the Citrix acquisition of Octoblu).
    WebRTC is about the data channel as much as about video and audio conferencing. However, basically all commercial WebRTC applications have been built with a focus on audio and video. The handling of “data” has been limited to text chat and file download – all other data sharing seems to end with screensharing. What is holding back a more intensive use of peer-to-peer data? In her session at @ThingsExpo, Dr Silvia Pfeiffer, WebRTC Applications Team Lead at National ICT Australia, looked at differ...
    SYS-CON Events announced today that Hitrons Solutions will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Hitrons Solutions Inc. is distributor in the North American market for unique products and services of small and medium-size businesses, including cloud services and solutions, SEO marketing platforms, and mobile applications.
    With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo 2016 in New York. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be! Internet of @ThingsExpo, taking place June 6-8, 2017, at the Javits Center in New York City, New York, is co-located with 20th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry p...
    The Internet of Things can drive efficiency for airlines and airports. In their session at @ThingsExpo, Shyam Varan Nath, Principal Architect with GE, and Sudip Majumder, senior director of development at Oracle, discussed the technical details of the connected airline baggage and related social media solutions. These IoT applications will enhance travelers' journey experience and drive efficiency for the airlines and the airports.
    In 2014, Amazon announced a new form of compute called Lambda. We didn't know it at the time, but this represented a fundamental shift in what we expect from cloud computing. Now, all of the major cloud computing vendors want to take part in this disruptive technology. In his session at 20th Cloud Expo, John Jelinek IV, a web developer at Linux Academy, will discuss why major players like AWS, Microsoft Azure, IBM Bluemix, and Google Cloud Platform are all trying to sidestep VMs and containers...
    A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, whic...
    SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From ...
    With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, Cloud Expo and @ThingsExpo are two of the most important technology events of the year. Since its launch over eight years ago, Cloud Expo and @ThingsExpo have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, I provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading the...
    "Storage is growing. All of IDC's estimates say that unstructured data is now 80% of the world's data. We provide storage systems that can actually deal with that scale of data - software-defined storage systems," stated Paul Turner, Chief Product and Marketing Officer at Cloudian, in this SYS-CON.tv interview at 17th Cloud Expo, held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA.
    The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering Cloud Expo and @ThingsExpo will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at Cloud Expo. Product announcements during our show provide your company with the most reach through our targeted audiences.
    20th Cloud Expo, taking place June 6-8, 2017, at the Javits Center in New York City, NY, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy.
    Bert Loomis was a visionary. This general session will highlight how Bert Loomis and people like him inspire us to build great things with small inventions. In their general session at 19th Cloud Expo, Harold Hannon, Architect at IBM Bluemix, and Michael O'Neill, Strategic Business Development at Nvidia, discussed the accelerating pace of AI development and how IBM Cloud and NVIDIA are partnering to bring AI capabilities to "every day," on-demand. They also reviewed two "free infrastructure" pr...
    Have you ever noticed how some IT people seem to lead successful, rewarding, and satisfying lives and careers, while others struggle? IT author and speaker Don Crawley uncovered the five principles that successful IT people use to build satisfying lives and careers and he shares them in this fast-paced, thought-provoking webinar. You'll learn the importance of striking a balance with technical skills and people skills, challenge your pre-existing ideas about IT customer service, and gain new in...
    The Internet of Things will challenge the status quo of how IT and development organizations operate. Or will it? Certainly the fog layer of IoT requires special insights about data ontology, security and transactional integrity. But the developmental challenges are the same: People, Process and Platform. In his session at @ThingsExpo, Craig Sproule, CEO of Metavine, demonstrated how to move beyond today's coding paradigm and shared the must-have mindsets for removing complexity from the develop...
    For basic one-to-one voice or video calling solutions, WebRTC has proven to be a very powerful technology. Although WebRTC’s core functionality is to provide secure, real-time p2p media streaming, leveraging native platform features and server-side components brings up new communication capabilities for web and native mobile applications, allowing for advanced multi-user use cases such as video broadcasting, conferencing, and media recording.