2008-10-22 4 views
0

저는 폴더의 변화를 추적하는 작은 App을 작성하는 총 아마추어입니다. 사용자가 버튼을 클릭 할 때 프로그램이 디렉토리를 주시하기 위해 FileSystemWatchers를 만들고 다른 이벤트 테이블에 이벤트 메시지를 보낼 때 gridview에 바인딩 된 하나의 datatable에서 볼 수있는 디렉토리에 대한 정보를 유지할 것이라고 생각합니다. 다른 gridview에 바인딩됩니다. OOP의 광범위한 세계에서 나는 Datatables을 선언하고 시작하고 조작해야합니까? 기본 폼 내부, 클래스 내부, 또는 "포기"하고 Visual Studio를 사용하여 자동으로 DataSet을 만들고 두 개의 테이블을 고정해야합니까?순위 아마추어를위한 OOP 및 DataTables

답변

1

코스 용 말입니다. 작은 유틸리티 응용 프로그램의 경우 VS "Visual/RAD"스타일의 프로그래밍을 사용하는 것이 좋습니다. 예 : 대부분의 자습서 에서처럼 테이블에 끌어 놓기 등의 작업을 수행합니다.

엄밀히 말하자면 더 큰 응용 프로그램의 경우 더 정확한 방법은 데이터 액세스를 처리하는 별도의 어셈블리 (.dll)를 만들고이 어셈블리 내의 클래스를 기본 폼에서 호출하는 것입니다. 이 개념은 여러 가지 용어로되어 있지만, 효과적으로 당신의 관심사를 분리하고 싶습니다. 즉, UI가 UI 상호 작용을 처리하고 데이터베이스 상호 작용을 처리하는 별도의 어셈블리/프로젝트/비즈니스 논리를 처리하는 다른 별도의 어셈블리/프로젝트 등을 갖게합니다.

마지막 두 문장은 서로 다른 의미를 가질 수 있습니다. 다른 사람들에게 일을하고, 일을하는 100 % 올바른 방법은 없습니다. 도움이 될 수

일부 기사 :

link text
link text
link text

0

내가 KiwiBastard에 동의 : 당신이 형식화 된 데이터 집합을 생성하는 VS 도구를 사용하여 혜택을 꽤 얻을.

그냥 클래스를 생성합니다. 여전히 DataSet의 인스턴스를 관리해야합니다. UI와 비즈니스 로직을 다른 클래스에 포함시키지 않은 매우 간단한 앱의 경우 양식에서 그렇게 할 것입니다. 복잡성이있는 앱의 경우 비즈니스 논리 클래스의 일부입니다.

데이터 바인딩은 좋지만 ADO는 좋지만 특정 종류의 ADO 코드 (특히 DataTable의 이벤트 처리기)는 데이터 바인딩과 잘 작동하지 않습니다. BindingSources를 사용하고 있다면 (일반적으로 행을 추가하고 삭제할 때와 같이) DataSet의 객체를 프로그래밍 방식으로 조작 할 때마다 바인딩을 일시 중단하는 것이 일반적으로 좋습니다. 바인딩 일시 중지 및 재개 비용은 매우 적으며 진단하기가 매우 어려운 전체 클래스를 제거합니다.