Java / JRuby в Rails vs .NET 3.5 ... чувствую, что я делаю это неправильно - PullRequest
0 голосов
/ 29 декабря 2008

Я планирую разработать веб-сервисы (клиент SOAP для C ++) на Java с Metro / Hibernate и подготовить его к веб-сайту, написанному на JRuby on Rails, соединяющему модули Java через JRuby и, как правило, через базу данных. , Я уже написал некоторый код и все настроил.

Теперь я слышал, что .NET 3.5 действительно мощный, и после некоторого прочтения я признал, что это правда. Однако имеет ли смысл отбросить этот чудовищный, но любопытный гибрид Java и RoR, чтобы переключить все на .NET? Все: услуги, подключение к базе данных (linq для объектов), web-front, ajax - все в одном огромном решении .NET 3.5.

Я также хочу повеселиться, но не так весело, как, скажем, в C ++ для серверной части:)

Я знаю, что с силой RoR действительно не имеет значения, является ли это какой-либо из сторон. Тем не менее, независимо от того, настроен ли я на .NET или Java, у меня все еще есть чувство, что я делаю это неправильно, и я должен просто переключиться на «not-side-I'm-now-on».

У меня очень ограниченный опыт веб-разработки, я написал веб-сервис ASP.NET только один раз и поддерживал веб-сервис Java, поэтому у меня есть настоящий OCD с выбором платформ здесь.

Ответы [ 4 ]

4 голосов
/ 29 декабря 2008

.NET 3.5 доставляет массу удовольствия (среди основных платформ), но, по моему личному мнению, Ruby такой же веселый, как и не более увлекательный, чем .NET 3.5.

Что касается возможностей, они также примерно эквивалентны, вы, безусловно, можете сделать приложение веб-служб SOAP в обоих без проблем.

Что касается "чудовищного гибрида", такого понятия не существует, это просто (очень активный) порт, такой как IronRuby или IronPython в .NET land.

Будет больше связного целого, если вы будете вставлять в .NET и писать, скажем, на C #, чем если вы, конечно, будете смешивать и сочетать Ruby и Java. Но вы, конечно, можете использовать только JRuby.

Учитывая, что факторы веселья и возможностей более или менее равны, я бы выбрал JRuby, на случай, если мне придется развернуть на Linux, Solaris или что-то, что не будет Windows в будущем.

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

2 голосов
/ 29 декабря 2008

Извините, но то, что вы делаете, звучит как большой мяч из грязи. Мне не важно, какой путь вы выберете, но я бы упростил архитектуру, сократив количество используемых вами технологий / сред. Если вы можете найти способ сделать это в Ruby / Rails без ссылки на Java (хотя вам может потребоваться сохранить клиентскую часть C ++), это будет работать. Очевидно, что работа в .NET (моя предпочтительная платформа) - другой выбор. Windows Communication Foundation значительно упрощает создание веб-служб, которые имеют меньший вес, чем старые веб-службы ASP.NET, включая веб-службы RESTful, использующие JSON.

Если бы я делал это сегодня, я бы использовал ASP.NET MVC для веб-интерфейса, WCF (для веб-служб) и либо исключил бы клиент C ++, либо подумал бы о написании его на C # с .NET или Mono.

0 голосов
/ 29 декабря 2008

Я бы предпочел перейти на FreeBSD или Debian в будущем ... Я уверен, что не хочу оставаться в Windows вечно. Но есть моно, верно?

0 голосов
/ 29 декабря 2008

Для меня это звучит так, будто вы немного перепланировали или перепроектировали. Я не совсем чётко представляю вашу архитектуру, читая, но я вижу много слов, таких как .NET, Java, SOAP, C ++, JRuby on Rails, RoR, веб-сервисы, Hibernate, ajax, linq и т. Д. вокруг, так что мне просто интересно, как они все будут сочетаться друг с другом. Вот несколько упрощенных архитектур, которые могут или не могут соответствовать вашим потребностям, так как я не совсем понимаю вашу проблему. Я также не вижу, что есть какие-либо вопросы из вашего поста, поэтому, учитывая обстоятельства, я бы предложил:

  1. Веб-интерфейс: RoR с Ajax. Веб-сервисы: .NET. Доступ к данным: Linq.

    Это означает, что ваши веб-сервисы .NET будут использовать Linq для доступа к данным и предоставления через SOAP, которые будут использоваться интерфейсом Ror.

  2. Либо замените .NET на Java, а Linq на Hibernate.

Если вышесказанное бесполезно, то я предлагаю вам не объединять все эти технологии в одном решении.

...