Showing posts with label Magic Software. Show all posts
Showing posts with label Magic Software. Show all posts

Wednesday, May 24, 2017

Japan Understands the Value of Automation and Magic

Magic xpa Application Platform gained top market share in license sales in the Japanese market. According to the "Market Research for Next Generation Extra-Rapid Development Tools in 2017 (updated version)" report, published by MIC Research Institute Ltd., the Magic xpa Application Platform achieved a 39% share of the Japanese market in the sale of licenses in the category of execution engine type development tools.
Magic xpa's code-free application platform was highlighted as exceling in its service introduction, product functionality, development productivity, and cost performance. Other strengths that were emphasized were the product's reliability, stability, high level maintainability as well as its sales, development and support system for indirect sales partners. Read more here...

Monday, March 17, 2014

Ten Reasons to Attend Magic Software Users Conference 2014

Ten Reasons to Attend Magic Software Users Conference 2014

1. Immediate return on investment – Attend educational sessions for IT and development professionals that allow you to leverage ideas from other Magic developers and IT pros in your own projects.

2. Maximize what you’ve got - Take home the latest tips and tricks, knowledge and updates from Magic Software R&D, support and global services. No SCRUM, no fluff, just hands-on education.

3. Excellent value for the level of intensive education - Learn from others’ experiences, including case studies, developer show-and-tell, hands-on workshops, ask the experts, discussions and networking breaks. We’re emphasizing two-way interactive learning and sharing this year.

4. Leverage others’ experiences - Discover new and cost effective technologies and processes, budget-friendly ways to expand on your existing development and integration knowledge and real-world developer and IT professionals’ experiences that will guide you in your own actions.

5. Efficient access – Meet personally with leaders from Magic Software in R&D, technical support, professional services, executive, sales and marketing functions who are dedicated to providing you with knowledge, demos and personal answers. Plus many of our experienced independent software vendors will be presenting education sessions.

6. Everyone from your organization can benefit - Return to the office with new knowledge and experiences. Plus attendees will be given conference presentations and sample files to share throughout their organization.

7. It’s a cost cutting conference - With hotel rooms and meals subsidized by Magic, the benefits out-weigh the cost any day of the week.

8. Customer selected education – IT professionals and business executives just like you have suggested sessions and guided the selection of the most important agenda items. Unlike sterile trade shows, the content of is focused on Magic xpa and Magic xpi. This is an ideal opportunity for prospective customers to get an idea of how Magic xpa Application Platform and Magic xpi Integration Platform are viewed by real customers.

9. Be in the know – By attending general sessions and executive updates you’ll hear the latest news from Magic Software and its effects on the whole community. See the world premier of Magic Software’s new embedded in-memory data grid technology.


10. Build your professional expertise – Participate in the Magic xpa Track or Magic xpi Track to grow professionally and personally. Send at least two participants from your IT team to cover both tracks. Participants in the conference build friendships that last a lifetime and make career connections and business alliances that extend far beyond the intensive three-day format.

What are you waiting for? Register now!

Monday, August 12, 2013

Reason #12: Converting Magic to C# Leads to Loss of Portability

20 Reasons to Migrate Magic eDeveloper, uniPaaS and Magic xpa to .NET by Upgrading Rather than Converting

While it is tempting to assume that the need for portability is subjective, normalized standards for software quality do look at portability as a key component of software quality. If you convert Magic eDeveloper, uniPaaS or Magic xpa to C#.NET you suffer a significant loss of portability.
ISO 25010:2011 provides a standardized way to evaluate software quality by defining six sets of attributes by which we can evaluate software. These attribute sets are functionality, reliability, usability, efficiency, maintainability, and portability. So what do we mean by portability?

Portability, is the ability to run applications in new environments. This can also be impacted by the developer, and not simply by the tools used. Attributes of portability include 
 

  • Adaptability
  • Installability
  • Co-Existence
  • Replaceability
  • Portability Compliance

The Magic xpa application platform and all previous Magic versions provide you a pathway to portability. Magic xpa currently supports Application Servers in all of these environments:

