Monday, July 30, 2012

We See Sharp So You Don’t Have To C#

With all due respect to people who collect garbage for a living, I do not want to be a garbage collector. Moving from the Magic xpa application platform to a C# pile of code is like moving from a beautiful mansion to a garbage dump.

The frustration of programming in C# is that you spend so much of your time doing unpleasant things, like garbage collection,  that you are forced to spend less time on your real applications, more overtime evening and weekend hours working on non-productive code, or both. I don’t make this stuff up, folks. Microsoft’s “Conclusion” is very clear: “The .NET garbage collector provides a high-speed allocation service with good use of memory and no long-term fragmentation problems, however it is possible to do things that will give you much less than optimal performance.” In other words, stepping into a C# programming project means you are entering a highly risky world where you can easily spend excessive amounts of effort and end up with extremely poor performance.

C# is Microsoft’s archaic imitation of Java. We all know Java is an overly complex, bloated pile of code as well, but in C# Microsoft managed to release a language that is very poorly suited to today’s business challenges. Let’s be clear, C# is not a cross-platform mobile language. Depending on kluges like Mono, is a highly risky business strategy for creating mobile apps because the future of these approaches is highly uncertain. Mono recently had to get another $12 million to stay afloat and there is no indication that they have a strategy that will stabilize their rocky history.

C# is dependent on APIs in extension libraries. If you are only ever going to program for today’s requirements, this may be fine. But what happens when you need to run your code somewhere other than Windows? Let’s be clear, C# is not a platform and it is not cross-platform. If you depend on API extension libraries, you are inviting yourself into a development dead-end.

Maintaining C# code is extremely difficult, especially when you are trying to work with someone else’s code. For example, a section of code can look exactly the same but behave differently depending on whether it is actually a class or a struct. I get nightmares just thinking about it.

An application platform provides a world of benefits and saves you from a world of hurt. At Magic, we see sharp so you don’t have to C#. 

Wednesday, July 25, 2012

A Collaborative Approach to Migrating Your Magic Applications

One of the most overlooked benefits of the Magic xpa Application Platform is the availability of professional services from Magic itself. When a customer has an older application – say one that was originally developed in eDeveloper or even an earlier version of Magic, these professional services can be especially useful.
Magic provides services that leverage automated tools for the smooth migration of Magic applications from version-to-version, database-to-database, and deployment-mode-to-deployment-mode. As experienced Magic xpa developers know, the Magic xpa Application Platform supports a wide range of deployment channels.

Magic helps you enhance and redeploy your Magic applications by efficiently managing the entire migration process from any version of your applications, platform infrastructure, or databases.

Our professional consultants can provide you with a migration needs assessment;  apply automated tools for SQL, RIA, web, and mobile migration; manage deliverables for a smooth and gradual migration path; and offer custom-designed migration projects suited to your application development preferences.

The flexible approach and extensive set of skills applied provide you with the application modernization you need at an affordable price. We leverage a well-established knowledge base of existing migration projects to streamline your project. We apply expertise and proven methodologies from these other projects in a way that is tailored to your application and needs. By leveraging the Magic professional services team, you are able to focus on new features and improvements related to your core application and deliver a complete new version of your applications in a fraction of the time. 

Wednesday, July 18, 2012

Enterprise Mobility: Getting to the Total Experience

The market for mobile apps is booming. Developers are scrambling to output apps that will satisfy consumers, business users and trading partners. By 2015, there are expected to be some 600 million business users with mobile devices. These business users are creating the demand for mobilization of core enterprise business users to such a degree that it is literally changing the way we do business. This new way of doing things is called Enterprise Mobility. Connectivity to back-end systems is needed regardless of whether the user is in business meetings, in transit, or out to lunch. Similarly, enterprises need their mobile users to maintain productivity regardless of their physical location and the type of device they own.

We've talked a lot about Magic's offering for desktop, RIA, mobile and other enterprise systems here but focused less on the companion offering for integration of enterprise applications which is really an extension of its unified technology stack. The video above describes how bringing all the capabilities of the Magic application and business integration platforms to the realm of enterprise mobility results in a Total Mobility Experience.
But designing mobile apps differs significantly from designing desktop apps even though the development is similar. Especially, when it comes to integration. Let's break this down from a practical standpoint. You may own SAP or some other ERP system and it is designed to operate on a desktop inside an office. In order to allow mobile users to perform mission critical functionality from mobile smartphones and tablets such as Android, iOS and BlackBerry devices, you will need two additional pieces: backend integration and mobile client apps.

