Sunday, December 11, 2011

Developing Portable Business Apps for the BlackBerry

In the recent IBM Tech Trends 2011 report,  IBM reported that 70% of the more than 4,000 members of its developerWorks community who participated in a recent survey planned to develop mobile apps for Android. Not surprisingly, a mere 19% planned to develop for iOS. It is interesting, however, that 9% have already indicated plans for WebOS. About 35% and 25% plan to develop mobile apps for Windows 7 and BlackBerry OS respectively. A population bias against Apple’s iOS can be expected in the developerWorks community, so no one should try to read the death of Apple into these numbers. If anything, this is a good indication that while most of the non-Apple crowd will be developing for Android, significant numbers will also develop for Windows 7, iOS and BlackBerry OS, and a growing segment has already focused its attention on WebOS.

Magic Software’s uniPaaS Application Platform provides developers with the ability to develop for multiple mobile operating systems and tailor the look and feel for each mobile environment without having to develop using multiple languages.

To get started as a uniPaaS mobile developer, try attending the live webinar Developing Portable Business Apps for the BlackBerry. The webinar will be broadcast live Wednesday, December 14, 2011 11:00 am Pacific Standard Time or may be viewed as an on-demand recording here after that date.  

The webinar description states that: “Now you can develop business apps for the BlackBerry that can be easily ported to other mobile platforms as needed in the future. Get just the right level of functionality, interactivity and integration with back-end systems for your BlackBerry users today while preserving your options to deploy to native Android, iPhone or Windows Mobile environments in the future. See a hands-on demonstration and see how the same application platform can deploy cross-platform HTML5 apps as well.”

Tuesday, November 29, 2011

Building Apps Quickly with uniPaaS and the SQLite Gateway

Magic Software’s uniPaaS Application Platformincludes a SQLlite gateway to support the SQLite database. So does uniPaaS Jet, the free distribution single user version of Magic Software’s uniPaaS application platform.

Those already familiar with SQLite will know that it is a single user, self-contained transactional SQL database engine that does not require a server or any installation or configuration.

The SQLite gateway is integrated in uniPaaS and available with every installation of uniPaaS.
SQLite can be thought of as a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite claims to be the most widely deployed SQL database engine in the world and the source code for SQLite is in the public domain.

uniPaaS Jet supports the SQLite DBMS exclusively. The SQLite database, a single-user database embedded in uniPaaS Jet, comes bundled with the platform, eliminating the need to install it separately.

Once again: SQLite is a single user database and is not intended for handling and manipulating data from multiple, concurrent users. Commercial releases of uniPaaS support multi-user databases such as Microsoft SQL, Oracle, IBM DB2, and any other data source through ODBC.

When working with SQLite in uniPaaS, keep the following in mind: 

Table Position
SQLite supports rowid as the table position. The default position is ROWID. Every row of every SQLite table has a 64-bit signed integer key that uniquely identifies the row within its table. This integer is usually called the "rowid". The rowid value can be accessed using a special case-independent name: "rowid". The data for each table in SQLite is stored as a B-Tree structure containing an entry for each table row, using the rowid value as the key. This means that retrieving or sorting records by rowid is fast. Searching for a record with a specific rowid, or for all records with rowids within a specified range is around twice as fast as a similar search made by specifying any other PRIMARY KEY or indexed value.
To be clear, a B-tree is a tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions to occur rapidly and efficiently.
Get Definition
For SQLite, if the primary key is a single column that auto-increments, the Get Definition utility will not bring the key into the table structure. This is because there is not a separate index using the column. The index internally refers to rowid.
Hints are not supported and will be disregarded.
Isolation level
Isolation level cannot be changed. Any changes in the DBMS will be disregarded.
A join is used to combine rows from multiple tables. Inner Joins are  the most common type of join. Inner joins return all rows from multiple tables where the join condition is met. Outer  Join returns all rows from one table and only those rows from a secondary table where the joined fields are equal (the join condition is met).Inner and Outer joins should be implemented using the same syntax as in the SQL Server.
A transactional database is one in which all changes and queries appear to be Atomic, Consistent, Isolated, and Durable (ACID). SQLite implements serializable transactions that are atomic, consistent, isolated, and durable, even if the transaction is interrupted by a program crash, an operating system crash, or a power failure to the computer. In uniPaaS, SQLite physical /deferred transactions are supported.
Array fetching
SQLite does not support array fetching. Therefore, the array size setting will be disregarded and the records will be fetched one record at a time.
Parallel execution
A single uniPaaS engine, or multiple engines on the same machine, may access SQLite via parallel programs. In such a case, only one thread/EXE can open a physical transaction, since the SQLite file is exclusively locked.
Using the Automatic Program Generator (APG) in DSQL SELECT statements will result in the Null Allowed column property being set to Yes.
Identity should be defined as Type INTEGER PRIMARY KEY.
SQLite does not allow more than one INTEGER PRIMARY KEY fields.
Identity fields are stored as INT64 data types in SQLite; therefore, you should create a Numeric field to hold 8 bytes of data.