Microsoft® 32-bit Windows on Intel processors:
·         Windows XP
·         Windows 2003 (Standard Edition)
·         Windows Vista®
·         Windows 2008
·         Windows 7
·         Windows 8
Microsoft® 64-bit Windows on Intel processors:
·         Windows 2003 (Server Edition)
·         Windows 2008 (Server Edition)
UNIX
·         IBM AIX – 5.3 to 6.1 on PowerPC processors
·         Sun Solaris 10 on SPARC processors
·         Linux Red Hat Advanced Server 5.5 on Intel processors
IBM System I (requires PASE)
·         System i V5R4 on IBM servers with PowerPC processors
·         System i V6R1 on IBM servers with PowerPC processors
·         System i V7R1 on IBM servers with PowerPC processors

With Magic xpa, you have a software development environment for application development, testing, and deployment that enhances software quality through portability.

Portability in high-level computer programming is the usability of the same software in different environments. The prerequisite for portability is the generalized abstraction between the application logic and system interfaces, something completely lacking in C#. When software with the same functionality is desired for several computing platforms, portability is the key issue for development cost reduction. So portability has a number of benefits:
  • Long-term viability of the application: There’s no need to completely rewrite your applications to make them usable from one version of an OS to the next or from one OS to another.         
  • Resource allocation: With Magic xpa, developer resources can be focused on new features and products because developers aren’t spending time debugging for the latest OS version or porting applications to other operating systems.         
  • Scalability: Portable software is inherently more scalable and can be designed to accommodate users elastically with either small or massive amounts of data.         
  • Versatility: It’s easier to add features and have the assurance that they will run on all platforms.         
  • Future-proofing your application: An application platform approach that supports multiple servers across different operating systems gives you the flexibility to adjust to changing future requirements including the new operating systems of the future. The new mobile client operating systems and Magic xpa’s ability to support these is a great example of the benefits that a portable application platform provides.


For additional information on how an upgrade to Magic xpa is superior to Magic to .NET conversion please convert here.


Saturday, August 10, 2013

Reason #11: Magic xpa Provides Better .NET Handling than C#.NET, So Why Convert?

20 Reasons to Migrate Magic eDeveloper, uniPaaS and Magic xpa to .NET by Upgrading Rather than Converting

Why bother with Magic eDeveloper, uniPaaS or Magic xpa conversion to .NET when Magic xpa provides better .NET handling than C#.NET? Let’s review how Magic xpa does a better job than C#.NET does with the underlying .NET framework itself:

.NET Integration

With Magic xpa you can embed and integrate any .NET control or assembly without writing line-by-line code to do so. You can control the look and feel of an application by directly placing new .NET controls as part of your user interface. You can also add-to the functionality of your app by integrating any form of .NET assembly. All you need to use the .NET functionality, is to have have .NET framework V2.0 SP1 (or above) installed on your machine.

Defining .NET Variables.

After loading a .NET assembly in Magic xpa, you will be able to more easily work with any of its objects and methods than a C# programmer can. With Magic xpa, .NET assemblies are loaded into the Composite Resource Repository (CRR). You can then define a .NET variable for use in Magic xpa and then add the variable to a form in your RIA or client-server application and set its properties.

Controlling .NET Properties.

When working with .NET objects they have properties such as free-form text, numerics, or objects. Magic greatly simplifies the property types that you need to worry about with .NET. With C#, for example, you might need to write 15 different pieces of code to deal with each of the various .NET types for numerics. Magic allows you to use any of these types and you don’t have to deal with the differences in them. The properties of a .NET object can view and use the properties development scenarios where you need these values, such as calculations, for a display in a Verify operation and so on. You can see the relationship between .NET types and Magic xpa types in the table below.

Corresponding Types

Magic xpa Type
.NET Type
Numeric
SByte, Byte , Int16, Uint16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Char, Decimal, Single, Double, Float
Alpha
Unicode Char, Char[], String, StringBuilder
Date
DateTime
Time
DateTime, TimeSpan
Logical
Boolean
Blob
Byte, Byte[], Char, Char[], String, StringBuilder
Vector
ICollection (only from .NET to Magic xpa), IList and objects that implement Indexers through the usage of 'this' keyword. Only indexers that have integer indexes Magic xpa only converts simple vectors and not multi vectors

