views:

278

answers:

3

As someone who has spent around 10 years programming web applications with Adobe's ColdFusion, I have decided to add ASP.NET as a string to my bow.

For someone who has spent so long with CF and the underlying Java, ASP.NET seems a little alien to me. How should I go about getting up to speed with ASP.NET so that I can be truly dangerous with it? Do I need to know C# at any great amount of detail?

I want to be in a position where I can build basic web apps fairly quickly so I can learn more doing the tricky stuff.

A: 

Microsoft has a video called ASP.NET for ColdFusion developers you may be interested in.

Edit, here's another

John Sheehan
+3  A: 

I'm only maybe six months down the same path, but here are some thoughts from my experience so far:

The C# language shouldn't give you much problem if you have very much experience with Java at all (or even CFScript). As a reference, though, when I was starting, I found csharp-station a good primer for language basics. It won't help you much as far as the ASP.NET side goes; but it is good for syntax. More you'll be familiarizing yourself with the .NET libraries. The IDE actually can be an enormous help here.

Here are the three biggest differences I found making the transition:

  1. ASP.NET Server Controls - In ColdFusion, you really have pretty direct control over the HTML; you work very closely with the page. This isn't so much the case in ASP.NET. The server controls are meant to relieve you of a lot of the tedium, but at a cost of maybe some direct control. As a CF programmer, I'm very particular about what gets actually output to the browser; and at first ASP.NET frustrated me because it spits out a lot of extra code. Still, the controls are really powerful, and it pays to familiarize yourself with them. Form and validation controls, especially, save you from a lot of the tedium in CF of handling post back and validation. W3Schools actually has a decent list of web server controls.
  2. The page model - ColdFusion is pretty agnostic in terms of page flow. ASP.NET is very much geared towards using post backs, and is very event driven. If you're not using a framework with CF (e.g. Model Glue), this may be foreign to you. .NET takes care of handling a lot of the post back behavior for you. Also, not to say that ColdFusion can't be object and function driven by good use of CFC's, but ASP.NET really tries to push you down the OO path compared to CF in my experience.
  3. Database access - Using ASP.NET really made me appreciate how powerful cfquery really is. The csharp-station site also has a good tutorial on working with the native .NET db tools. I haven't worked on enough projects yet to start looking around for DB access extensions; I'm pretty sure Jeff recommended something that they used for building this site, so you might check that out. Otherwise, I really suggest you familiarize yourself with the DataSet object. It's somewhat similar to a query object in CF, and lets you run query of queries, etc... Looping over queries in CF is very common, but it doesn't happen nearly as much in ASP.NET because of data binding.
Soldarnal
A: 

ADO.NET is a core concept, and I would really recommend taking a course in it. Having a qualified instructor explain exactly what the differences are between a DataSet, DataReader (and so forth -- there are a lot of different data access object types) is invaluable. Not to mention you'll better understand the appropriate time and place to use each; and you can ask questions and get immediate answers in a classroom setting.

I took an ADO.NET class (one night a week, about 8 weeks) at my local university for around $400. Even if my company hadn't paid for it, I would have been happy to, and I can highly recommend anyone trying to learn .NET do the same.

Adam Tuttle