오늘날 ASP를 사용하는 많은 웹 사이트는 구성 요소를 전혀 사용하지 않습니다. 오늘날 Fooxin Technology Channel의 편집자는 ASP와 구성 요소 간의 부서 서비스를 간략하게 설명합니다. 이 지식을 배우는 것이 도움이되기를 바랍니다.
ASP 및 구성 요소 부서 서비스
ASP는 서버에서 클라이언트가 사용할 HTML 또는 XML 파일을 만드는 데 가장 일반적으로 사용되므로 주로이 사용 시나리오에 대해 논의합니다. ASP 페이지가 서버에있는 경우 비즈니스 계층의 일부에 속합니까? 구성 요소 세계에서 대답은 일반적으로 아니오입니다. ASP는 서버에서 실행되며 응용 프로그램 서버와 같은 공간에있을 수 있지만 비즈니스 로직의 일부는 아닙니다.
사용자 인터페이스 도구가 커지거나 더 많은 비즈니스 간 솔루션이 활성화되면서 이러한 명확한 차이를 유지하면 큰 보상을받을 수 있습니다.
이 말하면서 가장 중요한 비즈니스 계층 및 프레젠테이션 계층 분할 기준을 살펴 보겠습니다.
비즈니스 로직과 별도의 UI 코드. 여기에는 ASP 내부 구성 요소를 사용하여 다른 DLL에있는 것처럼 비즈니스 로직 코드와 분리하는 MTS 객체를 사용하는 등 UI에 결합 된 코드 작성이 포함됩니다.
ASP 페이지와 별도의 트랜잭션. 트랜잭션 ASP는 경우에 따라 매우 우수하지만 구성 요소와 다층 응용 프로그램이 변경됩니다. 구성 요소는 거래 및 비즈니스 로직 시맨틱을 관리하기 위해 클라이언트 계층에 의존해서는 안됩니다.
동일한 시스템 및/또는 웹 서버 프로세스에 대표 구성 요소 (요청 및 응답을 사용하는 구성 요소)를 배치하십시오. ASP 내부 구성 요소 개체를 사용하는 객체가 원격 시스템에 배치되면 내부 구성 요소로의 모든 호출이 콜백 양식으로 발생합니다. IIS 클라이언트를 호출하는 COM+ 서버는 COM+ 서버로 성능을 크게 줄이고 보안 구성을 복잡하게합니다. 이러한 조정 객체는 "라이브러리 활성화"로 표시된 COM+ 응용 프로그램에 배치 할 수 있습니다.
ASP는 서버에 존재하므로 ASP 페이지는 리소스 공유 규칙을 준수하고 확장 성을 염두에 두어야합니다. 아래 세부 사항을 참조하십시오.
"세션"에서 경영진은 사용자 별 상태를 피하려고 노력해야합니다.
ASP 상태를 유지하고 가능한 경우 리소스 풀을 허용하십시오.
작동 방법
코드 세그먼트가 비즈니스 로직 또는 프레젠테이션 계층에 속하는지 여부를 평가할 때 "ASP 페이지를 버튼 유형 전화 응용 프로그램으로 바꾸어야하는 경우 해당 코드가 여전히 유용합니까?" 대답이 "예"인 경우 비즈니스 로직 코드 또는 사용자 인터페이스 도우미 코드로 나눌 수 있습니다.
클라이언트를 변경 한 후 코드를 사용할 수 없거나 사용자 인터페이스를 구성하기위한 도우미 인 경우 코드는 표현 서비스 계층에 속합니다. ASP 페이지 또는 ASP 내부 구성 요소를 사용하는 구성 요소에 있습니다. 비즈니스 객체 구성 요소에 속하지 않습니다.
데스크탑과 ASP 클라이언트의 차이점을 이해하십시오
ASP는 데스크탑의 기존 단일 스레드 Win32 응용 프로그램과 달리 구성 요소의 특수 클라이언트입니다. 주요 차이점은 다음과 같이 요약됩니다.
스레드 관리 : ASP는 다중 스레드 클라이언트입니다. 이것은 서로 다른 ASP 페이지를 동시에 처리 할 수있는 동시 활동이 많이있을 수 있음을 의미합니다. 이는 객체가 시스템을 독점적으로 차지하는 유일한 사용자라고 거짓으로 주장 할 수 없음을 의미합니다. 이렇게하면 예상치 못한 반응이 예를 들어 ASP 세션이나 응용 프로그램 변수에 객체를 저장하는 나쁜 습관을 개발할 수 있습니다.
보안 환경 : ASP는 웹 사이트에서 인터넷 정보 서비스 5.0에 의해 수행됩니다. 이러한 웹 사이트조차도 다른 보안 설정을 가질 수 있고, 익명 액세스 허용 또는 거부, 고객을 인증하는 등을 가질 수 있습니다. 이러한 모든 설정은 다른 사용자 계정이 객체를 사용하여 많은 수의 체계를 만듭니다.
쉽게 성장 : 이것은 기술적 인 문제가 아니라 웹 응용 프로그램에서 제공하는 시설의 부작용입니다.
전통적으로, 데스크탑 응용 프로그램에 사용자 기반을 추가하려면 알려진 수의 클라이언트로의 전송을 신중하게 계획해야합니다. ASP는 프로세스를 변경했습니다. UP 및 실행 후 ASP-Visual Basic Application은 모든 직원, 모든 비즈니스 파트너 및 모든 고객이 현지 또는 전세계 고객이 사용할 수 있습니다.
이런 식으로 설명 할 수 있습니다. 하이퍼 링크가 장착 된 단일 이메일은 사용자 기반을 10 배로 늘릴 수 있습니다. 응용 프로그램이 준비되어 있습니까? 알 수있는 유일한 방법은 웹 사이트에서 강도 테스트를 수행하여 실제 성능의 예상 가치를 얻는 것입니다.
ASP 내에서 시각적 기본 객체를 어떻게 사용해야합니까? 페이지 범위 내에서 객체를 작성하고 취소하십시오.
즉, ASP 페이지를 가능한 한 많이 만들고 임시 상태의 세션 또는 응용 프로그램 변수에만 의존합니다. 세션이나 응용 프로그램 변수에 객체를 저장하지 마십시오. 이것은 ASP 스레드를 세션에 잠그고 확장성에 대한 모든 예상 값을 취소합니다. 즉, 웹 서버에서 처리 한 사용자 수는 수십 명의 사용자를 초과하지 않습니다. 세션이나 응용 프로그램에 콘텐츠를 저장 해야하는 경우 객체가 아닌 데이터로 만드십시오.
따라야 할 다른 지침이 많이 있습니다. MSDN Voices에서 JD Meier가 작성한 "Servin 'It Up"열을 읽는 것이 좋습니다. 이 칼럼에는 확장 가능하고 신뢰할 수있는 ASP 및 구성 요소 애플리케이션을 개발하는 데 도움이되는 광범위한 기술, 관행 및 팁이 포함되어 있습니다.
세션 또는 응용 프로그램에서 VB 객체에 참조를 저장하지 마십시오.
모든 Visual Basic 6.0 구성 요소는 "단위 스레드"이므로 모두 STA 장치로 실행됩니다. 즉, 객체가 스레드에서 생성되면 해당 객체에 대한 모든 호출은 동일한 스레드로 제공되어야합니다. 동시 웹 사이트 사용자의 많은 스레드는 STA 객체의 동일한 인스턴스를 사용하여 응용 프로그램에서 병목 현상이 될 수있는 일련의 활동을 유발합니다.
또한 SERVER.CREATEOBJECT 세션 범위 내에서 생성 된 STA 객체를 저장하면 실행 스레드를 현재 사용자에게 효과적으로 연락하여 응용 프로그램의 최대 동시 사용자 수를 기본 20XN (n = 프로세서 수)으로 제한 할 수 있습니다.
작동 방법
권장 사항을 따르기 위해 객체를 상태로 만들면 클라이언트 재사용에 대한 참조를 저장하고 응용 프로그램 범위 내에 저장할 필요가 없습니다. 클라이언트는 자신의 객체를 독립적으로 생성, 사용 및 취소 할 수 있습니다. 이는 세션 별 대상을 유지하지 않기 때문에 세션 별 객체를 유지해야 할 필요성을 줄입니다.
권장되는 방법은 객체에 Instanteless를 만드는 것입니다. 이는 필요할 때 데이터베이스 또는 쿠키 및 LDAP와 같은 기타 스토리지 영역에 액세스하는 것입니다.
세션 또는 응용 프로그램 전체 데이터를 사용해야하는 경우 여기에서 데이터를 처리하는 객체 대신 데이터를 저장하십시오. 원하는 값의 처리를 캡슐화하는 클래스를 만들 수 있습니다.
IIS 5.0에서 새로운 콘텐츠를 배우십시오
Internet Information Server 5.0에는 많은 새로운 기능이 추가됩니다. 이러한 개선 사항은 JD Meier의 MSDN 기사 : IIS 5.0 (English)의 ASP 사용에 기록되었습니다.
위의 것은 ASP와 Components 간의 디비전 서비스에 대한 간단한 설명입니다. 이 측면에 대해 더 많은 지식이 있기를 바랍니다.이 측면은 ASP의 발전에 도움이 될 것입니다.