CSC 311 Note on RAD 2
CSC 311 Note on RAD 2
The development of Web applications requires the same iterative phases as other applications; however, the
Web application itself is not the same as traditional applications.
A traditional application requires a special set of files during development, but distributes different outputs. For
example, the class files, image files, and source code files used to develop a Java applet can reside in a single
Microsoft® Visual J++™ project. For distribution, however, those files are compiled into a single executable
that is independent of the files kept in the developer's Visual J++ project. The resulting executable does not
require the presence of the source code files that were used to develop it.
Web applications, on the other hand, are composed of the same set of files used during development and after
deployment. There is no compiled executable file produced that becomes the Web application. For example, the
.htm, .asp, and .exe files in your Web project are the same files you propagate to your production Web server.
The source code, or script, in these Web files is executed on the client or server only when a browser requests
the Web page.
Source files and outputs for traditional and Web applications
You typically consider the following process in developing your Microsoft® Visual InterDev™ Web
application:
Planning a Web Application
Building a Solution
Creating and Testing Web Items
Deploying and Maintaining a Web Application
PLANNING A WEB APPLICATION
You can use the Visual InterDev tools to get a fast start on your Web application development. You can save
even more time with careful planning. If you address a few issues in the early stages of development, you are
better able to implement features and functionality efficiently. For example, the design decisions you make at
the start can impact how you create items in the Web application.
1
When you plan your Web application, consider the following activities before creating your Web solution.
Identifying the Audience and the Browser
Specifying the Web Application’s Purpose
Determining Content
Analyzing Development Resources
IDENTIFYING THE AUDIENCE AND THE BROWSER
A primary consideration in planning is identifying who will use the Web application—the audience. You can
define your Web application’s audience by identifying those who have access to the Web application and the
type of Web browser they use. Access can come through an intranet, the Internet, or an extranet. An extranet is
an area on a Web site available only to a set of registered visitors.
In many respects, access to the Web application helps you to determine the type of browser your Web
application needs to accommodate. For example, if the Web application is designed for an intranet, typically
you know which browser everyone is using and can program your Web application to take advantage of its
features.
The capabilities of the Web browser also shape your plans for using client and server script in your Web
application. Using server script and Active Server Pages (ASP), you can generate browser-independent pages
easily. The server processes the server script and then sends HTML to the browser for processing. In contrast, if
you know what type of browser the user will have, you can use client script to generate the page and minimize
the load on the server. Depending on the needs of your Web application, you can incorporate both to take
advantage of your system and the capabilities of your target audience.
The audience also determines what type of run-time security your Web application needs. Do you want
everyone to be able to read the Web application’s pages? Are some pages for everyone and other pages only for
those meeting certain criteria? For example, you might want your download page available to those who
completed a particular form.
SPECIFYING THE WEB APPLICATION’S PURPOSE
Another key factor in development is the purpose of the Web application. For example, your Web application
may be a set of announcement pages that inform visitors of current events. Maybe your Web application is an
order-entry component on a large commercial Web site. Your Web application might be a game designed to
attract Web visitors and introduce them to products sold on the site.
After you clearly specify the Web application’s purpose, you can determine the features and functions that
define the visitor’s experience.
DETERMINING CONTENT
The content includes all of the Web items and design elements used to specify the features of your Web
application and fulfill the Web application’s purpose. For example, content for announcement pages can be
implemented using simple HTML pages or using a database connection to populate an Active Server Page. An
order-entry Web application can incorporate a variety of forms and database transactions using server script
processing and client script processing. A game Web application can be created using Java applets or dynamic
HTML and page objects to take advantage of quick client-side processing.
Before you plan the details, you might want to review the variety of content you need to consider and explore
which Visual InterDev tools can implement your design quickly.
2
Some tools, such as the wizards and templates, quickly implement content without your having to plan the
details. Other tools, such as the design-time controls, let you worry about the details of a design while the tool
takes care of the code and script for implementing the design.
You can consider this list to help plan content to include in your Web application.
Visual design and site navigation using themes and layouts
Web application introduction and general information
Database integration for displaying, updating, adding, or deleting records
Web application control
Forms and interactive pages
Script for conditional processing
Design-time and run-time security
Details about tools to use and implementation ideas are covered in Building a Solution and Creating and Testing
Web Items.
3
developer changing some script in the same file. When the file is updated on the master server, the second
person saving the changes has the opportunity to merge the differences.
What is your development system?
Do you have a single developer workstation with both the server and client components needed to develop and
test a Web application? Are your Web server components, database development components, and developer
tools on separate machines? What level of design-time security does your Web application require?
The location of the components affects how you test your Web items and the Web application. For example,
Web applications tested locally without a local Web server cannot process Active Server Pages. If you don’t
have a copy of a Web server on your developer workstation, you might want to consider using a Web project in
master mode so that you do not have to explicitly update the master and test on the master server.
What is your testing system?
Do you have a testing or staging server that the team uses simultaneously for development? Do your team
members each develop their files locally, then move them up to the staging server? Where does your test
database reside?
The locations for testing help determine which project mode you want to use. Preferably testing and
development of individual pages is isolated from the testing performed on the master version by setting your
project to use local mode.
What is your deployment system?
Are you deploying your Web application on the same Web server that you are using for testing? Is your master
server also your production server? Where does your production database reside? What level of run-time
security does your Web application require of the deployment server?
The relationship of your testing server and production server determines how you perform some server
management and file management tasks. Preferably, Web applications under development and the production
versions are maintained on separate machines.
4
BUILDING A SOLUTION
A solution allows you to work on several projects at one time efficiently. For example, a solution can have both
a Web and a Microsoft® Visual J++™ project in it. The Web project manages all of the files that make up the
pages of the Web application. For example, you might have several pages that make up the front-end to your
database. Or you can create and deploy some pages to inform your users that the Web application is in
development. For this set of pages, you can create one Web project for publishing some basic Web pages that
announce the Web application and keep visitors updated on when the full Web application will be available.
You can add a second Web project to the solution for developing a prototype of the final Web application. Also,
if you plan to create a database, you can add a database project. Your Web project can also include Web
components created in Visual Basic or Visual C++.
In building a solution, you will probably want to perform the following general activities:
Make a Web project to create and manage the files in your Web application.
Add a database connection or create a new database.
Develop a prototype by adding Web items to your Web project.
5
not show those changes. To resolve these issues, update the master Web application, refresh your project, or
synchronize your local Web application with the master Web application.
Working Offline
If you do not need to access the server or if the server is down, you can work offline. When working offline,
commands that require the server are not available. For example, you can make changes to files in your local
directory, but you can’t release the changes and update the master Web application.
In addition, the functionality available for testing your project offline depends on the system components on
your developer workstation. If you have a Web server on your developer workstation, the project sets up a Web
application root that allows you to test against a Web server and server extensions on your workstation. If you
do not have a Web server and the appropriate extensions, the file is loaded directly from the local Web
directory.
Working Outside of a Project
If you add, create, or delete Web application files outside of Visual InterDev and the Project Explorer, you need
to refresh the project when you return to the Project Explorer. For example, if you add or delete a file using the
Windows® Explorer, the project would not show that change to the local directory and the local files until you
refresh the project.
ADDING A DATABASE
If your Web application plans include database access, you can integrate existing databases or modify a
database specifically for your Web application. In the Web project, just add a connection to the database and
you can use information from the database in your Web application files. This connection also displays a Data
View window you can use to view the objects in the database and adds a data environment to your project.
You can also modify the database objects from your Web project using the Microsoft® Visual Database Tools.
After you have a database connection, you can continue working from within the Web project to develop a
prototype.
DEVELOPING A PROTOTYPE
After you have created your Web project and data connection, you can quickly develop a prototype of your
Web application. Some developers wait to add the look and feel elements of their Web application until after
they have finished implementing the core features and functionality. You may have already added those
elements to your Web application when you created the project and chose a theme and layout.
Create and Organize a Set of Pages
Using your content plans, you can outline the HTML and ASP pages for your Web application by creating a site
diagram. A https://msdn.microsoft.com/en-us/library/aa233127(v=vs.60).aspx provides a graphical view of the
pages in a Web project. The pages automatically incorporate the theme and layout defaults you selected when
you set up your Web project.
After you have setup the initial prototype pages and Web application organization, you can modify them to
meet your Web application’s requirements.
By establishing hierarchical relationships between the pages in a site diagram, you can easily design the
navigation links for your Web pages. If you want to modify the look and feel, you can do that quickly by
changing the theme or layout.
6
Author Text to Introduce the Web Application
Web application pages typically have some information that rarely changes. HTML is used to implement this
text.
Your Web application should probably include at least one page with information that introduces the purpose of
the Web application and informs the Web visitor how to use the Web application or a specific page. Typically
this information is provided on the start page for the Web application and provides a common entry point to the
Web application. It can include other design elements such as forms, data, or interactive objects.
If you are designing for the Internet, this page should be browser-independent and inform the user of any
special software or browser requirements your Web application needs to run properly.
Implement Data and Script
After you have created your initial set of pages, you can open the pages in the editor and add the text, images,
and script that fulfill your Web application’s purpose. One of the main considerations in determining how you
implement content is whether you want the processing performed on the client or the server. This answer
depends on the audience, their browser capabilities, and the resources on your deployment system. For a
summary of Web items to consider using, see the following section, Creating and Testing Web Items.
Whether you decide to use client or server scripting, Visual InterDev offers a Web page editor and a data
environment that allows you to implement your functionality quickly. For example, you can use the data
environment to create a recordset object for use on multiple pages. The editor also offers several data-bound
design-time controls you can easily add to your pages that display those records. F
Control the Web Application
To control your pages as a Web application, you can use server processing with Active Server Pages and its
special file, the Global.asa file. In the Global.asa file, you can script session- and Web application-level events
and variables that are available to all of the pages in the Web application that use server script.
7
Integrated Web solutions Output files from other projects such as applets
Downloadable documents Document files, spreadsheets
8
Carefully designing your site navigation makes it easy for the user to move from page to page through your
Web application. Using a site diagram, you can graphically lay out your pages and specify the navigation at the
same time.
Before creating your Web application, plan the general look and feel of your site. Or, choose a Visual InterDev
theme and layout to give your Web application consistent visual impact while you create the pages in your Web
application. When you create a project, you can specify one of the themes provided by Visual InterDev.
If you have a theme design in mind, you can create your own themes, templates, and layouts to quickly add
consistency to the Web application.
Themes and Layout Files
Visual InterDev offers you several themes and layout files you can use to give your Web application a
consistent look and feel.
Site Navigation
Site Designer provides a graphical method of designing your site navigation. Create site diagrams to define the
hierarchical relationships between pages. When you specify the relationships, the site diagram automatically
specifies the links between the pages and adds them to your Web pages.
Dynamic HTML and ActiveX Controls
You can use Dynamic HTML to lay out text, images, and multimedia items on HTML pages. Dynamic HTML
provides you with a rich set of controls for scripting multimedia pages. These controls give you a set of objects
and parameters you can change dynamically to change visual and sound effects on your page.
9
files are updated. If an affected file is open in an external editor or if another developer has the file open, the
links in those files must be fixed manually.
Debugging Script
You can debug script much as you would in a traditional Web application. When you preview your pages, you
can find syntax errors, run-time errors, and logic errors.
Using the editor and its debugger, you can control the execution of your script and monitor values of variables
and properties to identify the cause for errors you encounter.
10
WEB APPLICATION DEVELOPMENT PROCESS
Web application development is the process and practice of developing web applications. Just as with a
traditional desktop application, web applications have varying levels of risk. A personal home page is much less
risky than, for example, a stock trading web site. For some projects security, software bugs, etc. are major
issues. If time to market, or technical complexity is a concern, documentation, test planning, change control,
requirements analysis, architectural description and formal design and construction practices can mitigate risk.
In practice, two main categories of coding are used to create web applications:
1. CLIENT SIDE CODING – a type of code that is executed or interpreted by browsers. Client side coding is
viewable by any visitor to a site. Most common technologies here are:
HTML (Hyper text markup language)
CSS (Cascading style sheets)
JavaScript
Ajax (Asynchronous javascript and XML)
jQuery (JavaScript framework library)
MooTools (JavaScript framework library)
Dojo Toolkit (JavaScript framework library)
2. SERVER SIDE CODING – a type of code that is executed or interpreted by the web server. Server side
coding is not viewable or accessible by any visitor or general public. Technologies are:
PHP (Linux / Unix based open source, usually combined with MySQL database)
Zend Framework (PHP’s object oriented framework)
ASP (Microsoft web server scripting language)
ASP.NET (Microsoft’s web application development framework)
ColdFusion (Adobe’s web application framework)
Ruby on Rails (Ruby programming’s web application framework)
Perl (general purpose programming language)
Python (general purpose high-level programming language)
11
The Web is a different breed. Many programmers have little tolerance for the paths it has taken. But it’s not that
the web is perfect, it certainly has glitches. It’s not that success means something is better. Many terrible things
have found nig audiences. And of course, the web does not solve every programming need. So why is the web
better? Web applications made it possible to address scalability problem. It allows both human and technical
distribution of responsibilities. The web came at great timing. It had a few years at the beginning to settle and
develop. Next came a few years of insane growth, where developers could make mistakes. And then a quieter
period for those fixes to set in. Even then, web maintained huge scale, and web projects continued growing.
Web is a great way to build distributed applications. It showed up at a time when a lot of people wanted to do
that. The front end, the back end, and the connections between them are built with a unique set of features and
constraints. And it makes much easier to build great applications.
Unlike applications for platforms like iOS and Android, the first-tier languages of web application development
are HTML, CSS, and JavaScript. These languages are supported by a worldwide web of developer resources.
This web pack is available on modern mobile and desktop hardware. And it enables you to maximize code reuse
and potentially reach a massive audience on different platforms and devices. One can explore the aspects of web
app creation, the strategies for designing a flexible, functional app, and coding an application to completion.
HTML is used to create the content structure for the web application. CSS provides the visual presentation, and
lets you control the basic layout of content. CSS can do more than just format content though. One can use CSS
to animate elements, create gradients to avoid having to use images. Also, to create media queries for the
appearance of content on various devices. JavaScript provides the dynamism and user interaction for the web
app. JavaScript lets you listen for and respond to user interactions. As well as load content dynamically, and get
access to device-specific features. Important to note that support for individual features differs from browser to
browser.
Before you go into web application development, make sure you have the tools required. A solid text editor is
the most crucial tool. There are several free text editors available, including: jEdit, Emacs, vim, Komodo Edit,
Sublime Text 2, Notepad++, TextWrangler. Testing of the application is done within the browser. You need to
input some useful developer tools for the browser. These tools should help with inspection, styling, visual
elements of the app. It is strongly suggested to find a combination of tools that work for your special demands.
There are many considerations to ponder before going into web application development. Especially those
concerning design. Knowing the types of devices your application should work with is the biggest importance.
Target devices and their capabilities tell what features you can count on. Many JavaScript frameworks provide
multiple device themes for easy implementation. Regardless of the specific devices, there are few basic
principles which should be followed. Avoid pixel-based widths when designing for multiple devices. Use vector
graphics for dimensions to be adjusted between devices. Do not assume features on any device, use feature
detection. The more flexible the app design, the more portable it will be. The design of the application should be
typical, with two panes. The first pane provides a search box for entering user location. The second pane shows
a list of tweets, for example. Each pane should use a standard heading.
12
Set apart free time. It isn’t a complicated science. If you don’t set apart time to work on your project, you are
never going to get anything done. Schedule time into your week where you know you can dedicate some time to
your project. If more free time comes up, great. Use it to make more progress. Just make sure to set minimum
amount of time for the project every week.
Identify the tools. How to go into web application development from scratch with no experience? You
definitely need to choose the tools for the job. Web development framework comes in plenty of choices. Be it
Ruby on Rails or CSS, find a tutorial, and start where you like.
Start making mistakes. Web application development aspect is going to be the most important part. As you
start building some sample applications, you make mistakes. You google it, you learn in the process. Making
mistakes and finding solutions to fix it is a big part of the learning process.
Read books. After basics, it is time to find proper books and get serious about learning. Though, these books
are always going to go out of date in time. Thematic instructionary books bring you a fuller understanding of
the framework as a whole.
Eventually, after days and weeks, you finally have something to launch. And regardless of how long it takes, if
you’ve done it methodically, you will be ready to release something into the world.
13
WEB APPLICATION TECHNOLOGIES
Technologies for web application development are plenty:
Ajax, ASP, ASP.net, ActionScript, Apache, Flex, CSS, ColdFusion, CGI, Django, Drupal, HTML5, Java,
JavaScript etc. It also includes frameworks as: AngularJS, Ember.js, React, jQuery, Nginx, Node.js, Perl, PHP,
Play Framework, Python, Ruby (including Ruby on Rails), WordPress, Wt, Xojo.
Web applications are dynamic web sites combined with server side programming which provide functionalities
such as interacting with users, connecting to back-end databases, generating results to browsers. Examples of
web applications are online banking, social networking, online reservations, eCommerce / shopping cart
applications, interactive games, online training, online polls, blogs, forums, content management systems, and
more.
Technologies for web application includes:
1. BROWSERS
Browsers are the interpreters of the web. They request information and then when they receive it, they show us
on the page in a format we can see and understand.
Google Chrome - Currently, the most popular browser brought to you by Google
Safari - Apple’s web browser
Firefox - Open-source browser supported by the Mozilla Foundation
Internet Explorer - Microsoft’s browser. You will most often here web developers complain about this
one.
2. HTML
HTML is a markup language. It provides structure of a website so that web browsers know what to show.
3. CSS
CSS is a Cascading Style Sheet. CSS let’s web designers change colors, fonts, animations, and transitions on
the web. They make the web look good.
LESS - a CSS pre-compiler to make working with CSS easier and add functionality
SASS - a CSS pre-compiler to make working with CSS easier and add functionality
4. PROGRAMMING LANGUAGES
Programming languages are ways to communicate to computers and tell them what to do. There are many
different programming languages just like there are many different lingual languages (english, spanish, french,
chinese, etc). One is not better than the other. Developers typically are just proficient at a couple so they
promote those more than others. Below are just some of the languages and links to their homepages
Javascript - used by all web browsers, Meteor, and lots of other frameworks
Coffeescript - is a kind of ―dialect‖ of javascript. It is viewed as simpler and easier on your eyes as a
developer but it complies (converts) back into javascript
Python -used by the Django framework and used in a lot of mathematical calculations
Ruby - used by the Ruby on Rails framework
PHP - used by Wordpress
Go - newer language, built for speed.
Objective-C - the programming language behind iOS (your iPhone), lead by Apple
Swift - Apple’s newest programming language
Java - Used by Android (Google) and a lot of desktop applications.
5. FRAMEWORKS
14
Frameworks are built to make building and working with programming languages easier. Frameworks typically
take all the difficult, repetitive tasks in setting up a new web application and either do them for you or make
them very easy for you to do.
Meteor - a full-stack (front and back end) javascript framework
Node.js - a server-side javascript framework
Ruby on Rails - a full-stack framework built using ruby
Django - a full-stack framework built using python
Ionic - a mobile framework
Phonegap / Cordova - a mobile framework that exposes native api’s of iOS and Android for use when
writing javascript
Bootstrap - a UI (user interface) framework for building with HTML/CSS/Javascript
Foundation - a UI framework for building with HTML/CSS/Javascript
Wordpress - a CMS (content management system) built on PHP. Currently, about 20% of all websites
run on this framework
Drupal - a CMS framework built using PHP.
.NET - a full-stack framework built by Microsoft
Angular.js - a front-end javascript framework.
Ember.js - a front-end javascript framework.
Backbone.js - a front-end javascript framework.
6. LIBRARIES
Libraries are groupings of code snippets to enable a large amount of functionality without having to write it all
by yourself. Libraries typically also go through the trouble to make sure the code is efficient and works well
across browsers and devices (not always the case, but typically they do).
jQuery
Underscore
7. DATABASES
Databases are where all your data is stored. It’s like a bunch of filing cabinets with folders filled with files.
Databases come mainly in two flavors: SQL and NoSQL. SQL provides more structure which helps with
making sure all the data is correct and validated. NoSQL provides a lot of flexibility for building and
maintaining applications.
MongoDB - is an open-sourced NoSQL database and is currently the only database supported by
Meteor.
Redis - is the most popular key-value store. It is lighting fast for retrieving data but doesn’t allow for
much depth in the data storage.
PostgreSQL - is a popular open-sourced SQL database.
MySQL - is another popular open-sourced SQL database. MySQL is used in Wordpress websites.
Oracle - is an enterprise SQL database.
SQL Server - is an SQL server manager created by Microsoft.
8. CLIENT (OR CLIENT-SIDE)
A client is one user of an application. It’s you and me when we visit http://google.com. Client’s can be desktop
computers, tablets, or mobile devices. There are typically multiple clients interacting with the same application
stored on a server.
15
9. SERVER (OR SERVER-SIDE)
Server is where the application code is typically stored. Requests are made to the server from clients, and the
server will gather the appropriate information and respond to those requests.
10. FRONT-END
The front-end is comprised of HTML, CSS, and Javascript. This is how and where the website is shown to
users.
11. BACK-END
The back-end is comprised of your server and database. It’s the place where functions, methods, and data
manipulation happens that you don’t what the client’s to see.
12. PROTOCOLS
Protocols are standardized instructions for how to pass information back and forth between computers and
devices.
HTTP - This protocol is how each website gets to your browser. Whenever you type a website like
―http://google.com‖ this protocol requests the website from google’s server and then receives a response
with the HTML, CSS, and javascript of the website.
DDP - is a new protocol created in connection with Meteor. The DDP protocol uses websockets to
create a consistent connection between the client and the server. This constant connection let’s websites
and data on those websites update in real-time without refreshing your browser.
REST - is a protocol mainly used for API’s. It has standard methods like GET, POST, and PUT that let
information be exchanged between applications.
13. API
An API is an application programming interface. It is created by the developer of an application to allow other
developers to use some of the applications functionality without sharing code. Developers expose ―end points‖
which are like inputs and outputs of the application. Using an API can control access with API keys. Examples
of good API’s are those created by Facebook, Twitter, and Google for their web services.
14. DATA FORMATS
Data formats are the structure of how data is stored.
JSON - is quickly becoming the most popular data format
XML - was the main data format early in the web days and predominantly used by Microsoft systems
CSV - is data formatted by commas. Excel data is typically formatted this way.
CLIENT-SIDE TECHNOLOGIES
XHTML
XHTML is a markup language designed to structure information for presentation as web pages. Rather
than relying on WYSIWYG programs, we write all our XHTML by hand, ensuring that it is clean, valid
and of the highest standard. This means that pages have fastest download times possible, are viewable
on all browsers, are search engine friendly, and have maximum forward compatibility.
Cascading Style Sheets
Cascading Style Sheets control how web pages are displayed in the browser, and allow the separation of
presentation from structure and content. CSS help ensure that web pages are presented in an accessible
way to all visitors, over a wide range of media.
JavaScript/ECMA Script
16
JavaScript is a lightweight scripting technology which is used alongside XHTML documents to make
websites more interactive.
SERVER-SIDE TECHNOLOGIES
PHP
PHP is a fast, server-side scripting language that is used to create interactive, dynamic web sites. It is
particularly well-suited to integrating with a range of databases.
CGI/Perl
Perl is a programming language that can handle input and output from a Web Server, usually through the
Common Gateway Interface. It is most commonly used to process information through forms.
XML/XSL
XML is a software and hardware independent markup language designed for describing and transmitting
information. It is set to become the most common tool for all data manipulation and data transmission.
XSL is a language for defining, transforming and formatting XML documents.
MySQL
MySQL is a fast, open-source Relational Database Management System that uses the popular Structured
Query Language (SQL). It is perfect for most websites that need database functionality, and works hand-
in-hand with PHP.
PostgreSQL
PostgreSQL is a more sophisticated open-source Relational Database Management System. It is well-
suited to sites that require robust database functionality, such as e-commerce sites.
Linux/Apache
Linux is a popular open-source operating system, and Apache is the most widely-used web server on the
Internet. Together they provide a fast, extremely reliable, secure platform for web sites.
SSL/Secure Servers
Unlike normal web servers, secure servers ensure that information exchanged between the visitor and
the web site cannot be viewed by any third parties. A secure server is essential when handling
confidential information, such as online credit card transactions or personal medical details. SSL, or
Secure Socket Layer, is one method of exchanging data securely.
MULTIMEDIA
Macromedia Flash
Flash is a product designed to provide web sites with animation, sound, interactivity and database
integration. A free plugin, which also ships with the major web browsers, is needed to see the Flash
parts of a site. Flash can create a truly multimedia web site, but has certain disadvantages, and is
therefore best used sparingly.
We also have experience with a range of other technologies, including ASP, Microsoft Access, SQL Server,
Windows, IIS, SSI and Macromedia Shockwave/Director.
If you require any specialised services that we feel are outside our capabilities, then we will be happy to arrange
and supervise suitably qualified contractors. Please contact us to discuss your specific needs.
17
WEB DEVELOPMENT TRENDS
According to Infoworld research, there are trends in programming and web application development as well.
That’s what makes programming an exciting trade – change, debate and comebacks.
JAVASCRIPT FRAMEWORKS. In the past, everyone learned to write JavaScript to pop up an alert box.
Now apps are so sophisticated that few people start from scratch. It is simpler to adopt an elaborate framework
and then write a bit of code. Now there are dozens of frameworks ready to handle the events and content for
web applications and pages.
CSS FRAMEWORKS. Earlier, you opened the CSS file and included a new command. Then you saved the
file. Now web pages are sophisticated and it’s impossible to fill with such simple commands. One tweak to a
color and everything goes out of control. Everything is connected. That’s where CSS frameworks have found
solid ground. Encouraging professional stable coding, offering programming constructs. It may not sound like
much news in the programming layer, but it’s a big leap forward.
BIG DATA. No surprise when the words ―big data‖ started appearing, the executives started asking for the
biggest, most powerful big data systems. As if they were purchasing the largest skyscraper. Funny thing, lots of
problems are not big enough to use big data solutions. Most companies are not like Google or tahoo. Most of
companies have data sets that can easily fit in a basic PC. In most algorithms, the data does not need to be read
into memory. There can be instances demanding fast response, but many will do just fine without the
coordination or communication.
GAME FRAMEWORKS vs native game development. Game development used to mean hiring plenty of
developers to do everything from zero. Now, noone can afford that. Most games developers use libraries to
build their systems. They do not write C-code as much as instructions for the libraries. Developers are relieved
in a sense. Because they don’t have to deal with the details. They can focus on the game play, narrative arc,
characters.
SINGLE-PAGE WEB APPLICATIONS. Remember when URLs pointed to web pages filled with static text?
New web apps are front ends to large databases filled with content. It pulls data from the database and pours it
in. There is no need to mark up the data with all the web extras. The data layer is completely separate from the
presentation and formatting layer. This means the rise of mobile computing. A single responsive web page that
work like an application becomes a better solution.
Mobile web apps, not native mobile apps. You could write separate versions for iOS, Android, Windows 8, or
others. Each requires a separate team on different programming language. Or you could just build one HTML
app and put it on a website to run on all the platforms. No need to return to the app store, begging for a bug fix.
Now that the HTML is getting faster, this approach can compete with native apps better.
Android vs iOS. Times change. While iPhone and iPad continue to have dedicated fans, sales numbers favor
Android more and more. Reports say more than 70 percent of phones sold were Androids. The reason is simple
– the price. While iOS devices are still pricy, Android world is producing tablets for as low as one-fifth the
price.
GitHub. Participating in open source projects is becoming more and more important for finding a job. Sharing
the code from a proprietary project is hard, but open source code can go everywhere.
Web interfaces. For example, WordPress comes with a built-in editor that lets you change the code. Microsoft’s
Azure lets you write JavaScript code in its portal. These systems don’t offer the best environments, but the idea
is attractive.
18
Demise of desktop adds. They said they’d be dead. Gone from our docks and into our browsers. The demise of
the desktop apps has long been predicted. In favor of browser-based models. You don’t see a downfall in good
technology for a reason. Tech industry has been ditching the native app in favor of the web app. It turns out they
have some pretty solid reasons. Nothing to download, nothing to install. It’s easier to convince people to use
your app if they can get started right away. Downloading and installing feels like more of a commitment than
having a play around. One big step in the onboarding process has been removed. No more updates. Since
automatic updates were introduced this one isn’t the huge benefit. Yet updating your application on the web
does ensure that nobody is using an outdated version. It eliminates compatibility issues.
Over the years, there are a few basic rules around architecting systems.
1. SCALABILITY
Ensure that your architecture can be scaled horizontally, across multiple servers and across multiple regions.
That means that once your traffic goes up, you should be able to add and remove new servers.
2. AVAILABILITY
The architecture should support a high availability environment. What happens if one, two or three servers fail?
What happens if a whole region fails?
3. SECURITY
Your architecture should expose only the minimal amount of code possible. Most of the back-end pieces should
be hidden away. In addition to that, security of each system should be multi-layered. What happens if you hack
one layer of the system? Do you get access to everything or just a small piece of the system?
4. EXTENSIBILITY
You should be able to swap out modules, change layers, and add pieces to your application without having to
worry about the underlying data contracts you have in place. Extensibility should be easy and fun - you
shouldn't have to worry about where you start or what you might break!
5. SEPARATION OF RESPONSIBILITY
Your system should be modular enough that each piece of code has a set of responsibilities and not more. Your
back end should not create front end code nor should your front end code include business logic.
So what does a good architecture look like?
The basics of a good architecture is to layer the application into multiple autarkic and autonomous applications
that can be replaced individually and allow us to keep the application running while we are working on a
specific layer. The communication between each layer should be a RESTful API call with JSON content. For
the sake of a good example, we are going to discuss creating a cloud based music management application. We
should be storing music in the cloud and be able to find it, add more music and extend our library to whatever
size we need.
19