제품 검토 : Visual Studio 2008은 몇 가지 실수로 발전했습니다.

Microsoft Visual Studio 2008 (VS08)은 현재 회사의 긴 IDE 제품군의 화신입니다. Microsoft .Net Framework를 사용하여 애플리케이션을 개발하기위한 최고의 IDE이며, 최소한 최고의 Windows 호스팅 C / C ++ IDE의 경쟁자입니다. 물론 Visual Studio 2008은 데스크톱 응용 프로그램 개발에만 국한되지 않습니다. 웹, SOA 및 장치 응용 프로그램 개발에도 좋습니다. 이 릴리스에서는 .Net Framework 3.5에 대한 지원이 도입되었으며 다른 버전의 .Net Framework도 지원합니다. 또한 C # 및 Visual Basic에서 모든 종류의 데이터를 쿼리하는 일반적인 방법 인 언어 통합 쿼리와 Windows Vista, Silverlight 및 Windows Presentation Foundation을 완벽하게 지원합니다.

VS08은 무료 Express Edition에서 $ 10,000의 모든 작업을 수행하는 Visual Studio Team System 2008 Team Suite에 이르기까지 다양한 버전으로 제공됩니다. 기본적으로 Express 에디션은 초급, 학생 및 취미 개발자를위한 것입니다. Standard Edition은 개별 개발자를위한 것입니다. Professional Edition은 고급 개발자와 소규모 팀에서 작업하는 사람들을위한 것입니다.

팀 시스템은 주로 대규모 팀을위한 것입니다. 개발자, 설계자, DBA 및 테스터를위한 Team System 클라이언트와 Team Suite라는 모든 역할에 대한 결합 된 클라이언트가 있습니다. Team System 용 서버는 팀 포털, 버전 제어, 작업 항목 추적, 빌드 관리, 프로세스 지침 및 비즈니스 인텔리전스를 결합한 TFS (Team Foundation Server)입니다.

이 리뷰에서는 VS08 Professional Edition의 기능에 집중하고 Team Suite의 몇 가지 주요 기능을 다룰 것입니다. Team Foundation Server에 대해서는 마지막으로 검토 한 이후로 새로운 팀 빌드 시스템 및 웹 액세스와 같은 여러 가지 향상된 기능을 받았지만 이에 대해 논의하지 않겠습니다 (Tom Yager의 Visual Studio 2005의 2004 년 5 월 미리보기 참조).

설치 및 테스트

나는 Team Suite를 설치하는 시험과 고생에 대해 얼마간 블로그 (여기와 여기)를 게시했습니다. VS05가있는 시스템에서 VS08을 제거하지 않는 한이 중 어느 것도 영향을 미치지 않습니다. 그럼에도 불구하고 설치를 시작하기 전에 시스템의 이미지 백업을 만드는 것이 현명 할 수 있습니다. VS08 설치에는 몇 시간이 걸리며 문서 설치 단계를 시작하려면 한 번의 수동 개입이 필요합니다.

XP 데스크톱에서 VS08 Team Suite를 거의 하루 종일, 일주일에 5 일 동안 몇 주 동안 실행하고 모든 개발 작업에 사용하려고했습니다. 또한 Vista 랩톱에서 Professional Edition을 사용하여 여러 개별 개발 시나리오를 실행하고 Team Suite / TFS 가상 PC에서 몇 가지 그룹 개발 시나리오를 시뮬레이션했습니다. 주의 사항 : UAC (사용자 계정 컨트롤)가 활성화 된 상태로 Windows Vista에 설치하는 경우 필요한 모든 디렉터리가 생성 될 때까지 VS08을 관리자 권한으로 몇 번 실행할 준비를하십시오. 그 후에는 완전히 UAC를 준수해야합니다.

.Net Framework 3.5 소개

