2011-12-04 2 views
4

클라이언트를위한 클라이언트/서버 응용 프로그램의 새 버전을 개발하고 있습니다. 현재 솔루션은 asp.net mvc에있는 웹 사이트입니다.내 클라이언트에서 내 데이터베이스에 연결하기위한 최상의 전략

응용 프로그램의 목적은 디지털 사이 니지 솔루션을 구축하는 것입니다. 즉, 클라이언트에서 사용자가 viedos 및 이미지에서 재생 목록을 만들고이를 화면에 표시되도록 예약하는 것을 의미합니다. 표시 할 항목은 WPF 사용자 컨트롤입니다. 하나는 이미지 용 논리이고 다른 하나는 비디오에 대한 논리입니다.

현재 응용 프로그램은 웹 기반이며 중앙 데이터베이스에 직접 액세스합니다. 모든 클라이언트 (정보를 제공하는 클라이언트)가 데이터를 요청할 때 웹 서비스를 통해 수행됩니다. 고객은 웹 기반 클라이언트를 사용하는 것이 매우 행복하지만 더 많은 "풍부한"행위를 요청합니다. 여기에는 하나의 "슬라이드"와 슬라이드 모음의 미리보기가있는 기본 요구 사항이 포함됩니다.

저는 이것을 WPF 응용 프로그램 (wpf 사용자 정의 컨트롤의 미리보기 때문에 실버 라이트 제외)로 개발하기 시작했습니다. 이제는 데이터베이스에 액세스하는 방법을 정의하는 문제/문제에 직면했습니다. 고객은 아마도 랩톱으로 이동하여 데이터베이스와 항상 동일한 네트워크에 있지 않은 것과 같은 현재 사용 패턴을 원할 것입니다.

내 질문은 : 데이터베이스 연결 계층을 어떻게 설계해야합니까? 모든 사람들이 항상 이것을 사용하도록 순수 웹 서비스를 기반으로해야합니까? 아니면 가정에서 일할 수있는 연결이 끊긴 모드를 만들어야합니까? 데이터를 연결하고 동기화 할 수 있습니까? 내가 databse와 동일한 네트워크에 있어야한다고 요구해야합니까? 그래서 데이터베이스 레이어와 connectionstring을 사용하여 직접 연결할 수 있습니까?

웹 서비스를 기반으로 한 접근 방식은 이미지, 비디오 작업에 충분히 빠르지 만 (이들의 축소판 그림로드 만 고려하면 다른 데이터는 성능을 ~ 몇 기가 바이트 데이터로 감소시킵니다). 클라이언트에서 미리보기 이미지를 사용하고 홈 네트워크에 연결하면 큰 동영상과 이미지를 모두 얻을 수 있습니다.

답변

1

앱을 디자인 할 때는 KISSYAGNI 원칙을 기억하고주의해야합니다. 잔인한 솔루션과 조기 최적화.

제대로 이해하면 작동하는 웹 앱이 있습니다. 필요한 추가 기능은 슬라이드 쇼뿐입니다.
jQuery (또는 다른 웹 클라이언트 프레임 워크) 솔루션을 많이 찾을 수 있습니다.

그럼에도 불구하고 새로운 클라이언트를 개발하기로 결정한 경우 이미 잘 작동하는 웹 서비스가 있습니다. 나는 그것을 사용하는 것이 좋습니다.

클라이언트쪽에 데이터를 저장한다는 아이디어에 대해 이것은 YAGNI의 고전적인 후보입니다. 응용 프로그램의 성능을 테스트 한 다음 클라이언트 측에서 캐싱과 같이 더 정교한 것이 필요한지 확인하십시오.

참고 사항 - 클라이언트 응용 프로그램에서 DB에 직접 액세스하는 것은 권장되지 않습니다. 효과적으로 '클라이언트 - 서버'의 '서버'부분을 취소하고 프레젠테이션과 비즈니스 논리/데이터 액세스간에 높은 결합을 유발합니다.
요청한 파일을 가져 오는 작업을 담당하는 서버에 WCF 응용 프로그램을 설치하는 것이 좋습니다.

+0

감사합니다. 데이터베이스에서 클라이언트의 연결을 끊습니다. 예 KISS와 YAGNI는 결코 잊혀져서는 안됩니다. 나는 때때로 이것에 빠져서 너무 멀리 생각하고 있습니다. –

관련 문제