Для критериев ниже, какой технологический стек подойдет лучше всего?
- Кроссплатформенность (Linux / Windows).
- Возможность запуска в качестве службы (демона).
- Мощный объектно-ориентированный доступ к данным (O / R-отображение).
- Поддержка нескольких баз данных (MsSql, Oracle, MySQl, SqlLite, Postgress).
- Можно протестировать веб-приложение (модульное и интеграционное тестирование).
- Разумная цена или нет стоимости разработки (включая IDE и другие инструменты).
- Разумное или бесплатное лицензирование (цена ОС, баз данных и т. Д.).
- Очень маленькая команда разработчиков (1-5 человек).
- Windows / .NET фон команды.
Я бы легко выбрал .NET в качестве платформы с ASP.NET MVC / NHibernate. Я хорошо разбираюсь в .NET и занимаюсь этим около 3 лет или около того. Так что это самый простой выбор для меня.
Но, похоже, слишком много проблем с ASP.NET в Mono. В основном я нашел их в сети. Но те, о которых я знаю:
- разные версии Mono на разных хостах
- различное поведение некоторых объектов на разных платформах (некоторое время назад Айенде писал об этом в своем блоге)
- консервативный сборщик мусора
- законно выдает с MS.
Мне особенно нравится Ruby как язык, но я не уверен, что для выполнения пунктов 2, 3, 4 требуется много хитростей.
Что касается Java, по какой-то причине я просто не могу этого сделать. Каждый раз, когда мне нужно написать get / set вместо свойства, я возвращаюсь к C #. Я бы сделал Java, если бы не было .NET 2/3.
Итак, 2 основных вопроса:
- Какой язык подойдет лучше всего?
- Какие связанные технологии будут полезны?