ThePlace

Home ] Search ] Resources ] Site Map ] Contact Me ]
Dave's Information Technology Resource

Up ]

Computers & Programming ] Operating Systems ] Programming Environments ] [ Windows-Based Applications ] Objects and Programming ] Data and Variables ] Operational Expressions ] Functions and Procedures ] Programming Control ] Algorithms ] Files, Graphics & Databases ] Software Development ] 10 Things... ]

--- Windows-Based Applications ---

A Little History...

Until the mid-1980s, computer interfaces were based on a text-based delivery model often called a "command line interface" (CLI).  The screen consisted of a number of lines (typically 25 or more), each with 80 or more characters.  Commands and data were read one line at a time.  Controlling the computer was accomplished through the use of arcane commands such as "dir" for getting a list of files.  User interfaces for programs such as word processors were often difficult to work with.  There was also very little consistency between different programs.  This often meant that programs were difficult to learn quickly or use efficiently.

The following is an example of a command line interface program.  Note the use of text to ask for information in a linear sequence of questions…

C:\> runprog

Starting program…
Enter name: John Smith
Enter address: 111 Elm Street

Processing…

No such person found.
Program terminating!

 

C:\>_

 
 

Most users and developers agreed that a common and more powerful way to build and deliver computer applications was needed. 

As the technology became available in the mid-1980s, the graphical user interface (GUI) became a reality.  A GUI meant that user interaction (both input and output) could be managed by putting information anywhere on the screen using windows and that the user could access information anywhere on the screen using a pointing device (mouse). 

Since the late-1980s, Microsoft Windows (first 3.x, now 95, 98, 2000, and NT/XP) and the Macintosh operating systems have been the platform of choice for most personal computer users.

The advantages of these windows-based operating systems and related programs are:

bullet

The ability to use the entire computer screen for single or multiple applications.

bullet

Common functionality in how applications work, e.g., File, Edit, and other menus because developers in the industry have applied generally accepted user interface guidelines.

bullet

 The ability to use color (even shades of gray) to present graphics and information.

bullet

The ability to use a variety of input devices including the keyboard, mouse, joystick, touch screen, and so forth.

bullet

 Shared functions and capabilities for multiple programs or applications.

 

If you are going to be developing software for windows-based applications, you should become very familiar with the operating system and how it works!  

 

Programming Windows

Programming in a windows environment is based on using the operating system to accomplish tasks that many applications need to perform: for example, using a window to present the operation of a program and being able to press a button to make something happen.  The operating system provides the tools to create windows and buttons, and the means for the user to interact with them.

The following illustrates the interaction of programs and the operating system:

 

The basic features of a windows-based operating system and program environment are the following:

bullet

Windows (sometimes called forms), message and dialog boxes— are containers for presenting a variety of programs.  These include menu schemes for consistency in user interfaces.

bullet

Graphical objects for the user interface including buttons, text boxes, list boxes, and picture objects for collecting and presenting data (used on windows).

bullet

Behind the scene "objects" such as timers, printers, files, and other objects that are managed by the operating system and provide common resources for programs.

bullet

Event Driven Programming—"Things happen when you tell it to happen."  Windows-based programs operate by responding to user (and sometimes system) "events" (e.g., clicking a button).  Event driven programming is based on responding to user (e.g., clicking a button) and/or system (e.g. opening a file) events to accomplish tasks.

The key to window applications is operational consistency, for example...
bullet

Menu sequences are consistent across applications.

bullet

Operation of objects is comparable, e.g., clicking, double-clicking, dragging, and dropping.

bullet

Shared interfaces for things such as opening and saving files and managing printer operations.

 

 

Windows-based Programming Tools

There are many tools for programming Windows-based applications, they range from Assembler to Cobol and Fortran to the following:

bullet

Microsoft Visual C++, Borland C++, native UNIX C and C++ tools, and others.

bullet

Java (various commercial vendors, for Windows, Macintosh, and UNIX)

bullet

Smalltalk

bullet

Delphi

bullet

PowerBuilder

bullet

Visual Basic

bullet

Office/program application macros (e.g., Microsoft Word, Excel)

The key with many of these tools is ease-of-development versus "program execution efficiency."  While all of these tools can be used to create applications, some are easier than others to develop programs with (e.g., Visual Basic).  Many of the development environments listed above have graphical development features that enable you to rapidly develop software applications that run by themselves or within other applications (macros).

There are programming tools in other environments as well.  For example, Macromedia Director, a multimedia development program has a programming language called Lingo, which can be used to control the behavior of a multimedia production. 

Scripting tools such as JavaScript, Jscript (a Microsoft version of JavaScript), and VBScript also can be used to build applications with Internet browser and web server environments.  Although these tools have a number of powerful features, they often have limitations that are designed to protect Internet-based applications.  These applications generally include limited file input/output capability and little or no system level access.

 

Home ] Up ] Computer Architecture ] Database Bootcamp ] Visual BasicS ] Web Basics ] Web Multimedia ] Web Programming ] Advanced Web Topics ] Developing Web Sites ] XML Technology ] Web Glossary ]

Copyright © 1999 - 2005 
ThePlace - Written and Sponsored by Dave Hillman