Какой технологический стек выбрать - PullRequest
3 голосов
/ 02 декабря 2009

Для критериев ниже, какой технологический стек подойдет лучше всего?

  1. Кроссплатформенность (Linux / Windows).
  2. Возможность запуска в качестве службы (демона).
  3. Мощный объектно-ориентированный доступ к данным (O / R-отображение).
  4. Поддержка нескольких баз данных (MsSql, Oracle, MySQl, SqlLite, Postgress).
  5. Можно протестировать веб-приложение (модульное и интеграционное тестирование).
  6. Разумная цена или нет стоимости разработки (включая IDE и другие инструменты).
  7. Разумное или бесплатное лицензирование (цена ОС, баз данных и т. Д.).
  8. Очень маленькая команда разработчиков (1-5 человек).
  9. 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 основных вопроса:

  • Какой язык подойдет лучше всего?
  • Какие связанные технологии будут полезны?

Ответы [ 5 ]

7 голосов
/ 02 декабря 2009

Стандартное предложение будет:

  • Java (кроссплатформенный)
  • JSF для уровня представления. JSF более или менее похож на ASP.NET (и Java и C # также похожи), поэтому фон .NET не будет такой проблемой.
  • Hibernate / JPA (мощная поддержка нескольких баз данных)
  • Селен, JSFUnit, JUnit, TestNG для тестирования
  • Eclipse + плагины - в основном бесплатно
  • PostgreSQL - мощный и бесплатный
  • Некоторые дистрибутивы Linux для ОС
  • пружинный каркас - у вас нет особых требований для этого, но он облегчает вашу жизнь.
4 голосов
/ 02 декабря 2009

Хорошая новость заключается в том, что в Ruby есть несколько превосходных пакетов для отображения O / R. Попробуйте ActiveRecord (который является частью Rails). Отображение O / R в Ruby даже проще, чем в Java - там вам не нужно генерировать код для соответствия статической системе типов, ActiveRecord использует method_missing для эмуляции необходимых вызовов функций.

То же самое для драйверов баз данных - они являются привязками Ruby для большинства основных баз данных.

Если вы заинтересованы в Ruby, то Ruby on Rails покроет большинство ваших требований (за исключением работы с командой, которая наиболее знакома с Windows / .NET). Вы также можете запустить Rails на JRuby (который Ruby скомпилирован в JVM).

2 голосов
/ 02 декабря 2009

Я предложу пойти на Java

  • Java
  • SpringFramework
  • Freemarker / Velocity
  • Hibernate
  • Eclipse + плагины - в основном бесплатные [скопировано с Божо;)]
  • MySQL - мощный и бесплатный
1 голос
/ 06 декабря 2009

Я бы сказал:

Язык

Python, PHP или Java, все они очень хорошо работают как в Linux, так и в Windows. Оба сообщества часто предлагают поддержку обеих операционных систем в отличие от сообщества Ruby

1010 * Framework *

Django (python) или Zend Framework (php)

База данных

Любой, все перечисленные языки имеют драйверы для самых популярных баз данных, таких как Mysql, Postgresql, MSsql, Oracle.

Os

Выберите все, что вам наиболее удобно при управлении. Подумайте о том, как нужно учиться работать против стоимости лицензии. Поскольку предлагаемые технологии являются кроссплатформенными, это не имеет значения.

1 голос
/ 02 декабря 2009

Любая из этих опций должна работать для вас (хотя это сложный вызов):

Удачи. Будет интересно посмотреть, как разработчики .NET относятся к переходу с .NET на что-то другое.

...