저는 2 년 반의 VB.Net 경험을 가지고 있습니다. 주로 독학을받습니다. 그래도 여전히 멍청한 것처럼 보이고 기본 사항 중 일부를 모르는 경우 나와 함께 견뎌주십시오. 나는이 일을 시작하기 전에 차를 마시는 것이 좋습니다. 꽤 오래 걸리는 것처럼 보입니다. ...VB.Net 응용 프로그램을 분할할지 여부를 결정하는 방법과 분할하는 방법은 무엇입니까?
나는 현재 15000 줄이 넘는 코드로 된 꽤 큰 응용 프로그램 (VB.Net 웹 사이트)을 가지고 있습니다. 마지막 카운트. 그것은 소매업이나 그와 같이 복잡한 것은 아닙니다. 관리 프론트 엔드, 카탈로그/카탈로그 관리 시스템 및 페이지 뷰 시스템을 갖춘 말 그대로 도매상의 웹 사이트입니다.
. 닷넷 응용 프로그램이 백그라운드에서 작동하는 방식에 대해 많이 알지 못합니다. 모든 스레드가 동일한 스레드에로드되어 있는지 또는 각 스레드마다 고유 한 스레드가 있는지 ... 저는 코드를 작성하는 방법을 알고 있습니다. 적어도 다음과 같이
기본적으로내 응용 프로그램이 설정되어 :-) ... 내가 생각하고 싶다 :
두 가지 영역이 있습니다- - 고객 영역과 관리 프론트 엔드가.
- 고객 프론트 엔드의 주요 부분은 카탈로그입니다. MasterPage는 제품 목록을로드하지만 그뿐입니다. 이는 모든 고객 프론트 엔드 페이지에 공통적입니다.
- 변경 사항을 업로드하기 전에 한 번에 하나 또는 여러 부분의 응용 프로그램에서만 작업하는 경향이 있습니다. 예를 들어, 카탈로그의 계층 구조를 변경하고 카탈로그 페이지를 변경하여 계층 변경 사항을 일치시킬 수 있습니다.
- 페이지 뷰 데이터베이스가 실제로 상당히 커지고 있으므로 작동하는 방식으로 인해 응용 프로그램이 처음 요청되면 다소 느려집니다.
- 응용 프로그램 시간 초과가 5 분으로 설정되어 있습니다. 변경 방법을 모르는 경우에도이 질문을 여기에서 시도해 보았습니다. 솔루션이 매우 복잡하고 변경하지 않는 것이 좋습니다. 고객은 마지막 페이지보기 후 5 분 후에 응용 프로그램을 요청한 다음 응용 프로그램을 처음부터 다시로드합니다. 즉, 5 분 동안 사용하지 않으면 매우 느린 페이지로드가 발생합니다.
나는이 가장 모든 경우에 응용 프로그램을 분할하는 방법을 결정하는 데 고려를 필요로하는 경우 잘 모르겠지만, 다음과 같이 카탈로그 시스템의 각 부분이 설정되어
- 관리자 클래스 관리자 프론트 엔드가 지정된 유형의 항목을 추가, 편집 및 제거하고 고객 프론트 엔드가 지정된 유형의 항목 목록을 검색하는 데 사용되는 최상위 레벨. 예를 들어, "RangeManager"는 제품 "Ranges"목록을 포함하며 고객 프론트 엔드에서 이들과 상호 작용하는 데 사용됩니다.
- 속성 클래스가 들어있는 Range와 같은 Item 클래스입니다. 예를 들어 Name, Description, Visible, Created, CreatedBy 등이 있습니다. 추가/편집을위한 양식은이를 통해 관리자에게 관련 컨트롤을 표시합니다. 예를 들어 BooleanAttribute에 대한 체크 박스.
- StringAttribute, BooleanAttribute, IntegerAttribute 등의 유형이 될 수있는 Attribute 클래스입니다. 또한 RangeAttribute, UserAttribute 등과 같은 사용자 지정 특성 (데이터 형식 만이 아님)이 있습니다. 이들은 데이터 필드가 주어지며,이 필드는 처음 요청되었을 때 포함 된 항목에 특정한 데이터를 가져 오는 데 사용됩니다. 기본적으로 항목에는 속성이 처음 요청되었을 때만 속성에 의해 저장되고 액세스되는 DataRow가 제공됩니다.
- 한 항목은 특정 관리자에서 요청 관리자가 데이터베이스에있는 모든 항목을 반복하고 항목 클래스의 새 인스턴스를 만들 것 요청. 예를 들어 RangeManager에서 Range가 요청되면 RangeManager는 Ranges 테이블의 모든 DataRow를 반복하고 각각에 대해 Range 인스턴스를 새로 만듭니다. 위에서 설명한 것처럼 모든 데이터를 거기에로드하는 대신 DataRow를 사용하여 새 인스턴스를 만듭니다. 특성 자체는 DataRow에서 관련 데이터를 처음 요청할 때와 가져옵니다.
내 생각에, 코드를 뒤집어 쓰는 단어에 대한 사소한 버그 나 맞춤법 오류를 수정할 때마다 전체 응용 프로그램을 다시 컴파일하고 업로드하는 것은 어리석은 것처럼 보입니다. 동적으로 레이블의 텍스트). 카탈로그 페이지에 대한 수정/변경, 현재 상황은, 같은 MasterPage를함으로써 차별화 카탈로그 페이지와 관련된 어떠한 방식에있는 연락처 페이지를 보려고 고객을 의미하므로 DLL 때문에 할 수 없어 업로드 중입니다.
는 기본적으로 제 질문은, 내 현재 주어진 상황에서 어떻게 사람들은 내가 여러 응용 프로그램으로 분할의 방법으로 응용 프로그램의 아키텍처를 변경 제안입니까? 내 생각에 고객/관리자, 고객/관리자 및 페이지 뷰 또는 다른 방법일까요? 아니면 전혀? 여기에 언급하지 않은 다른 대안이 있습니까? 웹 서비스가 여기에 도움이 될 수 있었습니까? 카탈로그 자체를 다른 응용 프로그램으로 분할하고 다른 모든 페이지의 마스터 페이지를 사용하여 웹 서비스를 사용하여 왼쪽에 나열 할 제품 이름을 얻으십시오. 나는 단지 길을 복잡하게 만드는 길 일까? 미리 :-) ... 나는 짧은 그것을 유지하기 위해 노력했다,하지만 난 항상 실패 ...
많은 감사를 아마 나는이 질문의 길이에 의해 판단하고, 처음되지 않을 것, 내가 너를 완전히 혼란에 빠지면 미안해! 읽기에 의해
감사합니다,
리처드
나는 누군가가 아마도이 질문의 길이에 대해 슬픔을 줄 것이라고 생각한다. :) –
이 ASP.NET인가? 당신은 웹 사이트와 마스터 페이지를 여러 번 언급하는 것을 언급하지만 VB.NET이 명시 적으로 언급 된 것을 볼 수 있습니다. –
@ 엘 Ronnoco : 왜 내가 여러 번 사과하고 그것을 읽기 전에 차를 마시는 것이 좋습니다! :) @Cody : 그때 .net 태그를 제거합니다. 잠깐만 ... – ClarkeyBoy