Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I wasn't sure if this was more suited to here or StackOverflow. I've always resisted doing web development because the technology stack just seemed a mess. It seems the web has become quite popular so I'm actually going to embrace web development, at least for a little project I'm thinking about.

I'm a Microsoft developer, so I'm going to use ASP.NET. I'm familiar with how the web technologies work at a high level, I sort of understand what Javascript can do, I get AJAX (conceptually). CSS and HTML seem ugly but I get what they're for.

As an ASP.NET developer do you find yourself working directly with Javascript or HTML? Does AJAX get abstracted away neatly or do you find yourself doing that stuff "by hand"? Are there any other technologies you use?

And on a related note, I don't quite see where HTML 5 fits in with ASP.NET, yet. There seems to be a lot of noises from Microsoft that HTML 5 is actually the future of the web as opposed to Silverlight, so do any pro ASP.NET developers understand or use HTML 5 features?

I appreciate that's kinda vague, I think a lot of it will become clearer as I get started, but I'd feel more secure if I had some soothing words and pointers from people who have already been through that.

share|improve this question
4  
Better use ASP.NET MVC. –  SK-logic Apr 8 '11 at 14:28
    
Related and possibly helpful: What thing do I need to become an expert in ASP.NET MVC? –  AndyBursh Mar 21 at 14:33
add comment

closed as too broad by gnat, MichaelT, GlenH7, Eric King, Thomas Owens Mar 22 at 10:54

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

6 Answers

up vote 15 down vote accepted

First thing to understand is that ASP.Net is a server-side programming API. When you develop with ASP.Net you are writing a .Net program that runs on a server and ultimately serves HTML/CSS/Javascript code over the internet to a web browser. Then the web browser parses that code and displays the output.

That being the case, I don't think you should look at HTML/CSS/Javascript as something to be abstracted away from you. The ASP.Net Web Forms model was originally designed with this goal in mind, but in practice it does not work well because the output is bloated, ugly code which is difficult to maintain and does not conform well to web standards.

This is why there has been a shift away from that model with the ASP.Net MVC Framework, where you are encouraged more than ever to write that code "by hand." This is so you can have full control over the HTML/CSS/Javascript that is sent to the browser.

Also, with this understanding, HTML 5 fits into the picture perfectly fine.

share|improve this answer
    
Well said that man. Web Forms betrays how the internet works; the internet is Request-Response since HTTP is stateless. –  StuperUser Apr 8 '11 at 15:12
    
Yes, you know this is EXACTLY what I was getting at or trying to figure out. Thank you for that. –  Ian Apr 9 '11 at 12:05
add comment

ASP.NET is great for a lot of things. You will end up adding HTML and often times Javascript to your project "By Hand" (if your project is going to be remotely user friendly). The inclusion of AJAX controls makes a lot of that easier, but they are still just controls that you will have to customize to your solution.

I would suggest adding some additional controls to your library to make this even easier. DevExpress has a series of controls we use ALL the time. Their GridView puts Microsoft's to shame and is relatively cheap (approximately $800 a year) and it includes tons of other controls. I don't work for them, I'm just a huge fan. You can get 60 of their controls for free (not a trial) here: https://www.devexpress.com/Products/Free/NetOffer/

Even if you don't go with DevExpress, investing in one of the other many control packages out there will make your life much simpler and greatly reduce the amount of CSS, HTML and Javascript you will have to directly code.

HTML 5 is pretty awesome, but you probably don't need it. I would also stress that I don't think Microsoft has given up on Silverlight at all, but again you probably don't need it. These 2 technologies are different from each other and from ASP.NET in features and purpose and you should evaluate your project against all three to find out what you need before you get started.

share|improve this answer
add comment

I use it all, and I use each piece differently for different reasons. Some, like JavaScript, have frameworks that make certain tasks easier, but they are still written in the language you're targeting.

You will be working directly with HTML. It's your interface. You can't avoid it. You will be working with CSS. You could avoid using it, but you'd have a website that would look like it was written in 1994 (and we mostly dislike Times New Roman these days anyway). HTML5 is still an infant. There is some support for it here and there, and I've seen some very cool sites that made use of some of the features. Browser support is still sketchy and unpredictable, so as a starter project I would recommend staying away from it. It is the future of web development, but I highly doubt it will ever truly replace flash and silverlight (it might replace silverlight just because MS might dump it).

JavaScript is something you will end up using as you need it. A pure Asp.Net site will embed a TON of js into your site. An MVC site will include the jQuery libraries but will only use them when you need them. My recommendation is to learn some standard javascript techniques for doing various things. Save the expert level javascript for those who make their living on it. When you want to do cool javascript thingies (like AJAX, animation), use a framework like jQuery to simplify it for you.

A personal note on AJAX: Do it by hand first. jQuery has some fantastic libraries that simplify AJAX methods and make development super easy. That's all well and good if you don't really want to know what's going on, but I'm of the opinion that a developer should absolutely know what's going on. In doing it yourself, you'll learn more about the problems you'll encounter even with the framework. It can be tedious at times, and sometimes AJAX is just downright nutty, but it's very well worth it in the end to know the tools you're using.

Most of the other technologies are server side (.Net, Php, Python, whatever)

share|improve this answer
    
Cool, I think I'm going to start with javascript and see what I can do with that. This all really helps. –  Ian Apr 9 '11 at 12:06
add comment

I'm a .NET programmer, so what I typically use on a fairly regular basis.

  • Visual Studio (asp.net, c#, WCF, MVC)
  • SQL Server
  • jQuery
  • CSS
  • HTML
share|improve this answer
add comment

If you are going to want to do web development, you should learn at least the basic of HTML, CSS, and Javascript. I would personally recommend against going the WebForm route, especially if you are learning, as it is going to teach you some bad habits and abstract parts of the basics away from you so that when you need to do something custom, it is going to be a lot harder.

With javascript, I would recommend using a framework like jQuery. Frameworks like jQuery abstract away browser issues and make a lot of the things you need to do a lot very easy. You should still learn plain javascript as it will make you code a lot better but for most cases, I would use a framework as a foundation for my code.

I would not worry too much about HTML5 right now. Browser support it still not fully their and if the time it took IE 6 to start really dying off is any indication of how long IE 7/8 are going to be around, it is going to be awhile before a large percentage of browsers (mainly IE) are going to have solid support for HTML5.

You should diffidently learn CSS 2 and probably get into some of CSS 3 too. While IE 7/8 have poor support for it, at least with CSS you can still make stuff look descent in older browsers while having newer browsers take advantage of CSS 3.

It sounds to me that you are looking to learn web development and not in a huge rush to get some project out the door. If this is the case, I would recommend against using too many pre-built widgets applications (like DevExpress). Those tools are diffidently fantastic when you don't have the time to build stuff yourself but I feel like you will gain a lot more knowledge by building stuff yourself to learn. I learned a lot more spending 3 months building my own MVC framework then I did from spending 6 months from using someone else.

share|improve this answer
add comment

Applications Developer here mostly using Microsoft technologies. Here are the tools I use:

  1. ASP.NET, C# (code behind), HTML, CSS, AJAX for browser based front-end Forms. I seldom need to hand code javascript anymore, now relying mostly on ASP.NET/AJAX to generate the stuff for me.
  2. SQL Server for OLTP based relational DB; SQL SSAS for Data Warehouse/Cubes.
  3. SQL SSRS for web based reporting. SSRS Report Viewer embedded in an ASP.NET page is used to display either server side (web service running in SQL Server Reports Server) or client side reports.
  4. SharePoint can be used to handle portal duties with the ASP.NET pages being displayed inside a SharePoint webpart.
share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.