Classic ASP vs PHP for a new web app [closed] - asp-classic

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I am about to make a new Web application. My PHP skills are a little above average - I would'nt put myself under enterprise level coding. However my Classic ASP skills are strong and I have programmed VB in Classic ASP before for powerful websites.
I am going to make a ad network market place - buying and selling ad space online. It would be CDN backed with CDN JS and CDN image distribution with DNS and load balanced mySQL cluster servers.
What are everyones thoughts? I take it, Nginx can't run Windows?
Classic ASP to note, IMO, still handles and performs well on some sites. My concern is for future and speed and performance. Security on Classic ASP and PHP - well, Classic ASP with VB wins for me.

Even if you know Classic ASP better than PHP - Classic ASP is obsolete for nearly ten years:
It [ASP.NET] was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages (ASP) technology.
I wouldn't start a new project with a technology that is ten years obsolete.
I don't know if Nginx runs on Windows, but it's definitely possible to run PHP and mySQL on Windows. There are Windows installers for mySQL, and it's even possible to run PHP on IIS.

Why is this even a question? Classic ASP is obsolete. When do you expect the next version of Classic ASP? When do you expect even the next patch?
Now, ask yourself the same questions about PHP.
To paraphrase an old "TV Guide" advertisement, "Get it? Got it? Good.".
I would recommend neither of the two, and would go with ASP.NET MVC. It's closer in pattern to Classic ASP, and I believe you can even program it in the same pattern - don't use a model, use a single controller that takes the view name as a parameter, and do all the work in the view.

A lot of people still use classic ASP all the time. So if your strengths are there, go ahead and use it. I know I still have to use it every day.
That being said, if your skills are that strong in ASP, you should have no problem moving to PHP. A couple of hours with a good code book will help you get through. Here is a basic cross-reference guide to ASP and PHP.
http://www.design215.com/toolbox/asp.php

The question invites a pretty subjective answer. However, I'll try to be objectively subjective.
Since 5.3, PHP is the best choice in my opinion.
Also, if you're really intending to build it for scalability, I'd suggest looking at a cloud service like Amazon Web Services for your server (EC2), CDN (S3 + CloudFront) and database (RDS). If you're considering going as far as using Nginx there are some good configuration options at http://scalr.net/ for working with a few different clouds, including AWS.

My recommendation would be PHP, coz it scales well, has a large community support, wide variety of IDEs and editors, robust frameworks and wide spread usage as a choice web development technology. My experience with ASP was long ago and was quite cumbersome, but PHP with all the said features and more like fully OO, works nicely. PHP as of now is on steady footing in web development arena.

Related

