2010-07-04 2 views
0

저는 (사용자로부터) 데이터를 수집하고 안전한 방식으로 로컬에 저장해야하는 데스크톱 응용 프로그램을 개발 중입니다. 인터넷 연결이 가능할 때이 데이터를 중앙 데이터베이스와 동기화해야합니다. 응용 프로그램은 WPF이며 WPF의 새로운 데이터 바인딩 기능을 활용하고 싶습니다. 나는이 애플리케이션이 가볍고 형식적인 비즈니스 객체를 가지지 않고 XML 파일에 직접 바인딩되기를 정말로 원한다. 그러나이 문제는 보안 문제입니다. 나는 XML 파일을 암호화하는 것을 볼 수 있었지만, 현실적인 선택이었다. XML을 사용하기를 원했던 또 다른 이유는이 응용 프로그램 유형의 경우 많이 발생하는 다른 응용 프로그램 (데스크탑)과의 인터페이싱을위한 것입니다.XML, SQL Server Compact 또는 다른 것?

SQL Server Compact는 있지만 사용하려면 비즈니스 개체가 테이블을 나타내고 다른 응용 프로그램과 인터페이스하기를 원할 것입니다. 어쨌든 XML에 데이터를 저장해야합니다. 보안은 쉬우 며 데이터베이스에 암호를 추가하기 만하면됩니다.

너희들은 어떻게 생각하십니까? 내가 고려해야 할 사항이 있습니까? 문제 도메인에 대한 충분한 정보를 제공 했습니까?

답변

3

방금 ​​전 정확히 리모컨 (SQL2008)에 동기화 된 로컬 데이터베이스 인 애플리케이션을 완료했습니다. 나는 이것으로 보는 시간을 많이 소비하고 마지막에 정착 :

  • WPF
  • SQL 서버 CE
  • 엔티티 프레임 워크
  • 동기화 프레임 워크 (-> 내 경우에는 변경 내용 추적을 사용하여 SQL 서버 2008)

당신이 경량 무언가를 원하는 실현 -하지만 난 엔티티 프레임 워크 & 바인딩은 데이터 바인딩과 UI를 구축에서 고통의 대부분을 말을, 그래서 당신이에 집중할 수 기술보다는 손에있는 문제.

WCF를 사용하여 외부 응용 프로그램에 바인딩합니다.

+0

그래서 개체에 직접 바인딩 했습니까? 바인딩하고 싶은 모든 것을 찾을 수있는 방법을 써야 했습니까? 또한 유사한 응용 프로그램의 경우 Sync Framework를 사용 중이었고 데이터 세트 측면 때문에 삭제해야했습니다. 얼마나 많은 데이터를 동기화하고 있습니까? –

+0

"개체에 직접 바인딩"이란 N-Tiered 설정을 사용 했습니까? –

+0

계층 구조가 아닌 구조화/계층화 된 데스크톱 응용 프로그램의 EF 개체에 직접 바인딩합니다. 데이터 동기화가 적은 양의 MB입니다. 동기화가 더 쉬울 것이라고 상상할 수 없습니다. XML을 사용합니다. –

3

번거 로움없이 로컬 저장소가 필요한 경우 반드시 SQLite을 봐야합니다.

Entity Framework에 대한 지원을 포함하여 .NET support을 지원하며 기본적으로 마찰이없고 서버 또는 그와 비슷한 것을 설치하지 않아도됩니다. (응용 프로그램의 배포 - xcopy 또는 다른 방법으로 일부 DLL 만 포함하면됩니다.)

또한 전체 데이터베이스 파일 (* .s3db)을 암호화하여 내용을 보호 할 수 있습니다.

+0

설치하지 않으시겠습니까? 그것은 정말로 분배에 도움이 될 것입니다. 이 응용 프로그램과 함께 제공되는 사용자는 자신의 컴퓨터에 대해 매우 엄격한 그룹 정책을 가지고 있으며 설치하는 것이 적습니다. Google Gears를보고 싶을 때 SQLite로 약간의 시간을 보냈습니다. SQL Server Compact와 비교하면 어떻습니까? –

+0

@Dylan Vester : ok, 죄송합니다. 서버를 설치할 필요가 없습니다. xcopy 배포에 일부 DLL 만 포함하면 완료됩니다. –

관련 문제