2008-10-28 3 views
0

PBX 확장 통계보고 전용 ASP.NET 웹 사이트가 있습니다. ReferencePage DataTable 매개 변수로 채워지는 매개 변수가없는 문자열 리터럴 SQL 쿼리를 사용하여 코드 숨김으로 거의 순수하게 생성 된 HTML (Response.Write 대신 Label 컨트롤의 Text 속성 설정)이 포함 된 많은 보고서 페이지로 구성됩니다.전략적인 조언 : 웹 응용 프로그램 디자인 업그레이드

유지 관리 페이지는 최소한 DataGrid 및 세부 양식을 구성하지만 동일한 DAL을 사용합니다. 즉, 여러 DB 서버를 지원하며 하위 클래스가 각각 자신의 문자열 리터럴 검색어.

이 혼잡을 정리하려면 무엇을 고려해야합니까? 이미 제 3 자보고 솔루션을 사용하고 쿼리를 각각의 DB 언어로 저장된 procs로 옮기고 서로 다른 DAL 클래스의 다양성을 좁히고 CSS를 공유 파일로 분리하는 방법에 대해 거의 확실한 결정을했습니다. 그것은 C# 파일에 매우 숨겨져 있습니다!

답변

0

나는 사용자 정의 작성 DAL 죽겠다 고려 중 하나를 사용합니다 :

심지어 완전히 포기 sprocs가를 끝낼 수 있습니다.

대담한 사람이라면 Microsoft's MVC 구현을 사용하여 재 설계를 시도해 볼 수 있습니다.

접근 방식에 관계없이 코드를 리 팩토링하기 전에 단위 테스트를 작성하고 리팩토링 전후로 테스트가 통과하는지 확인하십시오.

+0

I 'd 'd LINQ로 옮길 계획이 아니라면 sprocs를 떨어 뜨리지 말 것을 제안합니다. 매개 변수화 된 SQL은 괜찮습니다. 그래도 여전히 저에게 오한을줍니다. 중요한 것은 모든 비용으로 직접적인 사용자 입력으로 인라인 SQL 쿼리를 피하는 것입니다. 그리고 심지어 엄격한 수표를 통해 그것을 실행하십시오. 편집증이라고 불러. – tsilb

+0

전혀 아니에요, 며칠 전 그걸 통해 우스꽝 스럽죠. – ProfK

1

백 엔드 디자인을 위해 데이터베이스의 각 기본 테이블 (예 : Report 클래스 및 User 클래스)을 나타내는 클래스를 제안합니다. 이벤트 핸들러가 아닌 것은 모두 백엔드 클래스 파일/네임 스페이스에 있어야합니다.

GUI의 경우 데이터를 사용자에게 스트리밍하는 대신 ASP.NET 컨트롤을 사용하여 올바른 방향을 향한 것처럼 보입니다. 그러나 페이지 영역을 객관화하는 것을 고려할 수 있습니다. 예를 들어, 내가 좋아하는 트릭 중 하나는 짧은 메시지를 표시 할 때 사용자 입력이나 알림 표시 줄과 같은 것을 요구할 때 반투명 "팝업"패널을 여는 것입니다.

AJAX와 AJAX Control Toolkit을 고려하십시오. 구현하기 쉽고 (특히 재 작성의 경우) 큰 유연성을 제공합니다. 특히 Accordions (다른 Accordions에 중첩 된 경우도 있음)가 정보의 과도한 구성에 탁월하다는 것을 알았습니다.

편집 : 당신이 AJAX를 사용한다면, 당신은 기본적으로도 더 이상 Response.Write를 사용을 고려할 수 없다는

참고.

화면에 너무 많은 콘텐츠가있는 한 패널에는 "스크롤 막대"속성이 있고 DIV는 큰 변화없이 기억되지 않습니다.

또한 필자는 Namespace로 코드 파일을 분리하는 경향이 있습니다. 그러나 인기있는 추세는 클래스에 의해 그렇게하는 것입니다. 많은 개발자가 있거나 네임 스페이스 내의 여러 클래스가 다른 사람들에 의해 체크 아웃되거나 동시에 수정되는 경우이 옵션이 더 좋습니다.

+0

나는 아코디언도 좋아하지만 내 고객 중 누구도 가지고 있지 않습니다. : ( – cfeduke

+0

아코디언 문제는 일반적으로 패널 헤더를 접을 수 없다는 것입니다. 시도해 보거나 개발하지 않은 경우입니다 :) 다른 방법으로 패널을 사용하고 UpdatePanels를 통해 패널을 채울 수 있습니다. – tsilb

관련 문제