Suggestions for getting started with Dot Net development?
January 2, 2009 12:38 PM   Subscribe

Do you have any suggestions for getting started with Dot Net development?

I'm looking to start learning about Dot Net development. I'd like recommendations for where to begin.

First, for a little background, I am (I believe) a competent programmer with a lot of experience in a diverse set of languages, operating systems, environments, and programming paradigms, so you don't have to suggest very basic things (such as if I were instead asking "I'm looking to start learning how to become a programmer, and I want to use Dot Net to do it").

But I know very little about Dot Net. I'd like suggestions on how to start learning - good tools to use, books to read, websites/blogs/feeds to look at, et cetera, on pretty much any subject - how to learn the contents of the framework class library, best practices, unit testing, documentation generation, code coverage, distributable packaging, what the heck's a XAML and why/how would I use it instead of whatever the heck a WPF is, what the latest indecipherable acronym du jour means, ... anything, basically.

A little additional info that may be helpful in answering: I have settled on starting with SharpDevelop as my main programming tool for this, along with various tools that it is made to work hand-in-hand with - FxCop and StyleCop, for example.

Thanks in advance. Any and all suggestions will be appreciated greatly.
posted by Flunkie to Computers & Internet (18 answers total) 7 users marked this as a favorite
Why not use Visual Studio like the other 99.5% of developers? All the guides assume you are using VS. You are probably setting yourself up for grief by choosing otherwise. Get the free versions, the tutorials are generally ok with that.

That aside, what is your programming background? If you do java, you will find c# really familiar. What kind of programming do you want to do? Half of doing .net dev is the code and the libraries, the other half is understanding the frameworks. and winforms are really different types of application development.

Again, your experience matters here too. A php developer might find baffling for framework reasons. In that case, the path of least resistance might be playing with the "totally alien and hence not frustrating" winforms before working with the "functionally similar but implemented with a totally different approach from php"
posted by brian60640 at 12:48 PM on January 2, 2009

You should really read CLR Via C#

I agree with brian... I'd at least start with VS. VS 2008 Express is free...
posted by Glendale at 12:59 PM on January 2, 2009

Thirding VS.
posted by Artw at 1:03 PM on January 2, 2009

Response by poster: Answering brian60640's questions:

I am not fundamentally opposed to using Visual Studio, but I have thus far decided against it for several reasons. For example, the crippled free version is (I believe) not allowed for commercial use, I would rather not ask my boss to purchase a license for the non-free version at this time, and if there's a decent alternative that is both free and non-crippled, I'd rather use that from the get-go than learn one then learn the other.

I am not far enough into my investigations to know if SharpDevelop is "decent", and as I said I'm not fundamentally opposed to VS, but that sort of thing is basically why I've decided against it initially. I will look into using it, though.

I'm experienced with Java, and have pretty much decided upon C# as my default language of choice for Dot Net.

I would mostly be doing desktop programming, not web programming, and I'm therefore not going to be dedicating much if any time at the moment to learning ASP.Net and such.

Regarding that desktop programming, I will be doing presentation layer stuff, backend support for it, framework code (by which I do not mean "the Dot Net Framework"), low level library code, et cetera. If it goes into a desktop app, you name it, I'll be doing it.
posted by Flunkie at 1:05 PM on January 2, 2009

Fourthing VS.

C# is pretty much indistinguishable from Java. At least, that's how it seemed when I worked in a .NET environment for a few months a couple years ago. You'll be fine.
posted by ewingpatriarch at 1:11 PM on January 2, 2009

From the faq:

Can I use Express Editions for commercial use? Yes, there are no licensing restrictions for applications built using Visual Studio

So looks like you're good to go on that front.
posted by Artw at 1:14 PM on January 2, 2009

