The Very Last ALT.Net Retrospective I’ll Ever Write

I’m on the latest episode of DotNetRocks (episode 1655) mostly talking about the .Net Core ecosystem and catching them up on the latest on Marten. Richard caught me a little off guard when he asked me if I thought after all this time that ALT.Net had been a success considering how Microsoft has embraced Open Source development as a model for themselves and the community as a whole.

If you’re in .Net and wondering what the hell is this “ALT.Net” thing, check out my article in MSDN from 2008 called What is ALT.NET? (that I was pleasantly surprised was still online to be honest). In short, it was a community in .Net of vaguely like-minded folks who were mostly drawn from the .Net blogging world and nascent OSS ecosystem of that time. I still think that the original couple ALT.Net Open Spaces events in Austin and Seattle were the best technical events and most impressive group of folks I’ve ever gotten to be around. As Richard had to bring up on DotNetRocks, the “movement” crystallized in some part because several of us crashed a session at the MVP summit in 2007 where the very earliest version of Entity Framework was being demonstrated and it, um, wasn’t good. At all.

Quoting from David Laribee’s original “ALT.Net Manifesto”:

  1. You’re the type of developer who uses what works while keeping an eye out for a better way.
  2. You reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby, etc.
  3. You’re not content with the status quo. Things can always be better expressed, more elegant and simple, more mutable, higher quality, etc.
  4. You know tools are great, but they only take you so far. It’s the principles and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principles 

If you’d asked me personally in 2007-2008 what I thought ALT.Net was about and could maybe achieve it would be something like:

  • Introducing better software practices like Continuous Integration and TDD/BDD pulled from Agile software development. Heck, honestly I’d say that it was getting the .Net world to adopt Agile techniques — and at that time it was going to take some significant changes to the way the .Net mainstream built applications because the Microsoft technology of the day was a very poor fit for Agile development techniques (*cough* WebForms *cough*).
  • Opening the .Net community as a whole from ideas and tooling from outside the strict Microsoft ecosystem. I remember a lot of commentary about the “Microsoft monoculture”
  • And yes, to make .Net be much more OSS friendly.
  • Have a .Net community of practitioners that wasn’t focused solely on Microsoft tools. I remember being very critical of the Microsoft MVP/Regional Director camp at the time, even though I was a C# MVP at that time.

Like I said earlier, as an active participant in ALT.Net it was a tremendous experience, I learned a lot, and met some great folks that I’m friends with to this day. We unfortunately had some toxic personalities involved and the backlash from the mainstream .Net world more or less did ALT.Net in. I’d argue that ALT.Net as a distinct thing and any hopes of being a vibrant, transformative force within .Net was pretty well destroyed when Scott Hanselman did this:

whysomean

I’ll have to admit that even after a decade I still have some hard feelings toward many .Net celebrities of that day.

So, after all this time, do I think ALT.Net was successful? 

Eh, maybe, sort of. I think it’s possible that the positive changes would have happened over time anyway. I think it’s much more likely that folks like Hanselman, Phil Haack, Brad Wilson, Glenn Block, Jon Galloway and many others working within Microsoft made a much bigger difference in the end than we ALT.Net rabble rousers did from the outside.

ALT.Net was very successful in terms of bringing some people together who are still among the technical community leaders, so that’s a positive. I still think the .Net community is a little too focused on Microsoft, but I like the technical stuff and guidance coming out of Redmond much, much better now than I did in ’07-’08 and I do think that ALT.Net had some impact on that.

I think you could claim that ALT.Net had some influence in moving things in better directions, but it required a lot more time than we’d anticipated and it maybe inevitably had to come about by Microsoft itself changing. For those of you who don’t know this, Scott Guthrie did the first public demonstration of what became ASP.Net MVC in Austin at the initial ALT.Net Open Spaces event, partially in reaction to how so many of us at that time were very negatively comparing WebForms of the day to what we were seeing in Ruby on Rails.

One of my big bugaboos at that time was how bad of a fit the mainstream .Net tools from Microsoft were for Agile Software Development practices like TDD and CI (you almost had to have Visual Studio.Net installed on your build server back in those days, and the dominant .Net tools of the day were horrible for testability). Looking at ASP.Net Core today, I think that the approaches they use are very much appropriate for modern Agile development practices.

