Live data from Hacker News

How We Moved From Microsoft ASP.NET to Rails and NoSQL

infoq.com

71–80 of 101 posts

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#71

Earlier quoted context omitted.

SQL Server license: $7171 per processor - we have a single quad machine... which we'll likely need to split into two machines, incurring extra licensing fees. Our servers were hosted at MaximumASP and they gave us a bandwidth quote with additional servers that was 4 figures (remember, this is 3 years out). Visual Studio is $1200 a pop - this is for two people. I'm already at 5 figures and I didn't include Expression/…

You really don't HAVE to use SQL Server just because you're using .net you know...

If you're developing in .NET, you might as well use as much of the Microsoft stack as possible. The benefit to using Microsoft stuff is the vertical consolidation and tight integration.

Otherwise, you'll be fighting against the grain. And the support community will be much smaller (i.e. .NET w/ OSS databases).

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#72
post #43

I have learned Ruby on Rails and I am amazed that after three weeks with RoR I am more productive than after 10 years with .net I reported my own experience moving from Asp.net to Ruby on Rails in my blog a few days ago: "How an experienced developer multiplied his productivity tenfold" http://aymeric.gaurat.net/index.php/2010/how-an-experienced-...

It has been a while since I've been a newbie at Ruby/Rails, but back when I was a newbie, I was routinely shocked at how stupidly easy it was to do the same things I had been doing in Java... in a fraction of the time. You also get access to "the new hotness" a few years earlier than Enterprise Java does -- I was being warned off Memcached in Java by the MySQL guys at Sun ("Don't tell the bosses, but the Java client is not ready for prime time") literally two years after I had it in production at BCC.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#73
post #13

Earlier quoted context omitted.

A lot of developers and managers I work with don't seem to realize that what's best for Microsoft isn't necessarily what's best for another company. Instead they get stuck in a cycle of adopting whatever MS throws down the channel (this week it's Entity Framework, last week SOA concepts, etc.). Good MS developers should learn to take what's best from the open source world and apply whatever is most useful behind the…

In fairness (and as the person who made the decision that forces Sam above to use .Net technology) there are reasons to use Microsoft technology even when it isn’t the best fit. Let’s be honest about technology for a second: Things go wrong. No matter what solution you use things go wrong and for the most part non-technical management doesn’t understand that. When something goes wrong they want someone to blame. If y…

"It’s a sad reality but sometimes you can’t pick the best technical solutions."

But you can always pick a better employer.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#74
post #20
post #7

Earlier quoted context omitted.

As a long time former .NET consultant (been using it since Beta 1), once I went OSS, it was nigh impossible to return to Windows land. Right now I'm the CTO for a largish image licensing shop (think Getty, but more boutique/high end) that is entirely .NET (I inherited it). We are now in the process of moving it off Windows onto an OSS stack. It's a miserable experience. And an expensive one.

Could you elaborate why it was a "miserable experience?" Was it because of the way it was written or the framework / stack itself?

A combination of a lot of things.

For starters, the thing is architected poorly, so that does play a big factor in it. I know, I know, it's always the new guy inheriting an existing system that lays to claim that the inherited thing is a piece of garbage, but in this case it is undeniably true. And I can tell you, as someone who has been doing .NET consulting for the last 8+ years, it's not uncommon for MS based solutions to be architected this poorly, but I'll get to the reasoning behind that later.

So yes, poor architecture, lazy design choices (the wrong kind of lazy) but what is most aggravating are two other factors: cost and maintenance. Of course the very first thing I did when I settled in as the new CTO was to figure out how the thing was maintained and how much the thing was costing us a day to run. At my former CTO gig, massify.com, one of my proudest achievements was getting the daily cost of running the site below the price of a pack of cigarettes. Now we are talking about a user generated video content site with not exactly insignificant amounts of traffic and some very healthy storage requirements. When we started out, it was running us around $300 to $400 a day, but by the time I left, it was about $8 bucks give or take. And during the three years I was there, the site never came down unless we took it down for some kind of database migration or similar updating. And all of this happens thanks to OSS software and the ease of use of unix.

Now we are in a situation where we are paying for the server OS's, the SQL server instances and a variety of other utilities to keep things running. Not to mention the yearly MSDN subscriptions. That shit is expensive.

But what is worse is that it's such a pain in the ass to update and work on. Remote Desktop is retarded, but I have no choice as command line maintenance is simply gag inducing. Something that would take me mere minutes in a linux command line takes me an hour or more clicking around like an idiot in remote desktop. Good luck remotely admin'ing a windows server taking a massive CPU load. Now when I was at Massify, I could maintain and monitor our whole fleet of servers from my phone - and on a couple of occasions even did so while sitting through the previews at a movie theater. Do that on MS? MMM ... no.

But back to bad architecture and why it's endemic in the MS development world. ASP.NET. ASP.NET is such a convoluted, poorly conceived, poorly executed pile of shit. THIS IS COMING FROM SOMEONE THAT USED TO SING ITS PRAISES. And when ASP.NET is a cornerstone of .NET development, I don't think it's implausible to rationalize the rampant bad development practices of your typical MS developer back to it and other MS technologies similar to it (I'm looking at you Sharepoint). You see, MS is chock full of shitty architecture. And MS devs learn from MS. It's a cycle of shit that is constantly perpetuated by each release of some new MS technology. And I can tell you, I've seen it time and time again - working for companies like Pfizer, R/GA, some of the top 5 interactive ad agencies, etc. Finding a great MS developer is like finding a great PHP developer. They exist, but are such a minority as to be almost mythical. We used to joke that MCSD stood for Microsoft Certified Shitty Developer. Well, we always pitched it as a joke anyways, in case anyone ever overheard.