I would also second the idea of learned with the Visual Studio Express Editions, you'll get up to speed much quicker. Once you've gotten past the basics, you could then switch to SharpDevelop, or notepad, or Borland Delphi.NET or whatever environment you want. Here's some websites that helped me: - Microsoft's one-stop-shop for training videos, podcasts, blah, blah, blah. All related to dev stuff. - Microsoft Developer Network, all the technical docs you could want. - Bascially for programming nerds. - Official website with tons of "How do I" videos and tutorials. - Community based website where people can submit articles about how to do various things in C++/C#/VB
posted by blue_beetle at 1:15 PM on January 2, 2009 [1 favorite]

blogs i read regularly (in no particular order):

if you do decide to switch to visual studio i would suggest investing in resharper.
posted by phil at 1:16 PM on January 2, 2009 [1 favorite]

VS 2008 Express is a really nice enviroment, and i'd be shocked if it wasn't head and shoulders over any of the alternatives you're looking at. I wouldn't particularly call it crippled, though I'd suggest getting your boss to shell out for a full version.
posted by Artw at 1:17 PM on January 2, 2009

Response by poster:
Can I use Express Editions for commercial use? Yes, there are no licensing restrictions for applications built using Visual Studio
Woah, great! I don't know why I thought otherwise - I was pretty sure that I had explicitly looked this up a while back, but I guess I just imagined it.

OK, let me modify my original statement:
I have not settled on starting with SharpDevelop as my main programming tool for this
posted by Flunkie at 1:18 PM on January 2, 2009

Don't worry, from my googling it seems like a lot of people have made the same assumption.
posted by Artw at 1:32 PM on January 2, 2009

Response by poster: Or perhaps even:
I have settled on not starting with SharpDevelop as my main programming tool for this
posted by Flunkie at 1:33 PM on January 2, 2009

in addition to the previously mentioned blogs i am a big fan of the following tools. most of them are not free, i hope that is not an issue.

resharper (it is worth mentioning twice).
agent smith - a plugin for r#.
teamcity - continues integration and some code analysis.
dottrace - profiler
ndepend advanced code analysis.

wow that's a lot of jetbrains tools. i swear i don't wok for them... they just make good products.
posted by phil at 1:39 PM on January 2, 2009

Response by poster:
most of them are not free, i hope that is not an issue.
As long as I can try them without buying them, or at the very least get detailed info on them on their website, it's not.
posted by Flunkie at 1:40 PM on January 2, 2009

There was a point in time in which MS offered a free (but only for for non-commercial use) IDE, but not since after Visual Studio 2005 was released. That might be what you had been thinking of.

Some of the biggest missing features for Visual C# 2008 Express Edition are plug-in support and dynamic help. Dynamic help was pretty darn useful in the 2005 edition, but you still can use the normal MSDN help (seperate download, I believe). The differences between Visual C++ Express Edition and the Professional Edition are more glaring, but still pretty miniscule for the majority of users.
posted by Green With You at 1:50 PM on January 2, 2009

if you are an experienced java developer, most of the popular frameworks have been ported to c#. unfortunately there are no standard naming convention, but more often than not j/java is replaced with n/net. for example:

log4j -> log4net
junit -> nunit
spring ->
posted by phil at 2:05 PM on January 2, 2009

WPF is great for building clean, modern UI. You will want to use it if you need any kind of buttons, controls, widgets, etc for a desktop application. Every developer and tester I know has a well-thumbed copy of WPF Unleashed on his/her desk. I also second the recommendation of CLR via C#, though you will need another reference for 3.0 and 3.5 language features. Look for something on LINQ.

.NET Reflector will also save your ass once or twice.
posted by crazycanuck at 2:23 PM on January 2, 2009

reflector is indeed a great tool; however, i have never used the version linked to by crazycanuck. i have always used lutz roeder's freeware version, which was eventually purchased by red gate. note that they still offer the product free of charge.
posted by phil at 3:02 PM on January 2, 2009

« Older Help me load up an anti-malware tookit   |   Moving from Dreamhost to Lunarpages Newer »
This thread is closed to new comments.