Showing posts with label RIA development. Show all posts
Showing posts with label RIA development. Show all posts

Tuesday, October 23, 2012

Keep or Toss: Is ActiveX Dead?





Opinion on ActiveX varies. Some say ActiveX is dead, passé, an old technology with no future relevance. Others say that so much has been invested in ActiveX that it is economically infeasible to adapt to newer technologies such as .NET, RIA, JavaScript and HTML5. 

I say that the beauty of the Magic xpa Application Platform is that it is economically feasible to adapt to these newer technologies. And well, yeah, if you don’t want to then you don’t have to because you can wrap your ActiveX.

Having said this, my recommendation is to leave ActiveX behind in favor of new RIA clients. You don’t have to abandon ActiveX, but you should, and you will still be using 100% of your core business application logic.  

Trying to keep ActiveX in today’s modern operating system environments is kind of like trying to preserve a function key interface on an iPhone. Yeah, you could do it by creating graphical representations of F1, F2, F3, F4 and yes the holy F5 key on the touchscreen of the iPhone, but why? 

There is a better future and it’s already here. Reluctance to change is a natural human reaction and it seems to increase in some people as we grow older. But the beauty of our tradition in the Magic community has always been that it is easy to adapt to new technology paradigms with Magic xpa Application Platform. A metadata driven platform makes it easier to transition to the newer fully .NET native Magic xpa Application Platform. 

Because let’s not forget: the road to .NET is Magic!

Friday, June 4, 2010

Workshops Galore

Today marked the first full-day online uniPaaS workshop conducted by Magic Software Enterprises Americas for Magic Software University. The idea behind online workshops is to provide uniPaaS (and iBOLT) developers with in-depth training around intermediate and advanced topics from anywhere and in only one-day. Technically these are not online or computer-based courses (self-paced uniPaaS courses have been offered for some time) but rather distance-learning experiences.
The next uniPaaS workshop will be held June 18, 2010 and is titled:

Insider's Guide to Advanced RIA Development with uniPaaS


Developers using uniPaaS, know that it handles the detail work for them when linking to, say, different kinds of databases. Developers can create a data source that can be used in a program, but the actual physical data source... ISAM, SQL, XML ... can be determined at runtime or based on which components are used. The uniPaaS RIA Rich Client extends this functionality so that users can run a program over the Web on various hardware platforms, using the same sort of uniPaaS programming developers are familiar with. In the RIA workshop developers will learn how to develop, optimize and deploy a rich internet application.

uniPaaS developers who enroll in this workshop will learn how-to create interactive Rich Internet Applications (RIA). The course will cover the supporting architecture for RIA. One of the most fundamental concepts discussed, and a key difference with client-server uniPaaS applications, is the Rich Client task life cycle. The course dives deep into the construction of rich client tasks and the task life cycle as this is a key concept. Also discussed are the runtime behaviors that you can expect with uniPaaS RIA and the details of the deployment environment. The course will also teach developers how to simulate multiple document interface (MDI) environments. Although uniPaaS RIA is a “browser-free” application environment, you can still include a browser control inside your RIA application so the workshop teaches you how- to incorporate Web interaction inside the RIA experience. Students will also learn how-to build RIA applications for Windows Mobile devices. Since RIA applications involve both server-side and client-side application logic, the workshop also covers performance awareness and optimization of RIA applications. Finally, the course shows you how-to monitor your RIA application once deployed.
Students taking this workshops should already have taken a “Getting Started with uniPaaS” or “Migration to uniPaaS” course. In addition, you need to be familiar with such concepts as Web browsers, Web Servers, Web Sites, HTML, URLs and addresses. The course requires a current version of uniPaaS. These details will be discussed when you register for the course.

The course cost is $699 and payment and registration details can be arranged through either Brian Pitoniak or Megan Kirby of our sales operations team at (949) 250-1718.

Thursday, September 3, 2009

On Time Application Development Project Management: From RAD to RICH

On Time Application Development Project Management is achievable when you want RICH but need RAD.