There are two other limitations of SQLite worth noting for the uniPaaS developer. You cannot use the ASCIIChr SQL function which converts a number to a corresponding character in the ASCII character set. You also cannot use the InStr function, which returns a number that represents the first position of a sub-string within an Alpha string or an Alpha expression, or at least you cannot use from within a SQL Where range.

SQLite is just another great addition this year to the Magic of uniPaaS.

Monday, October 24, 2011

Enterprise Mobile Mashup Delivers Actionable Information

It’s one thing to be connected via your mobile to relevant information 24/7 and it is quite another to be able to do anything about it. The difference between information and action is the difference between email and apps. On the other hand, action without proper access to information can be dangerous. The solution: enterprise mobile mashups.

As David Akka, Managing Director of Magic Software Enterprises UK points out: “Enterprise Mashup is not something new. Enterprise Mashup is a concept that has been used by many, many enterprises to try to bring information from multiple systems into one coherent view. If you look at the consumer market, for example, estate agents, it’s easy to take information from a property database put it on Google Maps and take information from a police database and put it on the same map in order to present some sort of information to a future purchaser. 

“ The whole concept of that actually has started to take off with mobile devices,” says Akka, eagerly pointing out why mobile devices are so important to business today. “Gartner basically predicts that 50% of the workforce by the end of 2013 will use some sort of mobile device. There’s a big argument whether desktops are dead whether mobile devices will overtake them. It’s not really relevant for this point. The point is that on a mobile device the attention span of the user reduces significantly from about 2-3 minutes to about 1 minute.”

Since the mobile user may be paying attention for a shorter period of time, they urgently need accurate data streaming to their device and the ability to act on that information by providing an approval, submitting an order, updating location, etc. Enterprise mobile mashup requires the "round trip capabilities" to pull information from enterprise systems, display information in mobile apps, take action from the mobile device and update the backend systems. And with user preferences and loyalties to a wide variety of devices -- BlackBerry, Android, iPhone and Windows Mobile -- there is a need to provide enterprise mobile mashup via cross-platform, cross-device mobile enterprise application platforms that allow core application logic to be used on any mobile smartphone.

David Akka’s excellent interview on not only discusses the possibilities but also demonstrates the smarter approach that Magic Software’s iBOLT Integration Platform and uniPaaS Application Platform take in creating enterprise mobile mashup with backend systems such as SAP, Salesforce, Oracle, PeopleSoft, JD Edwards and so on. 

Saturday, October 15, 2011

Creating a Branded App with Magic Software's uniPaaS Application Platform: Mastering the Z-Order of Controls

Creating a Branded App with Magic Software's uniPaaS Application Platform: Mastering the Z-Order of Controls

