tags:

views:

286

answers:

8

I'm an experienced developer who has been working with .Net for the last 5 years or so. As I've been assembling an application stack for a startup idea I've had, I've noticed that many of the supporting tools that I would like to use are either flaky or have become commercial. As I have no revenue, and factoring in the cost for for Visual Studio, SQL Server (yes, I know about Biz Spark), etc, and I've suddenly realised that I should be looking elsewhere.

So, without further ado, here are my requirements and nice-to-haves. The obvious front-runners are Java and Ruby, but I'm happy to hear any other suggestions (Object oriented and compiled preferred but not required. PHP not welcome here).

Overall

  • Mandatory: Supported by shared hosting to get started
  • Desirable: Should not be too fiddly to get working (just work when components are plugged in)

Framework

  • Mandatory: Modern mvc framework
  • Mandatory: Fine-grained control over html output

Code Quality

  • Mandatory: Logging framework
  • Desirable: Static analysis (complexity, etc)
  • Desirable: Generate UML diagrams of code structure
  • Desirable: Test coverage reports

OOP Stuff

  • Mandatory: ORM that handles semi-deep hierarchies, incl many-to-many relationships.
  • Mandatory: Mock framework
  • Mandatory: IOC container (probably its own category)

IDE

  • Mandatory: Formatting assistance (indentation)
  • Mandatory: debugging: break points, variable inspection
  • Desirable: auto-completion: VS's intellisense is really nice. This is close to mandatory
  • Desirable: debugging: in-place code execution (immediate window), move current frame backwards
  • Desirable: Test framework integration

Code Quality

  • Mandatory: Test framework
  • Desirable: Code coverage
  • Desirable: Generate documentation from code comments

Build

  • Desirable: One click pull from SVN, build, test, code coverage, code documentation
  • Desirable: Continuous integration (for later when we, er, get really big)

Other notes: I'm happy using Linux (would be quite refreshing!). I'm assuming MySQL for DB, as I don't require ACID compliance (and it's probably ACID by now anyway), and SVN for source control.

Any help or suggestions would be greatly appreciated.

Edit: Currently leaning towards Sinatra, as it looks very elegant, but allows the user to have as much or as little control as they want. And I will select an answer when I think the answers have stopped.

+7  A: 
Tomh
+1 for symfony!
Peter D
Browsing through sinatra docs... looks very nice
Travis
Pros and cons of each would be nice. Thanks anyway.
jasonco
Pros and cons would indeed be nice, however I could fill a whole book about it. Thats why I provide links to the websites so people who are interested could read about it themselves and draw their own conclusion.
Tomh
+2  A: 

S#arp Architecture (Combines ASP.Net MVC and NHibernate, with NUnit and Rhino Mocks)

http://code.google.com/p/sharp-architecture/

Ben Rice
+1  A: 

Django is an excellent choice. It has nice separation of concerns without having the learning curve of something like Zope.

James Emerton
+1  A: 

Lift! It is written in Scala, represents some kind of paradigm shift among web frameworks, and a hosting service with JVM is sufficient.

thSoft
+2  A: 

The Ramaze or Sinatra Ruby microframeworks, if you want to get off to a quick start.

drizzle
Thanks. Liking what I've seen of Sinatra.
Travis
+2  A: 

Shared hosting is stronger in Ruby than Java, and since you excluded PHP (which is hugely popular in shared hosting) that one is going to lean you in Ruby's direction.

Framework: If you are using Ruby, RoR is the way to go. If you decide on Java, I would (besides the excellent recommendations in other answers) look at Rife. That is one kind of approach (more code driven). Seam + IceFaces (or RichFaces if you need some of the robustness in exchange for the widgets) is a different kind of approach, but is also effective.

Eclipse plus plugins gives you a lot of what you are looking for in terms of tools (for free). You could also look at Intellij, which is $249 for the personal license (personal just means that it is licensed in your name instead of your company's, no limitations), or RubyMine for Ruby from the same company, $99.

Continuous integration, I had great success with TeamCity, and its free at the starter level.

(No, I do not work for JetBrains, I have just had good experiences with their products).

I know I didn't tick off every one on your list, but once you add in the plugins available for the IDEs, everything on your list is covered on the above. Of course there are plenty of other frameworks. The nice thing about the non-Microsoft solutions is that there are so many options. The bad thing about the non-Microsoft solutions is that there are so many options ...

Yishai
Thank you, very informative
Travis
A: 

I would have thought that the express editions of visual studio pretty much have you covered. They meet your experience and when combined with MYSql on the back end and the million and one free developed components for .net might well do what you want.

Is there something specific that precludes them?

Tollo
A: 

Auto-completion for Ruby (and Rails)?

Jet Brain's RubyMine works great. I agree that it's all about API discovery....

Luke Bayes