WebApp Vs. Website

The bottom line much of the time, is that developers are creatures of habit… much of what we do, we do because that is what we do, and we have no better reason than that. Perhaps the first time we do something we thought it through, but rarely do we go back and revise those thoughts, and conciously choose a different direction, ideology or methodology… for me this is the case with my choice of choosing Website over WebApp for my development.

Recently I began a new project with a co-worker, and although we discussed every aspect of the project, the coding, the tools, the flow, basically every detail as to what was ahead of us, we never addressed whether this would be a WebApp or a Website project. As I began coding my first page of this project, the dev environment was different, my options had changed, and I knew we had not addressed a fundamental decision that we should have addressed.

So why choose one or the other? What is the best reason to choose either?

I reject the argument, that WebApp is a more “professional” method of development, I am looking for concrete, quantifiable reasons, not empty platitudes. I am looking for either a reason to change my habits based on real-world benefits, unless I can find a benefit that my clients/customers will enjoy, I see no reason to change. Equally important, without concrete benefits, I see no reason to develop a strong opinion about either, yet somehow it seems developers have divided into two distinct camps regarding this. And opinions on both sides are nearly as deeply entrenched as the VBscript vs. C# debate.

So what are the actual differences?

Webapp’s must be precompiled – Website use just-in-time compilation
WebApp’s namespaces are defined by the project’s root namespace – Websites derive classes from their page/folder positions
WebApp classes are available throughout the project – Websites, only App_code files are available throughout
WebApps have a single project file controlling the content of a project – Websites are simply a file structure

The decision should be addressed based on client needs, not developer preferences

The greatest benefit to the client I can see for choosing a WebApp, is ability to publish without sending up the code behind pages. If the client has proprietary logic, methodologies or equations, definitely use a WebApp.

The greatest benefit of the website is the flexibility allowed by being able to edit a single page, and publish to the web without the need to recompile and push. This flexibility increases a team’s ability to develop concurrently, different portions of an application without needing to lock into a set release schedule. If using the site model, makes it possible for me to quickly respond to a client’s needs, even just once in a project cycle, it is the right decision. It is the difference between telling the client:

“That fix has been made and is live.”

Vs.

“That fix will be included in the next release.”

So in the end, my change of habit is not a definite change from one to the other, rather a change in habit to always consider the decision before beginning.

Leave a Reply

*