Rich Internet Applications (RIA) for businesses represent a growing trend from software users wanting responsive and immersive interactions from any location. As business applications begin presenting information the same way as the social web – interactive and visual – and carry the same reach, IT departments must adapt. But what is the application development manager to do? How do you manage an application development project that threatens to become a multi-headed beast? At Magic Software, we say you cut off the extra heads. Afterall, who wants to have a conversation with a beast that has multiple heads?

uniPaaS is a multi-modal application platform.

We classify uniPaaS as a multi-modal application platform – one that supports several modes of deployment: RIA, client server, web, desktop, batch, etc. There is a debate raging over what constitutes a RIA application? The crux of the debate is over the meaning of RICH. I decided to introduce a mnemonic to contribute to the understanding of the meaning of RICH.

R – Real-time Interaction
I – Integrated Backend Systems
C – Complete Immersive Media Experience
H – Helpful and Intuitive Interfaces


So there it is, a Rich Internet Application must be capable of being a completelyimmersive media experience with real time interaction using helpful and intuitive interface but at the same time be integrated to backend (RIBA) meets all of the above criteria and has as its principle raison d’etre the conduct of business in one way or another.

A good Rich Internet Business Application platform should be ready for the Cloud but also capable of deployment on premise. It has to be connected to the reality of your business, a RIBA is not a frivolous game or mere advertisement, these are the domain of the single purpose RIA solutions that are oh-so limited in true business functionality and whose available programming techniques are relegated to the lowest of low level 3GL tedium and old school line-by-line coding? Who thinks that is modern?

To be truly agile in one’s RIBA development and deployment, the application platform needs to be changeable and customizable with little to no installation effort on the client side. With the efficiency elements of an application platform like uniPaaS, delivering on the promise of the distributed and mobile enterprise becomes a reality.
But before you can settle comfortably with a unitary approach to development where you trust a single application development and deployment environment to manage all dimensions of client, server, communication and other technical layers, you must be comfortable with that environment’s fundamental efficiency. With uniPaaS, common and repetitive development tasks are pre-programmed into the platform. As a result development cycle times are far less than expected.

Don't reinvent the alphabet.

You don’t reinvent the Alphabet each time you write a new book, so why should you reprogram basic routines for each change in platform technology or operating system revision? Why should basic application functionality, the kinds of things tha all programs must do, be a blank slate and a programming challenge each time? Too many individual developers are all too content to get paid to rewrite these programs. They are recreating the wheel for kicks. Who knows, maybe the next wheel they invent will be shinier than the last. But wouldn’t you rather just use a wheel off the shelf? That’s what uniPaaS delivers: off-the-shelf programming power.
When developers are consumed by the tedium of low-level programming for the vast variety of technology protocols in use today, then they simply are not focused on your business needs. uniPaaS pre-compiled engine contains every technological component needed to build your unique application via metadata driven specifications. This means your IT team has the Power of Choice to focus on the business logic in your applications rather than time-consuming and fragile technologies.

We don’t achieve that productivity by narrowing your choices and telling you which environments you have to run on. uniPaaS offers “the power of choice” in the breadth of its certified database and operating systems as well as other components of your infrastructure.

