2

우리는 사용자 인터페이스 (예 : ASP.net webapp, Windows Application, 언젠가 Mobile Apps)를위한 다중 플랫폼과 백 엔드 데이터베이스 (예 : SQL Server, XML, Oracle). 추가 필수 사항은 이러한 백엔드 DB가 웹을 통해 중앙화되고 액세스되거나 클라이언트 컴퓨터에서 현지화되고 경우에 따라 중앙 서버에 동기화되는 것입니다.기업용 애플리케이션의 데이터 연결 계층과 표현 레이어 추상화

사용자 인터페이스 레이어 &을 추상화하여 다양한 UI와 다양한 DB 선택 사이의 플러그 앤 플레이 적응성을보다 간단하게 만들 수있는 방법에 대해 조언을 해 줄 수 있습니까? 예를 들어 인터넷을 통해 중앙 서버에서 실행되는 웹 응용 프로그램이있는 경우와 Windows 응용 프로그램을 통해 현지화 된 사본을 실행하는 원격 시스템이있는 경우가 있습니다. 예약 된 간격으로 모든 시스템이 동기화되어 모두 실시간에 가까운 데이터를 가질 수 있기를 바랍니다.

하나의 응용 프로그램에서 변경해야하는 유일한 설정이 필요한 연결 문자열을 결정하는 "로컬"또는 "원격"이되도록 여러 가지 연결 문자열을 처리하는 방법에 대한 조언이 필요합니다.

답변

5

프레젠테이션 레이어를 추상화하면 일단 n 계층 아키텍처가 중단되면 매우 쉬운 개념이됩니다. "도메인 논리"와 "응용 프로그램 논리"를 차별화하는 데 집중하십시오. 도메인 논리는 다른 플랫폼에서 공통적이며 응용 프로그램 논리는 플랫폼에 따라 다릅니다. 예를 들어, 데이터 유효성 검사는 도메인 논리입니다 (프런트 엔드에서 할 수있을 때 상황이 복잡해 지지만 여기에서 나와 함께 작업하는 것이 좋지만 ...) 어떤 작업이 적용된 후 리디렉션 할 URL을 결정하면 논리. 도메인 논리를 모든 플랫폼에서 사용할 수있는 수준으로 설정하고 도메인 계층에 응용 프로그램 논리를 넣지 않도록하십시오.

귀하의 질문 중 나머지 절반은 귀하의 큰 관심사처럼 보이지만, 나는 두 가지 다른 중요한 질문을 식별 할 수 있기 때문에 여기에서 약간의 설명을 요구할 것입니다.

  1. 나는 데이터베이스 독립성의 "성배"에 가지 않기를 바랍니다. 이것은 항상 설계 단계에서 잘려나 간 목표입니다. 거의 항상 거의 모든 시간이 필요하지 않습니다.

    그게 아니라면 어떤 개체가 어떤 영속 매체에 저장되어 있는지 알아야하며 유연성의 복잡성을 피하고 수직 경로를 직선으로 코딩해야한다고 제안합니다. 가능한 한 방법을 전달하십시오. IE는 "향후 어느 시점에서"SQL Server에 넣을 수 있도록 Oracle에 데이터를 저장하는 일부 비즈니스 클래스에 추가 작업을 코딩하지 않습니다. (나는 데이터베이스 독립성으로 되돌아 갔다.)

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

1

공급자 모델을 사용하여 응용 프로그램에서 데이터베이스 연결을 설정합니다.

Microsoft 데이터 응용 프로그램 블록에서 제공되는 예제와 세부 사항을 살펴 보는 것부터 시작하겠습니다. 제 생각에는 도움이 될 것입니다.