views:

1854

answers:

12

I'm a seasoned desktop developer working in C++/C#/WinForms/etc. Up until this point, I have done very little in terms of web development. I've come to the point in my career where I feel like I should start doing web development - not to replace my desktop experience but to become more well rounded as a developer.

I already know some HTML and JavaScript, but I am by no means proficient. I'm very comfortable with .NET.

So what is your opinion? Should I focus mastering HTML/CSS/JavaScript/JQuery (with ASP.NET or PHP on the back-end), or should I nurture my .NET experience and dive into Silverlight?

I'm curious about factors such as performance, adoption rate, etc. and any other advice that should guide my decision.

PS: And I have read this article, but it is slightly different from my question.

+5  A: 

Esp. if your primary goal is to become more well rounded as a developer you should IMO first try to get into the fundamental web technologies and only afterwards (if you find a problem that you can't solve with them) combine that with your knowledge about .NET.

While Silverlight and Flash are great tools that help solving certain problems, they shouldn't be your first choice when doing web development.

Horst Gutmann
+23  A: 

If you are truly looking to grow your skills as a developer and make the transition into the world of web development. I strongly recommend starting with the HTML, CSS, JavaScript, jQuery, ASP.NET AJAX route.

There are many reasons for this, but more than anything these are the fundamentals of web development. Everything in the end is rendered to the user in HTML, and Javascript/CSS are things that we have to deal with on a regular basis. CSS and cross browser functionality is still and issue and understanding how that works is a fundamental piece to being able to be a proficient developer.

Then the JavaScript/JQuery piece, this is also a now fundamental requirement in many ways as people expect rich, functional User Interfaces and understanding how to leverage these technologies is key.

Sliverlight is great to learn as well, however, I think that the base knowledge and getting experience with general web development techniques is needed first. Especially since silverlight in most cases is just a small portion of a website.

Mitchel Sellers
+3  A: 

Personally I'd go with bolstering your skills with XHTML/CSS/JS/some backend. While Silverlight is gaining speed on the web it's still going to be like Flash -- a small subset of overall web programming. XHTML/etc is everywhere, it's the foundation, and you'll find more use and demand for that.

If you're not looking for "learn something to help me get a job" and rather something to make you a stronger programming I'd highly recommend learning those in combination with PHP. It's going to be a very large difference from what you're used to. Learning completely different things makes you a much stronger programmer.

Parrots
+16  A: 

Occasionally you might use Silverlight, ubiquitously you'll use XHTML/JS/CSS. The choice should be self-evident.

annakata
+1, use of the word "ubiquitously"... :)
mwigdahl
Unless you get a job as a Silverlight developer
Chris S
Well obviously, but that's missing the point. It's considerably less likely you'll find a silverlight job than something in the much broader xhtml/js/css sector.
annakata
+3  A: 

Ok, this is certainly an opinion question, but here's mine... Any developer today should be well versed in HTML, JavaScript, CSS and SQL.

I just finished a user-group tour where I was part of a panel on development technologies (.NET (me), PHP, Python and Java) and every one of us agreed, you need to know the web "languages" first. Even if you then end up in a silverlight engagement knowing the web languages will help you see how your silverlight stuff fits into the larger picture.

Don't limit yourself, learn the web.

WaldenL
+1  A: 

I tend to believe that Silverlight/Flash development should be left to real designers... people who have not only a nack for graphic design but also have a solid understanding the flow of animation. When you work with web technologies (HTML and CSS particularly) you can work very well off of a designers comps in creating a beautiful web interface and working from that framework to make it come alive with Javascript/Jquery.

More importantly, the breadth and scope of web applications is so wide as to tackle a huge variety of concerns, where the applications of Silverlight and Flash are much more limited. While you do have a strong advantage jumping straight into Silverlight with your existing skill set, the installed base of Silverlight is light enough that you won't be able to easily have your work viewed by everybody.

Also, (coming from a ASP.NET MVC programmer) you have plenty of opportunity to nurture your .Net skills in an ASP.Net realm. What I love most about the MVC strategy is that I have full control over my HTML again (a plus for maintaining look and feel) and have a full range of tooling to allow me to build insanely complex data driven sites in a fraction of the time that it used to take me. The only difference between web development and winforms development is the medium that you use to interact with the user.

thaBadDawg
+2  A: 

I have a similar background to you and I have decided to concentrate on Silverlight 2 for web development. It really depends on the type of development you want to be doing. Some types of applications are better suited for one versus the other.