The advantage of this approach is that you have complete control over your business processes. The Magic xpi Integration Platform and Magic xpa Application Platform extend that control to mobile devices so that you can create just the right functionality for your business users while maintaining enterprise-grade reliability, integrated scalability and enhanced security. The mobile apps are contained in native clients, so you get the look and feel of the device, but they also have "hybrid" capabilities so that HTML5 code can be incorporated within the native client for the sake of interoperability.

I liked this video because it oversimplifies things so that you can explain it to business users who might otherwise get lost in a highly technical explanation. Enjoy the  Total Mobility Experience.

Wednesday, July 11, 2012

Running Magic xpa apps on BlackBerry PlayBookTablets

As the news is filled with daily stories about the demise of RIM and the BlackBerry, I have to say I hope not. But I will say that if I were developing apps for BlackBerry Playbook, I would definitely leverage the Android capability of the device. In that fashion, the Magic xpa Application Platform can be used to develop and deploy your apps and you maintain the option of easy portability to Android tablets and iPads.

A Magic developer has three options when creating apps for BlackBerry PlayBook. First. you can deploy mobile client apps developed with Magic xpa on BlackBerry PlayBook Tablet 2.0 and above using the Magic xpa Android Client on the BlackBerry PlayBook Android runtime.

To deploy your Magic apps during development for development purposes, you can use the blackberry-deploy utility available in the BlackBerry SDK tools.
You can run the mobile apps you have created using the simulator or on the PlayBook itself.

The BlackBerry PlayBook tablet can run Android 2.3.3 platform applications. So with Magic xpa you first need to create an Android APK file and then repackage the Android applications to the BAR file format. This is the compatible file format required for an application to run on the BlackBerry Tablet OS.

The process is fairly straightforward and is comprised of three basic steps. First you create an Android APK file.  Second, you get the code signing keys from RIM.  Third, you create a signed Playbook file. Remember to increment your version number each time you build and sign your app, the RIM utilities will not issue a new key for the same version.

The second approach for a Magic developer to create apps for BlackBerry PlayBook is based on HTML5. BlackBerry PlayBook Tablets will also run Magic xpa Merge applications in the browser. The Magic xpa Application Platform generates merge files that are incorporated with tags in the HTML5.

A third approach is a hybrid between running the PlayBook app on the BlackBerry OS and including inline HTML5 within the Magic RIA Client.
Regardless of how and when RIM pulls out of its current crisis, I would lean toward options one and three, depending on whether I needed to leverage any HTML5 wizardry.

Monday, July 9, 2012

Jobs for Mobile Developers: “Go Enterprise Mobile, Young Developer!”

The advice in the phrase “Go West, Young Man!” is said to have helped launch the westward expansion of the United States. Today, the dream of getting rich quick by developing a mobile app has lured hordes of developers to build apps and offer them in app stores. But just as American pioneers found life difficult in the old West, nearly eighty-percent of the mobile apps sold in app stores today have sold fewer than 100 copies. Mobile developers who want to eat as well as program might want to consider getting a day job. So here is my advice: “Go Enterprise, Young Developer!” Despite the dreary lack of robust sales in app stores, there is a rapidly growing source of jobs for mobile developers: large enterprise IT departments need an army of mobile developers to build applications for their customers, partners and employees. Tens of thousands, perhaps hundreds of thousands of developers are needed in industry immediately to fill the demand for proprietary mobile apps for business.

Gartner believes that by 2018 a majority of business enterprises will leverage Rapid Mobile Application Development (RMAD) tools to develop mobile apps. As the largest and most established vendor in this segment, Magic Software offers an end-to-end mobility solution that is positioned to take early advantage of this market by offering enhancements and extensions to business processes as well as through "mobile first" development.

What is needed to get a job as an enterprise mobile developer?

1.       Prepare a Functional Resume. When you are seeking a job in a relatively new field for which you have little actual job experience, then a functional resume may be your best way to open the door to an interview. Rather than list Job A, Job B, Job C in chronological order. Show your skillsets for mobile app development. Be sure to show: cross-platform capabilities, hybrid development capabilities, UI experience, integration capabilities, etc.

