So, while my time is mine, I've decided that I want to expand my practical horizons. And, one of the first things I can think of is to go lateral and approach something I've looked upon with mild disdain: Microsoft technologies. In particular: .NET

I already understand Unix well enough to do damn near anything -- this is not to say that there aren't still years worth of things left for me to learn in that sphere, but I'm not nearly as adept with Microsoft's offerings. And, besides the practical concerns with being flexible enough to take on what work the world offers me, I also have a hunch that this .NET thing will make me think as differently about Microsoft as OS X made me change my mind about Apple.

Maybe. But it's still a good attitude with which a punk unixhead can approach the subject, I think. I'm going to assume that brighter people than myself have applied themselves to the creation of .NET and prepare to be surprised. This attitude has always served me well in the past when trying something new. (Take Python, for instance.)

Okay. Got a good attitude. Have installations of WinXP and Win2003 preview (which I'm kinda, grudgingly digging so far) running in Virtual PC on my ?PowerBook. Could even draft a PC at home into service running an appropriate OS if need be. Have downloaded the .NET Framework and installed it on XP and Win2k3.

Now what? Were this Java, I'd pop open an emacs window and start playing. I'd grab some free app servers and check some things out. Being on a fixed budget, I don't think I can spring for any packages like Visual Studio .NET. And being a unixhead, I'm used to being able to find dev tools for free.

Anyway, this absolute newbie is continuing to poke around.


Archived Comments

  • I made a similar choice not long ago. Actually, I just realized that there was a tool I really needed and the only easy way to meet the need quickly was to teach myself a little C# and just get it done. First, I would check out SharpDevelop from It's a free C# editor that's pretty nice and rather feature complete as far as I can tell. Of course, it just uses the underlying tool that come with the .NET Framework SDK (which you'll want to download and install if you haven't already -- this is not the same thing as the Framework itself). Next, go check out The Oreilly Network. There's a handful of good articles on there to check out and get a feel for the language, including a series (can't rememeber the title and don't have time to find the link) that compares java and C# -- very useful stuff. At some point, though, you just have to pick a target (some small tool or whatever) and start coding away. I still haven't fully explored the language, but having programmed in java for many years, I've found that it's a pretty simple language to pick up. And, being that I'm stuck on MS platforms for work, it's nice to be able to code directly to the underlying API.
  • Just to amplify - everything in .NET can be done with command-line tools; #Develop or VS.NET are just shells on top of that. So just use your own favorite editor. The Framework SDK is at . When you install it, one thing you'll get is a selection of samples & quickstart tutorials that will get you up and running.
  • Here are some more links you might be interested in:
  • You may want to check out I installed the 'Web Matrix' and tried out some of the samples. Pretty interesting stuff.
  • Don't forget Mono, a Linux implementation of the C# spec. IRC clients, media players and documentation browsers have all been written on it, so it does work.
  • Alas, I've tried installing Mono under OS X a few times without success. This latest time, I tried via Fink, which seemed to work on the installation side yet does nothing but throw Bus Errors when I try compiling or running anything. :(
  • I think your attitude is just right, and indeed, the class libraries underneath .net are really elegant IMO. I tell people it's "java done right"... C# is nice, too -- the other legacy langs in .net variants, I don't think are quite so nice. Anyhow, I have to write a small windows app/util now and then, and from now on I'm using C#. But for web stuff, which is my bread and butter, I just, frankly, don't trust microsoft enough to expend the time, energy, and effort to building things with or similar. I don't want to be locked to their platform. (And if you believe they're going to be happy if/when mono "finishes", and can run the same apps without compiling on linux, you're nuts--they'll subvert it like hell *when*appropriate*. Right now it's not appropriate to their business needs; in fact it's quite useful for them to seem to be supportive of it.) Just remember that microsoft is a business first and foremost, and wins by having people use their platforms. To me, the public wins by using a common platform, which for the kinds of things I build, they do--the web. The code I invest my time in, should run "on the web", and that implies to me hardware-agnostic, OS-agnostic. That puts the power back into my hands, allowing me to find the right hardware and OS for the particular systems' needs, not "the only one I know how to program on", such as .Net, or VB. [C# is open, and the language is great--but mostly who cares, without the libraries? And the libraries only run right now, 100%, and I'd argue, forever only >90%, on Microsoft OSes.] OK, that was rambling, sorry :-) I've thought about this a lot, and while I haven't the time or organizational skills at the moment to truly effectively convey my opinion, at least I feel a little better!
  • hey les, long time no see. sorry to hear about your jobless sitch, but ... good to see you're using it for good. i'm also getting hooked on the .NET thing, i'm finally grokking the tech they're embracing. i think it's pretty cool, and can finally let me do some of the more interesting things i have wanted to do. i think the rotor source should install on os x, which would be a nicer, faster way to do it. i know mono works on linux-ppc, so the underlying processor support is there. a few links: anyhow, you can see where this is going: you should have support for .NET on os x. happy hacking.
  • Eclipse has a C# plugin, if you can get Mono running you can completely avoid Virtual PC.
  • Why dont you give the shared source cli a try (SSCLI or ROTOR)? It compiles on the OSX command line.