Using the DNSet() Function.

Now, instead of having to use C# to leverage the .NET framework, you can manage it using Magic xpa functions and expressions. The Magic xpa DNSet() function is so named because it allows you to set the properties of a .NET (.NET=DN) object. In addition, you can directly access .NET in the expression editor with the expression prefix DotNet.

Use .NET Aliases.

.NET naming conventions are long and obnoxious as many of the assemblies have a very long path. Magic xpa allows you to define aliases in .NET so you can access things more easily. With C#, you’re stuck dealing with the full text version. Magic xpa also includes a type-ahead / auto-complete capability but aliases often work better because too many .NET names have the same beginning. Unfortunately, in C# the use of .NET global namespaces can be even more
problematic as they can become hidden. For example, in C# code, a namespace like Console resolves to TestApp.Console instead of to the Console type in the System namespace. Using System.Console still results in an error because the System namespace is hidden by the class TestApp.System. Ugh.

Using .NET Methods.
Most of the .NET objects perform a variety of actions such as trigger events and run methods. When using .NET within Magic xpa, Magic xpa can respond to the .NET events and can activate .NET methods.

Just like with Magic xpa objects, a .NET object can trigger events during runtime. When using a .NET object within Magic xpa, it is possible to handle the .NET event in a very similar way to handling a Magic xpa event. This means you can handle the various methods in the .NET object.

Using .NET methods in C# can get you in a world of hurt. When using normal C# events, registering an event handler creates a strong reference from the event source to the listening object. If the source object has a longer lifetime than the listener, and the listener doesn't need the events anymore when there are no other references to it, using normal .NET events causes a memory leak: the source object holds listener objects in memory that should be garbage collected. Then there is the question of whether registering and deregistering events is thread-safe. Unfortunately in C#, raising the event in a thread-safe manner is left to the programmer writing the code that raises the event, and this often gets done incorrectly. In fact, according to Microsoft C# experts, the raising code that's probably used the most is not thread-safe. Memory leaks abound in C# and that makes maintaining a converted application a total nightmare for both experienced and inexperienced C# programmers!

Trapping .NET Events.

As a Magic xpa developer, you are already familiar with event driven programming. With many .NET objects, you will find that they expose events that are triggered during runtime. Some common events are available in most .NET controls, such as OnMouseClick, and some others are unique to a specific control. In Magic xpa you can trap for .NET events and handle them in order to interact in specific ways with that .NET object. And of course, events can be propagated so that they can be handled by parent tasks as well. As stated previously, mishandled threads in C# can result in memory leaks. Inexperienced C# programmers will make all sorts of mistakes trying to overcome these limitations. For example, they may try removing the offending code around the .NET event call. But this does not decrease the number of race conditions in the code, and it does increase the number of crashes. Worse, doing so makes the race condition harder to detect by shrinking the window in which the race can occur without eliminating it. Ugh, I’m glad some people like C# because for obvious reasons Magic xpa developers will hate it!

Working with Constructors.

When a .NET variable is not placed on a form, it has not yet been instantiated, which means you should do so in Magic xpa using a “constructor”. A constructor instantiates and initializes an object. Constructors are methods in which the name of the method is the same as the class itself. For example, the StringBuilder object therefore has a constructor named StringBuilder(). The Magic University course “.NET Programming with Magic xpa” will provide the guidance you need to follow in order to place a constructor properly within an application. Unfortunately, in C#.NET you have to declare all variables including those placed on forms so…more work, more code, more headaches.

Defining a .NET Array.

A .NET array is similar to a Magic xpa vector. Therefore you will understand intuitively that an array is a variable that can hold multiple values of the same type. In contrast with Magic xpa vectors however, when working with .NET you need to predefine the number of cells, or elements that make up the array.

In Magic xpa, defining a .NET array is very similar to defining any other .NET object. To define an array in Magic xpa you simply add square brackets [] to the .NET Object Type. The size of the array, however, is declared by the object constructor.

Trapping Exceptions.

