기존 솔루션의 리버스 엔지니어링을 위한 고려 사항

업데이트: 2007년 11월

Visual Studio Team System Architecture Edition에서는 분산 시스템 디자이너를 사용하여 기존 Visual Studio 솔루션에 있는 응용 프로그램을 정의하고 응용 프로그램 시스템을 디자인할 수 있습니다. 이 작업을 수행하려면 솔루션에 응용 프로그램 다이어그램이나 시스템 다이어그램을 추가해야 합니다. 이 작업을 수행하는 경우 Visual Studio에서는 솔루션을 리버스 엔지니어링하고 솔루션에서 해당 프로젝트의 응용 프로그램 다이어그램에 응용 프로그램 정의를 추가합니다. 그러면 응용 프로그램 디자이너를 사용하여 응용 프로그램을 시각화, 정의, 구성 및 구현할 수 있게 됩니다. 또한 응용 프로그램 시스템을 디자인하려면 시스템 디자이너를 사용합니다. 자세한 내용은 방법: 솔루션에 응용 프로그램 다이어그램 추가방법: 솔루션에 시스템 다이어그램 추가를 참조하십시오.

다음 단원에서는 기존 솔루션의 항목을 리버스 엔지니어링하는 추가 변경 작업과 리버스 엔지니어링을 지원하지 않는 항목에 대해 설명합니다.

  • 기존 솔루션의 리버스 엔지니어링

  • 리버스 엔지니어링이 지원되지 않는 항목

이전 버전의 Architecture Edition에서 솔루션을 업그레이드할 수도 있습니다. 하지만 이 릴리스에서는 Visual J# 프로젝트가 지원되지 않습니다. 자세한 내용은 이전 버전의 Architecture Edition 업그레이드를 참조하십시오.

기존 솔루션의 리버스 엔지니어링

