문제

우리는 사용자 인터페이스 (예 : ASP.NET WebApp, Windows 응용 프로그램 및 언젠가 모바일 앱) 및 백엔드 데이터베이스 (예 : SQL Server, XML, Oracle) 용 여러 플랫폼을위한 여러 플랫폼을 통합 할 엔터프라이즈 애플리케이션을 구축하고 있습니다. 추가적인 불안감은 이러한 백엔드 DBS가 웹을 통해 중앙 집중식으로 액세스하거나 클라이언트 컴퓨터에 로컬로 연결되어 있으며 때로는 중앙 서버와 동기화된다는 것입니다.

누구나 사용자 인터페이스 계층과 데이터 계층을 추상화 할 수있는 방법에 대한 조언을 제공하여 다양한 UI와 DBS에 대한 다양한 선택 사이에 더 간단히 플러그 앤 플레이 적응성을 만들 수 있습니까? 예를 들어, 한 경우에는 인터넷을 통해 중앙 집중식 서버에서 웹 앱을 실행할 수 있으며 Windows 앱을 통해 로컬화 된 사본을 실행하는 원격 기계가있을 수 있습니다. 예정된 간격으로, 우리는 모든 기계가 동기화되도록하여 거의 실시간 데이터를 모두 가질 수 있도록하기를 원할 것입니다.

또한 하나의 앱에서 변경 해야하는 유일한 설정은 "로컬"또는 "원격"이되도록 관련된 다양한 연결 문자열을 처리하는 것에 대한 조언이 필요하므로 필요한 연결 문자열이 결정됩니다.

도움이 되었습니까?

해결책

프레젠테이션 계층을 추상화하는 것은 N-Tier 아키텍처를 사용하면 상당히 쉬운 개념입니다. "Application Logic"과 "도메인 로직"을 차별화하는 데 집중하십시오. 도메인 로직은 다른 플랫폼에서 일반적이며 응용 프로그램 로직은 플랫폼별로 다릅니다. 예를 들어, 데이터 유효성 검사는 도메인 로직입니다 (프론트 엔드에서 할 수있는 경우에는 좋지만 일이 더 복잡하지만 여기서 나와 함께 작동합니다 ...). 논리. 도메인 로직을 모든 플랫폼에서 사용할 수있는 레벨에 넣고 도메인 레이어에 응용 프로그램 로직을 넣지 마십시오.

당신의 질문의 나머지 절반은 당신의 더 큰 초점처럼 보이지만, 두 가지 다른 필수 질문을 분별할 수 있으므로 여기서 설명을 요청할 것입니다.

  1. 나는 당신이 데이터베이스 독립성의 "성배"를 가지지 않기를 바랍니다. 이것은 항상 디자인 단계에서 밟은 고상한 목표이며, 거의 항상 거의 항상 필요하지 않습니다.

    그것이 당신이 원하는 일이 아니라면, 나는 어떤 객체가 어떤 지속성 매체에 저장되어 있는지 알아야하며, 유연성의 복잡성을 피하고 수직 경로를 직접적으로 코딩해야합니다. 가능한 한. 즉, 추가 내용을 Oracle에 저장하는 일부 비즈니스 클래스에 추가 내용을 코딩하지 않아서 "미래의 어느 시점에서"SQL Server에 넣을 수 있습니다. (나는 데이터베이스 독립성으로 돌아 왔습니다. 그렇지 않습니까?)

  2. 특정 플랫폼의 성능을 향상시키기 위해 로컬로 데이터를 캐싱하는 문제는 해당 플랫폼에만 해당되며 Smart Clients와 MS P & P 팀의 캐싱 프레임 워크/안내를 살펴 보는 것이 좋습니다. 나는 지난 몇 년 동안 웹 물건에서 독점적으로 일해 왔지만 05/06 년에는 꽤 좋았으며 그 동안 스마트 클라이언트에 대해 많은 작업을 해왔습니다.

다른 팁

제공자 모델을 사용하여 응용 프로그램에서 데이터베이스 연결을 설정하는 것을 살펴 봅니다.

Microsoft Data Application Block에 제공된 예와 세부 사항을 살펴보면서 시작할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top