<style type="text/css"> .wpb_animate_when_almost_visible { opacity: 1; }</style>
 

Web Development And Design

qodef-image-with-icon

.NET

.NET is a powerful, versatile, compiled memory-managed software platform, that supports a large number of languages, including C++, Visual Basic .NET, and C#. There are also .NET implementations for many other popular languages, such as Python, Ruby and Scala. .NET’s uses are many: Windows applications, web applications, smart phone applications, and more.

Microsoft created .NET from the ashes of COM in response to Sun’s Java platform. A predominant goal in .NET is interoperability. Each .NET language produces interoperable byte code, so utilities written in C# can be used from Visual Basic .NET, for example. Programs may also expose COM interfaces to facilitate communication between components.

Windows is the most common platform on which to execute .NET programs, and .NET has access to deeply powerful multithreading and concurrent job processing utilities there. .NET applications can however be ported to run in Unix environments, using the Mono framework. Visual Studio is the most popular, powerful, and efficient tool for developing .NET applications and supports a wide variety of end products.

While .NET has always had web development offerings, the more recent ASP.NET MVC framework allows web development closer to the true spirit of the web. The previous generation ASP.NET WebForms presented a drag-and-drop metaphor, often ignorant of prevailing web standards.

There are many strong opinions for and against web development with a complete Microsoft stack vs. a selection of open source components. There can be a higher up-front cost with the Microsoft approach, for example, and less flexibility around the technology choices. Pearlsoft Technology we hold a more neutral position. We’ve done extensive and successful development on both desktop and web applications, with .NET and without, and are happy to evaluate and discuss the relative merits, on a project-by-project basis.

Node.JS:

JavaScript is a lightweight, interpreted language, that runs client-side (within the browser) and is responsible on some level for the dynamic nature of most of today’s websites. In the mid 90s, Netscape and Microsoft each introduced a server-side implementation of JavaScript. These were comparatively obscure, suffering as they did from competition from many fronts: C (and variants), Java, PHP, Ruby, and Python, among others.

Node.js is a contemporary server-side implementation of JavaScript, one which is in fact seeing widespread usage. There are compelling reasons for its success. Google greatly enhanced the efficiency of JavaScript in its open source V8 engine, upon which Node.js has been built. Additionally, its event-driven nature and non-blocking I/O offer it significant scalability, an area in which many other server-side solutions have struggled.

As JavaScript has matured and become increasingly powerful in the browser, the advantages of sharing code between the server and client-side of a web application have grown. There’s now a large and enthusiastic developer community, and they’ve contributed hundreds of freely available libraries (modules). These can be quickly and easily incorporated into a project through the built-in node package manager, greatly extending functionality and speeding up development.

Pearlsoft expertise with multiple server-side languages enables us to determine which solution is the best fit for your project. With many of our developers having long familiarity with the JavaScript language, Node.js is often an attractive choice. We’ve used it to great advantage, particularly on smaller web applications, finding that it provides quick iterations and an efficient path to visible results.

qodef-image-with-icon
qodef-image-with-icon

HTML 5

In its infancy, pages on the world wide web were just that – static pages, with fixed content that had to be updated by hand. Browsers were responsible for rendering the HyperText Markup Language which comprised the page into the appropriate graphical output – and nothing more. The original HTML specification contained only 18 elements.

In early 1994, the IETF created an HTML Working Group to further develop the expired HTML and HTML+ draft specifications. This work resulted in “HTML 2.0,” the first widely-recognized specification, which introduced now-common elements like tables and form-based file uploads, among others. As Mozilla (with their Netscape browser) and Microsoft (with Internet Explorer) competed, they began to introduce other non-standard elements and new functionality. Among these was Mozilla’s invention of JavaScript, which allowed for dynamic behavior on an already-rendered page.

The HTML specification has continued to evolve under the auspices of the World Wide Web Consortium (W3C). Each iteration has refined the standard – removing unused or disruptive elements (such as the infamous blink) and adding new ones, separating content and presentation (with the invention of Cascading Style Sheets), and adding additional functionality to the browser.

It is especially this last category of change that is intended when one considers HTML5. Still technically a ‘working draft’, HTML5 has been contributed to, and widely adopted by all major browser vendors – Mozilla, Google, Apple and Microsoft, among others. New semantic elements have been introduced, such as the header and footer elements, refinements to form elements, etc. The new and powerful JavaScript APIs defined in the standard, however, present the most exciting possibilities.