2.       Working applications. Once your resume opens the door, there is nothing more impressive than handing your mobile phone to the interviewer and saying, “here is one of the apps I developed that shows my skills in UI; here is an app I developed with integration to a backend system; here is an app that I developed in hybrid native and HTML5 mode” and so on. If you don’t have a working app, take a day and build one. Spend a few days an you will have a mobile development portfolio.

3.       Cross-platform capabilities. A job seeker needs to be able to demonstrate that they can create applications for more than one type of mobile client. With all of the rapid change in mobile platforms and devices, businesses are not willing to put all their eggs in one basket. Gaining experience in multiple platforms can be tough, however. Native development requires skills in Objective-C for iOS, Java for Android, etc. A developer with experience using a cross-platform mobile development tool and HTML5 Merge programming techniques may be in a better position than one who simply programs for native apps. In many cases, a young developer with cross-platform experience will actually be able to influence the selection of a rapid mobile application development platform.

4.       Hybrid experience. Developers who can leverage native clients with portions of the application in HTML5 in hybrid mode will get advanced to the head of the line. Employers love versatility in a developer. Demonstrated ability to work in hybrid mode helps your employer to prepare for whatever the future may bring in terms of technology direction.

5.       Understand the IT manager’s problem. The IT manager or development manager who hires you has a problem. The business side of their organization is demanding mobile apps. They see millions of apps on the app store and think “why can’t we build our own app like that!” The IT manager has to meet this demand, but at the same time create apps that are easily maintained, well integrated and can be readily migrated to new mobile clients in the future. If you can quickly grasp their intended solution to these problems or propose a solution in the form of an enterprise mobility platform, this will create confidence in the interviewer that you are a good fit for their organization. An understanding of security requirements such as user authentication, user rights, and encryption will go a long way as well. Guide them towards solutions that incorporate In Memory Computing techniques to keep up with Big Data and you will really impress them.

Smartphone apps are by nature rather limited in scope. For this reason, they do not lend themselves well to international outsourcing of development. While tablet apps have a more expanded scope, they are often closely related to the enterprise architecture used for smartphone apps. This is good news for those who want to get a job in their hometown that is less likely to be outsourced in the future. If I were new on the job market today, I wouldn’t just go mobile, I’d go enterprise mobile. A good cross-platform, hybrid mobile app developer can build their own job. To build your own application, consider the Magic xpa Application Platform. You can download it here.  It will look good in your resume.

Additional important concepts:

Thursday, July 5, 2012

Wizards and Builders: A Smarter Way to Work Your Magic

Wizards and Builders: A Smarter Way to Work Your Magic
When a programming task is comprised of a series of atomic but interrelated steps, a wizard is a useful way to build the functionality needed without having to memorize the order of the steps needed to accomplish your objective. While many 3GLs simply expect you to write a series of lines of code that execute functionality in a prescribed order, Magic simplifies this process by eliminating the need to remember the syntax of each step and by eliminating the need to remember the needed steps themselves and their orders. To accomplish this, the Magic xpa Studio includes a number of wizards and builders for creating components and other resources that run on the Magic xpa Application Platform.
A component acts as a building block of an application. They are generally stateless, meaning that each instance of the component can be executed independently of every other instance of that same component. Magic allows you to define project objects as components and export them to share resources among Magic xpa projects and facilitate distribution of revisions. When you make changes to a component, the revisions are inherited by any programs that call the component.
With Magic xpa Studio wizards, you can readily create components, such as Web Services and SQL Stored Procedures. And with the component interface builder, you can even package your own components for use by others. Your components are maintained in the Composite Resource Repository (CRR). Your programs may be highly atomic or they can contain entire programs. The CRR provides repositories that allow you to easily access and maintain models, data sources, programs, helps, rights, menus, events, functions, handlers and environment settings.

The Magic xpa Application Platform Resource Repository

Models Repository. Models are useful objects to expose in components as they provide a way to create programming standards, design standards and so on that you can use throughout your program or across a number of different applications. To expose a model for use by others, you simply give it a Public Name.

Data Sources Repository. In the data sources repository, you should store data objects that will be used in your application. In a world where agile concepts often lead to changing requirements in the middle of a project, you never know when a resource may be needed again elsewhere in your project. So it is a good practice to define all of your data sources in the CRR data sources repository. Whether or not to expose the data sources with a Public Name, however, is a very different question. I recommend giving a Public Name only when a definite need has been defined to share the data model outside your application by a host application.

