Programming tradeoffs: web sites vs web application

This one requires a lot of subjectivity.

I need to upgrade an app from "proof of concept" to "pilot".     I wrote the site (45K lines of vb, 10K lines of JS); someone else will upgrade it, then I'll need to continue maintaining it.

I need to make a decision about converting from web site (which it is now) to web application.

>  I've read a lot about the differences between web sites and web applications, in terms of sub-projects, standalone classes, compilation, edit-and-continue, deployment, working in teams, etc.
>  I'm sensitive to the added cost of converting to a web application, unless there's a  good reason (though the rewrite team may greatly prefer converting).
>  I think I can deal with learning the compilation and deployment differences.
>  I'm mostly concerned about added coding complexity in web applications vs web sites.

On balance, the main advantage of converting in this case seems to be having sub-projects and standalone classes, so that a) I can have some application admin functions that use the same code as the main project but that don't have to be deployed and b) I can have some added flexibility in how the workflow would operate (i.e. functions not requiring other functions to be "up";  but "b" is really a business benefit that I might be able to live without).

Also, with respect to a) above, as a web-site, I could compile the app admin functions in with the rest and not deploy the app admin forms
==> First question:  maybe that's an additional security risk, however, much the same object code would be in the bin anyway.   Any thoughts on the security issue there?

==> Second question:  how much harder is it to actually write code in web applications versus web sites?  I tried to convert the application once and basically stalled out on Namespaces.  I'm essentially a Cobol/RPG programmer who has maintained coding proficiency through  Access and Excel VBA (and I write and javascript like it was VBA).  I've tried to be object-like in this code set, however, I've never gotten beyond basic SQL, and CSS still makes me shudder (after writing over 1000 classes).   Web site coding is SO EASY in terms of putting in changes during development.  However, I've moved away from code-behind as much as possible so I still have to recompile after minor changes (only about 20 seconds per compile, though).

So, am I just being a big softie about coding differences between web sites and web applications?  Are Namespaces not that big a deal? Are there other coding complexities in web applications vs web sites that go beyond Namespaces?  Or, once I got past Namespaces would I basically stop noticing any differences?

Any thoughts on these questions in particular and this entire situation in general would be appreciated.

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

käµfm³d 👽Commented:
A website project is intended more for traditional, static content. You can mix in code on the back-end, but overall, the intent was to serve static content.

A web application is intended more for dynamic content. It is actually an application, not just a single form--not to imply that a website would only consist of a single form.

More than likely, you're probably safest with a web application.

There is no real coding difference for the server-side stuff:  it's all .NET code. The primary difference is going to be in terms of compilation. A website allows on-the-fly compilation via the "Code" folder, although you can pre-compile the site prior to deployment; a web application is always compiled before deployment.

Namespaces are simply ways to group classes and other types such that you can avoid naming conflicts. You always have a namespace:  the default is the global namespace. But defining your own namespaces allows you to control the landscape of your project. Whereas the Framework defines a enumeration named Color, perhaps those values don't fit your application design. If you simply create your own enumeration named Color without putting it into a namespace, then the compiler won't be able to figure out which definition of that enumeration you were intending to use. By both declaring and importing the appropriate namespace, you give the compiler enough information to know what your intentions were. If you do .NET code for a website, you'd still have namespaces. This is a .NET feature, not a project (i.e. website) feature.

A lot of web development is moving more towards Javascript in terms of application development. Your code on the server still deals in verifying the integrity of what is being submitted--this will probably never change--but the client-side code deals in providing a more friendly user experience. You don't deal in postbacks anymore, rather you have AJAX submissions which are now becoming asynchronous in execution. This makes your application more responsive for the user. Javascript can have a learning curve when you first start out. However, it's extremely prevalent in today's web-based programming, so it's definitely worth taking a glance at (if not more).

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
codequestAuthor Commented:
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.