Showing posts with label RIA programming. Show all posts
Showing posts with label RIA programming. 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!

Saturday, October 15, 2011

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

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





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


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



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

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


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



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



uniPaaS recognizes two groups of controls with regards to Z-Order:
Group I
Group II
Push buttons
Check boxes
Radio buttons
Sliders
Combo boxes
List boxes
OLEs
RTFs
Tree Control
Subforms
Browser Control
Images
Tabs
Static controls
Edit controls
Lines
Groups

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






Friday, 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

    Tuesday, September 1, 2009

    Is it Time to Look at uniPaaS as a SaaS Enabled Application Platform?


    According to Evans Data Research, more than half of developers started the year with plans to develop some sort of SaaS application. That’s pretty remarkable when you consider that almost no one owns SaaS Enabled Application Platforms and development tools.

    The implication is that all this SaaS programming is being done the same way enterprise application programming was done 40 years ago – by brute force. In fact, Gartner has stated that cloud computing architecture will need seven years to mature. In a recent press release, Gartner wrote:

    "SEAPs are the foundation on which software-as-a-service solutions are built," said Mark Driver, research vice president at Gartner. "As SEAP technologies mature during the next several years, Gartner foresees three distinct, but slightly overlapping, phases of evolution. The first phase, through 2011, will be that of the pioneers and trailblazers; the second, running from 2010 through 2013, will be all about market consolidation; while the third phase, from 2012 through 2015, will see mainstream critical mass and commoditization."

    As Gartner says:
    As software as a service (SaaS) and cloud computing move toward the mainstream, platform technology emerges that is designed specifically for the requirements of that use pattern. A SaaS/cloud-enabled application platform (SEAP) is an application platform designed for multitenancy and elasticity — the critical characteristics of cloud computing that are absent in the now-prevailing platforms. When a SEAP is deployed "in the cloud" and offered as a service, it acts as an application platform as a service.
    Since uniPaaS offers a multinenancy management system and is highly elastic, it would seemingly deserve a place amongst the early leaders in any future SEAP quadrants and waves by leading analyst groups like Gartner and Forrester. But whether the analysts comment or not is far less germane than whether programmers adopt uniPaaS.

    Consider just three of the advantages that uniPaaS can offer a developer of a SaaS application:

    1. A unitary development and deployment platform. No need for multiple languages, scripting tools and the like. You have one consistent solution for developing the client or user interface layer, the business logic or core application layer, and the multi-tenant architecture or database layer. It’s all their pre-built, ready for you to access.

    2. Metadata driven development. For generations, programmers have been dreaming of a metadata driven approach to application development that allowed them to create programs without rewriting basic functionality and building out the same software architectures over and over and over again. With uniPaaS, you leverage the building blocks of an application rather than write the building blocks. Low-level functionality is embedded in the application platform and managed through metadata by the developer. That can save literally years, even decades, of programming effort because metadata platforms give you the ability to modernize underlying technology while preserving and enhancing core-business logic. Furthermore, metadata enhances developer interaction with business users thus shortening application delivery cycle (e.g. prototyping and POC).

    3. True forward migration. There is no way to prove the capability of a platform for forward migration because it begs the question, “forward migration to what?” I can not predict the future. But I can document the past. And the surveys we have conducted of uniPaaS users are extremely clear. Without exception, uniPaaS developers point to forward migration of core business application logic as a great benefit of the uniPaaS platform. This is not their speculation or belief about what might happen, this is a retrospective judgment that “it was good” – that uniPaaS in all of its prior lives has provided a consistent forward migration.

    So if half of the 500,000+ computer programmers in the US are working on SaaS this year, what tools are they using? The same old cumbersome Java and .NET development tools, I suppose. I am sure that Magic Software would welcome an OEM SEAP conversation with a platform vendor in search of a real, ready-to-go SEAP that is marketable today. Together we could reach those hundreds of thousands of developers. In the meantime, if you want to save a few years or decades and reduce your time-to-market of your SaaS application by an order of magnitude, feel free to contact us one-by-one.
    For additional information, please download our FREE! White Paper! entitled "The 5 New Essentials of Building Business Applications."