Wednesday, August 11, 2010

So You Want To Be A .NET Dev

Before I open the flamegates please note this post is a tongue in cheek reply to Kevin Gisi's excellent "So You Want To Be A Ruby Dev". I personally work in both platforms and they each have their pluses and minuses. Kevin's post is both scathingly hilarious and sadly true I hope this rings the same way.

So You Want To Be A .NET Dev

Fantastic, welcome aboard! The .NET community is a somewhat fractured but enormous place to be. Some of us follow test-driven development (and a library or two might have tests if your lucky), configuration over convention and the Alt.NET guys have heard of agile methodologies. We have documentation tools like... comments.... and xml comments... which means that if the devs who wrote the library your working on have read Code Complete it might not be a bunch of spaghetti code. So leave your hippy language and development stack, and come join the corporate monolith - maintaining job security by using only the best tools from Microsoft (tm).

So, let's get you started! You'll want to grab a copy of the .NET Framework. Which Framework? Well seeing as how your probably going to be building new apps and maintaining apps from 2001 you should probably just install all of them. 1.1, 2.0, 3.5 and 4.0 are all available to download on There's also 1.0 but we don't speak of that, and mono but no one uses that. What's the difference? Well mostly features, we have a LOT of people to support after all so each new version shoehorns more and more stuff in until we can be everything for everyone. We wouldn't want to have to rely on the community to add new things... who would support it? Don't worry you can install all of them at the same time, they play nice, but I hope you have a nice big hard drive on your PC.

Oh, you're running OSX? Hmm... well, you could try install Windows? No.. well how about VMWare or Parallels. You know those virtualization products that make your computer work like Windows. IDE? Well that one's easy you're going to need Visual Studio, but which one? Well you could install Visual Studio 2010. With that you'll be able to maintain all those .NET 2.0 - 4.0 applications, but you're also going to need Visual Studio 2003 for those old pesky 1.1 "legacy" apps. That said you better hope your whole team is on 2010 otherwise your project files will get hosed and no one will be able to open your solution. What's a project or solution? Well let's talk about that later OK? Oh and you're going to want to buy Resharper, seriously all the best .NET people use it. It adds all the stuff to Visual Studio 2010 that Microsoft will "borrow" and add for 2012. None of us really use Macs...

Ready to get started? Alrighty, well which framework do you want to use? The two big web ones are Webforms and MVC. Webforms is typically used in huge applications for massive corporations that don't know any better. It has a great designer and you can build your entire high maintenance app without writing a single line of code, isn't that awesome? MVC is our newest pet project that all the big wigs in the "community" swear by. Its a distinctly Microsoft invention, you see they broke apart data access, application logic and view rendering and introduced unit testing. It's revolutionary, we didn't borrow the concept or project layout from anyone especially not those ruby on rails blokes. For windows client dev you can use WPF or Winforms but you should really use WPF. Sure it still feels like beta software after two major revisions, but its new and shiny and we promise not to depreciate it in a week in favor of something new. Speaking of something new there's also silverlight which is kinda like webforms and kinda like wpf and kinda like flash.

OK next up is our package management app. Hahahaha just kidding we don't have one. First off why would you ever want to use a tool not made by Microsoft? If you MUST there's lots of excellent control libraries our partners like DevExpress and Telerik have built, their sales staff would be happy to help you configure them. Sometimes different versions even play nice together. We have a really nice Word doc for you to read that explains all the dependencies you need to install, by next week you should be up and running.

Oh, by the way a lot of those third party libraries are now designed for .NET 4, but don't worry you can still use the old versions, if you can find them.

As far as database persistence goes well you'll be using SQL Server for sure. Best get that checkbook back out. Oh you mean code wise, well there's Datasets, Linq to SQL (but we already cancelled that), EF1 (but its universally panned) and EF4 CTP (but even our own MVPs admit that's 3 years behind what other communities have.) You could also use NHibernate but that's not built by Microsoft so good luck getting it by your CIO or MVP Architect.

Hmmm authentication? Well you'll probably want to use the built in authentication provider, and its actually pretty good it even supports security roles. Unfortunately if you're in MVC it doesn't really follow database conventions but it'll work.

Last thing, we'll have to set you up in our TFS system. TFS is this great version control tool Microsoft gave us that's light years ahead of their old tool SourceSafe, it only screws up a merge or loses information occasionally. You need to work offline? Well.. you CAN but you'll be prompted a few times to reconnect and sometimes your code won't merge back in to the server right. It's 2010 when would you not have an internet connection? Also just to limit those pesky merges we've turned on locking checkouts, we wouldn't want people working on the same file, that would be chaos.

Anyway welcome to the team, I'll swing by in a week and see if you've gotten anything done.

No comments:

Post a Comment