Should I start learning ASP Classic or 'continue' learning ASP.NET? [closed] - c#

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 2 years ago.
Improve this question
Background
A year ago I had to learn PHP in school, I already knew ActionScript3 so it wasn't that difficult, and together with a friend of mine we were the first 2 of our school to learn ourselves OOP in PHP.
It wasn't required but we thought it was important.
Last year I started learning C# and ASP.NET, but I'm far from pro in C# and ASP.NET, I did do some projects for myself, just for educational purposes.
Now a few days ago I started an internship (which should take 6 months) But the company still works with ASP Classic and thus VBScript.
Question
Is it worth having learned ASP.NET and C# last year, start ASP Classic and VBScript now for 6 months and probably after that continue in ASP.NET and C#?
I would like some opinions about this, because I don't know whether I should stay and do ASP Classic, or go and look for another internship where I can do ASP.NET.

Avoid ASP classic. It will reinforce bad programming practices. ASP.NET is only as "pre-made" as you allow it to be. If you want to learn, do not use the drag-and-drop designer; write all your HTML by hand in the VS editor. This will make you a far more versatile web developer, and will also prevent VS from generating "bloat" in your pages. I would also encourage you to explore ASP.NET MVC, because the WebForms model has many complications that MVC avoids.
If you can, look for another internship. I politely, but firmly disagree with your boss.

I don't see a point in learning ASP classic unless you are getting paid to do it. In the case of an internship, the experience gained outweighs the time spent using an older technology.
I wouldn't try using ASP classic in any of my future projects, but you should be fine learning it for your internship.
Also, if you can get a job working in something newer that will help you even more in the future, I'd go with that. Sometimes that's not an option though and you're stuck working with something old.
I think your boss is wrong with what he said, and I don't know why they haven't tried to upgrade over the last decade. While this won't necessarily hurt your career, it definitely won't help it on any significant level (except for the experience).
VBScript will actually be moderately beneficial to know in the future since a lot of systems automation scripts are written in it. This will also help with automating tasks for Microsoft Office, etc.
Get the job, get the paycheck, and move on when you can.

Most ASP work is maintenance these days. If a company is doing active new development in ASP, they should have a pretty compelling reason.
Also, your boss's remark is nonsense.
I'd say you should should avoid it if you can, and continue with ASP.NET (or something else with a pulse). And I say this as someone who started his career in FoxPro for DOS.

I say it can't be a nuisance. ASP will teach you some older technologies, not to say philosophy of doing things that could perhaps bring you on some other interesting paws with your new development. As a matter of fact, having worked with ASP for 6 months will grant you some knowledge which others can only speculate about.
Besides learning or improving your skills in ASP, working in this project you're mentionning might bring you some other aspects that could be worth learning. Any new experience is a step forward to new possibilities.
Learning ASP could at least simply teach you why in ASP.NET and MVC, things are done the way they are, and you'll perhaps better understand the foundations of the most commonly used aspects of these architectures or approach.
Furthermore, when a company will require a candidate that has a minimum of knowledge in ASP to migrate a system in ASP.NET, then should you be the guy? =P
Always look at what a new experience positively can bring you. Almost any new project can teach you new aspects of your work.
I hope this helps! =)

ASP Classic is a very old language. ASP.Net WebForms is much newer and in modern use at many companies. There is an even newer model (newer to the MS world) called ASP.NET MVC. This model shares some aspects in common with ASP Classic, but improves on that old paradigm in almost every way.
You never lose by learning something new, but I think you could get more bang for your buck sticking with newer technologies. Intern with someone using MVC (like StackOverflow) if you want to learn that model.

If you have an option on an internship that better fits what you want to learn, take that instead.
That said, learning more is usually a good thing. Do it, especially if it's only six months. Don't permanently set down roots in ASP Classic, though, because that's going to go away at some point; don't latch on to a train that's already going downhill.