Error handling is essential to all forms of programming and using .NET programming in a Magic xpa application is no exception to that (pun intended). Magic xpa provides two internal functions for dealing with .NET exceptions: DNExceptionOccurred() and DNException(). By mastering the use of these functions, you will be able to trap errors and handle them appropriately.

Unfortunately, with C# beginners, exception handling becomes a nightmare. First of all, too many try to handle errors by catching non-specific exceptions, such as System.Exception, System.SystemException, and so on, in framework code. It’s meaningless. Furthermore C# programmers can make lots of mistakes by catching an exception and incorrectly specifying it when re-throwing the exception. This causes the stack trace to point to the re-throw as the error location, instead of pointing to the actual method location. The call stack of a C#.NET application is so complex that it is easy to overuse catch too early in the call stack before the error propagates up to a more meaningful position.

Using .NET Code.

In addition to working with standard .NET objects, methods and properties, there may be times when a Magic xpa developer wants to execute custom .NET code. Magic xpa allows you to write .NET Code from within your application by using the Invoke .NET operation. Magic xpa passes the .NET code to the CLR provided as part of the .NET framework. The compiler returns the compiled code back to Magic xpa and the Magic xpa studio saves the task source code. During deployment, the compiled code is passed back to the client and executed.

Enhanced .NET Capabilities

Magic xpa has many other enhanced .NET capabilities:
      Variable Binding: Enables the binding of a Magic xpa variable to a .NET control.
      Dataview Binding: Directly connects complex data-bound controls such as grid controls to the dataview definition of a Magic xpa program.
      .NET in Table: Enables placing of .NET controls as automatically repeated controls inside a Magic xpa table control.
      Colors and Fonts Assignment: Enables direct assignment of the Magic xpa colors and fonts setting to a .NET control.
      Container Controls: Enable placing of Magic xpa controls inside third-party .NET container controls.

For additional information on how an upgrade is superior to Magic to .NET conversion please convert here.



Tuesday, August 6, 2013

Reason #7: .NET Done Right

20 Reasons to Migrate Magic eDeveloper, uniPaaS and Magic xpa to .NET by Upgrading Rather than Converting
Reason #7: .NET Done Right

We’re continuing our series of articles for those deciding between uniPaaS migration to .NET  and uniPaaS to C# or ASP. As a number of Magic xpa developers have astutely observed, Magic xpa is .NET done right.

Magic and .NET
With its deployment engine based on the Microsoft .NET Framework, Magic xpa applications qualify as standard .NET applications. This provides developers with access to a wide range of built-in, commercial and third-party .NET services, forms and controls for use in their applications.  Additionally, use of .NET Windows Forms controls give apps a modern, friendly user experience that increases usability. While fully .NET compliant, Magic xpa continues to support native development on Solaris, AIX, Linux, and IBM i server platforms as well.
In addition, the smarter way of developing and deploying applications inherent to Magic xpa, often called ‘the Magic paradigm,’ continues to offer massive advantages to developers. We see this very clearly in the way Magic xpa provides a superior platform for .NET development of data-centric or transaction-oriented business applications when compared to C# or ASP.
With Magic xpa Application Platform you can embed and integrate any .NET control or assembly. You can upgrade the look and feel of your Client-Server or Rich Internet Applications by directly placing new .NET controls as part of the user interface. You can also enhance the functionality of your application by integrating any form of .NET assembly. But you do so without having to write line-by-line code. The assemblies and controls are accessible from the Composite Resource Repository. The repository based nature of development in Magic xpa is vastly superior compared to the difficult and tedious nature of line-by-line text coding in C#. With Magic xpa, data discovery and manipulation is also handled in a repository based way.
Smart Future-Proof Technology
Magic has been enhancing features and helping our customers Outperform the Future for over 30 years and will continue doing so. We provide our long-time customers with simple migration paths to RIA and mobile, and provide an integration platform based on the same technology stack. By migrating your applications to the latest version, our customers can take advantage of new business opportunities quickly, easily and cost-effectively. In Magic xpa you gain:
  •          The ability to natively use .NET controls and code as part of an application without losing productivity! This is what our users call .NET done right.
  •          Standardization of client look and feel. Magic xpa facilitates a seamless switch from WIN32 to .NET UI and simple support for .NET integration.
  •          Magic xpa is stronger and more robust.
  •          Magic xpa provides an enhanced, richer more modern user experience
  •          With Magic xpa you gain compatibility with the latest databases and operating systems.
  •          With Magic xpa, you will find it easier not only to place controls on the forms but also to bind data. 
  •          With Magic xpa you gain compatibility with Windows 8 features.
  •          And finally, with Magic xpa you have frameset controls that provide you with the ability to create multiple horizontal/ vertical frames and easily transfer data between them within an application.