I have mixed things to say about the state of OSS in .Net. Microsoft no longer tries to actively kill off OSS alternatives the way they did in the early days. Nuget obviously helps quite a bit. Microsoft themselves using GitHub and an OSS model for much of their own development helps tremendously. There’s still the issue of Microsoft frequently destroying OSS alternatives with their own tools instead of embracing things from the community. This is worth a later blog post, but I see a lot of things in .Net Core (the DI abstractions that we all hated at first, the IHostBuilder idea, the vastly better configuration model) that I think act as a very good foundation that makes it easier to OSS authors to integrate their tools into .Net Core applications — so that’s definitely good.

And yes, I think that the latest EF Core is fine as a heavy ORM today, after it basically ditched all the silly stuff we complained about in EF v1 back then and adopted a lot of thinking from OSS NHibernate (pssst, EF Core “code first” looks a lot like Fluent NHibernate that came out of the community many years earlier). But at this point I’d much rather use NoSQL tools like Marten, so I’m not sure you’re getting too much from me there;)

The .Net world and Microsoft itself is much more open to ideas that originate in other development communities, and I think that’s a strength of .Net at this point to be honest. Hell, a lot of what I really like about the dotnet cli and .Net Core is very clearly influenced by Node.js and other platforms.

.Net is still too Microsoft-centric in my opinion, but there’s more community now that isn’t just regurgitating MSDN documentation. I still think the MVP program is hurtful over all, but that might just be me. Compared to the world of 2007, now is much better.

8 thoughts on “The Very Last ALT.Net Retrospective I’ll Ever Write

  1. Man, that timeline fills in a lot of holes in my memory. I started at Microsoft in 2009 working in the group that did all of the community stuff (Forums, CodePlex, VS Galleries, reputation system, etc.). The change was already in motion, if moving very slowly at the time. The folks already there were pretty tight with Brad Wilson, Jim Newkirk and others, and obviously with CodePlex we all felt pretty strongly about OSS as a way forward. The significant change didn’t happen until after I left in 2011, but we are in it now.

    Thank you for maintaining your projects. They’ve made a real difference for me over the years.

  2. Having you, Dave, and Scott invite me to the first ALT.Net summit in Austin was a huge turning point in my career. I was reading blogs, dipping my toes in various tech communities, and trying to learn and improve, but that first Open Spaces event was uniquely transformative. I’ll forever be grateful for how open and welcoming everyone was, and how much I learned and brought back to my local community and teams. I also was really frustrated by the “Hanselman moment” because that was not the community I was experiencing at all, and it completely diminished the overwhelmingly positive intentions of so many of the leaders and members to focus on negativity and infighting.

    Looking forward to listening to the .NET Rocks episode as well. Anyway, I second Jeff’s sentiment – thanks for the knowledge, food for thought, and just plain friendliness you’ve shared over so many years of contributions to the tech community.

    1. Did you happen to notice the picture? That incident with the “Why so mean?” card was all over online when that happened and made ALT.NET seem toxic, and that was basically the end of the little movement, such as it was.

      1. Hi Jeremy. Yeah, the picture was barely legible. I was able to find a higher resolution copy online, but I couldn’t really find any context to it, which is why I was asking. I’ve known for ALT.NET for a long time and always enjoyed the things that came out of it, but I guess I missed that incident. I was just surprised. I think that yes, endorsement or support of a technical celebrity could help ALT.NET a lot, but I just find it extreme to say that a single incident could undo or stop the whole thing. I actually think ALT.NET was successful and extremely beneficial to the .NET ecosystem, and thanks for your contributions to it.

      2. Given how much Scott Hanselman has done for the community (as you say), it was strange to not have more context here. I was not there, and didn’t follow the conversation at the time, but with no other data, “Why so mean?” seems to say to me – “Hey, the intentions and goals of Alt.NET are awesome, and we’ll get even more traction if we try to be constructive and positive.” From the outside, it’s hard to believe there was a homogeneous, negative “death-knell” reaction to Scott Hanselman, privilege-donor-extraordinaire, challenging a few folks to maybe grow up a little bit.  

      3. I sure that Hanselman had the best of intentions, but that picture went viral, and after having the great Scott Hanselman de facto label us all as jerks in public — even though that was mostly directed at one individual — that was that. Hanselman has done a lot for the .Net community and Hanselman might have unintentionally put a stake through the heart of ALT.Net are not mutually exclusive things.

Leave a comment