If you know PHP, you already know ASP classic. Yeah, the languages are different, but the important thing (the page model, the lifecycle, what runs when) are the same. The rest is just details of how to call various things in the OS. Well, except that vbscript is kind of crippled.
Also, if they're doing work in ASP, that probably means they've got COM objects (most likely written in VB6) to either call or you'll have to write and deploy. That way lies PAIN.
If you're looking for a realistic work at most IT development jobs, this would actually sound reasonable - there's lots of shops stuck on old technologies. However, it's not going to be that useful on your resume.
He is right in a way - the ASP.NET WebForms model DOES create a huge abstraction over what's actually going on. But if you looked at ASP.NET MVC or another MVC framework like Monorail, you can get the raw HTTP story. But, again, you've done PHP so you've already seen it.

Don't be duped here's a fact: VBScript does not run on the CLR, ASP classic and old IIS are not running in the CLR with ASP.Net's code paths and handlers and huge stack of stuff that I was thoroughly confused by when I went from ASP3 to ASP.Net years ago.
Don't waste your time, what's under the covers in ASP.Net and it's entire design model is so thoroughly different from what's going on in classic ASP, you'll just confuse the whole issue.
In fact, screw all of this, learn wpf/silverlight/xaml and C#, if you can put two and two together with the xaml style of code behind you will have no trouble with asp.net when you need it (or classi asp for that matter), and you will be far more capable of keeping up with what's going on next, rather than starting the journey 10 years ago, it will take a long time for you to catch up to modern times that way.

To some really small extent, your boss is right. Learning classic ASP will help you understand how ASP.NET manages web concepts such as your page's viewstate property for example ; also it will force you to create your own gridview from scratch.
However, the .NET framework is really huge and it can take a fair amount of time to get to know it. A lot of ASP.NET controls helps you save precious time to concentrate on more important aspects of your application. I would prefer to look for an ASP.NET internship and learn ASP on your own if you want to know how some things were down the "old way", i.e. more than 10 years ago (classic ASP was launched by Microsoft in 1996 if I remember correctly).

There's two things I'd add to what's been said here already, though I won't repeat the well-made points in the other answers.
It's completely wrong to say that knowing ASP will give you information about what is under the hood when it comes to ASP.NET. At the level of the two frameworks, its much more likely for knowledge of ASP to misinform you about ASP.NET - some things that seem similar are actually different. At the level below that, you're better off forgetting about frameworks and languages and learning the details of HTTP (see RFC 2616) and then working out how it works in whatever framework you are using.
Also, the real meat in class ASP wasn't ASP itself (which really, is much simpler than ASP.NET) but in COM objects used with it (which can often get much more complicated than the .NET equivalent, esp. when factoring in having to deal with the much more complicated threading abstraction, lack of garbage collection and other things where .NET provides us with new or improved tools).

Related