솔루션에 응용 프로그램 다이어그램을 추가하면 Visual Studio에서는 솔루션 또는 솔루션의 프로젝트에 대해 수행하는 특정 변경 내용을 리버스 엔지니어링합니다. 이러한 변경 내용은 다이어그램이 열려 있는 동안이나 다이어그램을 다시 열 때 해당 다이어그램에 표시됩니다.

  • 응용 프로그램 다이어그램에서 지원하는 응용 프로그램의 종류에 해당하는 프로젝트를 추가합니다.

    응용 프로그램 다이어그램에서 지원하는 응용 프로그램의 종류에 해당하는 프로젝트를 리버스 엔지니어링할 수 있습니다. 해당 프로젝트의 응용 프로그램 정의 모양은 응용 프로그램 다이어그램에 나타납니다.

    프로젝트를 리버스 엔지니어링할 때는 다음 사항을 고려해야 합니다.

    • IIS 메타베이스에 액세스할 수 있는 권한이 없으면 ASP.NET 웹 프로젝트를 응용 프로그램 다이어그램으로 리버스 엔지니어링할 수 없습니다.

    • 리버스 엔지니어링된 응용 프로그램의 대상 프레임워크 속성은 비어 있고 읽기 전용으로 표시됩니다. 대상 프레임워크 버전은 프로젝트 속성에서 보고 변경할 수 있습니다. 기본적으로 Visual Studio에서는 결과 응용 프로그램의 대상 프레임워크 설정을 .NET Framework 3.5로 설정합니다. 필요한 경우 이 설정을 검토하여 업데이트합니다. 이 설정을 변경할 때는 특정 사항을 고려해야 합니다. 자세한 내용은 방법: 응용 프로그램의 .NET Framework 버전 선택을 참조하십시오.

    • Office 프로젝트를 리버스 엔지니어링하는 경우 결과 응용 프로그램의 템플릿 속성은 빈 읽기 전용 속성으로 표시됩니다. 그러나 응용 프로그램의 Office 버전 설정에는 프로젝트에 사용되는 Office 버전이 반영됩니다. 자세한 내용은 방법: 응용 프로그램의 프로젝트 템플릿 변경을 참조하십시오.

    • WSE(Web Services Enhancement) 설정을 사용하는 웹 서비스 프로젝트를 응용 프로그램 다이어그램이 포함된 솔루션 내에서 리버스 엔지니어링하거나 열면 WSE가 설치되지 않은 경우 응용 프로그램 다이어그램이 잠깁니다.

      이 문제를 해결하려면 다이어그램을 닫고 WSE를 설치한 다음 다이어그램을 다시 엽니다. 자세한 내용은 응용 프로그램 다이어그램 문제 해결을 참조하십시오.

    자세한 내용은 다음 항목을 참조하십시오.

  • 응용 프로그램 다이어그램의 ASP.NET 응용 프로그램에 해당하는 프로젝트에 웹 서비스를 추가합니다.

    Visual Studio에서는 응용 프로그램 다이어그램의 해당하는 ASP.NET 응용 프로그램 정의에 .NET 웹 서비스 공급자 끝점을 추가합니다. 또한 Visual Studio에서는 솔루션의 프로젝트에 .asmx 파일 및 웹 서비스 클래스 파일을 추가합니다. 자세한 내용은 응용 프로그램 다이어그램의 ASP.NET 응용 프로그램 개요를 참조하십시오.

  • ASP.NET 응용 프로그램 프로젝트의 웹 서비스 클래스 파일에 웹 메서드를 추가합니다.

    Visual Studio에서는 응용 프로그램 다이어그램에 있는 ASP.NET 응용 프로그램 정의의 해당 .NET 웹 서비스 공급자 끝점에 작업을 추가합니다. 그러면 웹 서비스 정보 창에서 작업을 보거나 편집할 수 있습니다.

    자세한 내용은 다음 항목을 참조하십시오.

  • ASP.NET 응용 프로그램 정의의 .NET 웹 서비스 공급자 끝점 뒤에 있는 웹 서비스 클래스 파일의 웹 메서드, 웹 서비스 또는 WSDL 관련 특성이나 속성을 추가하거나 변경하거나 삭제합니다.

    Visual Studio에서는 웹 서비스 정보 창에서 해당 작업과 적절한 속성을 업데이트합니다. 자세한 내용은 방법: ASP.NET 웹 서비스에 대한 작업 편집을 참조하십시오.

  • 응용 프로그램 구성 파일에 항목을 추가하거나 편집하거나 삭제합니다.

    Visual Studio에서는 SDM(시스템 정의 모델) 문서와 설정 및 제약 조건 편집기에 저장된 설정을 업데이트합니다. 자세한 내용은 SDM 개요설정 및 제약 조건 편집기를 참조하십시오.

  • 사용자 지정 웹 서비스 클라이언트 프록시 클래스 또는 웹 참조 및 사용자 지정 웹 서비스 클라이언트 프록시 클래스가 들어 있는 클래스 라이브러리에 대한 항목을 응용 프로그램 프로젝트의 구성 파일에 추가합니다.

    사용자 지정 웹 서비스 클라이언트 프록시 클래스는 수동으로 만드는 프록시 클래스이며 응용 프로그램 프로젝트의 웹 참조와 관련되지 않습니다. 응용 프로그램의 구성 파일에 적절한 항목을 추가하는 경우에만 각 웹 참조나 사용자 지정 프록시 클래스의 웹 서비스 소비자 끝점이 해당 응용 프로그램 정의에 표시됩니다.

    참고:

    응용 프로그램 다이어그램에 적절한 .NET 웹 서비스 공급자 끝점이 있으면 웹 서비스 소비자 끝점과 공급자 끝점 간 연결이 표시됩니다. 그렇지 않으면 새 외부 웹 서비스가 표시되며 웹 서비스 소비자 끝점에 연결됩니다.

    자세한 내용은 다음 항목을 참조하십시오.

  • 솔루션의 응용 프로그램 프로젝트에 웹 참조를 추가합니다.

    응용 프로그램 프로젝트에 웹 참조를 추가하는 경우 Visual Studio에서는 응용 프로그램이 응용 프로그램 다이어그램에서 지원되는 종류인지 여부와 웹 참조에 지정된 웹 서비스 URL에 따라, 기존 ASP.NET 웹 서비스나 기존 또는 새 외부 웹 서비스에 해당 응용 프로그램을 연결합니다.

    자세한 내용은 다음 항목을 참조하십시오.

  • 응용 프로그램의 구성 파일에 데이터베이스 연결 항목을 추가합니다.

    예를 들어 ASP.NET 응용 프로그램의 경우 Web.config 파일에, 그리고 Microsoft Windows 또는 Office 응용 프로그램의 경우 App.config 파일에 데이터베이스 연결 항목을 추가할 수 있습니다.

    Visual Studio에서는 응용 프로그램 다이어그램의 응용 프로그램에 데이터베이스 소비자 끝점을 추가합니다. 그러면 다이어그램에 추가한 새 외부 데이터베이스나 기존 외부 데이터베이스에 해당 소비자 끝점을 연결할 수 있습니다. 데이터베이스 소비자 끝점의 데이터베이스 연결 설정을 보거나 편집할 수 있습니다. 자세한 내용은 방법: 외부 데이터베이스에 대한 연결 구성을 참조하십시오.

리버스 엔지니어링이 지원되지 않는 항목

