Мы собираемся предпринять довольно большие усилия по интеграции, чтобы уничтожить кучу баз данных 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 доставлять формы для повторного использования или есть что-то лучше?