New to web development. ASP.NET or Django? [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 2 years ago.
Improve this question
Hello I am interested in hearing objective responses in what should a beginner dedicate his or her time into:
ASP.NET, Visual Studio, C#, IIS, Team Foundation Server?
or
Python, Django, PyCharm?
These are just some criteria that I am interested in:
Easy to start out with.
Good documentation.
Highly-scalable.
Big Career opportunities.
Feel free to post your personal opinion on this matter or if you've had an experience with both ASP.NET and Django.
C# or java will pay the bills, python will be way more fun
This is a big question, I'll give only several points according to your interests:
In general, Django is easier to start than ASP.NET. Simplicity is one of rules in Python's Zen. Also Django explicitly shows you all control flow, so you can understand internals of framework very quickly. On the other hand, guys from Microsoft did their best to make web development similar to development of desktop applications. ASP tries to erase borders between server and client sides. I can't say with confidence, if it is good or bad idea, but I know that at some moment you'll have to understand difference between them anyway.
Both. Python community provides tons of documentation, and Django official documentation is always up-to-date. Django is popular in community, but ASP is corporationally promoted and supported. In general Django has more tutorials and ASP has more books about it. Books are more complete, but they are really big.
None of them. They both are primarily view technologies, and for scalability you'll need some heavy server side technologies. Nevertheless, if it's all about supporting thousands of concurrent users (and not some computationally intensive applications), both technologies work well. See this for some good examples in Django and this to take a point of ASP.NET scalability possibilities.
It heavily depends on your region and current situation. I can only say that ASP.NET is used in large companies, and Django is for small companies and freelance. For more information see your region vacancies.
I've been an ASP.NET programmer for a few years, and I think it's pretty easy to get into. The downsides here are that Microsoft products (TFS in particular) are expensive. Of course, my experiences have been directly related to that -- I've never tried Python in any regard -- so I can only offer my perspectives as an ASP.NET programmer.
There are a lot of people who would (accurately) tell you that the page lifecycle in ASP.NET is a gigantic pain in the ass, and that's true too. I personally don't use the server-side part of ASP.NET very often anymore because juggling the lifecycle just leads to messy code and built-in obtuseness. That said, it's really easy to integrate ASP.NET WebServices with jQuery and JavaScript.
My experiences with IIS have been pretty good as well, although I can't speak to its problems in more complex environments.
I do love TFS, though. In particular, if you're working as a part of a team and need to get user bug reports or enhancement requests, there's a lot of great built-in integration. However, configuring and maintaining TFS is a full-time job in and of itself if you're a part of a development team in a corporation.
All that said, I'm not sure it makes much sense to limit yourself to two core languages and then ask about career opportunities. These are going to vary from place to place. I don't see many Python positions where I live, and there were a lot of MS/C#/ASP.NET positions available when I was looking for a job.

Please help me choosing the language and framework for my undergraduate project [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 7 years ago.
Improve this question
I am a final year computer science student from Mumbai University, India.
The topic of our undergraduate project is SOA.
Under this project we are supposed to build 3 service components and one example website that uses those components.
I am quite good with Java and have no experience whatsoever with C# or .NET.
I am having hard time deciding the language and platform for our project.
Can you please suggest what platform I should go for?
Please give me a brief comparison between Java/Java EE and C#.NET/ASP.NET in terms of complexity, ease of development, ease of deployment etc.
Edit:
The original reason why I put this question is:-
We have to do final year project in group of three. My both partners want to do this project in C# and asp.net and I want to do it in java. Since our project is more of server side, java holds some advantages like cross platform over C#
Also this point:-
What if we implement 2 parts in C#.net(which they will build) and 1 part in Java(which i will build) and then use them to build a sample website.
What level(kind) of difficulty it will accompany?
I am quite good with Java and have no experience whatsoever with C# or .NET.
Well then, do you have a particular desire to extend your knowledge into C# and .NET, or do you want to concentrate solely on the actual project.
People can make all sorts of arguments about C# vs Java, but in your case the pertinent facts are that C# will be much better at teaching you a new language, and Java will be much better at not requiring you to learn a new language.
Edit: Following the edit to the question, mixing the languages like you suggest as a possibility has the added advantage of needing you to show how to mix the use of two different languages, which might or might not be useful in itself.
Overall I would say that is is much easier to get started in Asp.NET. With Java EE, just setting a dev environment to do Hello World, can be a lot of work. In Asp.NET, you launch visual studio, create a project, and are ready to go. If you are using Netbeans and Glassfish, then Hello World is no longer a nightmare, but deployment is still a lot trickier.
Architecturally they are pretty similar, Java EE is a bit rustier, but has borrowed from many of the newer ideas of ASP.net.
Once you get up to speed in Java EE, it isn't that bad, so for a long term commercial project, it is a viable choice. For a short term student project it isn't worth the effort, and I would go with ASP.NET, but if I had a choice I wouldn't recommend either platform.
I would build my application in a dynamic language like python, ruby, or maybe groovy. The difference in productivity between static and dynamic languages is huge. Even if all 3 of your team members are new to the language I would expect you accomplish more in less time.
I would recommend looking into the following frameworks: django, pylons, rails, grails. I'm biased towards the python frameworks, but rails is also an excellent choice. Grails is a pretty cool clone of Rails written in groovy, but unless you have to have Java integration, I would stick with the other 3.
I am quite good with Java and have no experience whatsoever with C# or .NET.
If by that you mean you also have experience with building services and site, then use Java, no point in discussing it any further. The only possible reason is if You Want to learn .NET (a great reason imho though), but not at all because you should change to it.
Note that personally I prefer .NET vs. Java, but I would never / ever make a team experienced in Java change to .NET in the scenario you described.
If you do go with .NET, use ASP.NET MVC. It gets you closer to the right skills to learn regardless of the platform / HTML, CSS, JS, HTTP considerations, etc.
What if we implement 2 parts in
C#.net(which they will build) and 1
part in Java(which i will build) and
then use them to build a sample
website. What level(kind) of
difficulty it will accompany?
If the interface between these parts is a widely-accepted standard like SOAP or REST/JSON, then the language the individual components are developed in will matter very little - this is the whole point of such standards, and an important part of the SOA idea as well. I'd even consider such a heterogenous application a better example for what you're supposed to learn.
The only real downside will be that you'll have a harder time helping each other when you encounter problems.
Ill approach this idea by idea:
Platform: You are familiar with Java, I would recommend for the time being staying within Java for the time being.
J2EE do you mean Java EE? J2EE is quite old by today's standards.
There are not many, if any, fundamental differences between .NET and Java platform code. It comes down to a matter of preference and what Operating System you are primarily working on, imo. If it is only Windows development I would lean towards .NET, however if you need portability lean towards Java.
Also I wanted to point out SOA is more of a buzz word consultants use. You will see this as you gain experience in the industry. Cloud is the new SOA, this is purely opinion.
It may be worth your while to do the other components in something you don't know as having that experience could make you more marketable to industry. Look at job offers for a field you'd like to do work in. What experience are they asking for? Maybe use something they ask for as one of your components. I've never seen a job ad that asked solely for Java experience, it's usually accompanied by other technologies like scripting languages and framework experience.

for a newbie,what is the best web app to develop firstly? [duplicate]

This question already has answers here:
Closed 13 years ago.
Possible Duplicate:
Small projects ideas to teach beginners web developent using ASP.Net
I am learning about technical skills to become a web developer.But i don't know how i should start to develop a web application.
The best application to develop first when learning a new technology is the good old "Hello World!" program.
The advantage of doing this is that you test that you have correctly installed and configured your technology stack without the extra confusion from possible bugs introduced in your code.
You could start with the most basic test: hardcoding "Hello World" in the page. Then try storing it in a variable and outputting it to the page dynamically. Then try reading it from an application configuration setting. Then try reading it from a database. Then reading a greeting from the user via a post and send it back to him.
This way you can test all the components of your stack and check that you understand how they work without taking on too much complexity at once.
First get a hold of page life cycle and the basic controls of the web and their properties. If this is clear then every other thing follows and is easy to understand. Secondly there are numerous tutorials on msdn for all the controls and concepts of asp.net. Refer them.
"w3 schools" is a great place to start to get an overview of the syntax for various languages. I really enjoy the screencasts at netuts.com when I'm looking to learn something new.
You're probably going to want to be confident tinkering with at least HTML, php, css and javascript before you try to take on clients or you'll just end up writing bad code and they'll be knocking on your door demanding a free fix when it inevitably breaks in 6 months' time.
There are certainly other languages that you can get into further down the track but that will cover your basic needs for encoding data, interacting with your server, making things look nice, and allowing your users to interact dynamically with your page.
You could also play with flash because it allows you to create very slick, dynamic elements relatively quickly and easily. IMO flash's relevance to the net as a whole (and getting paid work) is waning, so you can probably leave it on your "to-do" list, but that's definitly an opinion, not a rule.
They are specifically asp.net and also a little dated as in .NET 2.0 but still relevant. Once you have a grasp of the fundamentals the asp.net Data Access tutorials are a good place to look

MVC or Webform Architecture for new site

I'm developing a website , job portal. I have 2-3 years of ASP.NET webform development experience,
I want to create a professional job portal site (to improve and learn more) but trying to decide on best architecture. Any suggestions or advice will help...
Thanks
Well, there are a number of ways to answer this question, and I'm sure many others will chime in. I'll just say that since your goal is to improve and learn more, and you already have 2-3 years of webform experience, this might be a good opportunity for you to learn MVC. Then you will have experience in both, and can make more informed decisions regarding the best architecture for future projects.
Happy learning!
Whilst nobody can tell you exactly what to do, the team I manage is about to release a new CMS / Job portal using ASP MVC. MVC gives us excellent testability and scalability out of the box and it can be quickly combined with tools such as nHibernate / windsor (IOC) / nCache / jQuery - this ensures that you have a wealth of resources on the internet to help accelerate your development and skill. You can also embrace standards such as XHTML 1.1 strict, which is almost impossible with ASP.Net webforms due to the auto generated HTML
1 other advantage is that you also get away from the dreaded ASP.Net viewstate.
Use ASP.NET MVC if you want to:
learn the ASP.NET MVC framework
use jQuery or similar libraries
really learn web-languages (HTML, CSS, JavaScript)
use Test Driven Development
have a clean separation of concerns
If you don't have the time or will to learn to use the ASP.NET MVC framework correctly, stick with ASP.NET WebForms.
My answer is almost always "ASP.NET MVC." The amount of flexibility and features and testability and maintainabilty and ... heavily outweigh WebForms.
WebForms has the advantages of a rich ecosystem of existing controls and documentation, and is really powerful for some kinds of tasks (complex, multi-form interactions), but I find its limitations get in the way far too often. You have to mold yourself to it.
It really depends on what the end goal of the application is. As Scott Ewers said, if your goal is to learn, then using ASP.NET MVC will expand your breadth of knowledge in the ASP.NET space (since you already know web forms).
Additionally, if this is going to be a public product, you can leverage the testability benefits of MVC and run automated unit tests. Key ideas like Separation of Concerns can also increase long-term scalability and maintainability.
The primary reason why you might choose web forms is if you are rapidly prototyping the job board application. As you know, web forms allows you to drag-and-drop components onto the canvas to quickly create some basic data entry functionality.
There is a herding code podcast from May 13 on the subject.
Herding Code 47: Joe Brinkman on Webforms vs ASP.NET MVC.
I also agree that choosing MVC would have the advantage of allowing you to expand your knowledge. That not being the only reason, given the choice as well I just finished a small MVC project (my first) and let me tell you MVC rocks! Its a great framework which I feel gives you more flexibility and at the same time out-of-the-box tools to create a web app quickly and painlessly. It was my first experience with VS2008 & .NET FW 3.5 & LINQ, and all the guides at www.asp.net helped me go forward quickly (especially the free tutorial chapter from an MVC 1.0 book mentioned here).
I also got to learn JQuery along the way, as it is very much integrated into these new technologies.
One think to take note though is that this being a new tech, version 2 is already being cooked up, so if your project is for the long run, have that in mind and plan accordingly (in my case, being a small project, I'll probably try upgrading my project to version 2 when its officially released). Yet at the same time, having a fully MS (and thus MSDN) supported version 1 was a godsend for me...
Good luck!
I have good experience in Jquery, CSS, HTML, Javascript but not in TDD.
I have time..and willing to learn MVC but wasn't sure MVC is good choice for Job portal or similar site..
This can be considered a shameless self-advertisement but here is my quiz on how to choose between the two:
http://sietch.net/ViewNewsItem.aspx?NewsItemID=101
I was recently tasked by one of my clients to write a paper, or simply a checklist, that would help other lead developers make this same decision.
I posted the first 2 rough drafts on my blog. I am admittedly pro-mvc but the paper/checklist has been we received so it might be helpful.
http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/[http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/][1]
I think the most often overlooked benefit of MVC is convention; I really see any convention in webforms projects and while not strictly enforced in MVC projects at least its there.
i started developing our current app in webforms, mvc wasn't available when development started.. i've chosen the MVP pattern, with URL rewrite HTTP module. currently i'm investigating plugging in some MVC into this, basically to use the front-controller instead of using page-controllers. the other things in already established MVP architecture with web forms in my app give me more flexibility than pure MVC approach without WebForms, which i like, although require a bit more code than MS MVC examples (never tried it for real project to see if it stays that way, like in those examples in screencasts).
what i don't like with MVC is mixing control code inside templates - i believe loops, ifs and stuff like that just shouldn't belong inside the template. but a couple days ago i've ran into Spark view engine that looks kind of promising in that segment, although not still close to the Tapestry 5 (a component-based webGUI framework) in the java world.
But the above mention suggestion to mix both might work for you to explore MVC world and have the safe ground to fallback to if something won't work for you might be ok for you.

Moving from Desktop Development to Web Development [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 7 years ago.
Improve this question
Up till now all my programming experience has been desktop development (mostly C/C++ with OpenGL/DirectX) but I'm interested in trying my hand at some web dev.
The two directions I'm considering are Ruby on Rails and ASP.net.
Which is most widely used?
Which would be a more marketable skill to have?
Thanks!
PHP, Ruby On Rails, ASP.Net, or Java.
It's a religious choce and it depends on who you ask.
Everyone you ask will give you a different answer.
You should ask yourself how you want to work, PHP java and ASP all let you write markup that is interspersed with code or code that writes the markup for you.
To be honest it's subjective and no one will be able to give you a straight answer.
Given your two options ASP is probably a better choice for industry though, there is a lot of money in it and C# is close enough to C/C++ for it to be readable.
Why don't you take a few days or a week to experiment with Rails, just for fun? You might, like many other devs before, find a real liking for it and 'fall in love' with Ruby and revitalize your programming interest. If not you just embrace ASP.net which will feel more natural to you anyway.
Other commenters have not mentioned that the number 1 advantage of both Ruby and Rails is 'pleasure of programming'.
Alsa these days talented Ruby programmers are in very high demand. There is much more demand than supply. You can do the math as far as earning potential.
I spend most of my time doing ASP.NET development and recently I had taken a turn against it due to the difficulty in really testing my apps. Like lubos hasko outlined above, with ASP.NET MVC, LINQ and the new features in C# and even the ability to write .NET web service that can be consumed by Silverlight, I have gotten excited about it again and think you could do well getting into it. That said, I have no experience of Ruby but after some of the comment on here, I think I'll have a look at it.
Learning Ruby will help you learn a different way of thinking about programming. It will help you become a better programmer, even if you determine that it's not a language for you. The same applies to several other languages (including Python). There are fewer job opportunities for Ruby developers.
ASP.Net is a fairly pedestrian way to develop fairly pedestrian webapps that don't really challenge how you think as a programmer. Job and consulting opportunities are more common.
From this point, it's your call. I chose Ruby six years ago.
If you are planning to do enterprise business development, then ASP.NET wins hands down (IMHO).
If not, RoR would definitely add to your breadth of knowledge.
I would suggest taking a look at the Rails for .NET Developers book before making your decision. At the very least, have a trawl through the Softies on Rails blog.
Beware of the "there are more .NET jobs around" argument. That may be true, but in tough times (i.e., now and for the next year or two), you're probably going to see more .NET developers fighting over fewer and fewer jobs. Lots of jobs in good times equates to lots of competition in bad times. So it is worth branching out and learning something new. What is key, in terms of marketability, is staying agile rather than sticking religiously to one technology.
.NET platform, without a doubt.
Pick up RoR as a secondary.
As a C++ you probably won't like the nature and character of Ruby. You might even hate it. Type safety and strictness is an issue of importance for most C/C++ programmers. If you move into a type-free, "dynamically maliable at run time" kind of environment like Ruby, it will feel extremely sloppy.
C# would be the much easier move, from a language and thought-process standpoint. I would not recommend doing classic ASP.NET development anymore. So-called WebForms are quickly becoming outdated and outmoded. The 4th rev of Microsoft's MVC framework just got published a few days ago, and it is pretty terrific. This is the way to go.
So why not just use Ruby on Rails? Why use Microsoft MVC? There are very good reasons why you should.
A strict type safe compiler
Fully compiled code leads to speed. All of your code is fully transformed to X86 machine code before it runs,
High performance. C# is very very fast. Ruby is very very slow. C# approaches C++ levels of performance. Ruby is slower than Perl, Python and Lua. There is a very large performance gap.
You get a rich IDE. The thing I personally can't stand about RoR is that you are mostly stuck in a plain text editor and a command line console. ASP.NET MVC means access to the power of Visual Studio
RoR doesn't scale. Microsoft MVC does.
I like the simplicity of Microsoft Test
I haven't gotten far with it yet, but Unity seems like a nice AOP IOC. I've gotten farther with it than with Spring or Windsor.

Categories

Resources