There is a lot of talk today about the branded app. These are usually mobile apps but sometimes a branded app needs to be a web app or at least an application delivered via the Internet such as a RIA app that floats in a window above the browser -free of all the security and reliability issues that the browser itself imposes. So recently, as the Magic teams from France, Germany, Israel and the Americas headed to Dreamforce ’11 (#DF11) I found myself wanting to keep track of all the sessions we would be participating in at the conference.  Unfortunately, the Dreamforce Chatter application didn't have that functionality. It seemed to me that I ought to be able to add meetings and appointments to the My Calendar section of the Dreamforce app, but alas, I could only add the sessions for which I was eligible to register. So with a little creative daydreaming, I started to wonder, how I might create an event calendar application in uniPaaS and make it look like a branded app for Dreamforce. That exercise got me thinking about the Z-order of controls. 

The uniPaaS Dot Net Tutorial provided the perfect sample program in Events .NET Calendar. But I wanted to make it look like a Dreamforce application. So with a little help from my browser, Photoshop and an understanding of the Z-Order of Controls in uniPaaS, I was able to get my sample application to look just the way I wanted. I wanted a branded app.

From the uniPaaS Jet Dot Net Tutorial, I clicked on the Programs Repository in the Navigation Pane in the upper right and then zoomed (F5) on the Events .NET Calendar. This opens the program in the Studio. I wanted to play with the look of the program because the Control itself was kind of a drab gray typical Windows control.
The first step was to find a couple of images that I wanted to use. My preferred graphic image editor is PhotoShop. I pasted a couple of images into PhotoShop and saved them as JPEG files.

Back in uniPaaS Studio, I selected the Forms tab and zoomed (F5) on the second form which was also named Events .NET Calendar. On the uniPaaS Studio Forms Control Pane, I selected the Image icon and then clicked on the approximate position where I wanted the upper left corner to appear.

Some tweaking of the image position was needed. So the precise X, Y coordinate can be set for the image’s Navigation Control Properties.

The Z-Order of controls in a form is the depth of the controls as you insert them. The Z-Order becomes particularly important when you superimpose controls on top of one another.
Here is an example where images and controls are partially overlayed. You will note that one of the two women in the photographic image is not visible. Why? Because the Z-order of the entire image is essentially underneath the .NET control that contains the calendar.

uniPaaS recognizes two groups of controls with regards to Z-Order:
Group I
Group II
Push buttons
Check boxes
Radio buttons
Combo boxes
List boxes
Tree Control
Browser Control
Static controls
Edit controls

You can rearrange the Z-Order within the two groups, but not between them. uniPaaS automatically arranges the Z-Order between Group I and Group II controls. For example, if you were to place an Edit control on top of a Push Button control, the Z-Order would arrange the controls so the Push Button control would be placed in front. You cannot bring a control from the second group in front of a control from the first group. You use theArrange context menu or the Command palette to display or change the Z-Order of controls on a form.
To adjust the Z-order you have to make sure Automatic Z-Order is not selected on the Command palette. That’s the  icon shown here. You should also learn how to use the other icons to Bring Forward One Level, Send Back One Level, Bring to the Front, Send to the Back and Display the Z-order.
So with very little effort, a ho-hum control can be enhanced with the use of images and become a branded app. When I deployed my Magic Software uniPaaS Application Platform RIA program in a Window over the Dreamforce web page the result was very pleasing from an aesthetic standpoint. 

Friday, October 14, 2011

Learning to Program with uniPaaS

Whether you are a beginning programmer or an experienced hack, learning to program with the Magic Software  uniPaaS Application Platform  is pretty exciting because of the way the application platform allows you to focus on the application design and business logic rather than on the underlying architecture and housekeeping tasks normally associated with programming. With uniPaaS you can create anything from mobile apps to cloud applications and of course standard client-server software as well. 

Magic Software has provided about 1000 sample programs with the application platform to help illustrate all of the capabilities of the platform and make it easier for you to create your own programs.

The sample programs included with uniPaaS are installed in the SampleProjects folder.

Rich Internet Demo: Many of you have seen the Magic Software Rich Internet Demo that is comprised of several applications running in rich client mode. This means they are browser-free, require no plug-in and yet run via the Internet with full connectivity to the server. You can use this platform to create your own cloud or on-premise applications and the RIA demo helps illustrate what’s possible in very basic easy-to-understand samples. The project containing all of the sample programs of the live RIA demo is available at http://riademo.magicsoftware.comand the mobile RIA demo examples can be found at

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. 

In addition, to the samples you also have access to the complete resources of Magic Software University. You can also easily download a self-paced course for creating business applications. And for those adventurous programmers who are looking for an excuse to come to “the OC” in sunny California this November we offer uniPaaS courses in our classroom in Laguna Hills, California. Upcoming courses include:

Thursday, October 13, 2011

A Smarter Way to Do Asynchronous Programming

The cover of MSDN Magazine this month carries the main headline: “Asynchronous programming.” Inside you will find three articles about these new proposed features that will make it easier to write code that will help to create efficiencies in Visual Studio applications for asynchronous programming.

The entire article is about how it will be possible in the future to write code that does what the Magic application platform has been doing automatically for its programmers for more than 10 years. Visual Basic and C# don’t have these capabilities yet, but they will in the future the articles proclaim, but it will still require the developer to add special code and the creators of these languages are so far away from a solution that they are using the magazine to solicit feedback on the idea. Wow.

I think it is easy for those of us familiar with uniPaaS seamless efficiency through multithreaded concurrent architecture to forget that other developers must tell their programs how to handle concurrency of task execution. I remember being very impressed with the initial analogy used to explain the Magic engine and the Magic broker: the example used was that of a restaurant with many waiters and a short order cook or cooks who were working on many meals in parallel, breaking down the meal preparation into discrete steps and jumping back and forth between tasks. 

At Magic Software, we talk a lot about how our advantage is a metadata driven architecture, but when you read the articles in this month’s MSDN Magazine it crystallizes some of the low-level nonsense that other developers put up with every single day without realizing that it Is a complete waste of time for them to be creating business applications in those languages (and don’t get me wrong, Java is no better). The sad thing for these developers is that they have to add lots of instructions to their code to tell the program how to process tasks concurrently. Really, in 2011 programmer drones are paid six figure salaries and still writing the same code concepts over and over again? 

Thankfully, there is a smarter way to do asynchronous programming and achieve highly efficient applications without giving it a second thought. That approach is found in Magic Software’s uniPaaS application platform. Even after Microsoft finishes its "enhancements" to C# and Visual Basic (tough luck if you're using a different Microsoft language) you will still have to manually add "await" instructions to your code. And since there was no thought put into forward-migration and everyone handled concurrency differently, you will have to manually strip out all the old concurrency code. Yuck! The three articles were nice, very enlightening as to the tedium on the other side of the fence, but as for me: here’s three cheers for uniPaaS!

To see a sample business application running in Magic Software's uniPaaS application platform see the RIA demo here. To read more about Magic Software's smarter application platform, see the information on the company website.

Wednesday, September 28, 2011

Overcoming the top three mobile app design & development constraints

Mobile app developers have to be the ninjas of programming because they have to get in, get the job done, and get out without consuming a lot of resources.

There are two ways to overcome the common mobile app design and development constraints: the first is to design around them using brute force, not very ninja like, and the second is to design more efficiently based on a mobile enterprise application platform like uniPaaS. Let’s consider some of the common constraints and how you can do both: design around them and design more efficiently by using a true mobile app development paradigm for enterprise and (dare I say it?) even consumer apps. My comments here will be primarily based on developing for BlackBerry mobile devices, but he same uniPaaS application platform and the general efficient principles of design will also apply to Android, Apple iOS and Windows smartphone development.

Limited Memory. Creating an application that requires less memory will improve the user experience by improving response times and reducing the likelihood of errors. Unfortunately, memory management in Java and Objective-C is extremely time consuming for developers. So regardless of which mobile enterprise application platform (MEAP) you are using you will want to design efficiently. If a field isn’t vital, eliminate it from the app or relegate it to optional views and call for the data only when needed. By using the uniPaaS application platform, you can leverage server side resources to deliver just the data you need when you need it and the best thing is, you don’t have to write any of the code for the underlying architecture or the client. You simply leverage metadata to control your app and the Magic Engine does the rest. To be clear, you avoid the need to program directly in Java or Objective-C altogether. It isn't like Magic, it is Magic!

Limited Battery Life.Battery life has less to do with the efficiency of data usage (although that is clearly one factor) and has more to do with efficient use of the radio. Apps that constantly poll the server for new data, for example, will heighten battery use and frustrate users when the device is drained. In traditional enterprise apps, polling the server across a LAN is a cheap resource and so developers tend not to give it much thought. But in a mobile app it is an even more important issue. Fortunately, the uniPaaS BlackBerry client is very efficient in its use of the radio and you don’t have to manage memory manually at all. This greatly reduces development time and ensures application efficiency and performance.

Limited Screen Size.
The BlackBerry OS supports a simple stacked window model and as with all smartphones, the screen is quite limited in size compared to desktop applications. Developers need to focus on the users’ task at hand, literally.  Do this by displaying only the immediately relevant info and any directly related tasks. Keep it simple and yet functional.

 With a BlackBerry, each application can open multiple windows, but each new window is stacked on top of previous windows and is inherently modal. As there is no mouse pointer, windows cannot be manipulated (moved or resized) by the end user. When an application is run, its main window (and subsequent stacked windows) occupies the entire device screen. How does one navigate then? The context menu is often the best way. The BlackBerry context menu is an important and central user interaction tool. Since the screen size is relatively small, it is common to perform most tasks using the context menu, instead of “wasting” screen space on buttons and on-screen menus.

Unlike most other smartphones, most BlackBerry devices are optimized for keyboard navigation and input. Typically, the trackpad is used to navigate between fields on the form, while the Fire action is used to select values and perform actions. Unlike a desktop keyboard, there is no TAB key so there is no standard key to move to the Next Field or the Previous Field. All navigation between fields and inside a field (i.e an edit control), is done using the trackpad directional actions.

Other Considerations. These top three constraints aren’t the only ones you need to consider, but they are the most important. You should also consider the impact of the longer latency caused by slower mobile bandwidths (compared to LANs) and the fact that smartphones have less raw processor power than desktop clients. All of these issues are mitigated by use of Magic Software’s mobile application platform. Happy developing! For additional information, please contact the Magic Software Enterprises branch near you.

Wednesday, September 14, 2011

If Chuck Norris Were A Programmer

Top Ten “If Chuck Norris Were A Programmer” Jokes

10.          If Chuck Norris were a programmer, memory would be afraid to take a leak.

9.            If Chuck Norris were a programmer, President Obama would be doing his garbage collection.

8.            If Chuck Norris were a programmer, the food chain would collapse because he would kill every bug on the planet.

7.            If Chuck Norris were a programmer, unstructured data would become structured. With Chuck around, nobody ever gets out of line.

6.            If Chuck Norris were a programmer, application security wouldn’t even be an issue.

5.            If Chuck Norris were a programmer, all his programs would be strongly typed.

4.            If Chuck Norris were a programmer, none of his functions would have arguments.

3.            If Chuck Norris were a programmer, his first program wouldn’t be ‘Hello World’ it would be ‘Goodbye Underworld.’

2.            If Chuck Norris were a programmer, there would be no exception handling, because there would be no exceptions ever.

… and the Number One “If Chuck Norris Were A Programmer” Joke:

1.            If Chuck Norris were a programmer, all his applications would be perfectly metadata-driven. After all, they would be developed on a Magic application platform

Tuesday, September 13, 2011

A Trip to the .NET Forms Library with uniPaaS 2.0

With the release of uniPaaS 2.0, the Magic Application Platform now supports the use of the Windows .NET forms library. These capabilities are delivered by .NET within “classes” that are a part of what is known as the System.Windows.Forms namespace.

Beginning with uniPaaS 2.0, the use of the .NET Forms library within a uniPaaS application is supported in both uniPaaS online (client server) and rich client tasks. After you begin a new task, you must define your .NET object in a new variable by creating a virtual variable in the Dataview Tab of the uniPaaS task. You select the .NET object type either by typing the name or using the uniPaaS selection lists to find the .NET object you want to use.

Developing with the Windows .NET forms library is much easier on the uniPaaS .NET application platform than it is in simple 3GL .NET coding languages such as C#, C++, JScript or VB.NET. uniPaaS 2.0 provides a metadata driven paradigm for application development that allows you to easily incorporate managed code from the .NET forms library along with so-called “unmanaged functionality.” This is true because the uniPaaS 2.x runtime engine is an extension of the uniPaaS 1.x runtime engine. A new .NET front-end wraps the existing C++ engine, thus enabling both .NET and unmanaged functionality in a single runtime engine. The ease-of-use comes into play in several ways:
  1. When you want to use .NET forms capabilities, you can. It is not mandatory.  Very rich applications can be designed using the core GUI capabilities within uniPaaS.
  2.      Adding .NET managed code is simplified because your overall application leverages the benefits of the uniPaaS metadata-driven platform. Low-level programming is never required.     
  3. uniPaaS’ tab and table driven interface allows you to avoid complex line-by-line scripting and coding. uniPaaS takes care of the typical programmer “housekeeping chores” so that there is less effort than normally expected to create a program.

Let’s review the seven main class categories in the Windows .NET form library:

Control, User Control and Form classes.  The Control class constitutes the majority of classes available in the System.Windows.Forms namespace. Controls are key to visibility. In other words, a control class is sued to provide the base functionality for all program controls that are displayed on a form in your application. You can think of a form as a window within your application such as a dialog box, modeless windows, Multiple Document Interface (MDI) client and parent windows.

Menu and Toolbar classes. The library also includes a category of classes for building custom toolbars and menus with your desired look and feel. ToolStrip is used for creating toolbars.  MenuStrip is used for creating menu bars.  ContextMenuStrip is used to create context menus. And StatusStrip can be used to create status bars.

Standard GUI Control classes. The Windows forms library included a number of mainstream controls for input (such as TextBox and ComboBox) display of data (such as Label and ListView) and firing of commands (such as Button).

Layout classes. The layout classes in Windows Forms help control the layout of controls on a display surface, such as a form or control. For example, the FlowLayoutPanel lays out all the controls it contains in a series, and the TableLayoutPanel provides a control for laying out data in a fixed grid. More sophisticated layouts can be managed through the SplitContainer class which is a control that divides your display area into adjustable parts.

Data and Data Binding classes.  You can also use Windows Forms to create the interfaces for binding to data sources such as databases, XML and flat files. The DataGridView is a sophisticated data control that allows for custom tables displaying information with specific  cell, row, column, and border properties. Also, the BindingNavigator and BindingSource controls allow you to develop interfaces  that navigate and work with data on a form in a standard way.

Helpful classes. It is possible to use a number of other helpful classes within the Windows Forms namespace that aid in the display of application related information in your application. Certain classes, provide Windows standard ways of displaying a ToolTip or an error (ErrorProvider).  And the Help and HelpProvider classes are useful for displaying relevant Help information to a user of your applications.

Traditional Dialog Boxes. The final category of Windows Forms classes that we’d like to discuss are common dialog boxes. Dialog boxes give your application a consistent look and feel for common and repetitive functionality such as opening or saving a file, manipulating text properties such as font, size or color, printing or any of a number of other common processes within your application. For example, the OpenFileDialog and SaveFileDialog classes display dialog boxes for opening and saving files by users. The FontDialog class provides a user dialog box set Font properties used in a particular aspect of your application. The PageSetupDialogPrintPreviewDialog, and PrintDialog classes display well-known and easily understood functionality in a standardized way as well. In addition to the common dialog boxes, a MessageBox class is also available to create a simple box to display and retrieve data from the user.

Conclusion. In addition to all the standard classes within the System.Windows.Formsnamespace, there are of course a number of very interesting third party controls libraries that are worth exploring when you’re looking for that “something extra” or special pizzazz in your user interface. The trick is finding the right balance between uniPaaS, standard .NET and third-party controls within your application. That’s all for this trip to the library.  

Thursday, September 8, 2011

The Benefits of Metadata Driven Development

Eyal Pfeifel, Magic Software’s Chief Technology Officer, recently sat down to discuss metadata driven development. In the video, he provides a useful definition of metadata driven development: “Metadata driven development means developers build business applications using metadata and not using code. Metadata is a high level definition of business objects like forms, dialogs, validations and other things that are part of a business process that build a business application.”

Eyal Pfeifel contrasts metadata driven development with traditional coding or manual programming. “Unlike code which is tied to a specific platform or operating system, metadata is a high level definition and theoretically can run on any platform or operating system. Given that you have the appropriate runtime engine, you can build an application built using metadata on any kind of a device, server or client,” says Pfeifel.  
As Chief Technology Officer for Magic Software, Pfeifel certainly knows what he is talking about when it comes to traditional programming languages. Magic Software uses these more difficult third-generation languages (3GL’s) to create the metadata driven platform that is integral to Magic Software’s higher level and more intuitive application platforms. For this reason, he is keen to recognize the benefits of the metadata paradigm over traditional programming. “One of the main benefits of working with a metadata driven development paradigm is that since metadata objects are high level business objects it is possible to build a complete business application in a much shorter time than it would take when using code.  And the same business logic that you can construct one time very easily is relevant for multiple platform and operating systems like desktops, servers and even mobile devices.”
As Magic Software introduces its impressively expanding capabilities as a mobile enterprise application platform provider, Pfeifel has found himself commenting a lot recently on one of his favorite subjects: mobile application development.  “Using a metadata driven platform it is very easy to extend an enterprise application that originally started on a desktop or on a server into mobile devices because once you have the runtime engine running on a mobile device, it can theoretically run any type of application that you built on a desktop,” Says Pfeifel.  “And you can extend your business processes into a mobile device without needing to rewrite the application from scratch and with minimal adjustments just to cater for the smaller screen size or different form factor of the mobile device.”
Magic Software has a strong reputation for providing expertise that can future-proof your application development investments. As one can see by sitting down with Eyal Pfeifel, Magic Software's future-proof expertise is based on extensive customer feedback, strong R&D investment and the mindset to continually think ahead. To learn more about the Magic application platform, visit

Wednesday, September 7, 2011

Welcome to the Magic Application Platform Blog

Welcome to the New Magic Application Platform blog. 
Today, June 11, 2012, Magic launched a rebranding that reflects changes in the company and major developments in its product offering. Magic has experienced significant organic and inorganic growth in the size of its business. New customers and new business units are creating a new Magic that is becoming a formidable force in the IT industry. At the same time, Magic's core application and integration platforms are becoming smarter, more open and more future-proof than ever before. 
As trends like enterprise mobility, integrated IT services, Big Data and cloud computing become key to business strategy at all levels, the Magic application platform and the Magic integration platform have entered center stage as business solutions based on advanced technology. 
What was once called uniPaaS, is now the Magic xpa Application Platform. The emphasis is on the word "Magic." For years Magic's customers have referred to both the company and the application platform as "Magic." This makes sense. It fits the new identity of the company as it enters its fourth decade. The Magic of uniPaaS blog will remain available on the former site but all new Magic programming and IT articles will appear here. Followers of the Magic xpi Integration Platform can continue to find new articles and educational material on the Integrate My JDE blog which covers all aspects of the Magic integration platform.
It is refreshing to see Magic embrace a new identity that returns it to its roots. The company is offering this statement of its brand position: Magic accelerates business performance with smarter, future-proof technology and close customer collaboration. This echoes themes that you've seen in my blogs for several months now.  
As always, I welcome your input and comments on the Magic Application Platform.
Disclaimer: Magic (R) is a registered trademark of Magic Software Enterprises, Ltd. All references to Magic(R),  Magic(R) xpa Application Platform, Magic xpi Integration Platform, Magic University, and other marks both existing now and those that may exist in the future are hereby acknowledged and recognized by reference. All articles appearing on this site are the personal opinion of the author(s) and do not officially represent Magic Software Enterprises, Ltd. or any of its subsidiaries, affiliates or business partners.

Tuesday, August 2, 2011

The New Magic Software Application Platform and the .NET Framework: The Best of Both Worlds

The new Magic Software Application Platform, uniPaaS 2.0, implements a new .NET deployment engine, which turns any existing uniPaaS application into a native .NET application. According to Microsoft, the .NET framework is comprised of a Common Language Runtime (CLR) that provides an abstraction layer over the operating system; Base Class Libraries that deliver pre-built code for common low-level programming tasks; and development frameworks and technologies offering reusable, customizable solutions for larger programming tasks. The new uniPaaS 2.0 engine uses the Windows Forms .NET library as the GUI front-end for applications. To be clear, Windows Forms is the name given by Microsoft to the graphical application programming interface (API) included in the Microsoft .NET Framework. Windows Forms provide access to native Microsoft Windows interface elements by wrapping the existing Windows API in managed code. uniPaaS 2.0 seamlessly leverages this capability to provide superb RIA and client/server GUI capabilities. In fact, uniPaaS 2.0 provides full integration with the Microsoft .NET framework to significantly enhance application design, functionality, and overall user experience. uniPaaS 2.0 also offers new RIA-related enhancements.

With uniPaaS 2.0, Magic Software will soon be offering its first Mobile Enterprise Application Platform with support for devices running the BlackBerry OS or Windows Mobile 6.5 as a client deployment platform immediately and both iPhone and Android in the near future .

In a press release last month, Magic Software Enterprises (NASDAQ:MGIC) included a quote from a Microsoft product manager regarding use of Magic Software’s integration platform for SharePoint integration. With the release of uniPaaS 2.0, it becomes clear that Magic Software is now even more closely aligned to leverage underlying Microsoft Windows and .NET framework technologies.

In fact, one might even say that uniPaaS 2.0 is a .NET programming language (just as one might also say that it is an IBM i programming language or an AIX programming language or a Linux programming language). So the difference is that last week you could only really say of uniPaaS 1.9 client/server programming was that it was a Windows programming language. Now, one can see Magic’s application platform as fully supporting and being fully supported by the .NET framework. In this sense it can sit alongside Visual Basic.NET and other .NET programming languages for Windows servers and clients just as it can sit alongside RPG and COBOL for creating IBM i server applications, etc.

The good news for enterprise IT departments that have adopted .NET application development as an enterprise standard is that uniPaaS 2.0 now meets (and even exceeds) the requirements for being a .NET framework application platform. This is good news because unlike existing .NET languages, uniPaaS supercharges .NET in a way that no other approach can.

How does Magic Software’s uniPaaS 2.0 application platform turbocharge the development and deployment of business applications? First, uniPaaS accelerates the development on .NET framework application by providing straightforward and streamlined development methodology that further abstracts the development process without sacrificing control. Then, it stabilizes the performance and operational integrity of applications by leveraging our proven, highly scalable application platform technologies.

This release is just another example of Magic Software's long history of providing solutions that protect your applications from the underlying changes in operating system , client, server and other technologies. By future-proofing your business applications with the use of the Magic Software application platform, you are able to outperform your competition and surpass all expectations for your ability to adapt to whatever changes the future may bring. To learn more, please access these resources.