Рекомендации по платформам / фреймворкам / языкам / и т. Д. Для нового проекта - PullRequest
0 голосов
/ 17 марта 2009

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

База данных: В настоящее время у меня есть возможность использовать MSSQL или MySQL. Хотя я склоняюсь к использованию MySQL, потому что он бесплатный и, скорее всего, обладает всеми необходимыми мне функциями. Однако существует возможность иметь много иерархических данных, и новый иерархический тип данных в MSSQL довольно привлекателен. Это действительно так сильно упрощает? Также MSSQL поддерживает множество более сложных функций SQL, которые могут или не могут быть полезны в долгосрочной перспективе. В то время как для разработки я могу получить доступ к Server 2008, несколько лицензий по мере роста команды разработчиков и для производства, оправданы ли затраты?

Языки программирования: Проект будет иметь интерфейс на основе веб-интерфейса и серверный компонент, который будет выполнять некоторые тяжелые работы.

Для веб-интерфейса я подумывал о том, чтобы, возможно, использовать Apache / IIS с PHP или IIS с ASP.Net на C #. Я хотел бы использовать хорошую среду для правильного использования хороших шаблонов проектирования, которые должны структурировать код и разработку приложения. А также внести изменения в долгосрочной перспективе легко реализовать. Я также хочу, чтобы графический интерфейс выглядел хорошо, и мне не нравится идея покупать элементы управления .Net у поставщиков компонентов. Вместо этого я предпочитаю использовать хороший CSS и открытые исходники, такие как YUI и javascript, чтобы сделать пользовательский интерфейс более гладким.

Для серверного компонента я думал об использовании C #. У меня нет никакого реального опыта разработки на C ++, и я хотел бы иметь хорошие библиотеки и достаточно хорошую скорость. Тем не менее, в то время как веб-интерфейс и серверный компонент слабо связаны, могут быть случаи, когда пользовательский интерфейс должен обмениваться данными (с помощью методов вызова и чего-либо другого) с серверным компонентом, и я хочу выбрать языки / платформы, которые будут хорошо работать друг друга.

Приветствуются все предложения по созданию рамок.

Контроль версий: У меня был хороший опыт работы с SVN и довольно плохой опыт работы с TFS. Я никогда не работал с GIT. Как вы думаете, что лучше с точки зрения возможностей, а также общего знакомства разработчиков. Я хочу выбрать что-то, что другие разработчики будут знать и не будут иметь проблем.

Я прошу прощения, если вопросы немного излишни, или я не предоставляю достаточно информации или использую неверную терминологию. Я планирую редактировать и улучшать вопрос по мере получения обратной связи. Спасибо!

EDIT: Кто: Скорее всего, это будет стартап, образованный студентами или младшими разработчиками. Я хочу, чтобы в проекте использовались технологии, с которыми большинство людей знакомо или которые легко освоить.

Что: мне понадобятся часы и дни, чтобы объяснить решение. Но, в конце концов, когда вы ломаете его, это веб-интерфейс (например, стандартное веб-приложение для управления данными базы данных), который будет использоваться для хорошо осведомленных клиентов. Серверный компонент будет очень отдельным, за исключением того факта, что он сможет взаимодействовать с веб-приложением.

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

Ответы [ 4 ]

1 голос
/ 19 марта 2009

Сначала вы должны выбрать платформу, а затем язык, который лучше всего подходит для этой платформы (если есть выбор).

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

В моем городе, например, платформа .NET намного дороже на одного разработчика программного обеспечения, чем на открытый исходный код, потому что разработчики .NET имеют более высокий показатель (примерно 40%). C # немного выше, чем VB.NET, но также имеет тенденцию привлекать более округлых кандидатов.

1 голос
/ 17 марта 2009

Не хотел отвечать, потому что он такой открытый. Но несколько моментов:

Деньги

Сначала проверьте BizSpark . Это должно заботиться о любом аспекте денег в течение 3 лет. Для сервисной компании это означает не только бесплатную VS Team Suite и Office и т. Д., Но и бесплатную Windows, SQL и т. Д. Если ваш стартап не может позволить себе потратить немного на технологии MS в течение 3 лет, вероятно, это плохой бизнес. Так что вынимает лицензирование.

  • На аналогичной ноте у Sun Основы запуска . Это может быть интересно с аппаратной стороны, но я на самом деле не оценил их по сравнению с Dell / HP.

Программное обеспечение