So, now we are currently wiping the slate clean and moving the whole thing to an OSS stack. And so far, even in the rough beta stages, we've already demonstrated how superior that whole ecosystem is to where it was before. It's very satisfying to show our licensing agents our new shiny search system (using a heavily modified Solr) and watching their eyes light up as we do things with it that the old MS based search engine simply could never do.

So that's my rant about that. MS is dying shit as far as I'm concerned, only used by people who are somehow locked into it, or are the bad kind of lazy and don't want to challenge themselves. I know that's not very objective, but it's the lessons I've learned.

PS. When I was interviewing with the company, I literally had a 4 hour conversation with the outgoing CTO about the benefits of MVC. He couldn't see them and I couldn't explain it to him in a way he understood. He kept pointing at ASP.NET user controls and how great they were. Of course, several months later I find a page on the admin site that is roughly 26K lines of code in the codebehind with a nice spaghetti mixture of HTML and SQL and C# code. I nearly quit when I saw it.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#75
post #31

Earlier quoted context omitted.

SQL Server license: $7171 per processor - we have a single quad machine... which we'll likely need to split into two machines, incurring extra licensing fees. Our servers were hosted at MaximumASP and they gave us a bandwidth quote with additional servers that was 4 figures (remember, this is 3 years out). Visual Studio is $1200 a pop - this is for two people. I'm already at 5 figures and I didn't include Expression/…

So then why not just replace the database and keep the rest? Were you using Linq to SQL and hence tied to SQL Server? As far as VS I'm sure it would not have been a problem for you to get free versions. However, I suppose if you were to change the database portion, probably a sizable chunk of the application, you may as well replace the whole thing...

If you're developing with .NET, you are best off using the whole Microsoft stack. The vertical consolidation and tight integration is the benefit you get for the high costs.

If you mix .NET code with significant OSS components (i.e. databases), you will incur a lot of extra setup work and hassle. There is less of a community and therefore you'll have to figure more stuff out on your own. If you're a .NET programmer for life, then this is great experience for you.

