Key aspects of Web Application Development Revisited
In last two decades World Wide Web has revolved around multiple types of web applications. In simple terminology, web applications are programmable environments which can be easily customized to present wide range of applications for millions of users.
If we recap, in mid 90’s it all started with presenting static text and graphics that has now evolved into more personalized, dynamic content which can be accessed through browsers as specific to user preferences. I can envisage that evolution of Cloud and Big data platform will compliment web application development to a greater extent in near future.
Now a day’s focus may have shifted onto mobile platforms like Android and iOS for app development, but I think very soon web applications will become a first choice platform for application development.
From technology stand point, web applications have been through multiple transitions. Be it about technology stack, deployment models or methodologies like Web 2.0, there is no single winner which one can consider for developing modern web applications.
In my opinion, along with making the correct choice of technology or platform, it is imperative that the building blocks in web development are carefully chosen. In this blog I am trying to revisit key aspects of web application development considering current choices and its impact.
Technically web application is more of a collection of programs allowing web site visitors to exchange data over internet using preferred browser. Choice of architecture pattern and identifying most suitable framework(s) always play key role in building scalable web application as well as keeping check on overall development cost. Over the years number of common patterns has emerged such as MVC, MVP, MVVM or Model-View-Adapter etc. Selection of UI framework and UI layout is playing key role in deciding server side pattern in development of web applications as well. Need of modular architecture to achieve support for social integrations, content syndication as well as distributed delivery has been integral part of most web application which automatically brings in consideration for SOA through REST or SOAP.
RDBMS or NoSQL or something else?
Earlier database choice for Web Applications was quite straight forward i.e. RDBMS, only debate that time was about which provider to choose between some of widely used platforms like Oracle, MS SQL Server, MySQL etc. Today not all web applications can scale or perform at desired levels with RDBMS, its underlying file system or hardware deployments. Main challenge now a day is, to support continuously growing data size due to growing user base, varying data types and quick response time expectation for every web application. In order to balance this equation, NoSQL may not be a final answer but is something that one cannot ignore either. In my opinion, be it existing web application or one getting developed from scratch as developer we should start evaluating multiple approaches on whether only RDBMS or NoSQL DB will be a best fit or a step further to come up with best suited hybrid approach.
Social Media, SEO, Localization etc.
Success of any web application and eventually related business model is directly dependent on number of users or visits. Understanding abilities and limitations of Search Engines through SEO at every stage of web application development life cycle will allow you to build and format your content in a way that search engines can digest so more and more users can be pulled to your web application. Also considerations for social media integrations and localization of web content will result in ability to cater wider set of users across the globe.
Multiplatform support is a key
Multiple application platforms like desktop & mobile has resulted into multiple form factors that web application need to support. Developing native apps may not preferable approach for dynamically changing website where in web application supporting multiple form factor will have a significant advantage due to its cross platform reach.
Much has already been explained on advantages of cloud platforms and I think now every web application developer should include evaluation of right cloud deployment model as a part of any application development. Unlike earlier days, deployment option will have a say in defining application architecture.
To summarize along with other emerging computing platforms, web applications ability to serve a large user base with its totally cross-platform reach is a significant advantage. Though there are a few areas in which web applications currently fall short, there is lot of work taking place to bridge these gaps. This will make web applications a unique platform for majority of business and commercial applications and as a developer one will need to continuously revisit these building blocks against multiple technology options emerging from time to time.