The 4C Environment
-
4C is a powerful development environment for creating robust desktop
client/server applications.
-
4C is a fast runtime environment for executing applications built
using the 4C development environment.
-
4C consists of a 4C Server binary that is installed on a local server machine
or in the cloud and a 4C Client binary that is installed on a
Microsoft Windows PC or a MacOS X machine.
-
The 4C Server runs the 4C application which includes doing all
numeric calculations,
string manipulations,
and accessing databases, and the 4C Client displays the application
on the client machine and gets user input to send to the 4C Server.
-
The 4C runtime environment and development environment are actually the
same virtual machine.
The only difference is that the development environment runs 4C programs
designed to create an application and the runtime environment executes
4C programs designed for the application.
During development, you will run the programs for creating applications
as well as the application programs.
There is no need to leave the development environment in order to test
your application.
-
The 4C Client displays the different windows and controls specified by
the application on either a Windows PC or a MacOS X machine.
-
The 4C Client software is a very lightweight client that communicates with
the 4C Server, displays application controls,
and gets user input from the user.
4C Development Environment Features
-
The 4C development environment allows rapid application development because
it lets you, the application developer, think in terms of your application
requirements instead of low level programming protocols.
In particular, as a 4C programmer you never need to worry about
any of the following
-
Memory management
-
Network protocols
-
Which database you are using
-
The underlying windowing system
-
Low level security protocols.
This does not mean that you can ignore security completely,
only that you do not need to think about it at the network level.
-
The 4C development environment has an integrated WYSIWYG layout editor that
is easy to use and allows extremely complicated user interfaces to be
designed quickly.
The truth is, I have never seen any application user interface outside
of 4C that was as robust as some relatively simple 4C user interfaces.
-
The 4C development environment has many places where you can specify
code to execute when the 4C program reaches a particular state.
The code executed in these states has a 'C' like syntax and is very easy
to learn and executes quickly.
-
The 4C development environment includes a syntax highlighting code editor
for writing the code that gets executed at different states in the 4C
program.
-
The 4C development environment has an integrated debugger.
-
The 4C development environment has an application profiler that allows
you to spot inefficiencies as well as potential areas to concentrate on
for improvement.
-
The 4C development environment has a powerful integrated source code
control system.
-
The 4C development environment has extensive cross reference capabilities
allowing you to quickly pinpoint areas that will be affected by program
changes or database definition changes.
-
The 4C development environment has extensive built in and
online documentation.
-
The 4C development environment incudes a program generator that allows quick
prototyping of an application screen.
Once prototyped, you can easily add more functionality to it until you
are satisfied with it.
-
4C programs are reusable.
An exammple of this is a search program.
Once written, any other 4C program that needs the search simply calls the
search program passing in the parameters to the search.
-
The 4C environment includes several external libraries that make it
easy to
-
Create 4C Web Service clients
-
Create PDF documents
-
Produce and Consume JSon content
-
Create secure web interfaces to parts of your application
-
Disciplined programmers can easily document the application while
writing it simply by entering appropriate descriptions, comments, and
help messages.
More detailed documentation can be created easily and then accessed
through a menu or a function key.
-
4C has a role based security model that allow you to easily limit access
to either data or programs.
-
4C allows you to encrypt data at rest at any of table, row, or column levels.
4C Runtime Environment Features
-
The 4C runtime environment is a secure environment that accepts
requests from authenticated clients and then runs 4C programs on behalf
of those clients.
All communication between the 4C Server and the 4C Client is encrypted.
-
The 4C runtime environment can be deployed on a local server or in the cloud.
-
The 4C runtime environnment is very resource friendly allowing many hundreds
of client connections to be executing simultaneously.
-
The 4C runtime environment is a state machine that reacts to both user
input and program code.
-
The 4C runtime environment has a powerful logging feature that allows
multiple 4C Server machines to replicate data from 1 or more 4C Servers.
-
The 4C runtime environment allows you to use choose your data base of choice
without needing to rewrite any code.
-
The 4C runtime environment can be deployed on any Unix/Linux system as well
as any Microsoft Server system.
-
Changes made to the application on the 4C Server are immediately visible
to any 4C Client running the application.
There is no need for the client machine to download anything in order to
see the changes.
Advantages for the application programmer
-
Ease of creating the user interface.
-
Ease of making modifications.
Typically, only a small number of developers are needed to support
a large complex application.
Often only 1.
-
The majority of programming is non procedural.
-
4C applications are 100% portable across any supported 4C Server environment.
-
It is extensible.
If there are specific features that your application needs that are not
part of 4C, you can do either of the following.
-
Write an internal 4C PCL, callable from any part of your application.
This is the simpler and more common approach.
-
Create an external library with functions that can be called
by your application.
This approach is used when you need to interface with other external
libraries such as financial calculators or other specialty libraries.
-
-
You will never have to tell your users that something cannot be done or
will take too long.
Advantages for the application end user
-
A similar, predictable user interface for all application screens.
-
Power users can quickly learn the shortcuts to get to different parts
of the application.
Back to Top