Wednesday, May 25, 2011

Decisions Decisions

Here's a list of the following issues that I have ran into just deciding how to start my project:

jQuery or Prototype
ASP.NET MVC or ASP.NET Web Forms
Razor or Spark
NHibernate or Entity Framework 4
MS SQL Server or MySQL
Castle Windsor or Unity or ...
Mercurial or Git

Why did I choose jQuery over Prototype? I'm more familiar with it. jQuery is easily more popular as well. That doesn't really mean anything to be honest. Prototype could probably be just as capable. If not, more.

ASP.NET MVC over WebForms? That's quite simple. WebForms has the page lifecycle. I hate the page lifecycle mechanism. You either play with the web or you don't. Also, the fact that Ruby and Python follow this type of methodology: it just makes me think there's no going back. What's funny is that I've been doing WebForms for a while and things have just gravitated away from using .NET controls.

I chose Razor over Spark just because I went through a Razor tutorial. I don't think ViewEngines are particularly special. I'm sure I could swap and rewrite entire Views if there was a giant issue ... which I don't think is possible.

NHibernate VS EF4 ... this has been my biggest battle. I'm choosing NHibernate simply because it's more mature. I don't doubt that EF4 has its advantages but I've decided on what I've decided on.

MS SQL Server vs MySQL. For this stuff, it's quite obvious. I'm going with MS SQL ... it's a .NET Stack. It's an expensive option though. I would not want to get licenses for my servers for this stuff.

Castle Windor ... for the hell of it. There's also Ninject and a few others. I don't really care that much about IoC containers right now. Castle Windsor is easier to set-up so it wins.

Mercurial has BitBucket, so it wins. Otherwise I'll need to OpenSource my projects. TortoiseHg looks like an interesting product as well. Straying away from TFS now reminds me of the TortoiseSVN days.

My task list for tomorrow is to go through FluentHibernate / Hibernate and Mercurial tutorials. Also writing the scripts to set-up the database and then check-in the solution for the first time.

Joys.

Tuesday, May 24, 2011

Program Management Software

I am currently unemployed. We're attempting to undertake a fairly ambitious project. I've attempted to work on ambitious projects before. They've never went well.

In any case, here's the technology stack: ASP.NET MVC3, C#, MS SQL, NHibernate.

I found a website called S#arpArchitecture. It takes three technologies and builds up the information for you so that you can just easily get started with your application.

What's my problem with Sharp Arch right now? Two years ago I read a post about the need to separate controllers into a separate assembly. Without doing so it'd lead to code degradation and a higher probability of messing up.

Last month they put it back to restore IDE functionality and saying it's trivial to remove if that's your bag. Not much of a justification.

I went through the Orchard code and I'm not sure but I think they attempted to do authorization in a controller class. I'm sure they did it properly so that even if you add a Cache attribute that you won't get funny behaviour. My only issue is that there are Authorize attributes that facilitate everything you need.

I've also never use NHibernate before and I'm contemplating whether I should use EF4 or NHibernate. This is frustrating.