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.
Having worked with Classic ASP for about 2 years now by creating a few 100 simple web forms I can't see a good reason for switching to .net; however, I'm not that versed in .net so I'm sure I could be missing a few things.
Some points that I often hear around work can be found here: http://www.packtpub.com/article/Classic-ASP (not that I share all of these thoughts, but it's a good jumping off point)
I'm very interested to hear what others have to say on this matter.
You're missing more than a few things! ASP.NET is orders of magnitudes more productive, robust, and maintainable than old-school ASP ever thought about being. Server side controls, third-party controls, master pages, forms authentication, forms validation, an OO model than encourages appropriate application partitioning, easy deployment, built-in debugging and tracing, state management.
You even have the choice of WebForms or MVC. It's not an understatement to say that you are simply out of your mind if you don't thoroughly investigate what you're missing.
If you like ASP, and want to move to ASP.NET, skip Webforms and learn MVC.
The biggest issue for me is that I create applications, not websites...The UI is a minor part of the problem, the big part is writing the business logic layer, and various enterprise communication components (Connecting to SAP using SOAP? No Problem!).
The .NET Toolkit allows me to program in a wonderful object oriented language (C#) and has a robust framework to help out.
VbScript is a godawful language to try and write a business application in.
However, if all you do is a simple little webform, then sure, use VbScript.
As far as your link, it basically boils down:
WaaWaa, I don't like Visual Studio
WaaWaa, I want to edit production code on the production server like an idiot.
WaaWaa, I don't know that deploying a single compiled DLL is all that a small site needs to deploy a asp.net app.
Basicly, its ignorance in a nutshell.
To focus on the specific question ("benefits of Classic vs .Net"), there are only two things I can think of Classic does that .Net won't:
1) Includes. They just don't work like you expect in ASP.Net. Of course, ASP.Net provides much better ways of accomplishing the same thing, but it's still a bit of a loss and can make migrating an old site to .Net a pain.
2) ASP.Net won't go above the root folder for the application. Where I'm at we have a rather complex intranet that's still mostly classic ASP, with a smattering of .Net apps here and there as things are updated or new stuff added. It would be nice to be able to keep one copy of common code up fairly high in the folder hierarchy but still have each individual app isolated to it's own VD. But then, that's what source control is for, so it's not a big deal.
For me, the biggest advantage moving from Classic ASP and ASP.Net so far is the IDE. It's so nice to be able to right click on a function call and choose "Go to Definition" rather than having to dig around to find the file where the function is actually implemented. Huge time-saver. And intellisense support and type safety when calling functions is a boon as well.
For me I'd have to say Classic ASP is quick to develop in, simple to use/pick up, not overly complicated and very capable of most things asked of it.
ASP with JScript/Javascript as the main language is really, really good fun to code with. VBScript is a waste of brain power and I think its that which gives Classic ASP its bad name. Plus its considered slow but all the articles about speed and number of users are based on 10+ year old servers. We run a site getting 60,000 users a day on two servers and the CPU barely flickers. Modern servers give you a lot more power to play with.
With the huge leaps forward in Javascript usage, designs and best practises in recent years the ASP JScript coder can get alot of goodies to make life even easier. I've ported Mootools to server-side and with that we get an load of wonderful helps, class model, excellent event model and so much more. ASP is great fun. UPDATE: Mootools now have a server-side build that you can download (http://mootools.net/download).
ASP.net is SUPER powerful but has a big ramp on the learning curve to do well, can bring your whole site down when it has one of its fits and worst for me can seem to really go around the houses to get the most simplest of things done.
I'm having alot of fun using both at the minute, using which ever one best fits the gap. I've a great little CMS Cacher and Thumbnailer build in .net which my ASP scripts use. Best of both worlds.
Performance, scalability, and a framework that provides a much better foundation for the stateless world of web applications, for a start.
Wikipedia's ASP.Net page has a section on the differences.
If you look back at your old code and say, "What was I thinking! This is rubbish, I write code much better now!" then you have developed as a programmer.
If the sites are fairly temporary (i.e. you build it quickly, it gets used for a specific purpose and amount of time and then it is effectively closed) then banging out these sites in the most comfortable way for you is perfectly acceptable.
If you have a long list of bugs, fixes and improvements that you now need (or would like) to backport to your old sites, or your "small sites" are getting bigger and more complidated and this is causing you significant grief then you need to take a step back and re-evaluate how you structure and support these sites.
I would very much agree that ASP.NET is a very much more mature and effective programming environment. However, like any tool, you need to know (or learn) the right way to use it as it's not going to automatically turn you into a "super programmer" overnight.
A way to break the ice is to agree with your boss that the next "site" you create is developed in ASP.NET. Explain to him that it will take quite a lot longer than how you currently deliver sites because you have to "get your head around" ASP.NET, but the benefits are x,y and (exercise left to the reader!)
Personally, I'm still in the transition phase (and I started using ASP.NET from v1!) as I have a fairly robust Classic ASP framework I'm developed and comfortable with. However, I have used ASP.NET strategically and have found it VERY powerful and your do end up writing must less code, as so much is built into the .net framework, as long as you can find it in documentation.
I also recommend that you DONT use VB.NET and your bite the bullet to use C#. The change of language is quite minor, but you reduce the chances of writing your sites exactly the same was as you used to. It helps break the bad habits annd gives you a chance to learn new techniques.
Good Luck!
For simple sites, I actually prefer ASP vs. ASP.NET, especially if you know HTML well. However with ASP, separating business logic from view is hard; the code you write will likely be challenging to read + maintain.
PHP is better than ASP though - and somewhat similar at the basic level. And you could always go to Rails or Django, if you're interested in self-contained web development stack (but a lot longer learning curve).
I have one word "debugging" - you never want to have to use it but you always do. In .Net if you're using Visual Studio you have a fantastic debugger when compared to trying to debug code on ASP.
Rarely does a response in this thread answer the question. Instead of taking the easy way out, I'll take a stab at it:
A few benefits that have not been mentioned (JScript-centric):
You can learn the entire language and keep it in your memory if you use it enough - I don't know anyone who claims to know the entire .NET framework; this makes coding very rapid.
Weak typing - this can let you code more rapidly when banging something out quickly, e.g., do you really care about the difference between char and string most of the time? (insert religious flame-war here)
Eval: this much-maligned keyword is actually incredibly powerful, and lets you manipulate your code at runtime in really interesting ways
Client/server language compatibility: JScript's similarity to Javascript means that you can use the same include file for server-side validation as you use for client-side.
One advantage to ASP.NET is that you have the option of coding your site exactly as you did with classic ASP, along with access to the richness of the .NET framework. You can keep existing functionality and add new ASP.NET functionality were needed. They mix well.
Unfortunately the author of the referenced article isn't very well versed in the technology behind ASP.NET as evident by his remarks (and maybe not even classic ASP). Most of his points are invalid or simply wrong.
Everyone here has made valid points.
I was a classic ASP developer until 3 yrs ago when I switched to .NET 2.0.
I couldn't go back (even though I do still have to fix a handful of classic ASP sites).
I do miss having a recordset object, data repeaters are great for displaying data quickly, but datasets, whilst offering wonderful functionality, are dame awful when it comes to performance on 'big' sites. In fairness I've been doing datasets in a roundabout way with Arrays in classic ASP. The only time I use datasets is for my e-commerce site baskets. I do miss rs.movenext, etc...
FlySwat has made one of the biggest mistakes that I see a lot of developers make.
Yes business logic, OO etc... that .NET brings is great (scalability I wouldn’t 100% agree with, but definitely more extensible), but when using ASP.NET you are still creating a WEB SITE. Forget this nonsense of using the terminology ‘application’. I have meet many great .NET developers who build n-tier, OO sites, but they have no real understanding of the uniqueness of building a web site; such as state, or the bloody annoying problem that they over rely on Javascript. Most of these developers build MS type sites which don't normally meet W3C, aren’t cross browser friendly and never gracefully degrade. And no it is not acceptable even for back office applications to be only compatible with IE.
.NET also tends to 'fatten' simple sites. .NET in many ways was a way of getting WinForm developers to start building web sites (or as they prefer, web apps.). The problem was that this brought with it a bunch of developers who had the luxuries not having to worry about state, standards, etc...
I still maintain that any .NET site can be built in classic ASP and run faster (page response times) for the end user....
...BUT though I have fond memories of classic ASP, what I can do with .NET in terms of imaging, encryption, compression, easy web service integration, proper OO, decent n-tier, extensibility, etc...is what gives .NET the advantage. Even silly things like simply adding one line of code to the web.config to tell it to write the sessionID to the querystring if the user doesn’t accept cookies (this was a pain in classic ASP) is great.
Move to .NET, you won’t regret it, but do give yourself sometime (particularly if you don’t know about OO (inheritance, abstraction, polymorphism and encapsulation). Don’t start building .NET sites in classic compatibility mode, it’s just a cheap way of doing .NET and you’ll still end up using classic ASP practises. If VBScript was your main development language, the jump is no were near as easy as MS or others would have you believe.
Most importantly for me is that I have carried across, from my classic ASP days, fundamental web site application (;-)) design and this should never change between languages.
If all you make is simple little web pages, then do whatever. Or better yet learn PHP. Most of the response you are going to get are from people who make web applications, and for that asp.net blows the pants off of classic asp in power and maintainability though.
I agree with everyone here except the one who said skip webforms and go straight to MVC. This is not helpful. Webforms is very useful for database-driven applications which do lots of table displays, etc. I have worked on some very large webforms applications and it works fine. MVC is good for more interactive "Web 2.0" type applications.
I always use Classic ASP, it works beautifully.
I tried ASP.net for a couple of years but it was too complex for most website development. My customers didn't like it either because they couldn't understand it. They also like knowing they are not locked into one developer.
ASP.NET keeps changing and requires enormous/constant learning curve to keep current. MS switched primary language to C# which made the transition just that much harder.
My productivity slowed to a crawl with .net because I was forever out looking for tutorials or examples of how to do everything.
Visual Studio is pig sloooooow.
PHP has an ugly syntax and too many different frameworks which makes it impossible to learn for developer purposes. Good only for intranet use with dedicated staff, in my opinion.
Classic ASP is locked down and works perfectly today just as it did years ago. With a few library files, code writing is easy as pie and examples are unlimited on the internet.
Written correctly, which most folks don't, vbscript is clean readable, efficient code. I leave the client side stuff for libraries like jQuery and find I am many times more productive.
Having done a "rename asp to aspx and change until it compiles" port of an application to asp.net I would say that even asp classic style programming in .NET is better than asp classic. VS of course will encourage you to fall into the pit of success and drive you towards the web forms and code-behind way of doing things, but the language is expressive enough to replicate the patterns of asp classic (namely lots of golden nuggets/inline code, cross posting pages, etc)
I think I've heard it said before that you can write COBOL in any language. That's true for classic asp.
5 Reasons You Should Take a Closer Look at ASP.NET MVC
If you use classic asp at this point (without a mandate from your CTO) then you need to see a shrink. or you are a masochist. Or as satanist, in which case, you'd like it cuz you'd be in hell! :p
On a serious note... for web applications use WebForms.
For light, quick and dirty websites, use ASP.NET MVC.
Good thing about ASP is that you can use VB.NET, C#, Eiffel, Boo or PHP for your language! For PHP check out Phalanger...
Since I'm paid to create solutions and not to write code, I just prefer ASP.NET over classic ASP. While classic ASP is still practical for very small, simple sites, there's still a lot of power behind ASP.NET when writing a bit more complex sites. Besides, even with ASP.NET you could still just use Notepad to write the .aspx files yourself, including embedded vb or c# code. Visual Studio just provides a lot of additional functionality that takes away the need to write more code yourself.
And, as I said, I don't get paid for writing code...
Related
I'm a little confused about new Microsoft products.
I'm a classic webform Asp.Net developer. I know exists also Asp.Net MVC with a different approach based on Mvc pattern.
Now, i know exists also WebMatrix that uses new Razor "notation".
Can someone explain me what are the main difference between that "technology" ? When use WebMatrix, when WebForm ?
Thanks!
Webmatrix is a platform that integrates a variety of recently released technologies such as IIS Express, Asp.Net Webforms, Razor, SQL Express etc. I guess from what I have been reading it's a way that eases the barrier to entry, for non-MS developers, into the MS world. In addition you can also use code your site in PHP and use a variety of open source tools for developing web sites. To directly answer your question, in you planning on creating a complex web application, WebMatrix may not be the solution you're looking for.
As a reference, I suggest reading through Scott Gu's Introduction to Webmatrix
WebMatrix will be able to take
advantage of these technologies to
facilitate a simplified web
development workload that is useful
beyond professional development
scenarios – and which enables even
more developers to be able to learn
and take advantage of ASP.NET for a
wider variety of scenarios on the web.
If you are a professional developer
who has spent years with .NET you will
likely look at the below steps and
think – this scenario is so basic -
you need to understand so much more
than just this to build a “real”
application. What about encapsulated
business logic, data access layers,
ORMs, etc? Well, if you are building
a critical business application that
you want to be maintainable for years
then you do need to understand and
think about these scenarios.
Imagine, though, that you are trying
to teach a friend or one of your
children how to build their first
simple application – and they are new
to programming. Variables,
if-statements, loops, and plain old
HTML are still concepts they are
likely grappling with. Classes and
objects are concepts they haven’t even
heard of yet. Helping them get a
scenario like below up and running
quickly (without requiring them to
master lots of new concepts and steps)
will make it much more likely that
they’ll be successful – and hopefully
cause them to want to continue to
learn more.
One of the things we are trying to-do
with WebMatrix is reach an audience
who might eventually be able to be
advanced VS/.NET developers – but who
find the first learning step today too
daunting, and who struggle to get
started.
If someone is still interested: a pretty good lessons here http://habrahabr.ru/company/microsoft/blog/136004/ . This link is for those, who understand russian.
Shortly speaking WebMatrix allows you to conveniently mix up C# server code and html (this mixing is provided by simple Razor sytax). Also in WbeMatrix 2.0(beta version now) is provided full IntelliSense for html/css/c# code.
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.
I have been working with C# for past four years at the enterprise level. Now, I have taken a decision of moving to Web side of the things. Since I am well versed with C# and WCF I naturally zeroed in on ASP.NET as I need not learn a new Programming language. Learning just the Web Framework will suffice.
I have read a lot regarding MVC, so starting out with MVC 2.
My Question is Will I face any roadblocks if I learn MVC without learning Web Forms? Keeping in mind that this is my first foray into Web Development?
Looking forward to some good suggestions.
I was in your exact same position. The only problems you may have is wrapping your head around postbacks and what tha means. Having said that, MVC2 will teach you how to write better code instead of the typical spaghetti that comes asociated with webforms.
If you're new to MVC2 I'd recommend buying Wrox Professional ASP.NET MVC2 from writer Scott Hanselman.
Learning web development these days is hard as you need to be an expert on so many different things!
You need to learn HTML/CSS/JavaScript(ie, JQuery)/Json regardless of the server side framework you are using if you are creating “rich” web applications.
I would say starting with ASP.NET MVC is not a bad option before moving onto ASP.NET Web Forms. You are likely to hit both going forward, but as ASP.NET MVC does not hide what’s going on so much, I think it may be a better start.
However if you just wish to create simple forms on the web, it is hard to beat ASP.NET Web Forms, but as soon as you wish to do something more advanced, the Web Forms complex page cycle will give you pain.
If you're looking to apply your web skills to enterprise environments, you'd probably find a lot of environments still leveraging Web Forms. Outside of that, I can't imagine it would really hurt you that much.
The bigger thing about web development is getting familiar with HTML/CSS/JavaScript(ie, JQuery). The skills learned there are applicable to either environment. You'd probably be able so switch back end frameworks rather painlessly as long as you're used to c# and all the web stuff previously mentioned.
I think it depends on what type of applications you are going to be developing. I believe web forms would be easier for you to learn with the background you already have in WCF. But it might not be worth it if the applications you are developing are better suited for MVC rather than web forms.
My recommendation would be to determine what type of applications you are going to be developing and then look at the strengths and weakness's of each and then determine which one you are going to focus on.
You most probably won't. There are some concepts that belong to the web-application environment (session, caching, etc) that are common but you'd have to learn about them anyway. They are two separate frameworks so nothing very specific about one of them could help you with the other.
You will undoubtedly run into issues when knowing a "new" way of doing things without having been brought up in the "old" way of doing things. It's unavoidable, really. I'd suggest learning the basics of WebForms code if possible, if for no other reason than to be able to trudge through it when necessary. Of course, if you find yourself in the position of having to support a WebForms application, you'll learn by doing just like anything else.
This question reminds me of my early days in .NET (which were the very early days of .NET in general) and trying to find assistance with various issues. I was an entry level developer, hitting up forums and such with questions. Everywhere I went, people weren't really adopting .NET just yet. They were all old Windows platform developers, whereas .NET was my first Windows development (I was all UNIX/Linux in school). Invariably, nearly every question I asked was answered with something suggesting that I "just use COM." Of course, I wasn't familiar with this. It was "the old way" and I was using "the new way."
It was difficult to work past that, and you'll likely face the same issue here. Basically, when people have made a career out of doing something the one single way they know how, they tend to expect everyone else to know it as well and will cling tightly to it as their bread and butter. You can be better than that, but it'll require patience :)
I assume that your development experience included Windows Forms. In terms of the transition from Windows Forms to ASP.NET WebForms, there's no doubt that would be an easier transition. Whether that would be the best transition is another question. And I believe the answer is without a doubt, no.
MVC allows you to gain an understanding of the way the Web works. Understanding GET and POST, Requests and Responses, not to mention HTML, CSS, JavaScript, et al.
I would not hesitate to recommend MVC.
I don't understand why you don't want to learn Web Forms. Learning Web Forms is just like learning abc's. You'll learn it as you go along with MVC. My suggestion is, Just go with the flow in your learning of MVC and you'll be surprise that you're already learning Web Forms.
Although I develop all of my company’s web-sites in .net, all of my personal sites are still in "Classic ASP". I'm always being pressured to move away from it... but it works! Why change?
There are some reasons to change but in the end, if your sites are up and running and you don't really need the new stuff, stick with it.
One good reason to change is existing support from MS and the developers community. I guess is harder to get a answer for a problem with ASP since most people moved to .net long ago.
The only real reason would be because the technology is getting to the point where you're going to find yourself without a platform to run your code on.
...who knows how much longer Microsoft is going to keep Classic ASP support in IIS.
In general, I'd never upgrade working code just for the heck of it because it's in an older, deprecated language. Especially for something like a personal page.
I can think of one exception, though: are you currently in the job market? You probably don't want to give clients/employers the impression that you're stuck in Classic ASP land.
I have a lot of Classic ASP production code, though, and I feel you on the Classic ASP "backlash." It's actually kind of embarassing to have that .asp extension in your URLs. I've actually considered changing the extension on all the .asp files to something new and changing IIS' settings so that new extension is handled by the ASP component.
I was in a similar situation - working on .NET at the office, and 5 or 6 sites at home on ASP that worked fine. For me the compelling reason to switch was when the .NET MVC community preview was released. I had been working with other MVC frameworks for years and was glad to be able to use a well-built native MS one.
I have switched about 4 ASP sites over to MVC as a way to learn the new framework and I am really glad I did. I'll always have a soft spot for ASP (and can still remember enough to answer most questions), but .NET MVC feels so much more advanced.
If you feel your skills with what you do at your job is fine (don't need more practice) and you are happy with your personal sites the way they are then leave it.
The only thought to consider is if you were to want to use the personal sites as a way to promote yourself it could be viewed as old tech and thus your skills may be looked down upon.
It is outdate? absolutely, but is it Irrelevant? well it is based on scope of your application, if it is just a simple database driven (eg: CMS, e-commerce) i personally think that classic asp still relevant for that, in fact that I still use it for some CMS/e-commerce projects since I already have application legacy written with it and has satisfied my clients for years.
but if you going to build large business application with multi programmers involved then you may need to think about .NET
For me personally, ASP.NET has been more reliable. I mean, some bad ASP.NET code can't as easily take down IIS as some bad ASP code. Again, that's just from my own experiences. I don't know how much merit there is to it.
But I don't see the harm in running your personal sites in classic ASP really as long as it's working for you.
Classic ASP certainly isn't as common now as it was before the introduction of the .NET family, but I don't think you're hurting yourself much by maintaining personal sites in it. If you were self-employed and looking for work as a .NET developer, it might be odd to have personal sites only in Classic ASP; in that situation, you could convert one or more to .NET, and that might help you demonstrate your skills in both sets of languages.
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.