When evaluating the uniPaaS application platform, look for these high level efficiency drivers:

  • Task oriented
  • Event driven
  • Inheritance
  • Reusability (high level in your application and low level built into the application platform)
  • Pre-compiled functionality
  • Open environment
  • Internal debugger
  • Team ready.

    The development and implementation of new business applications is becoming increasingly complex and with the ordinary and usual suspects, requires increasingly varied skills and extensive multi-loop, multi-cycle testing, driving costs up. Yet, reduced IT budgets and fast moving business realities constrain cycle time putting a pressure to reduce innovation with traditional tools. A solution worth exploring is to move gradually to one of the new application platforms which promote application integration and composite application capabilities, and reduce the development challenge by encoding business functionality as metadata. Existing developers can quickly become familiar with such platforms thanks to their abstraction of technology, and platform vendors such as Magic Software and our partners can accelerate delivery and reduce uncertainty with skilled on-demand resources.

    Rapid Application Development Techniques: Prototyping, Incrementing, Timeboxing.

    With uniPaaS, it is easy to apply rapid application development methodologies. – uniPaaS supports Prototyping. By creating a prototype, you can create an early result as a “proof-of-concept” or as a mini-functional version of the desired application. When you are after a demonstrable result early, prototyping with uniPaaS is a great option. With feedback from the users to show that progress is on track, you gain confidence for subsequent efforts that flesh out the application in full. This allows you to work closely with your end users and incorporate desired changes not anticipated in the initial scope of the project through change orders. The advantage being that you get the change orders in early enough in the process to prevent huge amounts of rework. By prototyping at the right time in the project, you get feedback from users to the development team at the point where it can influence the shape of the application before it is too late and costly to rework what you have created or too early to really give the users a clear idea of where the application is headed.

    With uniPaaS, iteration is encouraged. You can develop incrementally and refine your application over time. Since there are no complex compile and link processes, it is easy to see results of programming efforts immediately and debug them using excellent internal debugging tools. You create a feedback loop between your prototypes and their various iterations that results in a well managed and on budget application development project.

    With this RAD approach, you can impose timeboxing on your development team. Timeboxing is an artificial constraint – a fixed period of time set aside to a particular phase, set of tasks or for the next iteration and prototype. With a timebox, you can change the scope, but you are setting an expectation that delivery will occur within that timebox despite the scope changes. The timebox is built with the expectation that there will be some change orders. When the firm boundary of the timebox is adhered to, application development project management on budget and on time is assured. So with uniPaaS, RAD development becomes reasonable and possible as opposed to just being an inconvenient theory. But introduce a deviated development approach to RAD methodology, by deviated, I mean separate languages for RIA clients and server side business applications, then you can throw RAD, agile, extreme and all sorts of other and efficiency oriented development paradigms out the window.


    For additional information, please download our FREE! White Paper! entitled "The 5 New Essentials of Building Business Applications."
  • Wednesday, September 2, 2009

    Application Development Managers Know: Less is More



    Application Development Managers Know that Sometimes Less is More

    Is the development team working on your RIA client different from the team working on your core business application logic? Do you ever have bottlenecks in development caused by lack of the right people with the right skills? Have you ever felt overly dependent on skill specialists?

    Experienced application development managers know that sometimes less is more. Unfortunately, with the most well-known RIA solutions, a condition known as “deviated development” occurs. A team of RIA programmers is writing code in a completely different line-by-line scripting language that the back-end team. Would you intentionally invent this scenario? Of course not. When it comes to programming language diversity, less is definitely more. But some enterprises just feel trapped, bogged down by risk-prone strategies that have evolved over time.

    With the uniPaaS application platform, organizations do not need to invest in multiple specialized skill sets in order to develop modern RIA applications as well as traditional client-server applications. They just need to describe the functionality of the application and request it's execution as needed - RIA or Client-Server. This reduces the cost and requirements of development resources.



    A good analogy is the universal remote control - you use the same on/off, channel or volume buttons on the remote regardless of which equipment you operate.
    In uniPaaS, the main Metadata elements are: Business Logic, Data View Definition, and Basic Operations: Update, Call (internal), Invoke (External), Raise Event, Evaluate, Verify, Form (Input or Output), Expressions (uniPaaS programs can access around 400 built-in functions as well as custom functions created by your developers) . uniPaaS is declarative programming at its best. The programmer states what he wants to do without coding the minutiae of how it is to be done. The uniPaaS application platform knows how to do that – across multiple platforms and databases. Metadata Isolates the physical environment (hardware, operating system, database, communication layers, etc.) from the business logic of your application.

    In uniPaaS applications, there are many common application features, such as security, data access, user interaction, that can be 'invoked' rather than 'developed' each time. A distinctive example is the 'Recompute' feature of uniPaaS. This works a little bit like a spreadsheet - it maintains dependencies that only need to be defined once, throughout the entire application.

    Maintenance of those pre-programmed components is assured. When trying to do the same in Java with acquired classes, the furture maintenance of those opaque pieces becomes a serious hurdle.

    Take the example of an inventory item and a Sales form. In traditional programming, the developer would have to program the incrementation or decrementation of the quantity in stock for each edit of the sales form line (create the line, delete the line, modify the line). In uniPaaS, all the developer has to do is to write a rule that defines how the sales quantity relates to the quantity in stock (typically "sales quantity decrements stock quantity"), and uniPaaS will automatically handle all the individual cases. Other typical examples can be found in the handling of the User Interface or Data Access.

    In today's dynamic business environment, application development team leaders are looking for simplicity - they are interested in reducing the diversity level in their team, eliminating repetitive or mechanical tasks, saving time and resources, and attempting to work with the platforms that provide solutions for both client and server sides of the same business application.

    In addition considering the fact that good programmers are scarce, there is a need to work with one platform that will cater to all flavors and business requirements such as Web Services, XML, team development, mobile development, Web programming and more.

    uniPaaS and, if needed, Magic Software's professional services team can answer all the requirements through the use of one consolidated environment for development and deployment, combined with expert level consulting, support and hand-holding services.

    Why stack up a bunch of old remote controls on your desk along with soon-to-be archaic RIA programming skill sets. Focus on a unitary application development approach that is metadata driven and flexible across multiple environments.

    For a FREE! White Paper, please see Business Applications: Building a User Interface to Deliver Optimal User Experience

    Thursday, July 30, 2009

    Wisdom from Michael Singer: Cross-Browser Compatibility for SaaS Solutions


    The following contribution to the Magic of uniPaaS was written by Michael Singer, Application Development Manager for Magic Software Enterprises Americas

    When creating a SaaS solution that runs under a browser, cross-browser compatibility is a must. In today’s world of multiple browsers and plug-ins, a good SaaS solution will have to be tested on every existing browser (including older versions of browsers). Furthermore, new features implemented in the solution would require additional cross browser testing as well. Vendors of web based, business applications have been calling for a standard in the “mad” world of browsers for a long time, but with the recent launches of Google Chrome and IE 8, it seems, the diversity and differences between the browsers is growing with every passing day.

    To achieve cross-browser compatibility, a developer would have to try and limit to a minimum the amount client side validations, use of cookies and processing. All these actions should be done on the server side. This would create fewer cross browser issues on one hand, but might hamper performance on the other. Another good practice would be to create a thin layer on the server side that interfaces with the client side; this would streamline the different data that comes from the diverse browsers and make a single data structure going into the server side. In case browser errors still plague the application, custom error messages that explain the source of the problem, and recommend a type and version of a browser, could be created.

    A little kid once said "There is no spoon." (The Matrix, 1999)


    So let’s think out of the box. A good SaaS solution does not have to run under a browser. Rich internet applications (RIA) are "web applications that have most of the characteristics of desktop applications, typically delivered by way of standards based web browser plug-ins or independently via sandboxes or virtual machines. Examples of RIA frameworks include Curl, Adobe Flash/Adobe Flex/AIR, Java/JavaFX, uniPaaS and Microsoft Silverlight.” (Wikipedia)

    In laymen’s terms, a RIA uses the internet as a communication layer, works on port 80 just like the browser (for compatibility with firewalls), has a very thin client (for compatibility with the IT department) and yet it does not run under a browser, but rather as a desktop application, providing all the capabilities and user experience you would expect from a desktop application.

    There are a few solutions out there, but in most cases the architecture is similar. Most tools have a client that renders XML pages, and a server that generates them. Requests from the client are sent to the application server which returns XML documents back. These files are then rendered again to the screen using various technologies. Most platforms have a way of managing sessions or contexts, therefore allowing some kind of persistence in the user experience, and providing a solution for offline work. The clients tend to have a zero footprint on the workstation, therefore making it easy for users to log on virtually anywhere. Browsers, by the way, do the same thing. The difference is browsers know how to render HTML and not XML, and quite frankly, were not designed to be the foundation for a business application but rather should have been used for, well, browsing.

    RIAs come in multiple different flavors. From the amazing graphics of Adobe Air, to the amazing productivity of Magic uniPaaS (which actually includes a SaaS platform as part of the product), depending on any project’s requirements, developers could probably find a good tool out there to create any type of SaaS application that would be user friendly, provide rich functionality, secure access and would not require any cross browser compatibility, simply, because it’s not running under a browser.

    So as Morpheus said “I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it.” (The Matrix, 1999)


    Good Luck.
    Michael Singer
    July 18th 2009


    Thanks Michael, great stuff.

    Friday, July 10, 2009

    Do ISVs Need An Application Platform that Supports the Ambient Enterprise?

    As the owner or CEO of any independent software vendor can tell you, the status quo is not an option. Very early in my career in the software industry I heard people talking about how "you either grow or die."

    This is brought on by rapid changes in the competitive landscape – everything from new entrants, to new features, to new adjacent categories – all of which provide alternatives to customers. Add to this the fact that business models employed by software companies are also changing and you find a business environment where people talk about terms like "survival" and "killing the competition."

    The paradigm shifts have less to do with the underlying business processes addressed by the software solutions offered and more to do with the way the functionality is delivered to the business organization. The Web, Web 2.0, Web 3.0 shift is taking business use of the Internet from broadcasting to ad hoc interaction to what I call the ambient enterprise. The difference between the ambient enterprise and a business that simply tolerates Web 2.0 is in the degree to which the company embraces online interactivity through both a culture shift and a corresponding technical shift that incorporates the evolving semantic web and integration technologies.

    The culture shift is all about embracing the ad hoc interaction of social networking, business networking, and all the myriad activities that are a part of the changing business culture: from web meetings and conferences to socially-driven searchable content and messaging to the myriad of social networking and media options.

    Supporting this culture shift from an R&D perspective means mastering new technologies. An Independent Software Vendor needs to be able to make their software offerings relevant in light of this culture shift and the needs of their customers IT departments to embrace the ambient enterprise philosophy and integrate it with existing applications and business processes.

    The application platforms that are emerging from this need will have built-in capabilities for multi-tenancy and provisioning, wide Internet accessibility, rich media types and cross-platform server support. These application platforms will be deployment agnostic in that the core business logic will be able to be served across a wide variety of ever changing deployment modes. This requires a metadata driven approach to development that abstracts the underlying technology from the business logic itself. And while this adequately describes the forward tensioning of the market, it doesn't acknowledge the current situation of the typical independent software vendor – they have client server and web-based applications and they need to continue to support existing users and deployment modes. The idea of introducing new languages for the emerging RIA client programming and simultaneously maintain server-side business logic with different languages – all the while having to manually program much of the communication between client and server is quite problematic. By reducing the number of required skillsets, value can be experienced in terms of time-to-market and cost savings. But an ISV doesn't have the option of throwing away existing application logic, application compositing must be supported by whatever application platform is selected so that ISVs have a way to forward migrate their core business logic. In these scenarios, service oriented architecture (SOA) and event-driven architecture will make sense. At the same time, the applications created must be fully scalable from a single desktop user to thousands of client-server or RIA users all the while providing management, monitoring and security.

    Similarly, the demand for remote and mobile user support while maintaining a high degree of business interactivity and support for the ambient enterprise is putting strains on the old ways of developing and deploying business software. Obviously, I see the uniPaaS application platform from Magic Software as the first major application platform to step up to these requirements. I believe independent software vendors and corporate developers can address the needs of the ambient enterprise for agile development, RIA development, versatile deployment and secure, scalable applications through this application platform.

    For additional information, please download our FREE! White Paper! entitled "The 5 New Essentials of Building Business Applications."

    Tuesday, June 23, 2009

    RIA Developers Training Hot Topic As Growth in RIA for Business Fuels Job Market

    Rich Internet Applications are fully interactive desktop-like business software applications that are installed at a single host server location and are accessible from any client station over the Internet. RIA applications fall into two major classes: browser-based and browser-free.

    The need for a workforce skilled in RIA development is creating demand for Rich Internet Application training in a variety of RIA development languages and platforms. With something like 360,000 application programmers in the United States alone and with RIA one of the hottest job growth areas in the IT industry, you can be sure that tens of thousands of jobs -- new highly-paid jobs -- will open up that require RIA programming skills over the next few years. Within a decade, 100,000 programmers with RIA development skills will be needed. The problem as I see it, is that with the most mainstream approaches, the toolsets and skillsets required for RIA are needlessly complex and fractured.

    With the uniPaaS application platform for RIA development, there is one development paradigm for both server-side and client-side development. With all others you must learn at least two scripting languages: Adobe Air / Flex / Flash / Catalyst; Microsoft Visual Studio (Basic, C#, etc.) / Silverlight; AJAX / JavaScript / Java. It is easy to get started with the free uniPaaS Jet download.

    So I think many developers will consider it very good news that free RIA developers training for uniPaaS is now available online at the Magic Software Enterprises "Magic University" Computer-Based Training center. Smart IT departments will get there teams trained as uniPaaS developers and avoid the inevitable shortages of programmers, system architects and programmers with the multiple skillsets needed to produce coherent RIA applications.



    According to the course description: The Getting Started with uniPaaS Rich Internet Application course is intended to teach the basics of programming with uniPaaS and Rich Client. The primary goal of the self-paced training is for the student to build a basic Rich Internet Business Application. When the course is completed, the student will have finished a course project which is a training application that was developed specifically for the course. By working toward the completion of the course project in a hands-on manner, the student learns the fundamentals of how uniPaaS operates and how to program in uniPaaS.

    This is no lightweight online training session, however. The course contains 24 chapters presented in logical order, progressing from simple tasks to advanced concepts. To be successful you should really concentrate on the hands-on activities within the course. By working through the sample and practice exercises, you will discover uniPaaS from A to Z as it relates to Rich Internet Applications.

    With this self-paced training course, you will be preparing yourself with the skills needed for RIA development of business applications. Unlike other approaches, you can be productive more quickly and develop applications in a self-sufficient manner. here is what you can expect:

    1. Learn the fundamentals of uniPaaS and how to get the best out of uniPaaS.
    2. Become familiar with the uniPaaS Studio interface.
    3. Get to know the uniPaaS wizards and utilities.
    4. Understand the uniPaaS concepts.
    5. Understand the uniPaaS standards.
    6. Create a basic uniPaaS business application that:
    • Has a full GUI interface.
    • Works with an SQL database.
    • Exhibits one-to-one and one-to-many data source relationships.
    • Produces reports.
    The 24-chapters or modules cover topics involving the data layer, business logic layer, communication/transport layer and presentation layer of your application.

    1. Introduction
    2. uniPaaS Studio Interface
    3. Your first program
    4. Data Manipulation
    5. Data Validation
    6. Setting Initial Values
    7. Controlling the Form's Appearance
    8. Viewing Data Source Content
    9. Object Data Centralization
    10. Application Engine Concept
    11. Events
    12. Handlers
    13. Conditioning Block of Operations
    14. Repository Manipulation Tools
    15. Find Reference Utility
    16. One to One Data Relationship
    17. Selecting Data from a list
    18. One to Many Data Relationship
    19. More about the Deployment Engine
    20. Reports
    21. Complex Reports
    22. Processing Data in Groups
    23. Menus
    24. Application Deployment

    One of the clear differences with uniPaaS is its metadata driven approach to development. I think this is one of the reasons why uniPaaS does not require an additional scripting tool. When everything is based on metadata originally, in the core of the application platform, engine and design, then there is no need to recreate the alphabet to adjust to new requirements such as RIA deployment. Both the architecture and the development paradigm of uniPaaS are metadata centered and so this allows for tremendous forward migration of business logic and appropriate simplification of the development task.

    Tuesday, June 16, 2009

    uniPaaS 1.8 Delivers RIA Development for Windows Mobile

    The release of uniPaaS 1.8 will be significant news for those seeking to develop Rich Internet Applications (RIA) for Windows Mobile devices.

    With uniPaaS 1.8, you can expand your IT offering by supporting Windows Mobile devices alongside stationary desktops. Smartphones have become enterprise-class, making this a top 2009 priority for many IT departments and a key part of their IT strategy. With the metadata-centered productivity principles of uniPaaS, you can now easily produce highly interactive mobile applications. Existing Magic applications can be upgraded to uniPaaS and deployed as Windows Mobile applications. Most of the changes required to your application will obviously be in the graphical user interface. New applications destined for Windows Mobile can be quickly generated from the data table structure you design for your application.

    As Michael Singer and I have pointed out in many previous webinars, developing mobile applications with uniPaaS is very similar to developing RIA for desktop display. Obviously, the main difference between desktop RIA and Mobile RIA is the consideration of the mobile devices’ viewing area and the expected user experience, such as touch screens and styles, and the deployment methodology. The new documentation for uniPaaS 1.8 highlights a number of important considerations.

    First, there are a few prerequisites you should take into consideration. RIA applications require that you install the .NET Compact Framework and the Smart Device Framework on the mobile device. The Rich Client Deployment Builder generates an HTML that contains links to these framework files for easier installation. This means that you can simply browse the mobile device to the HTML file and install everything needed from there. Once the installation completes, the browser is no longer needed. Direct installation to the mobile device is also possible by following instructions that came with the device.

    The RIA development paradigm for Windows Mobile is similar to the RIA development paradigm for other Windows versions; with these caveats: mobile devices have smaller screen sizes. Consequently, navigation is more complicated. Applications screens need to be designed to account for the much smaller "real estate" of the mobile device. Because mobile devices have unique screen resolutions, use of placement is recommended.

    For the popular QVGA screen format, it is recommended to use Microsoft Sans Serif 8 font in the form properties. In addition, a width of 49 and height of 20.5 is ideal.

    You should also keep in mind that mobile devices perform more slowly than desktop PCs. Good application design will find the right balance between client side operations (where the performance is slower) and server side operations (whose results require communication time and consume bandwidth). Try to avoid approaches that push large amounts of data to the client or call on the mobile client to perform extensive calculations. The good news is that bandwidth is improving all the time, with megabit throughput levels reliably available through networks such as WiMAX, EV-DO Rev A, and HSPA.

    Keep in mind that the .NET Compact Framework does not include all of the functionality of the .NET framework. You will see that Mobile applications work differently. For example, the main menu opens from the bottom of the screen up in a mobile application. If only two options are possible in a menu, the items are displayed in smartphone style with the first item on the left and the second on the right side, both selectable by the corresponding smartphone key. I won't get into all the differences between .NET and .NET compact here, but you should look carefully at the uniPaaS Mobile Deployment – Supported Properties page in the uniPaaS documentation contained in the help file.

    A new uniPaaS function called IsMobileClient allows you to see whether or not the client is a mobile device or not. In this manner, you can optimize your application to perform differently for mobile devices and desktop devices. Since you will have designed all of your underlying business functions using components, this really only effects the user interface layer of your application. You can use this function, for example, if you need to dynamically select a form suitable for a mobile device, or to process some logic differently based on the fact that the user is known to be mobile.

    There are many, many more improvements in uniPaaS 1.8, including of course support for the use of any .NET control or assembly within your uniPaaS application. You can upgrade the look and feel of your Rich Internet Application by directly placing new .NET controls into your RIA user interface. You can also enhance the functionality of your RIA by integrating any .NET assembly. We will take a much closer look at this and other features of uniPaaS 1.8 in a future article.