Корпоративная интеграция разрозненных систем - PullRequest
3 голосов
/ 28 апреля 2010

Мы собираемся предпринять довольно большие усилия по интеграции, чтобы уничтожить кучу баз данных Access и Sql Server и собрать все в одну целостную корпоративную систему. Существует также ряд других систем (бухгалтерский учет, CRM, начисление заработной платы, MS Exchange), которые содержат важные данные, которые нам необходимо интегрировать (использовать для проверки данных в других системах), сообщать о них и иным образом предоставлять. Вполне вероятно, что некоторые из этих систем изменятся в ближайшие несколько лет, поэтому нам необходимо изолировать наши системы, чтобы быть готовыми к изменениям.

В идеале мы должны были бы последовательно представлять наши формы как можно большему количеству наших систем без необходимости повторной разработки их для каждой системы. В настоящее время мы нацелены на SharePoint (2007 и вскоре 2010), Office (2007 и скоро 2010 - Word, Excel, PowerPoint и Outlook), службы Reporting Services, консольные приложения .Net, приложения Windows .Net, расширения оболочки и возможность разоблачения. некоторая функциональность на мобильных устройствах (в настоящее время BlackBerries, может позже iPhone) и через наш веб-сайт.

Мы переходим от разработки к Visual Studio 2010 (с 2005 г.) до перехода на SharePoint 2010 и Office 2010. Учитывая, что большая часть нашей разработки в настоящее время нацелена на .Net Framework (в основном на C #), кажется логичным придерживаться с этим, если нет какой-либо веской причины для переключения фреймворков / платформ для некоторых аспектов.

Мы думаем о вашей стандартной базе данных-> Уровень интеграции данных-> Уровень бизнес-объектов-> Уровень веб-служб (или REST )-> Клиентское приложение плюс создание нашего собственного клиентского приложения с WPF (или чем-то еще?) Формами, которые также может быть выставлен в системах MS (SharePoint, Office, Windows).

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

Я очень хочу получить указатели от тех, у кого есть советы о том, как это осуществить. Должны ли мы рассматривать Корпоративную библиотеку как место, где можно начать или развернуть свою собственную? Является ли REST с ASP.Net MVC2 лучшим решением, чем веб-службы для такой системы? Будет ли WPF доставлять формы для повторного использования или есть что-то лучше?

1 Ответ

1 голос
/ 02 августа 2010

Я рекомендую одно составное приложение для вашего бизнес-приложения. Тогда нет необходимости в «повторном использовании форм», все представления объединены вместе. Весь ваш доступ к данным может проходить через один многократно используемый слой, и все сторонние приложения взаимодействуют с вашей системой с помощью методов SOA.

Группа Microsoft Patterns and Practices предоставляет несколько платформ для разработки одного расширяемого, подключаемого модульного приложения, которое можно развернуть с помощью единого механизма развертывания. Если у вас есть полный контроль над платформой ваших конечных пользователей (Windows), я рекомендую WPF использовать Prism , а если нет, я рекомендую Silverlight с использованием Prism. Если вы еще не перешли на технологию WPF / Silverlight, вы можете разработать хорошее составное приложение для Windows Forms с компонентами Unity от Prism или SCSF , которая намного больше разработана для WinForms. (Примечание. WPF может содержать элементы управления WinForms, а WinForms может содержать элементы управления WPF, поэтому вы можете создать гибридное решение с существующими компонентами при переходе к полной и единой корпоративной системе.) Остерегайтесь того, что SCSF / CAB и Prism используют некоторые общеизвестные шаблонов проектирования, поэтому вам придется познакомить вашу команду с основами ОО и шаблонами проектирования.

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

WCF - лучшая инфраструктура SOA для взаимодействия между приложениями в .NET.

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

Если вы еще не используете ORM, я бы порекомендовал nHibernate . Не разрабатывайте свой собственный уровень доступа к данным для интеграции с RDBMS, это глупо; см здесь .

Узнайте, как использовать ClickOnce для развертывания этого приложения; у него есть встроенная поддержка, позволяющая вашему приложению обнаруживать и автоматически устанавливать обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...