ASP.Net Vs. ASP [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
Ten years ago or so I built a small web site in ASP. I basically wrote it in a text editor and uploaded the files to a web server. I then didn't program anything for the web for a while and now I work in Visual Studio 2012 in C#, VB.Net and ASP.Net. The questions is, is the old ASP I originally worked in still a viable alternative for creating web sites? Would a professional even consider it or has the industry completely moved away from it?
I ask because a large project is going to be started this year for the small company I work for. It looks like it is going to be handed to someone who's skill-set has never moved past the old ASP. He does not do a lot of programming, but is capable at what he does. It seems wrong to me, but I don't know enough about the industry outside my little world to make an argument against it.
Thanks.
I personally do a lot of legacy (there's something to that term) ASP work to support aging infrastructure until it is ultimately replaced (parallel work) by ASP.Net.
While you will find/rediscover "hidden gems" like the now-sexy-again "javascript on the server-side" (yes, you can do Javascript in classic ASP) and yes, you can handle JSON in classic ASP, the term "legacy" is, IMHO, really all there is to it.
Dev support for it today, is likely out of necessity more than anything. Considering it for new development should be the question hard to argue for. Translated to a business question - would you invest new money and resources on outdated infrastructure?
For your dev - it's not going to be a "cakewalk" but he/she will find things still familiar (and much better). Moving from VBScript (classic asp) to VB.Net will likely be the path of least resistance.
The "funny" thing about being "used" to ASP is that it might actually allow your dev to "skip" ASP.Net WebForms and "leapfrog" to MVC and/or WebPages and Razor - re: it's more "bare metal" stuff like it was in classic ASP!
HTH....
I don't really believe that anyone that has kept up with any sort of industry trends would do green field dev in Classic ASP. Using classic ASP just closes off a lot of avenues and makes life harder. Try finding good classic ASP developers? It's a nightmare. There is less and less resources available to help develop. Had the same issues and I took a department over and implemented MVC and customers are far happier. All the things you get for free like validation etc makes for far better apps. Can do TDD easily in MVC and not easily done in Classic ASP. Routing, JSON, clean separation of concerns, loose coupling, modern ORM availability, good IDE, just so many benefits of moving to a modern language.
You can write classic ASP reasonably well but most Classic ASP code I have ever seen looks like Spaghetti.

Is it worth learning classic ASP? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I know the differences between ASP and ASP.NET generally, as I am new to both, so I don't understand all of them, but I get the fact that ASP.NET is built on top of Microsofts .NET framework, and is the next generation of ASP, but it's built from the ground up.
W3Schools and another question here on SO provided great help explaining the difference!
I was wondering if it is worth it to fully learn Classic-ASP before diving into ASP.NET.
Why do people still use Classic-ASP? I've heard about the benefits which ASP.NET provides, and it seems like it would be worth it to switch.
Do people still use Classic-ASP because of server issues, or just because they prefer to work in it for some reason?
I would like some guidance on which I should start learning first, and why if anyone has any good suggestions?
UPDATE:
Thanks for the very helpful posts everyone! They gave me a great indicator of what is important, and why!
Thanks!!
There's little or no point learning classic asp as a precursor to asp.net as whilst similar in some respects(the Server, Request, Response objects and their associated methods, etc), they're different enough that one doesn't serve as a gentle introduction to the other.
If you've no need to know classic asp, definately go with asp.net as it's "the way of the future", be it in its MVC or WebForms guise. The only reason I can think of, now, to learn classic asp would be to support a legacy application. I'd be very surprised if there's any new "greenfield" development being carried out in classic asp on any great scale. There's also a great question (that I provided an answer to) that will give you some info on the differences between asp.net WebForms and MVC that's well worth a read.
When it comes to deciding "which language" out of the choice of C# and VB.net, pick whichever you find most comprehensible, at least initially. You'd be advised to at least consider C# as examples, samples, tutorials and suchlike are much more readily available in it. One look at the C# tag vs. the vb.net tag (105,977 questions against 10,815) here on stackoverflow makes it quite clear which has the broader uptake.
ASP.Net and Classic ASP really have nothing to do with each other. Yes, they are both technologies for building websites, but the relationship stops there. Incidentally, Classic ASP is more comparable to PHP than any .Net language.
Some people still have classic asp sites, but there aren't enough left to justify spending the time learning it... Unless you are already working on one. The main reasons any of those sites are still around is they still work (old bits don't exactly grow moss) and the cost to redo everything is high enough to not be justifiable.
Just learn C# and asp.net. Don't do VB.Net as it has a much smaller following.
I would so no, as classic asp is just going to teach you bad habits.
Unless you have to work on an existing projects that already uses (classic) ASP I don't think it is worth the effort to learn. You could save yourself a lot of headache by stearing clear of that rather dated technology.
Even though the templating engines have similarities you will have to code your (classic) ASP pages in VBScript or JScript. In ASP.NET you will be using C# or VB.NET. The .NET platform is much richer than the COM based scripting platform.
Don't bother learning classic ASP unless you know for sure that you'll be working with it. Personally, I wish I could forget it. Stick with ASP.NET. Microsoft won't be going back to classic anytime soon.
Only if it is a walk down memory lane that you seek, or if you are an unfortunate soul having to maintain ASP Classic web sites.
ASP.NET nicely balances dev productivity, ease of maintenance, separation of concerns, and performance issues which were present in ASP classic.
At the same time, you might look at the earliest CGI generators on Windows - anyone remembering sprintf-ing HTML from C++. Ouch.
http://www.west-wind.com/Weblog/posts/1143.aspx
Pretty much definitively not, no.
The last version of ASP was released nearly 10 years ago with a verison of IIS no longer being supported. All the various clones of ASP have also long since died, and basically the only reason it continues to exist is legacy support.
You do not want to base your future career plans on supporting dwindling and archaic code bases.
Platform itself isn't worth learning for new work--its ancient these days. It could be of some interest in a "understanding where we came from" and "understanding why all these old farts you work with have wierd self-defensive habits."
There is one good thing you can learn with it--how to handle classic HTTP request/response in the nude. ASP.NET MVC brings this back a little bit, but there is still quite a bit of abstraction and black magic surrounding it. Except when said magic fails and the abstractions start leaking and you need to understand the underlying transport . . .
Like everyone else said, the short answer is: "no", you don't need to learn classic ASP. The long answer is: even the most complicated classic ASP site should be rewritten in a newer technology, whether from Microsoft or someone else. Time would be better spent analyzing the old application to get a list of requirements for a new application and learning how to make it work with the newer technology. The fact that a company is still using a site that is 10+ years old and is hiring someone to support it instead of replace it should be a red flag for every developer.

What to learn - Ruby on Rails or ASP .NET MVC...given that am familiar with ASP .NET [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I need to learn and adpot the MVC methodology for building web apps. Which is the better way to go given that I have experience with ASP .NET Webforms - ASP .NET MVC or Ruby on Rails?
I've heard people going gaga over RoR and its simplicity and its features such as scaffolding, ActiveRecord, convention over configuration etc.
However, I fail to see what is so great about these. Most of them sound basic (the kind you'll not really want to use in production code - scaffolding for example) - and most of them sound like they are there in ASP .NET MVC in some form or the other.
Why should I consider learning RoR over ASP .NET MVC?
Are there benefits I do not know about or am unable to perceive?
I suggest you learn both!
I'm a professional ASP.Net developer by day, and a hobbyist RoR developer by night. Learning RoR will in fact make you a better .Net developer, and it's fun!
Also consider that one day you may in fact be able to write an ASP.NET MVC app in IronRuby instead of fussy old c# :)
There are many reasons I would recommend learning RoR over MVC
It's a much more mature stack. It's been around since 2005.
You get to learn a new programming language. "They" say you should learn a new programming language every year.
There is a very rich set of extensions to the base stack. Eg. HAML, Authentication gems, profiling and the list goes on and on.
You get to use database migrations out of the box. Something that is a bit of a breakthrough in database configuration management.
Dynamic languages give you a massive amount of flexibility.
That said: ASP.Net MVC is an awesome framework from Microsoft. I am not advocating dumping your stack and moving to the dark side. I just think it helps to have a broad understanding when it comes to technology.
If you're familiar with the Microsoft stack (Windows, IIS, SQL, ASP.NET) but not so familiar with the Linux stack (Apache, MySql, etc), then going with ASP.NET MVC over Ruby on Rails will cost you a lot less in the long run, in time spent on learning infrastructure.
I suggest you take a look at the job market in your area, and choose what will increase your opportunities. Ruby on Rails is a great framework, but if nobody in your area cares or uses it, then it won't do you any good to learn it (speaking from a career perspective - there are lots of reasons it would benefit you from a learning perspective). I was faced with this dilemma recently and gave it a lot of thought; since my area is pretty much 99% .Net based and that's what companies want, I decided to focus on MVC and becoming an "expert" in ASP.NET instead of learning RoR, since there's no demand for RoR. I actually wasted two months learning RoR before I realized that it would help me personally, but not professionally.
That said, if you're planning on striking out on your own then choose whichever one you feel more comfortable with. If you already know Asp.Net though, I'd recommend taking a look at the MVC framework first since it leverages what you already know, but I heartily suggest looking at picking up Ruby, if not the Rails framework, since it's a very good scripting language for many tasks.
I would recommend learning one at a time. The biggest part of of learning a new language or method of programming is learning the best practices and changing how you approach a programming problem. Not just the syntax. Jumping into two at once will leave you with bad habits in both.
Because you already know ASP.NET I think learning ASP.NET MVC would be the logical next step. Get a solid understanding of MVC concepts and THEN try a project or two in Ruby on Rails. The two frameworks approach some things differently. You may find that your style and preferences fit one better than the other. But either way, now you know both. Can't hurt right?
However, I fail to see what is so
great about these. Most of them sound
basic (the kind you'll not really want
to use in production code -
scaffolding for example) - and most of
them sound like they are there in ASP
.NET MVC in some form or the other.
The ability to rapid prototype a website is part of what makes RoR so popular. When designing a website for a client there's a big difference between a non-functional mock and a functional mock.
I believe the feature gab between ASP.NET MVC and RoR will continue to get smaller. Eventually the choice will come down to a question of Windows vs LAMP.
I would spend a few weeks with RoR. It's extremely simple to get it installed and up and running so you can develop with it. Then it's just a matter of following a few tutorials until you've covered most of the basics. Then decide if you want to continue with RoR or stick with ASP.NET MVC.
if you already know c# and you were working with asp.net webforms, try asp.net mvc...and when you learn it, you can improve your skills with RoR as I am planning to...
cheers
Personally I would invest the time in learning both. I have done this and although I ended up going with MVC for my current project, the decision was because I didn't have the time to invest in learning Ruby language. The RoR framework on the other hand you can get within a few nights and get going with webpages, validation, CRUD e.t.c. in no time at all. However when you need to start adding domain logic, learning about gems you may need to understand Ruby.
Another reason is I already have a hosting setup for Microsoft, and I know c# and the .net framework and the resources I'll need already so although it's less mature and isn't as feature-rich as RoR, I deduced I could get further faster with MVC.
To make the decision yourself, weigh all the options, spend a week with MVC ( use the book MVC in Action ) and spend a week with RoR (use the book Agile Web Development with Ruby on Rails 3rd Edition ) these will get you going within no time. Then when you decide on one or the other you will have a more knowledgeable perspective.
Considering Stack Overflow is written with ASP.NET MVC I think it might be sacrilege to promote RoR over MVC.
MVC has pretty much given Microsoft lovers one more tool that they don't need to go elsewhere to get.

Talk on ASP.NET [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
A friend of mine's company is considering using either Java or ASP.NET for web development. Currently they do all development in Delphi. As they have no experience in .NET they have asked me to come down and give a 1 hour overview of .NET (mainly ASP.NET). What topics should I cover?
I was hired by a Delphi product company as a senior .NET developer with the goal of moving their applications from Delphi client server/desktop apps to web based ASP.NET.
I no longer work there but remain friends with an experienced Delphi programmer who is still there.
The biggest concern you have is ensuring that these Delphi programmers start to get their heads around the fundamental shift from desktop client server apps (very common using Delphi) to web based stateless, cross browser UI ASP.NET.
My friend from the previous company has said that the company is still struggling along with minimal .NET progress after 2 years. Technologies such as XML, Javascript, AJax and even fundamentals such as the .NET CLR and assemblies are still a bit of a mystery to the team.
In summary, if I was you I would be focusing entirely on bigger concepts such as the stateless nature of the web and how ASP.NET can solve it, and the benefits and drawbacks of thin client software (ie ease of deployment, browser incompatibilies, less rich user interfaces etc.)
Other than the other suggestions you are no doubt going to get, I'd explain to them that there is a Delphi for .NET which would ease the pain of change a little. So basically they are using Delphi as the language but the underpinnings of .NET.
You might want to talk to your regional developer evangelist. I'm sure they have a stack of bullet points for instances just like this.
You can find your local evangelist(s) at: http://msdn.microsoft.com/en-us/bb905078.aspx
There is so much to cover!
ASP.Net is better for Web Development though, It is designed for it. Take into account the following features:
Membership Provider
ASP.Net controls
The Whole Page and Code-Behind
system and don't forget ASP.Net MVC
ASP.Net Ajax and support for jQuery
ASP.Net peforms well generally, not
sure about Java though
Use .Net Librarys and languages, C#
or VB.Net and so on.
Many Many more
I would cover those, the way ASP.Net is designed as a much more complete package for web development than Java is. I also think the connection between pages and code is better in ASP.Net than using PHP/Java or how ever they would do it.
Can also switch to Winforms or other MS technologies relatively easily.
If they do want to explore C# the transition is pretty easy. Just remind them that Anders Hejlsberg was the Chief Architect of Delphi and C#.
http://en.wikipedia.org/wiki/Anders_Hejlsberg
I was a VB.net guy, but I took a one year Delphi gig a few years back. When I came back to .Net I was using C# and the transition was very easy.
Not sure if you're planning to give more of an architectural view or a more of hands-on experience (say, build a demo Hello World ASP.NET site), but anyway, here are some topics that might get them interested:
.NET covers many languages (C#, VB.NET, IronPython, IronRuby, Delphi.NET), even on the same solution; that means the developers can reuse some of their previous knowledge;
To support the item above, an overview of the CLR, IL etc might be useful, maybe comparing it a bit with how Java works
Visual Studio.NET is a great IDE, and there are lots of tools for it that support the latest best practices (TDD, IoC etc), including OSS
Could be also nice to mention Mono (maybe show them the same app running on Windows, MAc and Linux?) and ASP.NET MVC, in case your teammates have some knowledge of what MVC, RoR are about
I will think some more... :)
First off I'd give them a tour of creating a simple web app using Visual Studio and whatever the equivalent would be in Java. Seeing it done speaks a lot more than just giving the theory.

Is classic ASP still a alternative adverse other languages for new projects? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
There are a lot of webs still using classic ASP instead of ASP.NET but that is not the question - "never change a running project".
The question is if it is still a first choice as a base for a new web-project or would it be worth to switch to ASP.NET? Would you recommend a classic ASP programmer another language to switch over? There was no single update to classic ASP since it first release but a lot of companies are still using it for new projects. Deservedly?
While I would personally never willingly choose to create another ASP project over an ASP.NET project, the single biggest reason to do so is "skillset". I'd definitely recommend an ASP developer pickup ASP.NET, but if there is a project needed "now", go with what you know. Then learn ASP.NET before you have another project. :)
ASP.NET has a number of improvements over ASP, but we (the collective former classic ASP developer community) created a number of good applications using classic ASP.
In my mind, there is absolutely no reason to use classic ASP compared to ASP.NET Webforms or ASP.NET MVC.
Unless you need to integrate with existing classic ASP applications, since some things (notably session) are not compatible across app boundries, leading to creative workarounds (WebServices running on your localhost...yuck).
Coming from a classic ASP background I had the same questions. 3-4 years ago I took the route of moving towards ASP.NET/VB. I can tell you that the cross-over from ASP/VBScript to ASP.NET/VB is little to none. I was actually quite frustrated with the whole .NET platform for the first few months (more like the first year!) and kept rolling back to classic ASP.
In the long run, I ended up starting from scratch and picked up ASP.NET/C#. Oddly enough, I felt that the syntax of C# was more natural, even though my background was in VBScript!
For regular web development, ASP.NET is like using a sledgehammer when a simple ping hammer will do. However, the sheer power behind the .NET platform makes it invaluable in an enterprise environment where your web is often time blurred with your other applications.
Given what I know now, I would have likely made the move to PHP. Not only is the programming style similar, but PHP really is dedicated toward the web. Whereas it is quite easy to get lost in the mass of information the .NET platform provides. And the rate at which the new .NET techonologies have been coming out in the recent past can and has become overwhelming.
To directly answer your question: if you are staying in the realm of web development then I'd recommend taking a hard look at PHP for your new projects.
I'd be very hard pressed to recommend using "classic" ASP for a new project, but, as with any new project - it should always be about choosing the tool that's best for the job, rather than using "Tool X", just because it's:
newer
better
the "latest thing"
If, for example, "Company X" (who are a small company with 20 employees) needed a new web application for their intranet for logging holiday/leave requests and the intranet server was an ageing NT4 box, Classic ASP would be the way to go. I would make the recommendation that they upgrade to a newer machine that could handle a supported server O/S such as Win2k3, but it may well be the case that they simply don't have the budget/need.
For existing projects it's no option to switch to another language in my opinion until you have to make some radical changes / additions. Reprogramming is time-consuming and your customer will not pay for it normally.
PHP is a nice web-language in my eyes, no question. But I wouldn't use it for very large projects because it is not pre-compiled which makes a good speed-up (my experience). But I left PHP-Development a few years ago, maybe there are some good improvements to this now. Also I wouldn't run PHP on an IIS nor would I run Apache on a Windows-Server. So when your whole server-equipment is based on windows you would have to setup a new server with linux/apache/php - more costs for your company the customers will not pay for.
I agree with most answers, there is no good reason to stay with classic asp for new projects forever and there should be made plans to make a changeover to another language. We program most new projects still with classic ASP at the moment because we have a lot of selfmade libraries to use with our CMS etc. and we have to rewrite them with .NET/C#. Also there have to be established some new coding-conventions (e.g. how to make a navigation, folder structure, ...) so we are working alongside on a sample-project in .NET and after finishing with it we will only make small changes to existing projects until we have a chance to redeem the rewrite at least partially with another assignment of the customer.
It's a slow process but I believe it have to be done sooner or later. (And I'm a big fan of the .NET-Framework, too! :-) )
You might consider looking at some of the differences between ASP classic and ASP.NET. Having had to maintain both in the past, I can tell you that there are numerous pleasures to present in developing in .NET vs. ASP Classic. Transitioning to any web-trendy language (PHP, ASP.NET, Ruby, Python) is going to be worth it if for nothing more than to realize where ASP Classic lacks.
I think its high time to switch over to Asp.net. The better object oriented way of asp.net will definitely help you to reduce code management night mares.
For any remaining ASP holdouts, I'd actually recommend jumping ship to PHP. It's a lot more like ASP than ASP.NET, and there's no shortage of new work in it.
That being said, I greatly prefer ASP.NET (both MVC and WebForms) myself - but, I left ASP development about 7 years ago. ;)
Like another poster mentioned, the skill set of the staff would be the deciding factor.
If it's a Classic ASP shop and something has to be done ASAP (what doesn't, right?), then it might be hard to convince management that there's a need for .NET, especially if it impacts the timeline. This is where adding in some .NET pages for one-off projects comes in handy, since it lets the dev team become familiar with the language and decide when to switch from Classic ASP to .NET.
Going forward, it's important to remember that while Classic ASP still runs and runs well, it's not going anywhere and you can't count on any updates/changes to the language/tools going forward.
That being said, from my experience, I've found that jQuery/Ajax/DOM scripting gives the Classic ASP pages a new shot of life and add some of the "fancy/cool" stuff that my clients want to see on their sites.
I wouldn't write a new app/website in classic asp. Why? number of reasons:
1) no classic asp bugs are fixed any longer by MS, eventually the support will cease to exist, it has to.
2) .net is much faster performance wise
3) .net has a lot of useful extenstion (AJAX for example)
4) skillset - when thinking of a technology you have to be sure that you can find someone to maintain it easily in the future
.net has been around for awhile and it's tested, so it's safe (and recommended) to switch over, for new projects for sure.
well I honestly wouldnt... With asp .net you can take advantage of the .net framework, and object oriented programming... That alone is good enough reason for me to use asp .net instead of classic asp...
Our team has twice been asked to significantly "upgrade" a classic ASP site and in both cases, it was such a nightmare that we converted/re-wrote it in ASP.Net. I know the "Don't rewrite what's working" mantra, but knowing that we or someone else would have to continue to maintain the codebase and seeing how horrible the ASP code was to maintain, we decided to make a clean break.
For that reason alone, I see nothing to recommend ever writing anything else in classic ASP. If ASP.Net is not an option, I'd go with PHP or Ruby.

Resources