Не похоже, что у вас достаточно жесткие требования, чтобы сказать: «О, это чуть менее популярное программное обеспечение X идеально подходит для моего домена Y и даст мне очень большой импульс». На самом деле ваш проект может быть совсем не таким. Возможно, технически это будет относительно простое приложение, просто перемещающее данные или что-то еще. Вы не указали.

Для небольшого стартапа личная производительность, вероятно, превзойдет любой другой аргумент. Если ваши люди превосходны в X, то это один из ваших главных аргументов.

Если у вас действительно нет какой-то конкретной системы, с которой вам удобнее, будьте консервативны. Придерживайтесь .NET или Java, поскольку они предоставят вам самый широкий спектр полезных возможностей.

Что касается таких вещей, как ОС и базы данных, я предвзят, но я думаю, что Microsoft предоставит вам платформы, которые легче использовать, чем вы найдете в других местах. Например, настроить балансировку нагрузки, кластеризацию, централизованную аутентификацию, управление серверами (обновлениями, событиями и т. Д.) Будет проще для Windows, чем на другой платформе, если вы не являетесь экспертом в этой области. , Настройка SQL Server, даже расширенных функций, - это просто. (Пойдем, кто-то, кто не знает ни того, ни другого: настройка зеркала БД в MSSQL и MySQL - что потребует больше работы?) Опять же, все это основано на том, что у вас нет экспертов в конкретном наборе технологий.

Не смешивайте - что бы вы ни делали, держитесь за платформу. Если вы переходите на .NET, MSSQL будет лучше работать с поставщиками данных (или такими вещами, как Linq-to-SQL). Если вы решите использовать PHP, то используйте MySQL, как и все остальные, и вы столкнетесь с меньшим сопротивлением. Если вы не изобретаете вещи с технической стороны, не становитесь крайним примером.

1 голос
/ 17 марта 2009

Очевидно, что это во многом зависит от конкретных требований, но опять же, даже с теми, которые я, вероятно, не смогу сказать наверняка!

Я сам работал над проектом с нуля в течение нескольких месяцев и, как правило, нашел:

  • Выбор Microsoft для всех уровней гораздо проще (мое субъективное мнение). Например, я бы использовал C # для пользовательского интерфейса, серверной части и MSSQL для базы данных. С поставщиками, не принадлежащими Microsoft, все в порядке, я не фанат Microsoft, я просто изо всех сил пытаюсь работать с незнакомыми инструментами. Зависит от того, где лежит ваш опыт.
  • База данных: В частности, я обнаружил, что .NET и MSSQL легко идут вместе. Когда я начинал проект, я использовал PostgreSQL (потому что он бесплатный, полнофункциональный и с теплыми пушистиками с открытым исходным кодом). Однако я отказался от него в пользу MSSQL просто потому, что мне потребовалось слишком много времени, чтобы выполнить работу с базой данных на незнакомом языке с помощью незнакомых инструментов. Кроме того, я не уверен, что MSSQL более дорогой, например, для веб-приложения, MSSQL 2008 Web Edition, черт возьми, довольно дешевый для каждого процессора (я думаю, только при лицензировании SPLA). Если вы беспокоитесь о возможностях базы данных в бесплатной реализации, лично я думаю, что PostgreSQL имеет очень полный набор функций, хорошо стандартизированный и быстро растущий.
  • UI : Я довольно неопытен, но ASP.NET MVC выглядит для меня гораздо менее болезненно, чем ASP.NET Web Forms. Мне тоже нравится PHP, но я бы снова сопоставил язык пользовательского интерфейса с внутренним языком, поэтому рекомендую .NET.
  • На фреймворках , я сейчас погружен в DAL. Мне нравится Subsonic для легких данных, NHibernate для тяжелых.

Мне еще предстоит пройти долгий путь с моим проектом, поэтому, возможно, я пока вижу только краткосрочные выгоды и недостатки в данный момент. Но в целом я бы сказал: используйте технологии, которые вам наиболее удобны, так как вы будете более продуктивными, и конечный результат, вероятно, будет примерно таким же. Если вы хотите изучать новые технологии, а кто нет? - давай, просто ожидай, что это займет гораздо больше времени.

0 голосов
/ 17 марта 2009

Просто добавьте что-то совершенно другое: как насчет weblocks как веб-фреймворка? Он использует Hunchentoot в качестве сервера, который может работать автономно или с Apache. Все это делается в Common Lisp. Weblocks может использовать cl-sql в качестве внутреннего хранилища, которое может подключаться ко многим различным RDBM (MySQL, PostgreSQL, Oracle, ODBC, SQLite).

...