In my webinar broadcast today on "what's new in Magic xpa 2" we spoke for a bit on the history of changes in the Magic application platform in the various versions since Magic 8 (which goes back more than 15 years.) I thought it might be interesting to post the details relating to the bullet points I mentioned. If you read through this entire list, it incorporates most of the enhancements since the year 2000.
Table
of Enhancements:
eDeveloper
9, eDeveloper 10, uniPaaS and Magic xpa
ENHANCEMENTS FROM VERSION 8 TO VERSION 9
A brief summary of the main enhancements that were
introduced from version 8 to version 9.
Support for the use of Web Services from within applications
have been added.
A new method for creating web applications that run inside
of a browser was introduced.
Capability to create reusable components was created.
Enhancements providing for event driven programming
capabilities were added. Logic can be triggered or executed conditionally based
on system, program and user events.
A number of data handling improvements were introduced
including capabilities for Deferred Transactions, maintenance of Referential
Integrity and the use of a Where Clause.
Capability for the developer to define their own error
handling routines.
Allows for simultaneous execution of processor threads in
support of the same application. Greatly increasing scalability and performance
efficiency.
A number of GUI enhancements, most of which have been
supplanted by subsequent GUI enhancements, were provided.
Numerous efficiencies in writing and maintaining programs
were introduced. The concept of models allows a developer to define commonly
used types and reuse them in various places within an application. Numerous
other enhancements such as Cross Referencing were also introduced.
Wizards that guide developers through multi-step development
tasks were introduced.
New or significantly improved support for connectivity to
several technologies was initiated, including: LDAP Support, Java Integration,
COM Support, XML Support, Web Service Support, SNMP Support, Message Queuing
Support, Mail, Clipboard and HTTP functions.
This new eDeveloper version provides enhanced engine behavior,
application development, version control, and debugging features, which let you
develop in a robust rapid application development and deployment environment.
eDeveloper 10 supports project-based development. A project
is a unit that contains objects related to your application. An application can
be a single project or a collection of projects.
When you define a new project, a folder with your project
name is created, XML files are generated inside the folder representing the
objects in your project, such as components, helps, menus, programs, and data
sources. The project file (.edp) is the project definition file that opens your
project.
eDeveloper lets you display a list of recent projects for
quick access, and also provides a project navigator for all related projects,
so that you can see your project hierarchy and navigate easily from project to
project.
A project is saved as a cabinet file (.ecf) when it is deployed.
You cannot view or modify a cabinet file in the eDeveloper Studio environment.
In eDeveloper 10, the data view and task logic operations
have been separated. The task is defined by three main layers: the Data View,
Logic, and Form Editors, which are described below.
This tab lets you define the task's logic segments, such as
task level handlers, event handlers, control handlers, and functions.
This tab lets you define the form display for the task.
Enhancements to the Expression Editor are described below.
Lets eDeveloper auto complete the function name by pressing
CTRL+[SPACEBAR] after you type the first letters of the function. If a single
function matches the typed letters, it will be automatically completed or a
list box will display the function list locating the first function that
corresponds to the typed letters.
An expression can be formatted using white blanks.
The full expression is displayed in a colored display.
The function types available are:
• Numeric
• String
• Basic
• Date and Time
• Variables (except the VarSet
function)
If an end user tries to use functions that are not in one of
the groups mentioned above, an error message appears.
In eDeveloper 10, you specify the Tab order of controls from
the Form Editor for an online task using the Automatic Tab Order mode. This
instructs eDeveloper to generate tabbing identifiers for all the controls on
the current form. You can click the Automatic Tab Order button under Order in
the Drawing menu to deactivate the Automatic Tab Order mode.
The Automatic Tab Order mode creates tabbing identifiers for
every control on the form of an online task, maintaining a consecutive sequence
from 1 to the last supported control, regardless of whether or not the control
lets the user park. For a browser task, the Automatic Tab Order command is not
active.
Every control has a Tab Order Control property that displays
the Tab order number. This control lets you enter a four-digit tab identifier
for the selected control when the Automatic Tab Order mode is not active. When
the Automatic Tab Order mode is active, this property becomes a read-only
field, displaying the automatically generated tab identifier.
The Allow Parking and Allow Direction properties for online
and browser controls determine whether the cursor could be parked on a control
and designates the flow order.
Unlike previous versions that supported a combined toolkit
and runtime engine, eDeveloper 10 separates the Studio (toolkit) and runtime
engines. The advantages of separating the two engines are described below:
• A project that crashes in runtime does not close the
Studio environment.
• You can abort the runtime process execution without
closing the Studio engine.
• The Studio client area is available to display flow or
debugging information while the project is running.
• A project can be executed by using the multi-threaded
background engine.
You can change the mode of the runtime engine while in the
Studio.
eDeveloper’s Debugger tool has been enhanced for V10,
providing new debugging features and enhancing existing features as follows:
• Conditional breakpoints: You can include conditions to
determine whether a breakpoint should be activated.
• Watch points: You can create a list that includes selected
variables that should be watched.
• Viewing and modifying variable content: eDeveloper 10 lets
you update variable values during debugging.
• The eDeveloper 10 Debugger lets you view the call stack.
• You can dynamically handle logs by using the new Logging
function.
Environment settings that require the engine to be reloaded
take effect only in the next session or by using the Reset Runtime Engine event
to reset the environment settings and to clear the runtime engine context.
eDeveloper 10 supports Version Control (VC) of your project
development. VC support is provided for third-party VC products that implement
the SCC API V1.01, such as Visual SourceSafe® and PVCS®.
Version Control means that the most up-to-date source files
reside in a central location. The central location is a Version Control project
that protects the source files.
eDeveloper 10's Version Control feature means that your
project can be developed in a multi-developer environment. Each developer works
on their own copy of the project source files and is responsible for
synchronizing their own copy with the centrally located version.
In eDeveloper 10, interface enhancements mean that you can
now add menus to a selected program, designate Radio buttons, Check boxes, and
Tabs as Windows controls, and define Multiple Document Interfaces (MDI) and
Single Document Interfaces (SDI).
eDeveloper 10 provides many new features and enhancements to
raise your GUI to a whole new level. eDeveloper 10 provides full support for
classic Windows and Windows XP style graphical user interfaces. XP support is
provided by the activation of a new setting in the Preferences tab: Use Windows
XP Theme. If the setting is set to Yes, any control you use that is assigned
with Windows as the control’s style will use the current XP styles.
In eDeveloper 10, the properties for the Check Box, Radio
Button, and Tab controls have been updated to give you the option of selecting
control characteristics that adhere to standard Windows controls.
The Tab control adheres to the style and behavior of a
Windows Tab control, when you select the Windows 3D option of the Style control
property. This option lets you:
• Specify the name
of a picture file that contains images to be displayed on the tabs. The picture
file depends on a comma-delimited numeric string of image tokens.
• Automatically
highlight a tab when the mouse cursor passes over it.
The 2D and 3D Sunken Style property values have been
modified to display the standard Window’s style check box. The 3D Raised Style
option remains an owner-drawn control as provided in previous Magic versions.
When 2D and 3D Sunken Style property values are selected, you can:
• Determine the
appearance of this control as either a box or a button.
• Support a Three
State display - True (selected), False (not selected), or Null (selected but
grayed out).
• Specify multiple
lines so that long text strings wrap around and continue on additional lines according
to the width of the control.
• Determine the
check box’s vertical alignment.
• Assign an image
file for the check box by either selecting an image or by setting an expression
that selects an image when the task is computed at runtime.
The 2D style and the 3D-Sunken Style property values have
been modified to behave as a standard Windows Radio Button control. When you
select 2D style and 3D-Sunken style, you can:
• Determine the appearance of the
Radio Button control as either a radio or a button.
• Specify multiple lines so that
long text strings wrap around and continue on additional lines according to the
width of the control.
• Determine the Radio Button’s vertical
alignment.
Although normally you cannot set the same variable for
different controls, eDeveloper now lets you assign the same variable to
different radio buttons. When switching radio button values, eDeveloper handles
different collection values with the same variable as a single collection.
Radio buttons assigned with the same variable share the same
properties. If a shared property is modified in one radio button, it will be
modified to the same value in all other radio buttons in the same form.
eDeveloper 10 provides new automatic functionality that
preserves graphical user interface modifications made by the end user. In this
way any change to the location or size for example will be saved. The next time
the end user accesses the form, the dimensions previously set will be used.
The Table control in this new eDeveloper version has been
enhanced providing an improved look-and-feel. By default, Table controls will
have a new style setting activated: Windows. This style means that the Table
control is a Windows and offers functionality, such as column reordering and
hot-tracking.
Parallel task execution in Background mode was supported in
previous versions. eDeveloper now provides you with the ability to carry out
parallel task execution in Online mode. This is made available by the MDI/SDI
functionality, which is described in the section below.
eDeveloper 10 lets you define Multiple Document Interfaces
(MDI) as well as Single Document Interfaces (SDI).
The MDI lets you open more than one document at the same
time. The MDI has a parent window, and any number of child windows. The child
windows usually share various parts of the parent window's interface, including
the menu bar, toolbar and status bar. Therefore, an MDI is constrained to the
parent window. The child window automatically closes when you close the parent
window.
The SDI opens each document in its own primary window. Each
window has its own menu, toolbar, and entry in the task bar. Therefore, an SDI
is not constrained to a parent window.
The MDI and SDI functionality lets an application open and
concurrently run several tasks. It enables a program to be opened concurrently
without the need to open a new instance of eDeveloper.
In eDeveloper, concurrent execution is implemented using
contexts. When a program is run concurrently, a new context is opened. The new
context will have its own Main Program. This Main Program and context are
independent of the other contexts running under this process.
eDeveloper 10 provides you with the ability to add menus
that are specific to a particular program and its sub programs. In addition,
you can also provide a specific context menu for a control and not have the
same context menu for all controls on the form.
A menu is a collection of menu entries and whether the menu
is a context menu or a dropdown menu, is defined in the context in which it is
used.
A series of functions are available that allow you to define
which menus a program will use.
In eDeveloper 10 you can use a set of wizards that let you
easily create components, including Web Service, DLL and Stored Procedure components.
You can also define application objects as components.
Exporting components lets you share resources among
eDeveloper applications and also facilitates the distribution of application
revisions. You can also expose eDeveloper applications to the outside world by
using component interface builders.
Components are listed in the Composite Resource Repository
(CRR). The interface displays the application objects that can be shared with
other applications.
From the CRR, you can:
• Reload a
component interface or load a new component. When an MCI file is loaded or
reloaded, eDeveloper checks the component type defined in the interface and
changes the Type property of the CRR accordingly.
• Invoke a wizard
that will both create a component that connects to an external resource and
create the component’s interface.
• Add your own
wizard.
• SOAP 1.1
• SOAP 1.2
• SOAP Attachments
• WS-Security
This latest Magic version supports Extensible Markup
Language (XML), providing a flexible standards-based format, which enables you
to easily share data on the Internet, Intranets, and other networks.
eDeveloper 10 provides you with the ability to use XML files
as a standard data source. When using an XML data source, you can create
eDeveloper tasks (batch and online) that use XML files as their view.
In the DBMS repository there is an XML File entry and in the
Database repository there is a Default XML Database entry, which let you work
with XML data sources.
You can define an XML data source in the Data repository and
define a task to manipulate and handle the XML file.
You can load an XML schema using the Get Definition command.
You can check that the XML task is compatible with the XML
schema by using the new XMLValidate and XMLValidationError functions.
You can create subviews of an XML schema to display selected
compound elements and selected simple elements and attributes.
This new eDeveloper version now includes across-the-board
Unicode support within the product. Support for Unicode is provided in addition
to existing support for both the ANSI and OEM standards.
Unicode support in eDeveloper 10 means that you can:
• Read from and
write to Unicode database fields
• Input and output
Unicode data to various Input and Output files.
• Create program
logic for Unicode data
• Perform read and
write operations on Unicode files
• Send and receive
Unicode data to and from external systems
• Use Unicode
definitions in expressions, functions, and form properties
eDeveloper 10’s implicit casting mechanism lets you select
the code pages you want to use for conversion to and from Unicode. If you don’t
select the code pages, eDeveloper uses its own default code page.
For purposes of explicit casting, there are two new
functions:
• UnicodeFromANSI
• UnicodeToANSI
• UnicodeCHR - Converts a numeric
value to a corresponding Unicode character
• UnicodeVal - Converts a Unicode
character to a corresponding numeric value
eDeveloper includes utilities that help you convert data
from Unicode to ANSI and from ANSI to Unicode. The utilities let you define the
input and output files as well as the code page to use, if you don’t want to
use the default code page.
In eDeveloper 10 you can use various RADD enhancement
features to define subforms, create user-defined functions, and provide open
directory functionality.
You can use subforms to integrate a task form into the
online form of a parent task, while maintaining the subform's task data
handling and record cycle activities as independent from the parent task.
The main advantage of using subforms is that you can park on
the line of a parent task and see the details from the subtask, for a
one-to-many task relation. eDeveloper automatically refreshes the Subform data
view according to the parent task when passing parameters, and retains your
last position in the Subform data view when you leave and reenter.
The SubformExecMode function provides information that is
required to let the developer condition the logic of the subform task to the
mode of execution.
The Subform Refresh event lets you refresh the subtask when:
• The Automatic
Refresh property is set to No.
• The task value
has not changed to cause the runtime engine to refresh the subtask.
User-defined functions have the following behavior:
• They are constructed with an explicit name, parameters,
operations, and a returned value. They are recognized by eDeveloper as an
internal function and are evaluated at runtime like regular functions. Function
syntax is executed in a manner similar to the execution of a synchronous event
handler. User-defined functions can also be published as part of a component.
• When defined for a Main Program, these functions are
available to the entire application. If Scope is set to Global, these functions
can be available from a component.
The DirDlg function opens the system’s directory selection
dialog box and returns the selected directory. For example DirDlg:\my
documents’) displays c:\my documents in the Open Project File Name field.
This latest version of eDeveloper provides enhanced event
handling features that let you define control handlers on the fly, declare
event data attributes to the engine, determine when to execute event handlers
in the record cycle, and handle changing variable values.
A user event can be set with declarative parameters. By
using these declarative parameters, the Raise Event operation provides argument
matching. When creating a handler for the event, the actual parameters can be
set automatically in the handler.
For Control handlers in eDeveloper 10, you can select an
existing control name from the Control list or enter a new control name. In
eDeveloper 9, you could only select a defined control name from the Control
list. The advantage of using a control name is that you can now define control
handlers on the fly, meaning that you can:
• Create a
control-specific handler before the control is created.
• Create a handler
for controls of the same name in different online class forms.
• Keep the control
reference even if the control is recreated.
When the Variable Change event is created, eDeveloper
prompts you to create the following parameters:
• Chg_<variable
name>_ stores the reason why the engine entered the handler, as expressed by
two numeric values: 0 for an interactive change or 1 for a non-interactive
change.
• Chg_Prv_ stores
the previous value of the variable.
Force Record Exit Enhancement
The Force Exit option of a record in previous versions is
now called Pre Record Update. This option instructs the engine to exit the
record and execute the event handler just before the record is updated in the
database.
A new option called Post Record Update instructs the engine
to exit the record, update the record in the database, re-enter the record, and
then execute the event handler.
This new eDeveloper version lets you recompute Link
operations quickly for data controls in a browser application table by setting
the table as a resident, as described below.
You can cache an application table by using the Immediate
and on Browser option in the Resident property in the Data Source Properties
dialog box. When the Immediate and on Browser option is selected, the data
object table is designated as a resident table and is loaded on the client with
the application. Every Link operation to the resident table is recomputed
locally on the client, which means that eDeveloper saves time that would
normally be used to recompute the Link operations for an application table
located on the server.
eDeveloper will not cache a data object table that has links
that require server-side recomputation. Cached tables for a browser task are
permitted only when the task’s Link operations are not related to the server.
These links are referred to as Client Side links.
Modern databases usually support a variation of a Datetime
field. This kind of field contains a combination of a date and time, which
provides an exact time stamp, such as May 3rd, 10:00 PM. eDeveloper now
provides functionality to combine the Date and Time fields to the same SQL or
ISAM iSeries database field.
The Part of Datetime property value is a reference to the
Time field in the same database table, which together with the Date field
combines the Datetime value in the SQL or ISAM iSeries database. The Part of
Datetime field is not available for regular ISAM files.
The AddDateTime function adds a time interval to a Datetime
value, which is represented by eDeveloper Date and Time fields. The specified
amount of years, months, days, hours, minutes, and seconds are added to the
current value of Date and Time, which is stored back into those two variables.
The DifDateTime function calculates the difference between
two Datetime values. The second Datetime value is subtracted from the first
Datetime value. The result is represented by the number of whole days between
the two Datetime values and the number of seconds of the remaining part of the
day.
The runtime report
generator may be enabled by the developer for any end user data view. End users
may then generate user defined queries, reports and charts based on data in the
view.
In addition to all the new features related to Rich Internet
Applications, uniPaaS 1.5 includes a long list of general platform
enhancements.
It is straightforward to make your applications Event driven
by utilizing the new Record Main Converter. The Record Main Converter locates
all of the Record Main based logic of a uniPaaS application and automatically
converts it to Event based logic while keeping the entire functionality of the
application intact. So there is no complex conversion process and definitely
calling it a migration would be a complete misnomer.
Making your applications completely Event driven enables you
to utilize new features, such as Subforms and Explicit Tabbing order of
controls that are not available in tasks that have the Record Main Compatible
logic unit.
A new property called "Layer List" has been added
to the Tab control. This property defines the tab layers that will be seen at
Runtime, and allows you to dynamically show, hide or re-order the tabs.
You can now define image types in client-server and rich
client applications that include transparencies and animations since controls
that enable image display will now show transparent and animated images.
The expression editor, which utilizes functions, has been
enhanced significantly. First, the description and syntax of the functions have
been added to the function selection list to make it easier for the developer
to know the purpose of the function. Second, a dynamic tooltip displaying the
function syntax has been added to the expression editor. The tooltip explains
the function and its arguments and saves the time of looking for it in the
help. The tooltip is automatically opened after writing or selecting a
function, but it can also be opened manually by pressing ctrl+space after the
function’s left parenthesis.
To make variable type instantly recognizable, the variables
in the variable selection list are colored according to their type (virtual,
parameter, or column).
With uniPaaS 1.5, a tooltip was added to the operations’
text areas to show the full text of the operation.
In uniPaaS 1.5, the push button control now has the added
ability to define the arguments sent to an event that is raised from a push
button.
Push button controls of hypertext style were enhanced with
both horizontal alignment support and new color properties to allow full
control over the colors per control.
The text in the column header of "windows" style
tables has been improved and will now be word wrapped if the vertical alignment
is set to "top". If there is still no room for the entire text, then
an ellipsis (...) Will be displayed at the end of the displayed text.
Modify in query has proven to be useful. So now, the modify
in query option has been added to the edit and check box controls as well.
You can now create a new task directly from the task list
that is opened by zooming from the prg/tsk num property of a subform control.
A new "control modify" event has been added. This
will be raised any time a control is modified. This will enable you to write
logic to be executed after a control value was changed, even before the caret
has left the control. To get the new value of the control you can use the
editget() function.
Magic decided to enhance the verify operation by giving you
several new abilities. With uniPaaS 1.5 enhanced verify operation you can now:
define the title of the message box; select the image to be displayed in the
message box; choose the button types to be displayed in the message box; and
define whether the text will appear in the error log.
With the enhanced uniPaaS studio, you have the ability to
jump into a program defined in a call operation. This will enhance the rad
productivity as you will not be required to leave the current program and jump
to another one by typing its number. This functionality is enabled by pressing
ctrl+f5 on a program. After jumping to a called program, you can also jump back
to the original location in the caller program by pressing ctrl+shift+f5. And
of course, for keyboard averse programmers, these options were also added to
the options menu.
The default printer for the current session is now changed
according to the printer selected by the developer in the print dialog box. Any
print jobs from uniPaaS will now use this printer as the default printer, and thus
will save the end user from the need to select the printer each time.
A new optional parameter (ecf filename) has been added to
the open application event. This parameter allows you to switch between
applications at runtime without the need for user intervention in selecting the
required application.
A new optional parameter (keep user sort) has been added to
the view refresh event. This parameter allows you to perform a view refresh while
keeping the user sort.
A new optional parameter (info type) has been added to the
dbname() function in order to return additional table information, such as the uniPaaS
name and database name.
The conversion utility has also been updated and it now
returns the uniPaaS name when used while converting a link validate to a
handler. The table name will now appear the same as in edeveloper v9.4.
A new function (fileinfo) has been added to allow you to
view the system information of a file, such as the file creation and update
date, path, and attribute.
A new function (cabinetunload) has been added to allow you
to unload a component at runtime.
The applications' caption property now supports logical
names, so you can define the required caption in the magic.ini file.
The preload view property has been enhanced to support the
selection of an expression. This expression will be computed prior to fetching
the records.
The studio has been enhanced and will now allow zooming into
the expression editor from an expression even when entering a task in read-only
mode (such as in debug mode, or using version control and not checking in the
task).
The Debugger will show the variable value as a tooltip when
placing the mouse over the: Entire line of the variable definition (Data View
tab).
Control that has a variable attached to it (Form Editor).
The Placement dialog box has been redesigned so that it’s
clearer to the developer what each option does.
The APG dialog box enables the selection of an index prior
to executing the APG.
This is mostly required when executing the APG to browse the
table records using a non-default index.
The Checker has been enhanced to show a warning message when
performed on a program whose size is larger than a certain value. The program
size can be specified by a new special setting called
"SpecialProgXMLSizeWarning".
This warning can be disabled by specifying a value of zero
or via the Checker Messages entry in the Environment settings.
The Print Data wizard allows the creation of a header line
for text file output and allows the removal of the header line for HTML file
output.
The value in the Web Service Endpoint property is now
re-evaluated before each call to the Web server. This gives you the ability to
change the value of the endpoint by updating a logical name.
The Broker Monitor has been enhanced to:
Show the entire call path of a program / handler.
Keep the changes in the column layouts made by the user.
Terminate Runtime Engines During Shutdown
The broker has been enhanced and can now terminate an engine
(after a period of time defined in the ShutdownTimeout keyword) even if the
engine does not shut down gracefully. This can be completed by defining the
Mgrbi.ini’s new keyword called TerminateEnginesDuringShutdown with a value of
Y.
The Web requester can now return errors into an XML file.
The current Mgreq.ini keyword named DefHtml was replaced with DefError (DefHtml
is still supported). This keyword can now accept the additional values of XML
or filename.xml.
A new option has been added to the conversion utility which
allows you to define whether the variable added due to the conversion of Link
Validate to Link Query will be added before the link or last in the task.
The Database login screen, which appears when failing to
connect to a database, will no longer be shown at runtime, since in most cases
the end user should not change the connection settings.
A special setting called "SpecialShowDBLogin" was
added to support the old functionality.
In eDeveloper V9.4 and below, when exporting a range of
programs with references between them and then importing them to the same
project, the number of references remained the same. In uniPaaS this is changed
and the import will keep the reference between them, so it will not matter
where they will be added. A new special setting called
"SpecialRelativeImport" was added to support the old behavior.
uniPaaS officially supports the latest Windows 7 operating
system. This release has further improved this support and made uniPaaS more
compatible with the requirements of Windows 7. In this release the installation
process properly performs the settings required for the IIS7 (Windows 7
Internet Information Server – i.e. Web Server). Moreover, the uniPaaS
executable files are automatically set to run under the administrator user.
uniPaaS 1.9e supports a new type of database called SQLite.
SQLite, as its name suggests, is a very light DBMS that is
targeted for single user purposes. This database can be used for single user
deployments or for local data handling (per client) in multi-user deployment.
The SQLite database content reside in a simple file which
can be easily transported from one machine to another, making it a good option
for developers to pre-pack their applications with ready-made content.
There is no additional installation required for using
SQLite. SQLite capabilities are embedded in the product, thus are available
upon uniPaaS installation completion..
REST stands for Representational State Transfer and it is a
way of providing in consuming services over the web (over HTTP) in a way that
is much simpler than the elaborated standard of Web Services.
With the introduction of a new function called HTTPCall we
enable our customers to properly consume and interact with REST based services.
You can read more about REST here:
http://en.wikipedia.org/wiki/Representational_State_Transfer
We have upgraded uniPaaS’ Web Services infrastructure to the
latest Systinet 6.6 which requires a newer version of the Java framework – Java
1.6.
On Installating uniPaaS 1.9e it will install the new
Systinet modules and the required Java Runtime Engine (JRE 1.6).
Some internal changes were made to reduce the size of the
ECF file and improve the performance of loading objects from it.
Although your old ECF files will still work with this
version, it is highly recommended to recreate them in order to enjoy this
improvement.
The decimal separator used to communicate with the database
is now taken from the uniPaaS environment settings (as it was in eDeveloper V9)
instead of from the regional settings.
In previous versions, using the Logon() function in a task
only affected that task, and the user was reverted once the task was closed.
This behavior was changed and now the new user will be used even after the task
termination.
If you need to have the old functionality, you should
perform an additional logon before closing the task.
The value of the ‘TempDir’ and ‘WorkingDir’ internal logical
names can now be changed using command line parameters. This ability allows you
to configure a different value for these settings per each user or engine
startup.
In addition to the existing form of calling and consuming
Web services using Systinet, uniPaaS now supports an additional form for
calling and consuming Web services that does not require Systinet and the Java
virtual machine in deployment.
This new form of calling a Web service is available using an
Invoke operation option called ‘Web S. Lite’. This option is similar to the
Call Web Service operation that was available in eDeveloper V9.4.
Note that the newly introduced Invoke Web S. Lite operation
is a simpler way of calling Web services and it does not support some of the
functionality and the security features that are supported by Systinet and that
are available through the Invoke Web S. operation.
Refer to the uniPaaS Help for information about migrating a
project with Web Service calls.
The SpecialAffinity keyword used to force the current
process to use only one CPU was improved and can now accept the CPU number.
Browser Client is compatible to work on Internet Explorer 8.
A new management screen was added to show all the data
sources (similar to the eDeveloper V9 screen).
This screen also includes data sources defined for selection
controls.
You can access this screen from the Task pulldown menu or
the Ctrl+D shortcut.
In addition to the current source control mechanism, in
which all the files are stored and used locally, a new source control strategy
was added and you can now choose to store only the checked out objects locally
while using the rest of the source files from a common place.
To use this strategy, your Source Control Server should
support shadow folders, and this folder must be defined in uniPaaS when you
create a new project or open a project from the server.
Performing Check-in to several objects simultaneously will
now load them to the source control server in a single operation. If your
source control server supports ChangeSets, then you will be able to see, in the
object source control properties, which files were checked in with your object.
The Activity Monitor screen now displays a table with
multiple columns. Saving this data will generate an XML file with this
information.
This change adds more information for the activities and
enables easier task flow monitoring.
The following functions were added to allow dynamic
execution of Range, Locate and Sort: RangeAdd(), RangeReset(), LocateAdd(),
LocateReset(), SortAdd(), SortReset().
When using these functions, the new Range/Locate/Sort
criteria are stored in the memory, and will be executed when a View Refresh is
performed.
This functionality provides the ability to easily write a
Range/Locate/Sort interface to be used by the end user
A component (and its source code) that uses the new dynamic
range and locate functions is available. This component can be used to replace
the built-in functionality of Range, Locate and Sort that is provided with the uniPaaS
installation. The component includes interfaces for both Online and Rich Client
tasks.
The 'Part of DataView' property was added to the field
model, so you can now define it in the model level and inherit it in the task.
A new event was added to allow you to catch the column click
and write specific logic that will be executed when the user clicks on a
column.
A new function was added to return the task type.
This function will allow you to write specific logic for
Online, Batch or Rich Client tasks.
A new function was added to return the task instance ID.
The task instance is a unique ID for the current execution
of a task. If a task is re-opened, it will have a new instance ID.
This function will allow you to save persistence data per
the task instance.
uniPaaS will now auto complete the DotNet expression prefix
in the Expression Editor.
uniPaaS now allows the user to control whether fonts will be
embedded within PDF files.
When the fonts are embedded, the PDF size increases.
You can control the print behavior via a new option in the
environment settings.
uniPaaS now supports creating compressed PDF files.
Compressing the PDF will reduce the PDF size.
You can govern the print behavior via a new option in the
environment settings.
The DATE and TIME data types added to SQLServer 2008 are now
supported in uniPaaS.
A new special setting named SpecialTrimParamDSQL was added
to define whether or not parameters sent to Direct SQL statements will be
trimmed.
The location of where the data of the Form State Persistency
and Preferred Events was changed from: ‘C:\Documents and
Settings\<user>\Local Settings\Application Data\MSE’ to: ‘C:\Documents
and Settings\<user>\\Application Data\MSE’
When dragging multiple files into an edit field, the
separator character between the file names is now the pipe char (|) instead of
a comma. This will allow you to properly handle file names that contain a comma
in their name.
When Preload View=No, the DBViewSize() function will now
return 0 and not the number of records that were fetched so far.
A new parameter was added to the function to determine if
the blocked engine will be terminated when it no longer serves any users.
A new option was added to define the Checker behavior when
unused expressions are found. You can define whether to skip them, delete them,
or open a dialog box (as it did before).
You can select the desired behavior by updating the ‘Checker
behavior for unused expressions’ setting in the Preferences tab of the
Environment settings screen.
The Checker results can now be saved to a file.
You can define the result file in the ‘Checker output file’
setting in the External tab of the Environment settings screen.
When running a program from the Studio that is defined with
Input Password = Yes and Deployment mode = Background, the Runtime engine will
now use the Studio user name and password and will not open the Logon screen.
When consuming an RPC Web service with complex types, the
Complex elements are now sent as-is and are not escaped.
The uniPaaS installation wizard now allows the end user to decide
whether to install the 32-bit or 64-bit version of the requesters when it is
run on a 64-bit operating system.
The Certification document was renamed to Compatibility
Guide.
The default value of the AutoLoopBack property in the
Mgreq.ini file was changed to ‘Y’.
uniPaaS will now install the dll files required to support
Korean and Traditional Chinese characters.
The uniPaaS Help was enhanced and it now contains
information from various documents, such as the Mastering uniPaaS PDF,
Technical Notes, and documentation about servers.
When searching for a string in the uniPaaS Help, details
from all of these sources will appear. You can see the source of the result in
the Location column.
uniPaaS provides a comprehensive solution for a Rich
Internet Applications (RIA). uniPaaS is a platform for developing and deploying
RIA business applications serving remote and distributed users.
uniPaaS Rich Internet Applications may be remotely accessed,
provide a fully interactive experience, and allow for automatic logic
partitioning between clients and servers. User experiences are enhanced through
an enhanced look and feel and accessibility of client-side resources in a
browser free solution.
Developers benefit from a single unified IDE and development
paradigm, performance-aware optimization during development and automated
management of partitioning, communication and technical layers.
The resulting reduced Total Cost of Ownership (TCO) occurs
because: there is no need for application-specific setups to access and run a
Rich Client application; there is no need to manage the end-user's machine to
accommodate application maintenance; and there is no need to install
client-side software, such as Database-client and special printer drivers.
You can create a Rich Client task with full transparent
runtime functionality by defining a task as a Rich Client task type in the Task
property sheet.
The Rich Client deployment mode allows for Server-Side
Functions; Client-Side functions and Functions that can be executed on either
the client or the server.
uniPaaS supports expressions on either the client-side or
server-side. Developer functions are also supported on either client side or
server side. However a single expression
or function may not combine operations on both sides. Supported client side
expressions include add, modify, delete, query, properties, etc. Server side
expressions include Range, Locate, SQL Where, etc. A number of neutral
expressions and operations are also provided for.
uniPaaS supports a wide variety of internal events including
67 client side events and 5 server side events in Rich Client mode.
In Rich Client tasks, uniPaaS supports several handling
modes for handlers, operations, and functions. Some handlers, operations and
functions may be executed in only one of these modes, while others may be set
by the developer. The main modes are Client-side handling; Server-side
handling; and Mixed mode handling where the operation will be performed on both
the client and the server.
Several Rich Client programs can run simultaneously by using
the Parallel Execution task property. For example, one program for employee
management, and another for finance, all from a single entry point, without
having to repeat authentication for each parallel program.
In Rich Client tasks, the server side can be debugged using
the Activity Monitor. The client-side entries are added to the Activity Monitor
when the next event is processed.
The floating license features enables customers to share a
pool of license between several server processes in a dynamic fashion (as
opposed to a static consumption where each server process is given part of the
license capacity and that part cannot be changed as the process runs).
This ability to of dynamic consumption of license capacity
was supported for threads based licenses (i.e. iBOLT server, or uniPaaS
Enterprise Server). With this release, this ability is supported also for RIA
server licenses which are user based.
The Init property now supports server-side expressions.
Although such expressions will be executed properly, they
will reduce the performance when browsing through the records and hence it is
not recommended to use them.
The Checker will show a recommendation message when using
server-side expressions in the Init property.
The loading performance of RIA applications on mobile
devices has been improved. The application is now automatically loaded upon
device startup and is kept open in the background when the end user closes it.
This enhancement reduces the load time of the application.
Note that this is the default behavior and can be disabled
by raising an ‘Exit System’ event from the application or changing the
‘AutoStart’ property in the Execution.Properties file.
The ‘Client Network Recovery Interval’ property is now also
supported for mobile devices.
Radio Button and Subform controls are now supported in Rich
Client tasks running on a mobile device.
Support for .NET events was added for some of the external
.NET controls of the .NET Compact Framework used by mobile devices.
For more information, refer to the uniPaaS Help.
The .NET Code editor that is available from the Invoke .NET
operation was improved with the following features:
• A new code editor, including
coloring, indentation, auto-complete, IntelliSense, etc.
• VB.NET code support
• Code compilation for mobile devices
A Rich Client project that uses .NET objects does not
require that a .NET framework is installed on the server.
There is no longer a need to set public names for RIA
programs that are not the entry point of the application.
To simplify the deployment and increase the security of the
web server, the RIAModules alias is no longer required.
The Rich Client Deployment Builder will now copy the RIA
modules and resources into the published application folder.
To simplify the uniPaaS Studio upgrades, the old RIA Modules
will now be overwritten with the updated files. (The subfolder with the RIA
version was removed). This means that you no longer have to manually update the
ClientModulesPath parameter in any external ini files used.
MDI is now supported for Rich Client applications.
The declaration of the MDI properties is done by defining a
Rich Client MDI form in the Main program and checking the ‘Open Rich Client MDI
Frame’ check box, which exists in the Interface tab in the Main program’s task
properties.
Refer to the uniPaaS Help for information about working with
MDI in Rich Client.
A new option was added to define whether a window will be
automatically closed when clicking on a parent window. This ability provides
compatibility to the Online window behavior.
You can define this behavior in the Preferences tab of the
environment settings.
A new property was added to the Image control to define
whether the image file will be loaded from the server or the client. If the
image refers to a server file, uniPaaS will automatically transfer the image
file to the client and show it. This means that you no longer have to expose
the images on the Web server or manually transfer them to the client side in
order to show them to the user.
Objects other than images that refer to an external resource
file (such as wallpaper images and Tab control images), will now regard the
file as a server file and uniPaaS will automatically transfer the file to the
client and display it. This means that you no longer have to expose the
resources on the Web server or manually transfer them to the client side in
order to show them to the user.
When running a Rich Client application from a mobile device
or directly by running the uniRC.exe (without using ClickOnce), the Rich Client
modules on the client machine will automatically be updated if the server
version is different from the client version.
The ability to run a program or task in a subform using the
Call operation was enhanced and you can now choose a subform that is defined in
a parent task form.
Form state persistency is now supported for Rich Client
applications.
This behavior is governed by the new ‘Persistent form state’
form property.
The FormStateClear() function is supported for Rich Client
as well.
Incremental locate is now supported in Rich Client tasks.
Horizontal and Vertical alignment are now fully supported
for Rich Client Push Button controls.
The Debugger functionality is now supported for server-side
operations in Rich Client tasks.
The ClientFileOpenDlg() and ClientFileSaveDlg() functions
were enhanced and will show the filename specified in the path property as the
default file name.
The following function were changed to be neutral-side
functions: DbViewSize(), DbViewRowIdx(), INIGet(), INIPut() and ProjectDir(),
Term(), User().
The following functions are now supported as client-side
functions: CtrlHWND() and WinHWND().
Two new functions named ServerFileToClient() and
ClientFileToServer() were added to allow you to easily transfer files between
the client machine and the server machine.
The DefError keyword, which is used to customize the error
screen, is now supported for Rich Client applications.
The drag-and-drop functionality is now supported in Rich
Client tasks and Rich Client forms for Edit controls only.
The User Functionality component mentioned above also
contains a Rich Client program that implements the Online Print Data
capabilities.
You can use this component if you need to provide the Print
Data capabilities to the end user from a Rich Client program.
The Report Generator can now be executed from a Rich Client
task.
You can now minimize your application from any task using
the WinMinimize() function. This will hide the application and move it to the
background. Running the application again or using the WinMaximize() function
will return the task to the exact state from which the application was
minimized.
The Rich Client Deployment Builder was enhanced with the
ability to define the application splash screen for your mobile application, so
that you can use your own graphics.
You can also customize the mobile application icon by
manually updating the following resource file with the required icon:
Add_On\Builders\Templates\MobileResource.dll.
The Rich Client Mobile module was enhanced with the ability
to integrate with the .NET assemblies from the .NET Compact Framework 3.5.
If you need to interact with these assemblies, your mobile
device should have the .NET Compact Framework 3.5 installed, and you should use
the V3.5 deployment package created with the Rich Client Deployment Builder.
The Rich Client Deployment Builder will now be installed on
server installations. This allows you to run it on the deployment site without
having the uniPaaS Studio installed.
UNIPAAS 2 ENHANCEMENTS
UNIPAAS 2 ENHANCEMENTS
The Magic uniPaaS Application Platform 2.x was introduced in
2011. In addition to all the new features related to Rich Internet
Applications, uniPaaS 2 includes a long list of general platform enhancements.
Native .NET Deployment
The uniPaaS 2.0 deployment engine supports native .NET
deployment of uniPaaS 2.0-based applications as native .NET applications. The
new uniPaaS 2 engine uses the Windows Forms .NET library as the GUI front-end
for applications, resulting in a richer user experience. This fundamental new
basis for the client side container provides full integration with the
Microsoft .NET framework to significantly enhance application design,
functionality, interoperability, and overall user experience regardless of the
underlying server operating system (Windows, Linux, UNIX, or IBM i). uniPaaS 2
provides the Magic, .NET, and Java composite application functionality all from
a single highly productive and easy-to-maintain platform. Both the Magic
uniPaaS Application Platform desktop deployment client and the Magic uniPaaS
Application Platform RIA deployment client are fully native .NET based applications.
For .NET applications, the uniPaaS 2 deployment engine is a native .NET client,
and all uniPaaS applications that are deployed using it qualify as standard
.NET applications.
MOBILE ENTERPRISE APPLICATION
PLATFORM (MEAP)
The Magic uniPaaS Application Platform 2.x introduces
multi-device smartphone support making Magic fit the category of solutions
called Mobile Enterprise Application Platforms (MEAP) by analyst organizations.
As a MEAP platform, Magic supports multiple target smartphone clients from a
single application platform for development and deployment. As of March 2012,
supported smartphone clients include those that run on RIM BlackBerry OS,
Android OS, Apple iPhone iOS, and Windows Mobile.
MOBILE DEPLOYMENT BLACKBERRY CLIENT
A new Magic uniPaaS BlackBerry Client is included to enable
Magic applications to run on devices supporting BlackBerry OS. The BlackBerry
Client supports the native look and feel of the BlackBerry OS.
MOBILE DEPLOYMENT BLACKBERRY CLIENT – CAMERA SUPPORT
The new Magic uniPaaS BlackBerry Client supports applicative
interaction with the camera on BlackBerry smartphones.
MOBILE DEPLOYMENT iPHONE CLIENT
As of March 2012, a new Magic uniPaaS iPhone Client is
included to enable Magic applications to run on devices supporting Apple iOS.
The iPhone Client supports the native look and feel of the iPhone on iOS.
MOBILE DEPLOYMENT ANDROID CLIENT
As of March 2012, a new Magic uniPaaS Android Client is
included to enable Magic applications to run on devices supporting different
versions of Android OS. The Android Client supports the native look and feel of
various Android devices running on Android OS.
FULL .NET INTEGRATION
Magic uniPaaS Application Platform 2.x offers seamless
integration with third-party .NET modules, controls, and services to
significantly enhance the overall user experience of applications.
RIA CONVERSION ENHANCEMENTS
Automated procedures have been enhanced and improved for the
conversion of a Magic uniPaaS Desktop Client application to a Magic uniPaaS RIA
Client application. The technological
gap between client/server and RIA deployment modes has been dramatically
reduced, making the migration from client/server to RIA simpler and shorter
than ever before.
SAMPLE PROJECTS
The following sample projects were added to uniPaaS and are
installed in the SampleProjects folder:
• Rich Internet Demo: The project of the
live RIA demo, which is available at http://riademo.magicsoftware.com and
http://riademo.magicsoftware.com/mobile
• Online Samples: A set of online
(client/server) examples for multiple client/server ‘how to’ scenarios that are
described in the book: Mastering uniPaaS.
• Rich Internet Samples: A set of Rich Internet examples for many rich
client ‘how to’ scenarios that are described in the book: Mastering uniPaaS.
• Mobile Web Samples: Web templates based on HTML Merge technology
for mobile devices.
• .NET Tutorial: A short tutorial with
examples explaining how to use .NET in uniPaaS.
All the projects are available with their source code, so
you can use them in your applications.
IMPROVED MDI FORM HANDLING
The handling of the MDI form in client/server applications
has been improved by consolidating all its properties and settings into a new
MDI form entry in the main program.
Magic’s Company
Rebranding: A New Look for a New Age
of Magic
Magic is launching its rebranding as a proactive strategic move to reflect the exciting changes
that we are undergoing
as a company and the
major developments in our product offering.
Magic’s rebranding highlights our company values, the set of
beliefs that guide and inspire us
at every level throughout our
organization.
For our
brand
architecture—the
framework that
defines the
relationship
between
the corporate brand and the product
portfolio—we have chosen to use the 'master brand' model,
focusing more on our company
brand (Magic) rather than on the branding assigned to our
different products and
services. This
emphasizes
that Magic’s different
products are all instances of the same unified technology stack and the same fresh approach to enterprise
software.
Accordingly, we
have renamed our products
as follows:
• uniPaaS is now named
Magic xpa Application
Platform
• iBOLT is now named
Magic xpi Integration Platform
Magic's rebranding aims to illustrate that
all our corporate activities and communications are
infused with
our core values, differentiating
us from competitors,
strengthening our relationships with customers, and increasing the popularity of our products and services.
New Features, Feature Enhancements
and
Behavior Changes
Renaming of Product Executables
As part of the rebranding
process, some of the product files were renamed, including:
• uniStudio.exe, which is now called
MgxpaStudio.exe
• uniRTE.exe, which is now called MgxpaRuntime.exe
• uniRQBroker.exe, which
is now called MgBroker.exe
• uniRQMonitor.exe, which is
now called MgBrokerMonitor.exe
Dependency in MSHTML.DLL in Rich
Client Tasks
The MSHTML.DLL file
is no longer required to
run Rich Client tasks.
If your RIA application needs to use the BrowserScriptExecute() function, then it should include a reference
in the CRR to this
dll file.
Additional Functions Supported
in Rich Client Tasks
The SubformExecMode, MnuRemove and MnuReset functions are now also supported in
Rich Client tasks.
Status Bar Panes in Rich
Client Tasks
The task mode,
wide and zoom indications can be seen
in the
status bar
of a RIA
application
using a new special setting named
SpecialShowStatusBarPanes.
Spanish Language Support
Magic xpa now supports a Spanish Language
Studio.
The new language was
added to the Language
list
in the installation
wizard.
Android™ Support
The Android client was enhanced with the
following features:
• Simpler customization methodology
• Repackaging script
• Support device
location (GPS)
• Accessing the
mobile devices’ capabilities
(telephone, text messages, emails)
• Support of the
Row Highlight Color property for
the Table control
Refer to the
RIA for Mobile Devices PDF
or to the RIA for Mobile Devices concept paper
available in the Magic xpa Help.
iOS™ Support
The iOS client was enhanced with the
following features:
• Support of the Row
Highlight Color property for
the Table control
• Support of the
Subform control
(Beta feature)
Refer to the
RIA for Mobile Devices PDF
or to the RIA for Mobile Devices concept paper
available in the Magic xpa Help.
BlackBerry™
Support
The BlackBerry client is now
available as part of the installation.
In addition, the BlackBerry client was enhanced with
the following features:
• Support of the
Line and Group controls
• Support of the
Wallpaper form property
• Support encryption of messages
between
the client
and
the server (The
SpecialClientSecureMessages=N is no longer required.)
Change
of behavior:
• Forms
with a Floating window type
will now open as a
popup window. The Title Bar property, which previously defined if the window opened as a popup window, is
now supported for
full and popup windows and defines
whether a title bar
will be shown.
• The forms
will be automatically scaled
according
to the
device’s DPI.
Refer to the
RIA for Mobile Devices PDF
or to the RIA for Mobile Devices concept paper
available in the Magic xpa Help.
BlackBerry PlayBook™ Support
Magic xpa RIA client can run on the BlackBerry PlayBook tablet using the PlayBook’s
BlackBerry Runtime for
Android apps’ capabilities.
The script for repackaging
an Android 2.3.3 RIA application to BAR file format, which is the compatible file format required for an application to run on the BlackBerry Tablet OS, is available
as part of the
installation.
Network Installation
The .NET runtime security policy (by default) disables code from running if it exists on a network drive. To run Magic xpa from
a network drive you need to adjust your security
policy.
This can be done via the Microsoft .NET Configuration tool or by running
the following command:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe
-machine
-addgroup All_Code -strong
-file <path>MagicxpaRuntime.exe -noname
-noversion FullTrust -name Magicxpa_Assemblies_Access -description
"Code group granting trust to Magic xpa assemblies"
This command
needs to be executed only once in each
of the computers.
You can also add a –silent key for a silent installation.
Mobile Application Samples
A sample project named Mobile Demo was added to demonstrate how you can write
mobile applications using the
mobile device capabilities
of Magic xpa’s RIA technology.
uniPaaS 2.1 – New Features, Feature
Enhancements and Behavior
Changes
Android and iOS Support
The uniPaaS RIA client is
now capable of running
on Android™ and iOS™ devices.
As for the Windows Mobile and BlackBerry, the Magic RIA client
for
Android and iOS is
a native operating
system (OS) application implementing the Magic RIA client protocol. Using
the
Magic RIA client for the different
mobile devices, developers can deploy enterprise
connected, highly interactive RIA applications
on the different mobile
devices.
Note that the
RIA client for Android is a
Beta version.
Refer to the
RIA for Mobile Devices PDF or to the RIA for Mobile Devices concept paper
available in the uniPaaS Help.
Call
to a Destination Subform or Frame in Online Tasks
The Call
operation
in
Online programs was enhanced
with
a
new property
called
‘Destination’. This property provides the ability to dynamically call
a program or a task and run it in a subform or
a frame (similar to Rich Client).
Retain Focus
in Online Tasks
The Call operation in Online programs was enhanced with a new property called ‘Retain
Focus’. This
property defines whether
the
focus will
remain on the current
control or be moved
to the
first control
of the
called program or task after executing
the Call operation.
This property is enabled when performing the call from a logic unit other than the Task,
Record, or Control logic units to a destination subform or frame using the Destination
property.
Parallel
Execution in Online Tasks
Parallel execution is now
supported for Online
tasks.
The Application Modal window type was removed and the Modal window type will behave
as the old Application
Modal.
The Window menu and
window-related events are
still not supported.
View
Refresh in Rich Client Tasks
The View Refresh behavior in
Rich Client tasks was enhanced.
After performing a view
refresh with ‘Relocate Mode=0’, the position of the
current
record now remains as-is
(and is not changed to
be the first record).
Row Placement
Property in a Table
Control
A new
property was added to support the
fixed
number of table records.
Setting this property value to Yes means that the row’s height will be resized according to the
table’s height, thus keeping the
same
number of records
as designed in the Studio.
Default Location
of Forms
A new option named Windows Default Location was added to the form’s Startup Position property. When using this option, the form is positioned at the Windows default location
and has the dimensions specified in the form’s
size.
The Default option in which the form is positioned at the Windows default location and has the
bounds determined by
the Windows default was
renamed to Windows Default Bounds.
.NET Data Binding
It is now easier than
ever to use uniPaaS data
variables with .NET controls.
Two new properties were
added to the
.NET control model so that you can define the .NET
control property to which you want to bind the data and the event that will
be the trigger for the
data update.
After these properties are defined, you can use the .NET control in the same way
as you use any uniPaaS built-in control. You simply need to
attach your
data variable to the .NET
control’s Data property.
The previous functionality of assigning a .NET variable to the .NET control is still supported
and can be done by using the .NET Object property in
the .NET control.
For more information on how to use .NET data binding,
see the .NET Tutorial sample
installed with uniPaaS.
.NET – DataViewToDNDataTable() Function
A new
function
was added to create
a .NET DataTable object out of the task’s data view. The .NET DataTable objects can then
be used as the data source of other
.NET objects.
.NET Controls – Change of
Behavior
When clicking on a .NET control defined with Allow Parking = No, the focus will not leave the
current control or
record.
Requester
and Broker Logs – Default
File Names
The default value for
the requester
and
broker logs were
changed as follows:
mrb_event.log =>
BrokerActivity.log,
mrb.log => Broker.log, req.log =>
Requester.log
Mobile Devices – Additional Information
A new
property was added to allow maximum flexibility with
mobile device properties. This property will be used to
send
specific
pre-defined information to
the mobile devices.
Mobile Devices – Press
Event
A new event was added to handle the long press on a control in mobile devices. At this
stage, this event is supported for
BlackBerry only.
.NET 3rd Party Samples
A new sample project was added to demonstrate how you can use 3rd party .NET objects and controls
in your
application to improve the
functionality and
user interface.
The 3rd party assemblies are not included with this package and should be downloaded from the 3rd
party vendor site
as described in the
sample programs.
Note: If your 3rd party package version is different than the one used in the samples, you will
have to replace the assemblies defined in the CRR with the ones from your version.
uniPaaS 2.0a – New
Features, Feature
Enhancements and Behavior
Changes
MDI Frame Color
A new color was added to the default color file with the value corresponding to an MDI
Frame background.
This color is used as the MDI
Form color in newly created projects (and can be changed in
the proper ties of
the Main Program form).
End-User Functionality
Component
The End-User
Functionality component is
now added by default to newly created projects.
A new option
was added in the migration wizard, which lets you select whether
to
also add this component to the
migrated project.
Note that if you want to use both this component and the Report Generator, then the Report Generator component should be defined above the End-User Functionality
component.
Subform Behavior
A new property named Refresh When Hidden
was
added to the Subform control
in Online tasks.
This property provides the ability to load and refresh the task running in the Subform control the
same
way it was done in uniPaaS 1.9.
A value of Yes means that the subform tasks will be called for the first time after the
Record Prefix of the host and again after each refresh of the subform. (This is similar to the
behavior in uniPaaS 1.9
when the subform was attached to a container control and the
container control was
hidden.)
A value of No means that the subform tasks will be called only if the subform is visible. (This
is
similar to
the behavior in uniPaaS
V1.9 when
the
subform had
a
Visible
expression.)
For nested subforms defined with a value
of No, if the parent subform
has a value of Yes at
runtime, then the nested
subform wi ll
also be executed with
a value of Yes.
The migration from uniPaaS 1.x will set the
value of this property as follows:
• No – When the subform is attached
to a container control.
• Yes – When the
subform has
a Visible expression.
• Exp – When the subform is attached to a container control and also has a Visible
expression. The
expression is the
expression of
the Visible property.
In addition, up until this version, when clicking on a Subform
control, the Control Prefix and
Control Suffix of the first control were always executed. This is now fixed, so only the
Control Prefix of the
clicked control will be
executed.
EDP File Structure
The EDP file was changed a bit to prevent opening a uniPaaS
2.0 project in previous
versions, in order to
maintain the integrity of
the sources.
uniPaaS 2.0 – New Features, Feature
Enhancements and Behavior
Changes
Prerequisites
uniPaaS is a native .NET application, so in order to run uniPaaS on your machine, you
must have .NET framework installed on your machine with one of
the
following configurations:
• Both .NET Framework V2.0
SP1 and Microsoft Visual C++
2008 Redistributable.
You can install them by running the NetFx20SP1_x86.exe and VCRedist_x86.exe
files from the Scripts\RIA folder.
• .NET Framework V3.5
(or
above)
Network Installation
The .NET runtime security policy (by default) disables code from running if it exists on a
network drive. To
run uniPaaS from a network drive you
need to adjust your security policy.
This can be done via the Microsoft .NET Configuration tool or by running the following
command:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe
-machine -addgroup All_Code -strong
-file <path>uniRTE.exe
-noname -noversion
FullTrust -name uniPaaS_Assemblies_Access –description "Code group granting trust
to
uniPaaS assemblies"
This command
needs to be executed only once in each
of the computers.
You can also add a –silent key for
a silent installation.
Online Changes
In uniPaaS 2.0, the
Online GUI is based
on the .NET framework
instead of Win32.
The .NET framework does not support
all the appearances and control behaviors that were supported in previous versions, so there is a change in the uniPaaS Runtime appearance as well.
For a full
list
of changes, refer
to the
What's Different
in uniPaaS 2.0 help topic.
Some of the major enhancements
are described
below.
.NET Integration in Online and
Batch
Tasks
.NET Integration was
introduced to RIA applications in uniPaaS V1.8.
With this release
you can
enhance your
Client/Server application offering by easily embedding
and integrating any .NET control
or assembly in your
Online and Batch tasks.
For more information on how to add and manipulate .NET modules, see the .NET Tutorial sample installed with uniPaaS.
Online MDI
The Online Runtime MDI Frame is now defined as any other form in the Main Program
(similar to
the
Rich Client MDI Frame).
The benefit of this change is the centralizing of all the form properties from the different
locations they were
once
defined
in, into a single location.
The MDI can be disabled by defining Open Task Window = No in the Main Program
properties.
Online Frameset
Splitter forms are now defined using a frameset form for an Online task (as in Rich Client
tasks) instead
of using a Splitter form.
User State Persistency
in Online Tasks
The Online task’s form state
persistency is
now defined as a simple Yes/No
property.
This change makes it simpler to use the form state persistency since you now do not need to
define and maintain a list of unique identifier names for your
forms.
Rich Client – Hebrew Support
The Logical() and Visual()
functions
are
supported.
Rich Client – Forms
All UOM types (dialog units, centimeters, inches) are supported.
Rich Client – Drag
and Drop
1. Drag & drop is supported for
all of the controls.
2. User-defined format is supported.
3. DragSetCrsr()
function is
supported.
Rich Client – Post
Refresh by Parent Event
A new internal event was
added to execute logic every time the subform is refreshed.
This event is raised before the Record Prefix in the subform task when the subform is
refreshed by
the parent. The event is raised when one
of the following occurs:
1. The subform is defined with Auto Refresh=Y and a variable sent to the subform as a
parameter is changed.
2. The Subform Refresh event is raised.
3. The subform is
executed for
the first time.
The event is not raised
when a ‘View Refresh’ is
raised
in the subform task.
Sample Projects
Additional
sample programs were added to the Online Samples and Rich Internet Samples
projects. The new sample programs are for some of the uniPaaS functions and for
connectivity to Google
Calendar, Google Blogger, Facebook, LinkedIn and Twitter.