A Full Solution
Magic customers benefit from Magic’s rich 30-year experience in application development and integration.
You also benefit from our strong community including:
  • Extensive professional service expertise and partner network
  • Strong developer community including 3000+ ISVs
  • Global 24/7 customer support organization
  • Strategic alliances and partnerships with mobility and enterprise software vendors including Samsung, SAP, salesforce.com, Oracle JDE, Microsoft, IBM, and more.



For additional information on how an upgrade to Magic xpa is superior to Magic uniPaaS to .NET conversion please convert here

Sunday, August 4, 2013

Reason #5: Upgrading to Magic xpa reduces risk versus C#, ASP, or Java

20 Reasons to Migrate Magic eDeveloper, uniPaaS and Magic xpa to .NET by Upgrading Rather than Converting
Reason #5: Upgrading to Magic xpa reduces risk versus C#, ASP, or Java

As Magic customers rely on applications to support key business functions, it is important to ensure that the application resides in the latest fully supported versions of Magic technologies.  The choice for those running applications between Magic eDeveloper to .NET conversion and Magic eDeveloper to C#, ASP or Java conversion is an important decision fraught with risk.

IT risk identification, management and response is a key concern for all enterprise IT departments. Senior executives and management have a responsibility of “Assuring investors and shareholders that a ‘standard of due care’ around mitigating IT risks is being met by the organization.” (IT Governance Institute, COBIT 4.1 Framework, 2007). In an enterprise environment, there is considerable risk in working with unsupported architectures, and this risks non-compliance with federal legislation and SOX guidelines.  In fact, our Fortune 500 customers tell us that the upgrade to Magic xpa is essential to maintaining SOX compliance. We have to note that Magic’s platform is just one piece of the overall architecture of the business computing environment, and as other components of the architecture change, it is important to ensure that all components are compatible.  Hardware, Infrastructure, Operating Systems and Databases that come in touch with Magic Applications, are constantly changing by their respective vendors, and evolving irrespective of the computing technology in use.  Most of these vendors tend to have limited life spans on their deliverables and the needs of a complex computing environment require prudent upgrades of these components.

Reason #5: Upgrading to Magic xpa reduces risk versus C#, ASP, or Java

Infrastructure changes are driven by a number of factors: 1) Lack of available parts for older hardware may lead to BIOS, processor or other incompatibilities; 2) Operating System versions that are under cease-of-support and end-of-life conditions; 3)  Enterprise IT mandates and “green” initiatives; 4) Change-of-behavior or discontinued features in databases, middleware and other components. Indeed, upgraded operating systems and database versions often provide tremendous advantages in terms of performance, integrity and security.  Should an infrastructure component upgrade be unsupported by the older application platform technology, there is considerable risk that business operations could be disrupted:

a)    Because the unsupported component may cause the Magic technology to become unpredictable, or cease to work altogether.
b)    Because an older component may fail and it may be difficult to source an older compatible replacement.
c)    The older the version, the less the likelihood of available service-level agreements, warranties, support or the human resources knowledgeable about older technologies and problems, this can lead to delays that may take a long time to diagnose and/or resolve.
d)    Development work may increasingly involve complex workarounds and fixes;
e)    Production system down time can increase to unacceptable levels, up to and including complete system failure.
Magic applications are often part of a larger Corporate Enterprise Application Portfolio; it is important that your applications do not become an “island”, with no ability to interact with newer technologies.  The latest versions of Magic xpa 2.x are constantly being updated to take advantage of newer emerging technologies and standards to ensure interoperability with other industry standard technologies including .NET.

