2010-04-28 3 views
3

우리는 많은 수의 Access 및 Sql Server 데이터베이스를 제거하고 모든 것을 하나의 일관된 엔터프라이즈 시스템으로 만들기 위해 상당한 통합 노력에 착수했습니다. 우리가 통합 (다른 시스템에서 데이터 유효성 확인을 위해 사용)하고,보고하고 노출하는 데 필요한 중요한 데이터를 보유하는 여러 가지 다른 시스템 (회계, CRM, 급여, MS Exchange)이 있습니다. 향후 몇 년 내에 이러한 시스템 중 일부가 변경 될 가능성이 있으므로 변경 준비가 완료 될 때까지 시스템을 격리해야합니다.이기종 시스템의 엔터프라이즈 통합

이상적으로 우리는 각 시스템에 대해 재개발하지 않고 가능한 한 많은 시스템에서 일관된 방식으로 양식을 공개 할 수 있습니다. 우리는 현재 SharePoint (2007 및 곧 2010), Office (2007 및 곧 2010 - Word, Excel, PowerPoint 및 Outlook), Reporting Services, .NET 콘솔 응용 프로그램, .NET Windows 응용 프로그램, 셸 확장 및 노출 가능성을 목표로하고 있습니다 모바일 기기의 일부 기능 (현재 블랙 베리, 나중에 iPhone이 될 수도 있음) 및 웹 사이트를 통해

우리는 SharePoint 2010 및 Office 2010으로 마이그레이션하기 전에 Visual Studio 2010 (2005 년)으로 개발을 진행하고 있습니다. 현재 대부분의 개발이 .Net 프레임 워크 (주로 C#)를 대상으로하고 있기 때문에 일부 측면에서 프레임 워크/플랫폼을 전환해야하는 강력한 이유가 없으면이를 사용하십시오.

표준 데이터베이스 -> 데이터 통합 ​​레이어 -> 비즈니스 개체 레이어 -> 웹 서비스 (또는 REST) ​​레이어 -> 클라이언트 응용 프로그램과 WPF (또는 다른 것?) 양식을 사용하여 자체 클라이언트 응용 프로그램을 수행하고 있습니다. MS 시스템 (SharePoint, Office, Windows)에서도 노출 될 수 있습니다.

기본적으로 우리는 데이터베이스와 시스템 변경 사항으로부터 시스템을 분리하고 시스템 전반에 걸쳐 사용할 수있는 API를 작성한 다음 클라이언트 애플리케이션에서이 기능을 사용할 수 있도록해야합니다.

저는이 문제를 해결하는 방법에 대한 조언을 구하는 사람들로부터 조언을 구하는 데 매우 열심입니다. 엔터프라이즈 라이브러리를 시작하거나 롤업 할 장소로 봐야합니까? REST와 ASP.Net MVC2는 이와 같은 시스템에서 웹 서비스보다 나은 솔루션입니까? WPF는 양식 재사용을 제공합니까? 아니면 더 나은 것이 있습니까?

답변

1

귀하의 기간 업무 (LOB) 응용 프로그램에 대해 단일 복합 응용 프로그램을 사용하는 것이 좋습니다. 그런 다음 "양식 재사용"의 필요성은 없으며, 견해는 모두 거기에 있으며 함께 통합됩니다. 모든 데이터 액세스는 재사용 가능한 단일 계층을 통과 할 수 있으며 모든 타사 응용 프로그램은 SOA 기술을 통해 시스템과 통신합니다.

Microsoft의 Patterns and Practices 그룹은 단일 배포 메커니즘을 통해 배포 할 수있는 확장 가능한 단일 플러그 식 모듈 응용 프로그램을 개발하기위한 몇 가지 프레임 워크를 제공합니다. 최종 사용자 (Windows)의 플랫폼을 완벽하게 제어 할 수 있다면 Prism을 사용하여 WPF를 권장하고 그렇지 않으면 Silverlight를 사용하여 Prism을 사용하는 것이 좋습니다. 아직 WPF/Silverlight 기술로 이전하지 않은 경우, Winforms를 위해 훨씬 더 개발 된 Prism 또는 SCSF의 Unity 구성 요소를 사용하여 우수한 Windows Forms 복합 응용 프로그램을 개발할 수 있습니다. (참고 : WPF는 WinForms 컨트롤을 호스팅 할 수 있으며 WinForms는 WPF 컨트롤을 호스팅 할 수 있으므로 완전하고 일관된 엔터프라이즈 시스템으로 이동할 때 기존 구성 요소와의 하이브리드 솔루션을 만들 수 있습니다.) SCSF/CAB 및 Prism은 모두 잘 알려진 디자인 패턴 때문에 OO 및 디자인 패턴의 기본 사항에 익숙해 져야합니다.

모바일 솔루션의 경우 Windows Mobile 용 WPF 뷰를 개발할 수 있으므로 모바일 장치에서 다양한보기로 앱을 다시 사용할 수 있습니다.

WCF은 .NET에서 응용 프로그램 간의 통신을 수행하는 데 가장 적합한 SOA 프레임 워크입니다.

워크 플로우, 승인 체인 또는 문서 라우팅이 필요한 경우 WF을 사용하십시오. 워크 플로 편집기를 복합 애플리케이션에 통합 할 수도 있으므로 최종 사용자는 전화하지 않고도 비즈니스 요구 사항이 변경되면 워크 플로우를 수정하고 업데이트 할 수 있습니다.

아직 ORM을 사용하고 있지 않다면 nHibernate을 권하고 싶습니다. RDBMS와의 통합을 위해 자체 데이터 액세스 계층을 개발하지 마십시오. here을 참조하십시오.

ClickOnce을 사용하여이 애플리케이션을 배포하십시오. 앱에 업데이트를 감지하고 자동 설치하도록 기본 제공 지원이 제공됩니다.

관련 문제