2013-10-30 2 views
0

저는 wpf 응용 프로그램을 작성하려고하는데 조언이 필요하다고 생각합니다. 일부 레코드를 제공하는 데이터베이스가 있습니다. 이러한 레코드는 ListView에 표시됩니다. 사용자는 레코드를 삽입, 삭제 또는 수정할 수 있습니다. 이러한 각 작업은 내 데이터베이스에서 작업 할 수있는 메서드를 제공하는 클래스의 적절한 메서드를 호출합니다. 데이터베이스 작업이 성공하면 이벤트가 발생합니다. 이 이벤트는 사용자가 변경 한 사항을 표시하는 UI에 의해 포착됩니다. 데이터베이스 조작이 실패하면 메시지가 표시됩니다.응용 프로그램의 개념에 대한 몇 가지 조언이 필요합니다

데이터베이스는 스레드에서 실행되는 방법으로 관찰됩니다. 이 방법은 데이터베이스에서 데이터가 변경되었는지 (예 : 이러한 데이터로 작업하는 다른 사용자가) 분당 한 번씩 확인합니다. 변경 사항이 감지되면 변경된 레코드가 포함 된 이벤트도 트리거됩니다.

ui-class에서 DataTable에 저장된 로컬 데이터로 작업하고 있습니다.

내 접근 방식보다 해당 응용 프로그램을 빌드 할 수있는 더 좋은 방법이 있습니까? 내 접근 방식이 좋지 않은 것 같아 ...

+0

몇 가지 도구가 있습니다. http://msdn.microsoft.com/en-us/library/vstudio/t9x04ed2(v=vs.100).aspx – Paparazzi

+0

그 답변에 감사드립니다. Query Notifications afaik를 지원하지 않는 MySql을 사용하고 있습니다. 현재 주어진 시간 간격으로 새로운 데이터를 쿼리하는 폴링 메커니즘을 사용하고 있습니다. 나는 SQL 서버에 이와 같은 것이 있다는 것을 몰랐다. 그래서 그것은 여전히 ​​매우 유익했다. – ooorndtski

답변

0

솔직히 나는 디자인에 아무런 문제가 보이지 않는다. 나는 아마도 엔티티 프레임 워크를 가져 오는 것이 좋습니다. 데이터베이스 액세스를 고려해야합니다. .

이외의 편집기와이 데이터베이스 변경 검사기를 함께 사용하는 경우 데이터베이스 검사기를 먼저 디자인 한 다음 데이터베이스 검사기가보고 할 수있는 가능한 변경이나 잠금에 대해 편집기를 사용하십시오. 기존 시스템에 배관을 설치하는 것은 악몽 일 것입니다. 당신이 그것을 앞당기 기에서 건축하는 경우에 그것은 확실히 처리 가능하다.

MVVM 시스템을 고수하고 UI가 액세스 할 VM과 스레드 체커가 하나만 있는지 확인하십시오. Xaml에서 스타일과 컨트롤을 켜고 끌 수있는 부울 값 플래그를 넣습니다.

Silverlight 프로젝트는 아니지만 모든 데이터 액세스를 공유 데이터를 잠글 수있는 비동기 방식으로 디자인하십시오. 멀티 스레딩을 사용하여 앞면을 디자인하면 장기적으로 효과가 있습니다. 내 블로그 기사에서 비동기 작업과 MVVM의 기본 방법을 보여줍니다. Xaml: ViewModel Main Page Instantiation and Loading Strategy for Easier Binding을 기본 참조로 사용합니다.

처리중인 기본 작업과 데이터에 C# 인터페이스를 사용해보십시오. 이렇게하면 독립적으로 테스트 할 수 있고 장기적으로 클래스를 테스트하고 재사용 할 수 있도록 필요한 곳에 종속성 주입을 제공 할 수 있습니다.

마지막으로 최신 버전의 .Net을 사용하십시오. 할 필요가 없을 때 이전 버전을 사용하여 자신을 괴롭히지 마십시오.

+0

답장을 보내 주셔서 감사합니다. 나는이 같은 응용 프로그램을 설계하는 데 많은 경험이 없으며 확인이 필요했습니다. – ooorndtski

관련 문제