Programs Repository. In the Magic xpa Application Program, an application program is composed of numerous discrete programs. The CRR provides a repository for all of the programs that make up your overall business application. The ability to provide a Public Name and designate these programs as external means that Magic gives you Service Oriented Architecture capabilities. In addition, of course you can and often will publish your Magic programs as Web Services that can be more easily discovered through UDDI and described via WSDL for full SOA compliance.

Rights, Menus and Helps. Three additional repositories are provided for managing the rights, menus and helps in your applications.
·         Helps – You expose Help objects similarly to models and data sources: just give each object you wish to expose a Public Name.
·         Rights – You expose Rights similarly to models and data sources: just give each object you wish to expose a Public Name.
·         Menus – You expose Menus similarly to models and data sources: just give each object you wish to expose a Public Name.

Events.  In each task you can define user-defined events to be handled in your project whenever these events are raised or triggered.
A user-defined event is a logical definition of an occurrence. For example, you can define an event called ‘Add Customer’. The event definition by itself will not affect the project. This logical definition allows you to define the handling for such a logical occurrence. You expose events as components by giving them a Public Name and selecting the Expose check box.

Functions and handlers. Developer functions set in the Main Program can be published as part of a Magic xpa component by setting the Scope option to Global.

Environment settings.
The loaded component is integrated into another project and appears in the Composite Resource Repository. Any component object can be selected from the Object list. The environment settings selected for a component are accessed for any component object that the end user opens in the project. The environment settings for a component appear in the Environment repository, which is reached by clicking the Environment button in the Magic xpa Component Items repository.

All environment variables not specified for a component are inherited from the environment settings of the project. 

Magic Gets a New Look at 30

Magic Gets a New Look at 30

Magic Software Enterprises Americas CEO Presides as Rafi Erlitzki of UPS Cuts the Official Magic 30th Anniversary Cake in Nashville, Tennessee

Magic Software Americas CEO Regev Yativ is joined by UPS in the Official 30th Anniversary Celebration
Magic Software Americas CEO Regev Yativ presided over the official 30th Anniversary celebration of Magic Software at the Magic Software Users Conference 2012 in Nashville, Tennessee. The GALA Dinner featured music, comedy, and awards. The 30th Anniversary cake was smartly decorated with a new logo representing the dynamic qualities of the Magic brand.

Regev Yativ rolled out the Official 30th Anniversary Cake to the delight of the large crowd in attendance at this year’s users conference.

Regev Yativ presented the 2012 Technology Innovation Awards. Magic Software provides an application platform and integration platforms that are smart, future-proof, and open. The Technology Innovation Awards recognize the determination and innovation of Magic Software customers and partners that turn our platform capabilities into IT excellence. All customers deserve awards and recognition, but we wanted to take a moment to recognize four companies that have stood out this year.

The first award of the evening was presented for “partner innovation” to K + K Management Solutions. K + K has been a partner with Magic for 20 years. They have excellent business applications serving customers in the field of law enforcement and energy management. But what has really helped to make them stand out is their commitment to innovation, implementing Magic RIA applications.  Intelli Force and Energy Force are truly innovative and serve important needs for their customers. The Partner Innovation Award for 2012 was presented to Karla Schilling, President of K and K Management Solutions.

Karla Schilling proudly accepted the award on behalf of her company, K + K Management Solutions.

Regev Yativ presented the next award: “Some challenges require the best that the Magic xpa application platform and the Magic xpi integration platform have to offer. The company receiving this next award is an end-user organization that represents the values of a Smart Technology Innovator. Their solutions integrate disparate systems and present users across the organization with a portal that is truly innovative and effective for their organization. I am of course referring to a company close to my heart for many reasons, Vishay Intertechnology. Congratulations to Ron Kuhns and the entire team at Vishay Intertechnology.”

Ron Kuhns accepts the Technology Innovation Award on behalf of Vishay Intertechnology.

Finally, it was time to announce the Partner of the Year Award. "This company is willing to go all distances and travel the extra mile for Magic Software. After all, they’ve been a Magic user since 1991. Today, their solutions interface with advanced warehouse management equipment, and provide their customers with mobile devices in the warehouse that interact with their application resulting in tremendous efficiency and savings, Yativ commented. "This year, they participated in the Magic Accelerator Program and even traveled to the Magic World event in Israel to tell their story, This year’s partner of the year award goes to Dove Tree Canyon Software. Congratulations to Bill Woo and his entire team!"