One of the traits of a good CTO is to access the community around a mix of technologies (i.e. C#/Sql Server, C#/MongoDb, or Ruby/MongoDb). If there's a good community around your technology stack, that'll streamline development a lot more. Things will just work. Many people will have already solved the problems you're bound to have.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#76

Earlier quoted context omitted.

In fairness (and as the person who made the decision that forces Sam above to use .Net technology) there are reasons to use Microsoft technology even when it isn’t the best fit. Let’s be honest about technology for a second: Things go wrong. No matter what solution you use things go wrong and for the most part non-technical management doesn’t understand that. When something goes wrong they want someone to blame. If y…

Your assumption here is that the blame game somehow is the path to productivity and "the answer". This, to me, means you have a lot of other problems where you work - your platform doesn't matter at all. You're very right, however in that no one gets fired for using Microsoft - but that's changing. Don't take my word for it - ask the guys in Building 42 - they know it too. You touch on a very particular, hot topic in…

Actually, I let two guys go at my current company exactly because they picked Microsoft technologies. And I've repeatedly begged the CEO to bring the old CTO back so I can fire him as well.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#77
post #13

Earlier quoted context omitted.

A lot of developers and managers I work with don't seem to realize that what's best for Microsoft isn't necessarily what's best for another company. Instead they get stuck in a cycle of adopting whatever MS throws down the channel (this week it's Entity Framework, last week SOA concepts, etc.). Good MS developers should learn to take what's best from the open source world and apply whatever is most useful behind the…

In fairness (and as the person who made the decision that forces Sam above to use .Net technology) there are reasons to use Microsoft technology even when it isn’t the best fit. Let’s be honest about technology for a second: Things go wrong. No matter what solution you use things go wrong and for the most part non-technical management doesn’t understand that. When something goes wrong they want someone to blame. If y…

These are justifications for giving in to a disease. Sure, there are plenty of reasons why you might be forced by the giant, short-sighted enterprise you work at to rely on less sensible software stack. There are also plenty of reasons not to try to stop a guy from being stabbed at the bus-stop you're waiting at.

That doesn't make it right.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#78
post #57

Earlier quoted context omitted.

Tell that to MySQL which runs like an ape through a mud bog on Windows.

Then put MySQL on a Linux box, no need to have it on Windows...

How many mixed platform server shops do you know of? If you're going to go linux/OSS for your DB you might as well go all the way.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#79
post #74
post #20

Earlier quoted context omitted.

Could you elaborate why it was a "miserable experience?" Was it because of the way it was written or the framework / stack itself?

A combination of a lot of things. For starters, the thing is architected poorly, so that does play a big factor in it. I know, I know, it's always the new guy inheriting an existing system that lays to claim that the inherited thing is a piece of garbage, but in this case it is undeniably true. And I can tell you, as someone who has been doing .NET consulting for the last 8+ years, it's not uncommon for MS based solu…

can you please specify which OSS stack you use.

Re: How We Moved From Microsoft ASP.NET to Rails and NoSQL

#80

Earlier quoted context omitted.

You really don't HAVE to use SQL Server just because you're using .net you know...

If you're developing in .NET, you might as well use as much of the Microsoft stack as possible. The benefit to using Microsoft stuff is the vertical consolidation and tight integration. Otherwise, you'll be fighting against the grain. And the support community will be much smaller (i.e. .NET w/ OSS databases).

No I don't agree at all. It's trivial to connect your .net applications to any database you want. If SQL Server is $7000 too expensive it's a mistake to assume you'll be better off dumping the entire .net framework just because .net + SQL Server is more popular than .net + (arbitrary DB)

I agree about using the rest of the MS stack with .net but the DB component specifically is highly modular. Let's say you want to go for PostGre or Couch. Neither of those are part of the 'RoR stack' is it? How is is any less correct to use PostGre + .net rather than PostGre + RoR? Is the PostGre + .net community really that much smaller than the PostGre + RoR? I seriously doubt it.

Post reply on HN