응용 프로그램 디자이너에서는 다음 범주에 해당하는 항목의 리버스 엔지니어링이 제한적이거나 지원되지 않습니다.

  • 응용 프로그램 프로젝트

    • 응용 프로그램 디자이너를 사용하여 클래스 라이브러리를 직접 나타내거나 디자인할 수는 없습니다.

      대신 ASP.NET 웹 서비스를 클래스 라이브러리에서 구현되는 기능의 외관으로 사용할 수 있습니다. 이를 통해 ASP.NET 응용 프로그램에서 참조되는 클래스 라이브러리와 응용 프로그램 다이어그램에서 구현을 지원하는 응용 프로그램 사이의 상호 작용을 표현할 수 있습니다. 자세한 내용은 방법: 응용 프로그램 다이어그램에서 응용 프로그램의 클래스 라이브러리 참조를 참조하십시오. 또한 소비자 응용 프로그램의 구성 파일에 적절한 항목을 추가하여 클래스 라이브러리의 사용자 지정 웹 서비스 클라이언트 프록시 클래스와 웹 서비스에 대한 웹 참조를 웹 서비스 소비자 끝점으로 시각화할 수도 있습니다. 자세한 내용은 클래스 라이브러리의 사용자 지정 웹 서비스 클라이언트 프록시 클래스 및 웹 참조를 참조하십시오.

    • 응용 프로그램 디자이너를 사용하여 FTP 또는 Microsoft SharePoint를 기반으로 하는 웹 사이트 프로젝트를 리버스 엔지니어링할 수는 없습니다. 응용 프로그램 디자이너에서는 IIS(Internet Information Services) 또는 ASP.NET Development Server에서 실행되는 웹 사이트 프로젝트에 대해서만 리버스 엔지니어링을 지원합니다.

  • ASP.NET 웹 서비스

    • .asmx 파일에 인라인으로 정의된 웹 서비스 클래스 정의입니다.

      ASP.NET 웹 서비스와 연결된 웹 메서드가 별도의 코드 파일이나 "코드 숨김" 파일의 단일 클래스 정의에 의해 완전하게 선언되지 않은 경우에는 웹 서비스 정보 창에 해당 작업이 표시되지 않습니다. 하지만 웹 서비스를 ASP.NET 응용 프로그램의 .NET 웹 서비스 공급자 끝점으로 시각화하고 해당 끝점에 소비자 응용 프로그램을 연결하는 작업은 계속할 수 있습니다. 그러나 이 경우 .NET 웹 서비스 공급자 끝점이 경고 아이콘(!)과 함께 표시됩니다. 자세한 내용은 응용 프로그램 다이어그램 문제 해결을 참조하십시오.

      참고:

      코드 숨김 파일은 일반적으로 ASP.NET 응용 프로그램과 관련된 프로젝트의 응용 프로그램 코드 폴더에 위치하는 프로그래밍 언어 관련 클래스 파일입니다.

    • 웹 서비스 클래스에서 구현된 인터페이스의 메서드에 대한 특성으로 선언된 웹 메서드입니다.

      -또는-

      웹 메서드를 정의하는 기본 클래스를 확장한 클래스입니다.

      이러한 시나리오에서는 웹 서비스 정보 창에 .asmx 파일에서 참조하는 클래스에 선언된 웹 메서드에 해당하는 작업만 표시됩니다. 웹 서비스 정보 창에 모든 웹 서비스 작업이 표시되지 않더라도 응용 프로그램 프로젝트에 .asmx 파일만 있으면 ASP.NET 응용 프로그램에서 .NET 웹 서비스 공급자 끝점이 올바르게 표시됩니다. 또한 웹 서비스 끝점에 대한 연결도 올바르게 구현되고 구성됩니다.

    • 여러 바인딩이 들어 있는 웹 서비스를 정의하는 코드입니다.

      코드 숨김 파일에서 여러 다른 바인딩과 관련된 웹 메서드가 있는 웹 서비스를 정의하면 웹 서비스 정보 창에는 첫 번째 바인딩과 관련된 작업만 표시됩니다.

      참고:

      WebServiceBinding 특성은 웹 서비스 수준에서 바인딩을 선언합니다. SoapDocumentMethod 또는 SoapRPCMethod 특성을 설정하면 이러한 바인딩을 웹 서비스 수준에서 사용할 수 있습니다. 자세한 내용은 온라인에서 MSDN Library를 참조하십시오.

    • 여러 WSDL 바인딩이 들어 있는 WSDL 파일이나 여러 웹 서비스를 참조하는 DISCO 파일입니다.

      분산 시스템 디자이너에서는 단일 WSDL 바인딩이 포함된 WSDL 파일과 단일 웹 서비스를 참조하는 DISCO 파일만을 지원합니다.

    자세한 내용은 응용 프로그램 다이어그램의 ASP.NET 응용 프로그램 개요를 참조하십시오.

  • ATL(Active Template Library) 서버입니다.

  • WSE(Web Services Enhancements) SOAP 메시징 스택입니다.

이러한 항목에 대한 자세한 내용은 온라인에서 MSDN Library를 참조하십시오.

참고 항목

작업

방법: 응용 프로그램 다이어그램에서 응용 프로그램 정의

연습: 응용 프로그램 다이어그램에서 응용 프로그램 정의

기타 리소스

기존 솔루션의 리버스 엔지니어링