1
BORYANA DELIYSKA
INTRODUCTION
TO WEB PROGRAMMING
SOFIA 2018
ISBN 978-619-90990-1-8
2
This book is meant for professionals and anyone with an interest in WWW,
information and communication technologies (ICT). Given the vigorous rate of
development in the area, the book is in electronic form, which facilitates its regular
update.
3
CONTENT
CONTENT 3
INTRODUCTION 7
ABBREVIATION LIST 8
LIST OF FIGURES 12
LIST OF TABLES 13
Theme 1. WEB PROGRAMMING. ESSENCE. TYPES. RESOURCES 14
1.1. Nature and purpose of web programming 14
1.2. Web programming types 14
1.3. Protocols, standards, technologies and platforms for web application building
and exploitation 15
1.3.1. Protocols 15
1.3.2. Web technologies and standards 16
1.3.3. Software platforms 17
1.4. Content management systems 21
Theme 2. WEB PROGRAMMING LANGUAGES. NATURE AND CLASSIFICATION.
SYNTAX AND GRAMMAR. COMPARATIVE ANALYSIS
2.1.2. Key features
2.2. Historical reference and review of web programming languages
2.3. Classification of web programming languages
2.3.1. Client-side languages
2.3.2. Server-side languages
2.5. Web programming language comparison
2.5.1. Perl
2.5.2. Java and Scala
2.5.3. PHP
2.5.4. C# and F#
2.5.5. JavaScript (JS)
2.5.6. VBScript
2.5.7. Python and Boo
2.5.8. Ruby
4
2.5.10. Gо
2.5.11. Summary
Theme 3. WEB APPLICATIONS
3.1. Web applications. Nature and types. Folder structure
3.1.1. Web application architecture
3.1.2. Access devices
3.1.3. Web application purpose
3.2. Declaring and running scripts in web applications
3.2.1. Declaring languages and scripts in the page head
3.2.2. Declaring languages and executing scripts in the page body
3.2.3. Server scripts declaring and execution
3.3. СОМ, COM+, DCOM, OLE Automation and ActiveX components
3.4. Rich internet applications
3.4.1. RIA resources
3.4.2. RIA development stages
Theme 4. WEB PROGRAMMING FOR MOBILE SYSTEMS
4.1. Mobile OS
4.1.1. Mobile Windows OS
4.1.2. Apple iOS
4.1.3. Google Android
4.1.4. WebOS of LG Electronics
4.1.5. Tizen of Samsung and Intel
4.1.6. Sailfish OS
4.2. Specialized web programming languages for mobile applications
4.3. Mobile app platforms
4.3.1. Appcelerator
4.3.2. App Inventor
4.3.3. Buzztouch
4.3.4. EachScape
4.3.5. Corona SDK
5
4.3.6. Apache Cordova
4.3.7. Meme
4.3.8. Mobile Roadie
4.4. Mobile app development libraries
4.4.1. jQueryMobile
4.4.2. Zepto.js
4.4.3. jQT
4.4.4. React Native
4.5. Mobile app stories
Theme 5. DATA SOURCES IN WWW. DATABASE INTERFACE
5.1. Structured server DB
5.1.1. Structured server DBMS
5.1.2. Structured server DSMS
5.2. Non-structured server DBs
5.2.1. Column DBs
5.2.2. Document DBs
5.2.3. Key-value DB (key-value store)
5.2.4. Graph DB
5.2.5. Hybrid (multi-model) DB
5.2.6. Semantic DB
5.3. Data source interface. Technologies
5.3.1. DB access models
5.3.2. Microsoft DB access technologies
5.3.3. JDBC technology
Theme 6. TECHNOLOGIES AND PLATFORMS FOR WEB APPLICATIONS.
COMPARATIVE ANALYSIS
6.1. Gateway technologies
6.1.1. CGI
6.1.2. SAPI
6.1.3. SSI interface
6.2. Java technologies
6.2.1. Interfaces for communication between remote applications
6
6.2.2. Java platforms
6.3. ASP technology
6.4. LAMP (Linux, Apache, MySQL, PHP) platform
6.4.1. LAMP components
6.4.2. LAMP resources
6.5. .NET platform
6.5.1. .NET Framework
6.5.2. .NET API
6.5.3. Visual Studio platform
6.6. ASP.NET technology
6.6.1. ASP.NET essence
6.6.2. ASP.NET components
6.7. ColdFusion technology
6.8. PostgreSQL + Perl
6.9. RIA resources
6.9.1. AJAX (Asynchronous JavaScript and XML) technologies
6.9.2. JavaFX
6.9.3. JavaScript platforms for SPA
6.9.4. Other platforms
6.10. Package managers
6.10.1. npm (Node Package Manager)
6.10.2. Gulp.js
6.10.3. Yeoman
6.10.4. Bower
6.10.5. PEAR (PHP Extension and Application Repository)
6.10.6. СPAN (Comprehensive Perl Archive Network)
REFERENCES
APPENDICES
APPENDIX 1. LIST OF WEB APPLICATION PLATFORMS AND ENVIRONMENTS
APPENDIX 2. Terminological dictionary
7
INTRODUCTION
Web programming as an element of software engineering does not mean developing
code of one or more web programming languages only. It is complex activity related to
method, technology, design and codification of applications (web apps) representing
organized software structures of content and functionality in the web.
In the simplest case, web apps are static web pages, but lately these are very rarely
encountered. The contemporary web apps are sites consisting of linked (static and
dynamic) web pages, scripts and databases (DB). For their developing WWW and
desktop ICT are used.
There is great number of software platforms – one- or multi-language and
possessing all resources for web apps development and implementation. Nevertheless,
even experienced professionals find it difficult to be uptake about the dynamic
development of ICT theory and practice and many firm technologies, including huge
variety of languages, databases and frameworks.
The purpose of this book is to present optimally the current state of web
technologies, clearly recognizing that they are extremely dynamic and very often with a
commercial orientation. Moreover, there is vastly ambiguity in the terminology in the
area. Due to that, the book is available in an electronic form with a periodical update and
possibility to feedback with the readers. My wish is to create a useful tool for beginners
and for specialists also. I have aspired to summarize the most important features,
technologies and languages related to web programming.
The effective understanding of the content, separated into six themes, requires
preliminary knowledge of basic ICT.
In Theme 1 essence, purpose and classification of web programming is considered as
well as used web protocols, standards and platforms.
Theme 2 is an overview of features of the widespread general-purpose and scripting
languages for web programming.
Theme 3 refers to kind of web apps, their declaration and execution. A special
attention is being paid to Rich Internet Applications (RIA).
Theme 4 is dedicated to mobile web application programming as the most
dynamically developing branch in the area.
In Theme 5 online database management systems (DBMS) are presented, including
their interface, access methods and technologies.
In Theme 6, the most popular current web programming platforms and technologies
are considered.
There are two appendices: Appendix 1 is summary reference about most popular
web integrated development environments (IDEs) and platforms. Appendix 2 is a brief
terminological dictionary.
8
ABBREVIATION LIST
AJAX – Asynchronous JavaScript and XML
API – Application Program Interface
ASP – Active Server Pages
ATF – Ajax Tools Framework
AWT – Abstract Windowing Toolkit
BCL – Base Class Library
CCMS – Component Content Management System
CDI – Context and Dependency Injection
CEP – Complex Event Processing
CFML – Cold Fusion Markup Language
CGI – Common Gate Interface
CIL – Common Intermediate Language
CLI – Call Level Interface
CLI – Command Line Interface
CLI – Common Language Infrastructure
CMS – Content Management Systems
COM – Component Object Model
CRM – Customer Relationship Management
CUI - Console User Interface or Character User Interface
DB – Database
DBMS – Database Management System
DHT – Distributed Hash Table
DLL – Dynamic-Linkable Library
DOM – Document Object Model
DSMS – Data Stream Management System
DSN – Data Source Name
ECMS – Enterprise Content Management Systems
EDA – Еvent-Driven Architecture
EIS – Enterprise Information Systems
EJB – Enterprise Java Beans
9
ERP – Enterprise Resource Planning
GIOP – General Inter-ORB Protocol
GUI – Graphical User Interface
GWT – Google Web Toolkit
IDE – Integrated Development Environment
IDL - Interface Definition Language
IIS – Internet Information Server
IIOP – Internet Inter-ORB Protocol
IoC – Inversion of Control
IoT – Internet of Things
IS – information system
ISAM – Indexed Sequential Access Method
ISAPI – Internet Information Server Application Programing Interface
JAAS – Java Authentication and Authorization Service
JACC – Java Authorization Contract for Containers
JAF – JavaBeans Activation Framework
JAX-WS – Java API for XML Web Services
JAX-RS – Java API for RESTful Web Services
JCA – J2EE Connector Architecture
JDBC – Java Database Connectivity
JDK – Java Development Kit
JEE – Java Enterprise Edition
JME – Java Micro Edition
JMS – Java Message Service
JNDI – Java Naming and Directory Interface
JPA – Java Persistence API
JRE – Java Runtime Environment
JRMP – Java Remote Method Protocol
JSDK – Java Servlet Development Kit
JSE – Java Standard Edition
JSF – Java Server Faces
10
JSON – JavaScript Object Notation
JSP – Java Server Pages
JSR – Java Specification Request
JSTL – Java Server Pages Standard Tag Library
JTA – Java Transaction API
JVM – Java Virtual Machine
LCMS – Learning Content Management Systems
MVC – Model-View-Controller
NSAPI – Netscape Server Application Programing Interface
OLAP – OnLine Analytical Processing
OLTP – OnLine Transaction Processing
OMG – Object Management Group
ORB – Object Request Brokers
OS – Operating System
OSI – Open System Interconnection
PDA – Personal Digital Assistants
PDK – Perl Dev Kit
RAP – Rich AJAX Platform
RDBMS – Relational Database Management System
RDSMS – Relational Data Stream Management System
RFC – Request for Comments
RIA – Rich Internet Application
RMI – Remote Method Invocation
RPC – Remote Procedure Call
SAPI – Server Application Programming Interface
SDK – Software Development Kit
SOA – Service-Oriented Architecture
SPA – Single-Page Application
SSI – Server-Side Include
StAX – Streaming API for XML
ТСР – Transport Control Protocol
11
UI – User Interface
UnQL – Unstructured Query Language
URI – Uniform Resource Identifier
UWP - Universal Windows Platform
W3C – World Wide Web Consortium
WPF - Windows Presentation Foundation
WWW – World Wide Web
XHR – XMLHttpRequest
XML – eXtended Markup Language
12
LIST OF FIGURES
Figure 1.1. Functional schema of WWW 16
Figure 1.2. Schema of web technologies 16
Figure 1.3. Difference between library and software framework 19
Figure 1.4. CMS types 20
Figure 2.1. Classification of programming languages for 2012–2016 (by GitHub and
Stackoverflow) 41
Figure 3.1. Java web application folder structure 43
Figure 3.2. Exemplary content of ASP.NET web application folder 44
Figure 3.3. Schema of three-tier web application architecture 45
Figure 3.4. Example of multilayer architecture 46
Figure 3.5. Schema of MVC web application architecture 47
Figure 3.6. RIA controls (by Neil 2009) 59
Figure 3.7. Sequence of RIA interface structure building 61
Figure 3.8. An excerpt of Adobe Flex Builder component library 62
Figure 3.9. Comparison of ordinary and „sandbox” environment 63
Figure 5.1. Database access models 77
Figure 5.2. Microsoft DB access technologies (by MSDN library) 79
Figure 5.3. ODBC components 80
Figure 5.4. OLE DB structure 81
Figure 5.5. ADO, ODBC and OLE DB interconnections 82
Figure 5.6. ADO.NET access models (by Chand 2002) 82
Figure 5.7. JDBC architecture 84
Figure 6.1. Shema of request processing in CGI 85
Figure 6.2. Common RMI architecture 88
Figure 6.3. CORBA architecture 89
Figure 6.4. JRE architecture 90
Figure 6.5. JEE architecture 91
Figure 6.6. АJAX schema 101
13
LIST OF TABLES
Table 1. General reference of the widespread web programming languages
Table 2. Syntax and grammar specificity of the popular contemporary web
programming languages
Table 3. Basic and structured data type declaring in the popular contemporary web
programming languages
Table 4. Complex data type declaring
Table 5. Operators
Table 6. Aggregate characteristics of the most widespread web programming
languages
Table 7. Mobile services comparison
Table 8. RIA platform features
14
Theme 1. WEB PROGRAMMING. ESSENCE. TYPES. RESOURCES
1.1. Nature and purpose of web programming
In common sense, web programming is a set of web site development activities in
WWW (World Wide Web) based on the public network Internet.
In the simplest case, each web site includes static web pages, but usually is
aggregation of static and dynamic web pages. The later ones link under certain rules
data sources (structured and non-structured DB) and program codes (scripts), realizing
some functionality. This combination of web pages, scripts and DB is called web
application. The web applications are distributed (on one or more servers), working
under HTTP and available by browser or non-browser client application serving as
network interface.
In details, web programming refers to writing, markup and coding, involved in Web
site building (known as web development), which includes web content, web client and
server scripting and network security1.
In narrow sense, the web programming as a part of software engineering is a set of
activities and technologies of script development. In the book, namely this aspect of the
web programming is considered. They are not being discussed markup and styling
languages that are the subject of web design.
The scripts run under browser or server and one of their biggest advantages
compared to conventional (desktop) applications is that they are written in languages
compatible with the most local and network OS. This means that there is no need to be
maintained different versions of applications.
Other advantage is the lower development cost due to the availability of multiple
ready-made resources (content management systems (CMS), script libraries, DBMS etc.).
Moreover, the most of them do not require installation and run directly (on browser or
server).
The disadvantage of the scripts is their low performance because they are mostly
interpretative or partly compiled and dependent of exchange rate between server and
client. However, in contemporary languages the difference between compiled and
interpretative code is not so big yet.
Other disadvantage is that equal result visualization onto different computer screens
or browsers is impossible. However, there are technologies that largely deal with this
problem (see 3.3).
By the semantic technology development, the web programming will become even
more indispensable in the data processing, information and knowledge extraction and
presentation.
1.2. Web programming types
1 http://www.techopedia.com/definition/23898/web-programming
15
The web programming is classified by different indications – destination, languages,
platforms, functionality etc.
The scripts start (directly or by preliminary parameter selection) from:
web page in browser;
non-browser software application;
Command Line Interface (CLI), called also Console User Interface or Character User
Interface (CUI));
other scripts.
The results of their execution in text screens, web pages or in windows outside
browser are displayed. Most frequently and for the sake of user convenience, the results
are in web pages, called also interface (or front-end) of the applications.
The requests for information (or knowledge) of the web space are captured in
dynamic web pages, while the results – in static ones. Obviously, the dynamic web
pages, called also web forms, are interactive, but the static pages are for review only.
The web programming is various according to:
type of created applications – static (with client scripts), dynamic (with client and
server scripts), RIA (see 3.4);
type of network access – for fixed or mobile devices;
programming languages (see Theme 2);
used technologies (see Theme 6).
1.3. Protocols, standards, technologies and platforms for web application
building and exploitation
In contemporary web programming integrated technologies and platforms are used
not only for script creating, but also for complete development and testing of web
applications, including data sources. All these technologies and platforms stand on
network protocols.
1.3.1. Protocols
The network protocols2 are foundation of all activities and services on Internet. In
particular, WWW works on HTTP (Hypertext Transfer Protocol), associated with the
2 Agreements (rules) between manufacturers about network communications implemented by
hardware and software.
16
application layer of OSI3 and based on the lower level protocol stack TCP/IP4. In short,
HTTP manages browser request and server response (фиг.1.1).
Figure 1.1. Functional schema of WWW
1.3.2. Web technologies and standards
The script, markup and styling languages, DBMS, platforms, frameworks etc. are
components of various standards and technologies for web application development
and support. In the specialized literature, the term web technology is often used instead
each of these components.
Because of that and in the light of the following statement, it should be specified that
web technology is kind of ICT, a set of methods and resources for interaction between
web servers and clients at WWW. The resources are languages, interfaces, platforms,
frameworks and architectures for content creating, distribution and utilization.
Web technologies are proprietary and not always standardized and compatible
(Figure 1.2). The most popular of them are CGI, ASP, ASP.NET, JSP, JSF, AJAX, ColdFusion
etc., based on frameworks and platforms .NET, LAMP (WAMP, MAMP, XAMP), JSE (Java
Standard Edition)5, JEE (Java Enterprise Edition) etc. Some of them (CGI, ASP etc.) are
obsolete and not supported but still in use. On the other hand, new ones being created
continuously. Here, the actual state to 2017 is discussed.
3 OSI (Open System Interconnection) is seven-level model of network architecture
(http://support.microsoft.com/kb/103884). 4 A set of protocols managing data transfer between computers in internet and working in the
network and transport layers of OSI. 5 www.oracle.com/technetwork/java/javase/overview/
Browser
Creates and
sends data search
and retrieval
requests.
Server
Executes server
scripts and works with
DB. Sends results to the
browser.
Browser
Visualizes results.
Executes client scripts.
17
Figure 1.2. Schema of web technologies
Web standard denotes formal non-proprietary set of rules and technical
specifications about technologies for creation and interpretation of content in WWW.
Lately, this concept is related mainly to the validation of good practices for web site
development, including languages, design models and methods. These standards are
supported by W3C (World Wide Web Consortium)6 and other standardization
organizations (ISO, ITU etc.).
Therefore, each web standard is one or more technologies endorsed by
abovementioned organizations.
1.3.3. Software platforms
Each web application is created or works on one or more software platforms. The
concept software platform is too relative. For example, in the computer such is its
operating system (Windows 2000, XP, Vista, Linux, Mac OS X etc.), on which the
applications work.
In general, any software that performs significant tasks is a platform. Thus, SQL –
language for relational database management, registration and analysis in CRM
(Customer Relationship Management) and ERP (Enterprise Resource Planning) systems,
is platform. The web application platforms for (web platforms) include development
environment, runtime environment and software framework. Otherwise, these
6 W3C (https://www.w3.org) is an international community to develop Web standards.
18
platforms are composed of subsystems building common infrastructure for elaboration
and execution of multiple associated applications.
The most popular web platforms are LAMP, .NET, JЕЕ, JRE7 (Java Runtime
Environment) etc.
1.3.3.1. Integrated development environment
Integrated Development Environment (IDE) necessarily includes a source code
editor, compiler and/or interpreter, debugger and libraries. Moreover, it can include
version control system, graphical user interface (GUI) tools etc.
In the specialized literature often no distinction between a platform and
development environment. However, the platform is a broader concept and includes
resources for running applications outside their development environment. One might
say that a platform can include one or more development environments and vice versa –
an environment can work on different platforms.
The platforms and the development environments could be classified by the
architecture of created applications (see 3.1.1), by the function, the access type, the
manufacturer etc.
By the function they are:
Specialized environments for particular language – JаvaScriptCore8, Windows 8
JavaScript9, JRE, Perl Dev Kit (PDK)10, ActivePython11 and many others.
Environments for multiple languages (language stacks) as:
Komodo12 – proposes full range of tools for dynamic web application
development, including AJAX technologies with CSS, HTML, XML and
scripting languages Python13, PHP14, Ruby15, Perl, JavaScript.
Eclipse16 – mainly for Java and having additional modules for Ada, ABAP,
C, C++, COBOL, D, Fortran, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL,
Perl, PHP, Prolog, Python, R, Ruby etc.).
WinRT17 and many others.
7 http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html 8 https://developer.apple.com/documentation/javascriptcore 9 http://www.i-programmer.info/programming/winrt/3560-getting-started-with-winrt-
javascript.html 10 https://www.activestate.com/blog/2016/01/perl-dev-kit-95-released 11 https://www.activestate.com/activepython 12 https://www.activestate.com/komodo-ide 13 https://www.python.org 14 www.php.net/ 15 https://www.ruby-lang.org/en 16 https://eclipse.org 17 https://msdn.microsoft.com/en-us/magazine/mt745094.aspx
19
Server database management systems:
desktop DBMS extended with web modules, as: MS Access, FileMaker
Server18, Postgres19, DB2, DBF Manager, FireBird, Ingres20, MongoDB21,
Oracle Database etc.;
dedicated web DBMS22: SQL Server, Remote DBS, Sentences, Zoho
Creator23, PostgreSQL, Cloud SQL, AppGini, MTH (MyTaskHelper) and
many others.
Combined multiplatform development environments called also software stacks
or full stacks, including all necessary resources for web application elaboration –
frameworks (libraries), servers and DB for one or more languages. Such stacks
are:
MS Visual Studio (see 5.6.5.3);
LAMP (Linux/Apache/MySQL/PHP) and its variants WAMP, MAMP,
XAMPP etc. (see 6.4);
MEAN.io24, including MongoDB, Express.js25, AngularJS and Node.js26 (for
JavaScript);
MERN27 (MongoDB + Express.js + React + Redux + Node.js + Webpack);
Ruby Stack: Ruby/Ruby on Rails, RVM28 (Ruby Virtual Machine), MySQL,
Apache и PHP;
Django Stack: Python, Django29, Apache, MySQL, etc.
By the type of access, the platforms and IDEs are for fixed and mobile systems,
depending on the computer connection to the network. The fixed system platforms
working on screens between 15” and 24” have more evolved functionality given higher
computing power and capacity. Many of them are also used for mobile web applications.
The mobile wireless internet connection is provided by cellular network operators
and ensures browser-based internet services (mobile web) for handheld devices
18 http://www.filemaker.com/products/filemaker-server/ 19 http://postgresguide.com/ 20 https://www.ingress.com/ 21 http://mongodb.org 22 http://www.capterra.com/database-management-software/ 23 https://www.zoho.eu/creator/ 24 http://mean.io 25 https://expressjs.com/ 26 https://nodejs.org 27 mern.io/
28 https://rvm.io/ 29 https://www.djangoproject.com
20
(smartphones, tablets) with a small screen (average of 2.5 to 10 inches), sensor control
and often without keyboard.
There are special platforms and environments intended to mobile web application
development (see 4.3).
1.3.3.2. Software framework
Software framework is universal reusable platform, providing functionality or shell
to build both individual applications and complete projects and solutions. It includes a
set of libraries with reusable components (code abstractions), enveloped in well-defined
Application Program Interface (API). Unlike ordinary libraries, the framework offers:
Inversion of Control (IoC)30 – a principle of reversing control in software
engineering, concluding in breaking dependencies between levels of developer
code by shared abstractions, i.e. portions of the code receive the control flow
from the framework, instead code giving a flow of calls to functions in the
framework (Figure 1.3).
Default behavior.
Enhancement - the developer can revoke or add own code for specific
functionality.
Non-modifiable framework code, unlike the extensions added by the developer.
Compiler and other programs necessary for application software development.
Figure 1.3. Difference between library and software framework
The same framework can work on different platforms (OS). For example, the PHP
framework Laravel (or Symphony) works on Windows and on Linux also.
The framework Spring MVC for Java requires Java platform, working on Windows
and on Linux (two levels of platforms). Other Java frameworks are Vaadin, GWT, Grails,
Struts and etc.
1.3.3.3. API
30 Повече информация може да намерите на адрес:
https://www.martinfowler.com/articles/injection.html
21
As an element of framework, generally API is a set of clearly defined functions and
methods for communication between software components.
The best-defined APIs are those linking applications and OS. For example, OS offers
API for execution user requests from application software to system functions. Similar
are the requests for read/write file data, file structure support, connection to
peripherals, working with windows, controls, dialog boxes etc. In that, the API executes
commands invoking OS, interrupting and activation respective OS function and
implementing requests.
Other, commonly defined API are for various network services – sending and
receiving data to/from local and global networks, communication with resources of
mobile devices etc.
The API functions are embedded in all development environments.
1.4. Content management systems
In principle, the concept content management denotes a set of processes and
technologies helping content collection, management and publication in any form or
environment. The content can be textual, graphical or multimedia.
Increasingly in recent years, the direct coding, requiring serious qualification is
replaced by systems for automated creation and maintenance of web applications,
known as Content Management Systems (CMS). They do not require the designer to
know in details web technologies and in particular – to be web programmer. Typically,
CMSs are relatively easy to learn and use. They have built-in visual editor for creating,
updating and publishing content, adding or deleting files and folders on the server etc.
Moreover, links are automatically updated.
CMSs propose variety of ready modules as well as web application templates, for
example, chat, forum, counter etc. installed easy in the pages. In that, CMSs are
compatible with other simultaneously or successively used software environments
(editors) for content processing.
The first CMSs arise in 1995. Depending on the purpose and functionality, they are
(Figure 1.4):
22
Figure 1.4. CMS types
Enterprise Content Management Systems (ECMS) – about business process content
(documents) gathering, management, storage and supply.
Learning Content Management Systems (LCMS) – for learning content
development, management, support and supply.
Component Content Management System (CCMS) – for document creating using
parts named web components. These components saved in CMS library are
reusable and can be applied in other documents.
Image Content Management System (ICMS), in which users can upload and
process photos, clips and images.
Publication CMS (PCMS) – for blogs and other social communications.
Transactional CMS (TCMS) – for example, e-commerce, money exchange, e-
catalogs, etc.
Often CMS are of mixed type.
Nowadays Joomla31, Drupal32 and WordPress33 are the most popular CMS. They are
open source, free, easy to learn and use. More specifically, WordPress is best suited for
blogs and news. Other platforms designed for blogging are Blogger34, Tumblr35,
31 https://www.joomla.org 32 https://www.drupal.org 33 https://bg.wordpress.org 34 https://www.blogger.com 35 https://www.tumblr.com
CMS
Learning Content
Management
Systems (LCMS) Publicatio
n CMS (PCMS)
Component Content
Management System
(CCMS)Enterprise Content
Management Systems
(ECMS)
Image Content
Management System
(ICMS)
Transactional CMS (TCMS)
23
Medium36, Svbtle37, Quora38, Postach.io39, Google+40, SETT41, Ghost42, Squarespace43,
Typepad44, Posthaven45, etc.
Drupal is good platform for e-commerce and enterprise applications, but requires
knowledge about web programming. Moreover, it is quite clumsy for installation and
use. Especially for e-commerce is SEOTOASTER V2 E commerce.
Joomlа is universal CMS with richer opportunities than WordPress, but is relatively
difficult to master. However, it is lighter than Drupal.
For imagery galleries, besides the universal CMS, they are used platforms 4Images46,
TextPattern47, CMS of INSYS48 etc.
Other less known CMSs are Article Publisher, Bitrix, CMSBOX, eContent, Orchard,
Host CMS, OpenCart and a few hundred free and open applications.
But generally, CMS are very vulnerable to hacking attacks.
36 https://medium.com 37 https://svbtle.com 38 https://www.quora.com 39 https://postach.io 40 https://plus.google.com 41 https://sett.com 42 https://ghost.org 43 https://www.squarespace.com 44 https://www.typepad.com 45 https://posthaven.com 46 https://www.4homepages.de 47 https://textpattern.com 48 https://www.insys.bg/bg/cms