This paper presents an argument chosen from one of the titles from the posted blogs. But before, a thorough description is made about the thesis work, the company and the application developed. Further, the argument is presented to strengthen the solution chosen to accomplish the thesis work.
Fred is desktop client application developed by Xenit Solutions . Fred is built to interact with an Alfresco Enterprise Content Management System, ECM. An ECM allows large companies and organizations (e.g. Banks, airlines, insurance companies, hospitals, universities etc.) to digitally store, manage, archive, search, secure and control version of their large number of documents, workflow and information.
Alfresco is the leading high-end ECM software and platform in the market . It is not only an ECM software, but an open source platform which enables developers around the world to develop applications and customization on top of it. Xenit solutions is a software company based in Leuven, Belgium. It revolves around delivering document management and content management projects. This company works in close collaboration with Alfresco the leading open source enterprise content management system. Xenit’s mission is to assist their customers exploit the valuable knowledge inside their documents in a cost effective manner.
Fred is a desktop window to Alfresco. It is complementary to the Alfresco Web interfaces and brings the central document repository closer to the desktop working environment.
Fred looks like a file explorer and acts like Alfresco. Making ECM intuitive and fast is the credo of Fred. The most commonly used document actions are available in a working environment common to most of the users. Through Fred one is able to easily enter multiple documents into Alfresco or find back and open documents from Alfresco. As long there is an internet connection, one can use Fred and work the same way independently from her location.
Fred simplifies what needs to be simple: How do I create a document from a central document store, how can I change, revise, and find it, how do I communicate about it, and finally how do I delete it?
The addition of metadata, unlike explorer, is naturally integrated in the process. Leveraging the simple search, searching is enriched by filtering and grouping. Organizing (part of the) folder structure is simple with Fred. Drag & drop to arrange and move files and folders, with one document, or multiple documents at once. Search results can be filtered and sorted as you are used to in tools like MS Excel, in the way one would intuitively expect
Fred integrates into the desktop, allowing light-weight integration with virtually all desktop applications (MS Explorer, MS Office, Outlook, Thunderbird…). By leveraging Fred for your ECM interactions, Fred can monitor what you are doing on the desktop, and takes care of your ECM desktop housekeeping, making sure that all documents find their way into the ECM store.
Even though Fred has so many exciting functionalities described above, it is constrained to the Windows operating system since it was implemented in .NET. .NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows. For this reason, Xenit Solutions wants Fred to be available across the three most popular desktop operating systems, especially on Windows and Mac OSX. The intention is thus, Fred reaches users outside the Windows Platform.
In the following paragraphs we present an argument favoring a Hybrid Desktop application design and implementation rather than a pure native or a pure Web application. An argument is made by pointing out the drawbacks of using only one of the technologies exclusively. First, let’s begin by discussing the advantages a native software implementation.
There are several advantages that one can get if a native implementation is chosen. The first notable advantage is, it gives the application an ability to have a direct interaction with the file system of the operating system. This boosts a wide range of features that can be built to the application. The other favor is the ability to manage memory. An application which manages its memory well is less likely to crash and consume operating system resources. Native applications are also proven to excel in speed than Web applications.
The advantages of native implementations are mainly the drawbacks for Web applications. For instance, multithreading, concurrent actions at the same time, is possible in native and impossible in Web implementations. On top of that, very intensive video processing and logic implementation tend to slow down the application and consume more memory in Web applications. Further, some applications like voice recognition are not possible at the moment to implement in pure Web applications.
Although, Web applications have the above drawbacks they have also their advantages over the native ones. Implementing a sever communication with remote servers, like with Alfresco server is trivial in Web implementation. In addition, authentication and connections with popular services like Google, Twitter is very simple. Unlike native applications, that need to be usually re-implemented or sometimes re-tweaked to run on different operating systems, Web application can run everywhere out of the box. The other favor of web applications over native implementation is the responsive design. That is Web applications are intelligent enough to adapt to the screen size of the machine and adjust themselves accordingly. In addition, RAD (Rapid Application Development) is one of the flavors of web application that attract many developers. Notably, Web applications trade development time and code reusability for performance.
Therefore, why not use both technologies in one application? The advantage of one technology cancels out the drawback of the other. That is use Web implementation for the application part that interacts directly with the user which is the User Interface and the core business logic with native implementation that can accomplish complicated tasks in background.
Accordingly, cascaded style sheet, CSS, can be used more easily to style and modify a User Interface of the application. This further has the advantage to change the User Interface very rapidly for the user experience. Additionally, it also possible to augment an operating system style more easily by changing styles. By using the native implementation in background several complicated tasks can be made to run in parallel by multithreading. Logic manipulations that take resources could be divided among multiple cores of the central processing unit of the machine so that the background job runs faster. Further, the background process can interact with operating system software libraries directly and present data to the Web User Interface implementation.
To strengthen our argument, take Fred for instance. By making Fred a Hybrid Client application we would have several advantages. Firstly, the User Interface can be made in Web application so that the application can run on Windows, Mac OSX and Linux operating systems. This would reduce code duplication of a User Interface code. According to a research made by Brad and Mary , an average of 48% of a software application code is devoted to a user interface. Secondly, the basic core application of Fred which was written in native C# can be retained and reused. This core application has several multi-threaded services running in parallel. These services interact with the Alfresco remote server repository and interact directly the native operating system libraries. Hence, both performance and rapid application development can be retained in Hybrid Fred.
In conclusion, rather than having a pure native or Web application, a system that uses a very good software design patterns and paradigms can be modularized in to sub parts and made a Hybrid Client. This Hybrid Client would have fast background services built in native implementation. At the same time, it has a very simple to modify and implement User Interface implemented in Web technologies, that is HTML 5.
- A.Myers, B. and Beth Rosson, M. Survey on User Interface Programming. (1992).
- Native (computing). Wikipedia, the free encyclopedia, 2014. http://en.wikipedia.org/w/index.php?title=Native_(computing)&oldid=599081666.
- .NET Framework. Wikipedia, the free encyclopedia, 2014. http://en.wikipedia.org/w/index.php?title=.NET_Framework&oldid=623034917.
- Fred – Simple, Smart and Swift ECM. http://www.xenit.eu/fred.
- Development of a Hybrid Client for Alfresco Enterprise Content Management System(ECM) | Hybrid Client Application in HTML5 and .NET. https://aklilze.wordpress.com/2013/10/17/development-of-a-hybrid-client-for-alfresco-enterprise-content-management-systemecm/.