나는 마이크로 소프트가이 방향으로 조금 더 나아 갔으면 좋았을 것이다. Microsoft가 .Net Framework 1.1에 대한 타겟팅과 VS08, VS05 및 Visual Studio .Net 2003 프로젝트 간의 쉬운 양방향 변환을 제공하지 않은 것은 너무 나쁩니다.

.Net Framework 3.5에는 여러 가지 새로운 클래스 라이브러리 및 언어 기능이 있습니다. 여기에는 LINQ (Language-Integrated Query), 웹 2.0 및 SOA 관련 개선 사항, 통합 워크 플로, 피어 투 피어 프로토콜 및 Microsoft Office 지원이 포함됩니다.

이들 모두에 대한 도구는 VS08에서 찾을 수 있습니다. 예를 들어 VS08 Standard 이상은 개체 관계형 디자이너, SQLMetal 명령 줄 도구, LINQ 인식 코드 편집기 및 디버거 지원을 포함하여 Visual Basic .Net 및 Visual C #에서 LINQ를 지원합니다.

LINQ를 사용한 언어 통합 쿼리

LINQ to Objects (문자열, 리플렉션 및 파일 디렉터리), LINQ to XML 및 LINQ to ADO.Net을 포함하여 VS08에 제공되는 여러 LINQ 구성 요소 및 공급자. LINQ to ADO.Net에는 LINQ to DataSet 및 LINQ to SQL의 두 가지 구성 요소가 포함됩니다. 엔티티에 대한 야심 찬 ADO.Net 엔티티 프레임 워크 및 LINQ가되어 있지 VS08에 포함되어 있지만 추가 기능으로 올해 말 제공 될 수 있습니다.

SQL Server 2000 데이터베이스에 대해 C #에서 LINQ to SQL을 테스트했습니다. 이 화면 이미지의 객체 관계 다이어그램은 데이터베이스에서 테이블을 끌어 자동으로 생성되었습니다. 호출 가능한 LINQ 호환 클래스 집합도 자동으로 생성되었습니다.

Object Relational Designer는 데이터베이스 스키마에서 C # 클래스를 만드는 데 잘 작동했으며 IntelliSense는 LINQ 쿼리를 작성할 때 잘 작동했습니다. 반면에 세 개의 관련 테이블에 대해 손으로 LINQ 쿼리를 작성하면 초기 LINQ 기술의 한계를 뛰어 넘었고 VS08의 그래픽 SQL 쿼리 디자이너에 해당하는 LINQ를 갈망했습니다. SQL "SELECT DISTINCT"쿼리에 해당하는 LINQ를 작성하는 방법을 알아 낸 적이 없습니다.

IntelliSense, 리팩토링, 단위 테스트 및 메트릭

이 작은 프로젝트에서 작업 할 때 C # 리팩토링 기능 (Professional 이상에 포함됨)이 매우 원활하게 작동한다는 것을 알았습니다. C #을 편집 할 때 프로그래머는이 화면 이미지의 팝업 메뉴에 표시된대로 자동화 된 리팩토링을 활용할 수 있습니다. LINQ에 대한 완전한 IntelliSense 지원이 있습니다 (그림에서 "var qAV"로 시작하는 코드 참조). 코드 메트릭 (그림 하단)은 관리 코드에 대해서만 계산됩니다.

또한 관리 코드 (VSTS Developer 및 Team Suite에 포함)에 대한 코드 메트릭이 상당히 잘 작동 함을 발견했습니다. 디자인 화면에서 생성 된 코드에 대해 메트릭이 계산되는 방식에 동의하는지 잘 모르겠지만 특히 TFS로 관리되는 팀 프로젝트의 맥락에서 메트릭의 전반적인 유용성을 확실히 볼 수 있습니다.

수십 명의 프로그래머가있는 대규모 C 프로젝트를 관리하는 데 도움이되도록 몇 년 전에 순환 복잡성 (프로그램 모듈을 통한 선형 독립 경로 수 측정)과 같은 메트릭을 사용했습니다. 관리 코드 용으로 VS08에이 기술이 도입되어 기쁩니다.