Pearlsoft has been working with HTML5 throughout its transition from an early draft, to its current state of wide adoption. We have leveraged the new functionality offered by new elements and APIs in numerous modern applications – including the canvas, a 2D & 3D target for scriptable graphics, the media API which allows for native playback and compositing of audio and video, drag-and-drop functionality, Offline Application Caching, and many others. HTML5 is at the heart of the most interactive, powerful and, by extension, popular web applications.

Powerful is often the opposite of simple, however – there are numerous issues with employing HTML5, especially in a cross-browser compatible way. Browser-specific prefixes, small or large differences in API implementation, lack of broad support for certain media codecs, and many other small but critical details can easily derail your application’s development. Pearlsoft experience with HTML5 ensures that all the details, big or small, will be in place, to ensure powerful functionality across the increasingly wide range of internet-capable devices.

AngularJS:

AngularJS is a JavaScript framework for building complete single-page dynamic web applications. As a framework, as opposed to a library, Angular dictates a particular application structure, based on AngularJS concepts. It’s less suitable for simple websites made up of mostly static HTML and a few JavaScript-based enhancements, than say jQuery would be.

Where AngularJS really shines is in highly-interactive, data-driven applications that need to do everything through a single page and behave like a desktop applications. Angular does require a bit of a paradigm shift, however. With jQuery the developer can progressively enhance the user experience, starting from plain HTML and adding dynamic JavaScript. With Angular one designs with JavaScript from the start. The developer starts with a controllers hierarchy; decides on namespaces and modules; and implements directives, filters, and data services. AngularJS feels very much like a full application stack, while remaining entirely on the client side. The overhead in complexity is generally compensated for by improved clarity of code and ease of maintenance. Angular application source speaks its intent very distinctly.

We’ve built a large CRM product using AngularJS and Google App Engine. Angular has made it extremely convenient to deal with the data. Data binding, RESTful data access, form validation, templating based on data received from server – these are the things Angular makes easy. Modules, namespaces and scopes are other areas where Angular offers powerful tools for structuring an application.

qodef-image-with-icon
qodef-image-with-icon

jQuery:

The modern web is a complicated place, with the simple, static pages of the past replaced with fully interactive applications, capable of replicating and replacing the functionality that used to be available only from large installed programs. Indeed, the modern web excels at tasks that desktop-bound applications struggle or fail to achieve – multi-user cooperative content contribution and editing, live streaming of information and updates, and cross-platform availability. In order to achieve the high degree of interactivity expected from a modern application, Pearlsoft developers employ a variety of libraries for tasks such as DOM manipulation, event handling, animation, and asynchronous communication, analogous to libraries employed in desktop application development for similar purposes. One of these is the extremely popular jQuery.

True to its tagline, jQuery allows developers to ‘write less, do more’. Offering a cross-browser compatible API that enhances and extends native JavaScript functionality, it enables a competent programmer to perform many common operations easily and makes coding complex operations more time-effective. It is also highly extensible, with a thriving ‘plugin’ ecosystem, with each plugin encapsulating a complex operation in a reusable form. Pearlsoft developers are old hands with jQuery, using it regularly as the underpinning in many of the web applications we develop. We have created numerous plugins for it and have an in-depth knowledge of its intricacies and powerful API. We are also well aware of the occasional cross-platform problems encountered in any complex project – caching issues, inconsistent events, rendering engine quirks – and are well-equipped to quickly resolve them.

Responsive Design:

Software developers were suddenly confronted with a big problem. How do you develop a web application that works well on a desktop computer and also is usable on a smart phone? And what could be done to address the many different screen sizes coming from the many hardware vendors? And what about the “in-between” screens that suddenly became popular when the iPad became such a large success?

The software industry responded by developing tools to allow web designers to produce pages that appear differently when users move between types of machines. This is the principle of Responsive Design, the crafting of websites that alter appearance and UI controls depending on what type of device a user happens to have.

Responsive web designers don’t lay pages out on fixed grids. They don’t think in terms of pixels or point size. Instead their work is organized more flexibly. Grids are fluid, images flexible, and style rules are defined that take maximum advantage of whatever screen real estate is available.

The bottom line is that user experience is enhanced without requiring web designers to know each and every screen type that might appear on the market.

qodef-image-with-icon