views:

915

answers:

4

Is there any advantage to using Django instead of ASP.NET MVC other than I might not want to use Windows and IIS?

I don't mean this as a religious type debate. I honestly don't know of any reasons other than personal preference but want to confirm this. For example, I might have only Microsoft products and be well versed in asp.net and desire to start a new project that uses MVC. Or, I might have all unix/linux servers and therefore want to use django (or apache on windows.) Or, I might have both and simply want to choose the best for reason X.

In this context does it all boil down to personal preference based upon what you happen to have in your workplace?

Thanks.

FWIW, my personal reason is because I like OS X and linux server and want a reason to use it and learn Python, but that's not much of a business justification!

A: 

Django is a good framework and have been on the market for a while. ASP.NET MVC is very new. In my opinion at hast more potential.

Koistya Navin
+1  A: 

Can't see how anyone can answer this objectively. The only reasonable answer I can think of is learn what you can about the "other technology" but unless something world shatteringly magnificent comes of your research, go with what you know well.

AnthonyWJones
A: 

If you just don't seem to be able to decide on one or the other, I'd assume they both offer the feature set your require. In which case Django would have 1 more reason being FLOSS. It still highly depends on your experience with open source solutions and how much you understand or appreciate the model.

Amr Mostafa
+5  A: 

Business justifications to do with new platforms are usually to do with five things:

  1. Outlay cost
  2. Running Cost
  3. Great support through vendors
  4. Maturity and how well proven something is
  5. Interoperability with existing key systems and open standards.

Open platforms tend to mop the floor with the first three but that does depend on a company's staff (retraining isn't cheap but if you've already got Linux/Python/Django bods, there's little concern there).

Support from open source is a little more sketchy but it's still there. The key difference is that MS owns the entire ASPNET stack, from OS, through server, to framework. Support is centralised (though that doesn't mean it's good support).

If your Linux server software blows up, you might be able to get support from your main vendor, but they might push you out to the communities. Again, no judgement on the quality of the service... But it's a slightly more intricate process.

Maturity is (IMO) the silliest of the things. Django is well proven. It's how you use it that isn't tested or proven. Of course there are exceptions. Using SVN releases of Django will probably result in the occasional hiccough.

But the BIGGEST issue and blocker for migrating is existing software. ASPNET sites won't* run on Linux but you can deploy Django on Windows. If you have key infrastructure to move over, you might have to stage things, even deploy Django on IIS for a while, until you can chuck Windows out the ...err... window.

Open standards are something relative new to management types. It's basically not finding yourself locked in five years down the road. Of course the Linux platform is great on that front but it is important to note that with any ORM (object-relationship mapper - the biz that manages your database) there is a certain lack of flexibility. You can still access the data from other places but you'll need to concentrate on it.

*Mono might work but... Yeah... There's almost no support there.


The short and curlies: It's really a subjective thing. How much of a pain migrating is really depends on your existing setup. If you have no existing setup to migrate things are easier. If you have the technical prowess, I'd wager most people would swing towards a more open system.


On a personal level, I moved to Ubuntu before I dropped ASPNET. I tried to keep it going through VMWare but eventually decided I needed something better. (This was before the ASPNET MVC framework was available) and eventually landed with Django.

I don't think I'd go back out of choice, even to an improved ASPNET -- Django is just cleaner (in my humblest of opinions).

I freelance so I can mostly suggest what frameworks to use. This has been great for learning Django but if you find yourself working full-time for one company, you might find this isn't possible.

Indeed, if you're looking for work, you're going to find a damned lot fewer jobs for Django than you will ASPNET. I doubt that'll ever reverse itself, but there is Django work out there.

Oli