Wednesday, September 14, 2011
If Chuck Norris Were A Programmer
Tuesday, September 13, 2011
A Trip to the .NET Forms Library with uniPaaS 2.0
- 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.
- 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.
- 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.
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 PageSetupDialog, PrintPreviewDialog, 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
Wednesday, September 7, 2011
Welcome to the Magic Application Platform Blog
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.
Wednesday, June 15, 2011
Take A Load Off: Use RESTful Web Services in uniPaaS
Take A Load Off: Use RESTful Web Services in uniPaaS
What are RESTful web services?
- the URL address for the web service (you may call it a URI if you want, it is basically the same thing). The URL is the equivalent of a noun.
- the supported Internet media data type of the web service.
- the set of HTTP operations supported by the web service. Think of this as the verb.
HTTPCall runs an HTTP request and returns the results. You can consume REST services by using HTTPCall with any and all verbs. This function can be used instead of the HTTPGet and HTTPPost functions, thereby simplifying implementation of RESTful Web Services in uniPaaS. The syntax within uniPaaS for the use of HTTPCall is as follows: | ||
HTTPCall (verb, service URL, message, [header1], [header2], …) | ||
The “verb” is a string indicating the method. The options include GET, POST, PUT, DELETE, and HEAD. You can GET a list or a specific member of a collection. POST is like an append operation in that it adds a member to a collection. PUT replaces an entire collection or a specified member of the collection. DELETE erases the entire collection or a specific member of the collection. HEAD is a header that provides additional header information. The “service URL” is the string that represents the HTTP address where you will retrieve the HTTP request. The HTTPCall function can easily pass a user name and password to the service URL for a secure, rights-based approach to Web Services. For example, when a uniPaaS client is accessing a web server that requires a user name and password, the URL should be HTTP://User:Password@[URL]. uniPaaS will also support secret names by following this approach: HTTP://%user_secretname%:%pass_secretname%@[URL] Obviously, the “message” is a string with the text of the message. There is no limitation on the message content. Messages are self-descriptive and stateless. The use of “headers” is strictly optional and you may include as many as needed. Each header may contain a string that provides additional header information as requested. | ||
As one might expect, the HTTPCall returns a BLOB containing whatever information results from the HTTP request. If the function fails to make the connection, a blank value is returned. You can get the response headers using the HTTPLastHeader function. Magic Software provides both Online and Rich Client sample programs that detail the use of the HTTPCall function. Look for sample programs EL23 and REL23 to get an idea of how this function can be implemented. One of the traditional disadvantages of REST is that it doesn’t do well with complex data architectures such as those of relational databases. In this regard, using uniPaaS allows you to bridge the gap between REST and traditional databases. With uniPaaS, information is exchanged and represented using RESTful Web Services while at the same time you can store enterprise data in industry standard databases. REST advocates will simply say databases are too complex and should change to conform to the way the Web works. With uniPaaS, you avoid that argument altogether. It just works. | ||
Monday, June 6, 2011
Mobile Enterprise Application Platform: Any Time
Ten Key Questions to Help Compare MEAP Vendors
Comparing mobile enterprise application platforms (MEAPs) can be challenging. Quite often those that are seeking a MEAP solution do so precisely because they do not want to invest in developing in-house expertise in all of the programming languages and environments required to provide native client solutions for major mobile device environments such as BlackBerry, iPhone, Android and Windows. The IT departments ability to anticipate the challenges of each target device environment is often limited due to lack of familiarity with the differences in all these environments.
To complicate matters more, MEAP vendors are rarely what they appear to be. It is first of all necessary to try to separate out current capabilities from future plans in the vendor roadmap. One must then ask, what is the vendor history in living up to the promises in their roadmap?
Even once you have all this sorted out and have separated out marketing hype from actual platform capabilities, the task of making comparisons gets tricky. Is device management a necessary part of the evaluation, or should we consider that a separate category just as we consider development tools and IT operations software as separate systems in the data center? Evaluators need to carefully consider their own rollout plans versus the vendors plan for device support.
More important than any of these tangled issues, however, is the question of productivity. The reason for adopting a MEAP is to reduce effort. In order to live up to the need to develop and deploy mobile apps at anytime and anywhere, you need a MEAP that is truly metadata based, employs fully native clients, and has seamless capability to develop and maintain enterprise data center, enterprise cloud and enterprise mobile apps without duplicate programming efforts.
Here are a few key questions to ask a MEAP vendor?
1. Are native coding skills required to complete projects or make changes? Some MEAP vendors surprisingly do not complete the process of creating the mobile app for the target device. Manual programming and tweaking is required.
2. Will we need to use the native debugger to test our applications? If the MEAP forces you to debug their deployment capabilities on a target device, then you that means you are likely to be required to write code to fix any problems you find.
3. Can my MEAP platform also create desktop, client server and web applications? Some MEAPs are mobile only and have little or no capabilities for supporting other types of applications. This lack of support means duplicate coding for those environments.
4. Does the MEAP platform allow me to control the look and feel of the application so that I can develop with a native look and feel for each device? Will BlackBerry apps look like other BlackBerry apps? Will an iPhone app look and feel like an iPhone app? etc.
5. Does the MEAP platform vendor have a solid track record of back-end integration? Do they have a complete set of integration tools to allow you to integrate enterprise IT systems, data and processes with your MEAP platform? Integration to backend systems is a crucial component of providing B2E, B2B, and B2C applications. Without a straightforward solution for integration, you may end up spending months of unnecessary development time trying to integrate your mobile apps to existing enterprise systems.
6. Is the solution multilingual and can the vendor provide multilingual support? If you need a global solution, some vendors have limited reach in North America but not beyond.
7. How long have you been in business? Too many vendors are in startup mode with no guarantee that they will stick around.
8. Will you provide financial statements showing your revenues, profitability, cash on hand and debt position? If a vendor is unwilling to provide financial statements, then you are at significant risk that you may be dealing with a vendor that is on the brink of imminent financial failure.
9. Does the MEAP vendor have a parent company whose objectives are different from those of the independent software vendor that it acquired? If the parent company acquired the MEAP platform to serve the needs of its larger client base, will that be at cross-purposes to your needs?
10. Does the MEAP vendor have a coherent strategy for enterprise systems, mobile apps and the cloud? Can the vendor ensure that all of these solutions can be based on the same service-oriented architecture (SOA)? Is the platform capable of compositing existing application logic from Java, .NET, COBOL, RPG and other environments? A good MEAP platform will be capable of leveraging all that you have today and have a coherent strategy for deploying solutions in all of the environments that you need to be in tomorrow. A vendor that can future-proof your efforts will ultimately be the smart choice for development of mobile apps.
Once you have a satisfactory sense of what your vendor can offer, the question of how it is licensed and priced is appropriate. Some vendors adhere strictly to a per user pricing strategy. Others offer a per server pricing model. Some offer both or a hybrid. If you are developing a B2C enterprise mobile app, then per user charges are unappealing. But if you have a fairly small target B2E or B2B audience, then hefty per server pricing may be disadvantageous. In the final analysis, you will need a vendor that is willing to work with you to assure complete satisfaction and success. Evaluate vendor technical support, training and professional services. All these things combine to make the selection of a MEAP platform a difficult decision. But if you know the questions to ask, you are on the right track. To see a video announcing the Magic Software Mobile Enterprise Application Platform (MEAP), click here.