그러나 관리되지 않는 C ++ 프로젝트에는 코드 메트릭 및 코드 리팩토링을 사용할 수 없다는 점에 실망했습니다. 반면에 C ++ 프로젝트는 매우 멋진 호출 브라우저를 사용할 수 있습니다. 주어진 함수를 호출하는 다른 함수와 호출을 수행하는 코드 행을 간략하게 보여줍니다.

Visual Basic 프로젝트에는 믿을 수 없을 정도로 간결한 구문, 훌륭한 IntelliSense 및 많은 코드 조각과 함께 코드 메트릭이 포함되어있어 기쁩니다. Visual Basic 프로젝트에 코드 리팩토링이 없다는 점에 실망했습니다.이 기능은 여러 타사 플러그인 중 하나를 사용하여 추가 할 수 있습니다.

단위 테스트가 이제 Professional Edition의 기능이라고보고하게되어 기쁩니다. (VS05의 VSTS 기능이었습니다.) C #, Visual Basic 및 관리되는 C ++ 솔루션에 대한 단위 테스트 및 테스트 프로젝트를 만들 수 있습니다. 무료 오픈 소스 프로그램 NUnit을 사용하기 전에이 작업을 수행 할 수 있었지만 단위 테스트 기능을 IDE와 통합하는 것이 조금 더 좋습니다.

JavaScript 용 IntelliSense는 VS08에서 약속 된 개선 사항 중 하나였습니다. 거기에 있지만 비용이 발생합니다. ASP.Net AJAX 및 Silverlight 페이지를 작성하는 데 사용되는 일종의 JavaScript에 대한 지원이 추가되었지만 VBScript 및 Classic ASP 편집에 대한 지원은 중단되었습니다. 1999 년 빈티지 클래식 ASP 사이트를 유지하고 있기 때문에 VS08이 VS05 또는 실제로 Visual InterDev 6보다 ASP 페이지에서 더 나쁜 작업을 수행한다는 사실에 약간 짜증이났습니다. Microsoft는 서비스 팩을 위해이 기능을 복원하는 것을 고려하고 있습니다. VS08에. 한편, 여전히 클래식 ASP 사이트를 유지하는 사람들은 기존 도구를 포기해서는 안됩니다.

WPF, Silverlight 및 Web 2.0

VS08은 Silverlight SDK 및 VS08 용 Silverlight 도구를 설치하면 WPF의 하위 집합을 포함하는 풍부한 인터넷 응용 프로그램 기술인 Silverlight를 지원합니다. VS08 베타 버전으로 Silverlight 응용 프로그램을 개발하는 데 좋은 경험이 있습니다. (Silverlight 자체에 대한 리뷰는 "Microsoft Silverlight는 Flash, AJAX와 경쟁합니다."를 참조하십시오.)

VBScript 및 Classic ASP에 대한 지원이 중단 된 것을 제외하고는 VS08의 웹 페이지 디자인 화면이 VS05보다 낫습니다. Expression Web과 매우 유사하며 CSS를 훌륭하게 지원합니다. VS05의 무료 추가 기능이었던 ASP.Net AJAX, Windows Communications Foundation 및 Windows Workflow Foundation의 디자인 화면과 프로젝트가 기본 VS08 제품으로 이동되었습니다.

사무실 및 스마트 장치 대상

VS08은 C # 및 Visual Basic에서 네 개의 대상 플랫폼과 두 가지 버전의 .Net Compact Framework에 대해 관리되는 스마트 장치 프로젝트를 만들 수 있습니다. C ++에서 VS08은 Win32, ATL (Active Template Library) 및 MFC (Microsoft Foundation Class) 라이브러리를 사용하여 관리되지 않는 스마트 장치 프로젝트를 만들 수 있습니다. 이 기능은 별도의 Windows CE 툴킷에있었습니다.

잡동사니