Both risk and cost savings are compelling reasons to ensure that all elements of your Magic applications will be utilizing the latest technologies from Magic Software. The IT Governance Institute suggests that the goal of risk response is to “Ensure that IT-related risk issues, opportunities and events are addressed in a cost-effective manner and in line with business priorities.” (IT Governance Institute, Enterprise Risk: Identify, Govern and Manage IT Risk, The Risk IT Framework Exposure Draft, 2009.) The problem with converting to C#.NET, ASP.NET or Java is that they all increase cost and risk. There is much more effort after the conversion to maintaining an application with large programming teams required to accomplish what could be accomplished by a single Magic developer before. Costs skyrocket with the code-centric approaches, risks mount as unending communication cycles are generated by those trying to figure out what the machine generated code does, and bugs spread across the code-base as developers unfamiliar with the language or the business logic introduce new issues and risks that are simply not present when upgrading.

But the time to upgrade is now (actually its way poast time, but not too late). Magic Software removed support for eDeveloper 9.4 in December 2009, while eDeveloper 10.2 was superseded by uniPaaS; and uniPaaS is now superseded by Magic xpa 2.x. 

The importance of moving from eDeveloper 9.4  to Magic xpa in a timely manner, and continuing to leverage the investment made in  Magic applications is only magnified when considering the risk your company is exposed to when not fully migrated to Magic xpa and .NET.

As many businesses continue to expand their vision of a fully integrated Service Oriented Architecture (SOA), Web Services, RIA, SaaS, Green IT, etc., the importance to the business of using the latest Technology Stack available demands high visibility.  The success of your IT team in the eyes of internal business customers depends on your reputation for deployment on Magic Software’s modern extensible platform, Magic xpa Application Platform, which can become an integral part of your enterprise’s world-class technology architecture.


For additional information on how an upgrade to Magic xpa is superior to Magic eDeveloper to .NET conversion please convert here

Friday, August 2, 2013

Reason #3: Checking and Debugging

20 Reasons to Migrate Magic eDeveloper, uniPaaS and Magic xpa to .NET by Upgrading Rather than Converting
Reason #3: Checking and Debugging

What vendors offering Magic  Software Migration based on conversion misconstrue is the benefits of the debugger and checker in Magic xpa. When you upgrade to the latest version of Magic xpa you get an enhanced checker and debugger that leverage the increasingly platform-based nature of Magic development in the last ten years.

Reason #3: Checking and Debugging

Application maintainability is greatly enhanced through superior checking, debugging and error logging. Remember, in C# there is no official cross-platform runtime so any notion of being able to debug a cross-platform application within a single IDE is out-the-windows, forgive the pun. But even worse, and even if you just plan to deploy in windows only environments, you basically find yourself having to write a ton of code in order to debug your code.

Contrast that nightmare with Magic xpa where when you are in Debug mode, you can run a program in Runtime mode and the Debugger will park on the Studio read-only screen at the exact location of where you are in the program when a breakpoint is reached.  
In the Magic xpa Debugger you can:
·         View breakpoints and variable values within the task flow view. Breakpoints enable you to halt execution of the program at a specific location in the Studio screen.
·         View the Magic xpa flow within the Studio using the Activity Monitor.
·         Set conditions for the breakpoints.
·         Create a Watch list that includes selected variables to be watched during runtime.
·         Update variable values during deployment. When you update a value in the Debugger, you are prompted to confirm recomputation.
·         View the flow from within the Studio.
·         View the call stack.
·         Switch between different contexts for debugging.
·         Dynamically handle logs using the Logging function.
·         Execute the Debugger remotely.

Magic xpa also has a good syntax checker, which will tell you if an object has any problems. The errors, if any, will be displayed in the Checker Result pane. You can control how these messages are displayed.
Checking and debugging requires extensive manual programming in C# and Java and misses out on the quality assurance features built into platform based computing approaches. For additional information on how an upgrade is superior to Magic to .NET conversion please convert here.




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.