I have done a small amount of ASP.NET (with AJAX) and PHP. Personally, I don't like this type of development. Dealing with HTML/CSS issues in various browsers is for the birds. Debugging Silverlight 2 C# versus debugging HTML/CSS/JavaScript is a different world. While there are certainly some great web/AJAX applications out there, I can't help but feel that these are a stop-gap measures. Don't get me wrong, HTML/CSS/JavaScript/AJAX will always have a bigger presence on the net than Silverlight, Flash, etc. But I work on line-of-business applications and making the traditional web model work for these always results in huge UI compromises. I never got into Flash/Flex so Silverlight 2 is the first time I have been able to deliver a browser based application that I can build/debug/support in a similar way to desktop applications.

As for Rich B's comment about needing JavaScript/AJAX skills to use Silverlight, that may have been true for Silverlight 1 but is not true for Silverlight 2. Of course the capability to integrate Silverlight with traditional web development is there, but is not mandatory.

Art Dumas
A: 

Microsoft's annual MIX conference starts on March 18th. This conference is focused on Microsoft's web technologies. Historically, the sessions have been posted online within 72 hours (http://visitmix.com/).

Considering we are so close to March 18th, I would recommend waiting to see what gets announced. There may be something there that gets you excited in regards to one technology or another. I think it will be more beneficial for you to find something you are excited about. This will make the learning process more enjoyable.

Chad Campbell Author of Silverlight 2 in Action

Chad Campbell
A: 

I think that Silverlight (and Flash) are rapidly approaching their expiry dates. As JavaScript gets faster as JIT compilers start showing up (like in Chrome, Firefox 3.1 and Safari 4), and as HTML support gets better (HTML5), the need for plugins to display fancy rendered widgets will diminish. I am, even today, amazed at what is possible using HTML+CSS+JS, things I never would have imagined possible without something like Silverlight.

Tim Sullivan
Agreed - have a look at http://gomockingbird.com/mockingbird/No flash / silverlight..Admittedly done in cappucino, but still
tim
+2  A: 

I'm in the same boat. My feeling is that catching up with a technology thats been going for years is pretty hard. There are developers who will always murder you on Javascript/Ajax etc... So I'd rather be an early adopter of technology. That way you get to be really good at something and get to learn/make mistakes without the pressure of everyone else being so much better than you because they've got a 3yr head start.

As to Silverlight/Flash approaching their expiry dates. I do not agree. 60% of the time spent making RIA apps in Ajax/Html is spent making thing look good (or just making them look like anything at all..). To most developers coming from Winforms or something similar , this is just not a good use of time. Spending time wondering whether your "div" panel is going to appear correctly is so 80's!

IMO, Silverlight is going to be massive for internal business apps. It's just EASIER! Cheaper to build, Cheaper to test and looks better! For a 30 second install on a corporate machine you can have zero-deployment issues and an app that looks like a desktop app in your browser. Why would you use Asp.net? It's also going to be easier to get a designer to skin your app because Silverlight is designed to split design/programming properly.

For the world outside of corporate desktops the adoption will be slower simply because developers are driven by accessibility and getting the most amount of people using their stuff (cos everyones trying to make that cash!). Being compatible with mobile devices would scare most companies away from using Silverlight or Flash so in that space,so I expect Ajax to be the most popular form of web app for a while.

At the moment I'm thinking I'd rather be amazing at a specific area of development than jack of all trades. And it looks like far more fun than spending my life stuck in firebug wondering why my css hasn't taken affect! :-)

A: 

My cousin is a web designer/developer and he told me many people want you to know the action script behind flash, not only the design part. So on the flip side, to make the most of flash you need to be a decent programmer. Flash is basically a combination of design and programming....so obviously you have to be able to do both if you're going to master the program. A good designer can make it look pretty and that's it. You have to program in order to give it functionality.

Unless there is some magic flash action script writer that I have no idea about. =/

A: 

As everybody would say, answer depends on task on hand.

That said, I choose Silverlight 2. I am doing line-of-business apps. Last december, I started doing new app in ASP.NET MVC. Frustrated with wrangling with DIVs, CSS and JS, I did little stealth work over the holidays and reimplemented all already coded functionality of my small app in fraction in time.

It did help that I was already familiar with XAML (from WPF app I was doing earlier), but main winning point with my boss was speed and ease of development. Suddenly, I was not spending time tweaking my presentation layer, but coding business rules instead.

So far, everything looks great. My coding is chugging at steady pace, my job satisfaction is higher, I enjoy coding again :)

Point is, for LOBs, in controlled environment, Silverlight 2 wins hands down. I am not familiar with Flex, but I hear it is quite similar to SL2 in dev workflow kind of way.

Srdjan Jovcic