Microsoft SQL Server Compact 3.5는 스마트 장치에 배포 할 수있을만큼 작은 새로운 로컬 데이터베이스입니다. 개발자는 독립 실행 형 및 가끔 연결되는 시나리오 모두에서 사용할 수 있습니다. SQL Server Compact가 로컬 데이터베이스 캐싱에 사용되는 경우 Microsoft Synchronization Services for ADO.Net은 로컬 Compact 데이터베이스와 원격 데이터베이스 간의주기적인 동기화를 처리합니다.

Team Foundation Server 설치가 감지되면 Visual Studio가이를 통합 할 수 있습니다. 이를 통해 프로그래머는 작업 항목을 수신하고 체크인 할 수 있으며 관리자는 여기에 표시된 것과 같은 보고서를 생성 할 수 있습니다.

Team System에는 여러 가지 개선 사항이 있습니다. TFS의 큰 항목 중 하나는 새로운 팀 빌드 시스템입니다. 다른 하나는 웹 액세스입니다. 건축가에게는 새로운 하향식 시스템 디자이너와 아키텍처 역할 시스템이 있습니다. 개발자는 앞서 설명한 새로운 코드 메트릭 시스템과 더 나은 코드 분석 및 성능 도구를 보유하고 있습니다. DBA에는 T-SQL 코드 분석, 데이터 생성기 및 리팩토링 도구가 있습니다. 테스터는 Test Load Agent를 포함하여 더 나은 도구와 유효성 검사 규칙을 가지고 있습니다.

Visual Studio에는 독립 소프트웨어 공급 업체의 활발한 에코 시스템이 있습니다. 이러한 공급 업체의 대부분은 Visual Studio를 향상시키는 플러그인 및 컨트롤을 생산합니다. 새로운 Visual Studio Shell을 통해 이러한 공급 업체는 고객이 Visual Studio를 제대로 구매할 필요가없는 독립 실행 형 버전의 제품을 제공 할 수 있습니다. Microsoft의 이러한 움직임에 박수를 보냅니다. ISV가 상대적으로 적은 비용으로 Microsoft에 비해 경쟁력을 높일 수 있기 때문에 에코 시스템이 더 건강해집니다.

전반적으로 Visual Studio 2008은 WPF, WCF 및 WF와 같은 새로운 기술로 개발하고 Windows Vista와 같은 새로운 플랫폼을 개발하기 위해 대부분의 Microsoft 지향 개발 업체에서 원하는 업그레이드입니다. 그러나 쉽게 단편적으로 만들어지는 업그레이드는 아닙니다. 프로젝트 자체가 성공적으로 업그레이드되면 대부분의 상점에서 프로젝트의 모든 개발자를 업그레이드하도록 조언합니다. 내 경험상 VS05에서 VS08로 프로젝트를 업그레이드하는 것은 코드 재 작성에 거의 관여하지 않아 비교적 고통스럽지 않았습니다.

여전히 클래식 ASP 사이트를 유지 관리하는 상점의 경우 적어도 클래식 ASP 및 VBScript 편집 기능이 복원 될 때까지 VS08을 VS05와 나란히 설치하는 것이 좋습니다. VS05에 대한 인식 된 문제로 인해 Visual Studio .Net 2003 또는 이전 버전을 계속 사용하는 상점의 경우 VS08을 심각하게 평가할 것을 제안합니다.

몇 가지 예외를 제외하고 모든 수준의 Visual Studio 사용자는 2008 릴리스가 개선되었음을 알 수 있습니다. 강력한 업그레이드이며 향후 개발을위한 견고한 기반입니다.

스코어 카드 (10.0 %) 능력 (30.0 %) 성능 (15.0 %) 개발 용이성 (30.0 %) 문서 (15.0 %) 전체 점수 (100 %)
Microsoft Visual Studio 2008 Professional 및 Microsoft Visual Studio Team System 2008 Team Suite 9.0 10.0 9.0 9.0 9.0 9.3