2008-12-12 1 views
3

У моего друга и я возникают разногласия по поводу проблемы разработки приложений. Это простое приложение для управления производством.Программа с интерфейсом C# и базовым интерфейсом Java: хорошая или плохая практика?

Согласно моему другу, интерфейсные хранилища данных в XML и программа Java будут читать XML-документ, хранить его (в фоновом режиме) и применять некоторую бизнес-логику и снова хранить результаты в другой XML-документ. И C# front-end отобразит результат (он хочет использовать сокеты для передачи статуса XML).

Я думаю, что это плохая идея. Я предположил, что все приложение должно быть написано на C# или Java.

Примечание: Приложение является автономным. Он не используется по сети.

Вы кто-нибудь пробовали это? Поделитесь своими мыслями :)

+0

Просто пояснить: единственное, что предлагается сделать на Java, это переформатирование XML? – 2008-12-12 19:06:37

ответ

10

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

  1. Понятие переднего и заднего конца на самом деле не применяется к настольному приложению. Скорее, вы хотите использовать шаблон MVC для разделения проблем. Википедия может быть хорошим местом для начала изучения или просмотра.
  2. Зачем использовать сокет (что совершенно не нужно), если вам не нужно. Это первая причина, почему это плохая идея, поскольку вам не нужно использовать сокеты, если все сделано на языке, работающем в одном и том же пространстве процессов (ваше приложение является настольным или автономным приложением).
  3. Аналогичным образом, почему XML (опять же ненужный). Нет необходимости, потому что вы можете просто передавать объекты Java или C#.С XML сначала возникает проблема с шумом, поскольку теги добавляются к истинным данным. Тогда есть время для синтаксического анализа, построения XML, дополнительных библиотек потенциально и т. Д. Thid будет всем тем кодом, который вводится в подходе вашего друга.

Это наиболее очевидные причины. Существуют другие причины с точки зрения менеджера или компании:

  1. Для обслуживания этого приложения менеджер или компания должны нанять 2 разных набора навыков. Это может быть неверно, поскольку большинство программистов многоязычны. Но это не всегда так.
  2. С точки зрения развертывания, теперь вы вынуждаете своих пользователей иметь как JRE, так и .NET framework, только для того, чтобы иметь возможность запускать ваше приложение. И любой из них не совсем небольшой.
+0

Вы даже не знаете, в чем его проблема, и вы предлагаете шаблон? И тоже очень неоднозначное имя (http://tinyurl.com/5gjfjt). В противном случае, я согласен с вами. – 2008-12-14 22:53:06

2

Это настольное приложение, которое «не используется по сети» ... Я не вижу необходимости в реальном «бэкэнд» вообще.

Напишите настольное приложение на одном языке и сохраните свои данные в XML.

1

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

1

Для такого типа приложений я бы использовал только один язык.

5

Разговор о том, чтобы сделать его сложным. Либо Java, либо C#. На самом деле это не бэкенд для другого. Они оба «делают то же самое», что и языки. Единственное различие заключается в том, хотите ли вы использовать возможности .NET или мощь огромных инфраструктур Java.

2

Итак, ваше приложение является автономным и не нуждается в работе над сетью, но ваш друг настаивает на подключении переднего и заднего концов приложения с помощью сокетов? Что-то не так с этой настройкой, кажется more complicated than it needs to be.

Это звучит так, как будто ваш друг хочет использовать Java, потому что он лучше понимает инфраструктуру обработки XML Java. Лично я считаю, что взаимодействие между Java и .NET является излишним. Вы сэкономите много человеко-часов и разочарование, написав приложение на одном языке по вашему выбору.

+0

эта связь был безупречный. Я собираюсь отправить ему эту ссылку и убедить :) спасибо – udpsunil 2008-12-12 19:29:52

1

Возможно, можно использовать возможности настольного приложения C# на интерфейсе и использовать Java Ejb + Web Service (Jax-ws) на сервере. Приложения C# могут читать SOAP wsdl для создания заглушек и интерфейсов для доступа к бэкэнду Java, реализованному Jax-ws.

 Смежные вопросы

  • Нет связанных вопросов^_^