1. 초이스 시리즈의 첫 번째 도서인 프로 ASP.ET MVC 프레임워크 : Taeyo's Choice가드디어 출간되었습니다. 본 도서는 Apress 출판사의 「Pro ASP.NET MVC Framework」의 번역서로 출간 이후 지금까지 아마존 사이트의 ASP 분야 1위를 줄곳 지키고 있는 타이틀입니다.
이 책은 Apress의 Pro ASP.NET Framework(Sanderson 저)의 번역서로, 원서는 아마존(Amazon) 사이트의 프로그래밍/ASP 분야에서 출간 당시부터베스트셀러에 속하여 현재까지 당당히 1위를 차지하고 있는 도서이다.
새로운 ASP.NET MVC 프레임워크는 마이크로소프트 웹 개발에 있어서 ASP.NET이 처음으로 공개된 2002년 이후 가장 큰 변화를 의미한다.
ASP.NET MVC 프레임워크는 HTML 마크업, URL 스키마, 그리고 요청 및 응답의 사용을 매우 훌륭하게 제어할 수 있도록 지원해주고 있을 뿐만 아니라 깔끔한 응용 프로그램 아키텍처를 권장하고 단위 테스트에 대한 풍부한 지원을 제공해주며, 써드 파티 자바스크립트 라이브러리 및 Ajax 툴킷과도 손쉽게 통합할 수 있도록 지원해 주고 있다.
이 책은 단순히 ASP.NET MVC에서 어떤 기능들이 제공되는지, 그리고 그 기능들을 어떻게 사용하는지를 설명할 뿐만 아니라 그런 방식으로 설계된 이유는 무엇이며, 그 원리를 적용하여 여러분의 코드를 향상시킬 수 있는 방법은 무엇인지에 대해서도 깊게 이해할 수 있게 해준다.
또한 정상적으로 동작하는 기능들은 물론이고 여러분이 직면하게 될 제약 사항들과 대안들, 그리고 여러분이 사용하면 좋을 만한 오픈 소스 도구들에 대해서도 자유롭게 분석하고 검토하고 있다.
이 책의 설명과 따라하기 형식의 튜토리얼 등을 통해서 여러분은 다음과 같은 내용들을 알 수 있게 될 것이다.
라우팅, 컨트롤러, 필터, 뷰, 모델 바인딩 등을 포함한 MVC 프레임워크의 강력한 기능들
아키텍처: 모델-뷰-컨트롤러(MVC, Model-View-Controller) 패턴, 느슨한 결합, 테스트 용이성, 테스트 주도 개발(TDD, Test-Driven Development), 그리고 관련 디자인 패턴들
MVC 프레임워크의 요청 처리 파이프라인 확장 및 사용자 정의
MVC 응용 프로그램 보호 및 윈도우 서버로의 배포
MVC 응용 프로그램에서 ASP.NET 핵심 플랫폼 기능 사용하기
기존 ASP.NET 응용 프로그램과의 통합 또는 ASP.NET MVC로의 마이그레이션
http://taeyo.net 책을 읽다가 궁금하거나 의아한 내용이 있다면 태오 사이트의 ‘ASP.NET 게시판’을 통해서 같이 이야기를 나누길 바란다. 내게 궁금한 것은 일반적으로 남에게도 궁금한 것이곤 하기에, 나중에라도 동일한 내용을 궁금해 하는 사람이 쉽게 찾아볼 수 있도록 하기 위해 역자는 그러한 궁금증을 게시판을 통해서 공유하길 좋아한다.
독자대상: 초중급
이 책은 ASP.NET과 C#에 어느 정도의 기본 지식을 가지고 있으면서 새로운 ASP.NET MVC 프레임워크를 사용하기 원하는 개발자들을 위한 책이다. 만약 여러분들이 웹폼으로 알려진 기존의 ASP.NET을 사용해 본 경험이 있다면 더욱 도움이 될 것이다. 그러나 이 책은 초보자에게도 여전히 매우 유용하다. 예제들은 따라하기 방식으로 필요한 과정을 모두 친절히 설명하고 있으며, 아무 문제없이 작동되어 진다. 모든 코드들은 제대로 설명이 되어 있고 실용적이므로, ASP.NET MVC의 기초를 알기 원하는 모두에게 이 책을 권한다.
*출판사 리뷰
ASP.NET MVC는 모델-뷰-컨트롤러(MVC, Model-View-Controller) 아키텍처의 효율성과 깔끔함, 애자일 개발(Agile Development)의 최신 개념과 기술, 그리고 기존 ASP.NET 플랫폼에서 가장 뛰어난 부분들만을 결합한 마이크로소프트의 웹 개발 프레임워크이며, 웹 개발 프로젝트의 아주 사소한 부분들을 제외한 거의 모든 부분에 있어 상당한 이점들을 제공하는 "기존 ASP.NET 웹폼"에 대한 완벽한 대안이기도 하다.
지난 몇 년 동안 우리들이 직접 경험해 왔던 것처럼, 마이크로소프트의 웹 개발 플랫폼들은 그 기능과 함께 (불행하게도) 복잡성도 점차 증가하고 있고 새로운 플랫폼들은 언제나 이전 플랫폼이 갖고 있던 단점들을 해소하고자 노력해왔다. 마찬가지로 ASP.NET MVC도 기존 ASP.NET 웹폼의 단점들을 해결하려는 목표를 갖고 설계되었으며, 특히 이번에는 간결함을 강조하고 있다.
기존의 ASP.NET은 상당히 좋은 발상이었으며 처음에는 굉장한 기대를 모았으나, 현실은 예상했던 것보다 훨씬 더 복잡했다. 지난 몇 년간 실무에서 웹폼이 사용된 결과, ViewState, 페이지 수명 주기, HTML 기반의 콘트롤에 대한 제약, 관계 분리의 취약성, 테스트의 어려움 등에서 많은 문제점들이 발견되었다.
마이크로소프트와 같은 거대 기업은 잠시 동안은 현재의 영광에 만족할 수 있겠지만, 언제까지나 그 상태로 안주할 수만은 없다. ASP.NET은 지금까지 큰 상업적 성공을 거뒀으나 그 동안 다른 웹 개발 업계는 계속 변화해왔으며, 비록 마이크로소프트가 꾸준히 웹폼의 문제점들을 해결해 나간다 하더라도 이미 웹폼의 주요 설계는 시대에 많이 뒤쳐진 것처럼 보인다.
2007년 10월, 텍사스 오스틴에서 개최된 첫 번째 ALT.NET 컨퍼런스에서 마이크로소프트의 부사장 스콧 구스리(Scott Guthrie)는 지금까지 살펴본 비난들에 대한 직접적인 응답으로 명확하게 설계된 ASP.NET 기반의 새로운 MVC 웹 개발 플랫폼을 소개하고 시연했다. 이 새로운 플랫폼이 어떻게 ASP.NET이 갖고 있는 제약들을 극복하고 마이크로소프트의 플랫폼을 다시 첨단 기술로 복귀시킬 것인지 이 책을 통해서 함께 살펴보도록 하자.
저자: 스티븐 샌더슨(STEVEN SANDERSON)
그는 코모도어(Commodore) VIC-20 사용 설명서에 기재된 BASIC 프로그램을 따라 해보면서 처음 컴퓨터 프로그램을 접했다. 그리고 이것이 그가 처음 읽기를 배운 방법이기도 하다.
스티브는 영국의 셰필드(Sheffield)에서 태어났으며 캠브리지 대학에서 수학을 공부했고, 지금은 브리스톨(Bristol)에 거주하고 있다.
그는 거대 투자 은행과 조그마한 신생 기업에서 일했으며, 그 뒤로 독립하기 전까지 프리랜서 웹 개발자, 컨설턴트 및 트레이너로 중간 규모의 ISV에서 근무했다.
스티브는 영국의 .NET 커뮤니티에서 활동하면서 사용자 그룹에 참여하기 위해 노력하고 있으며, 기회가 허락될 때마다 컨퍼런스에서 무료 강연을 하고 있다.
그는 모든 형태의 기술적인 진보에 애착이 있으며, 반짝이는 LED만 갖고 있다면 어떤 기계 장치든 구입하곤 한다.
기술 감수자: 앤디 올센(ANDY OLSEN)
그는 영국에서 활동 중인 프리랜서 개발자이자 컨설턴트다.
앤디는 베타1 시절부터 .NET을 사용하여 작업해왔으며, Apress 출판사에서 C#, 비주얼 베이직, ASP.NET, 그리고 그 밖의 주제들을 다루는 몇 권의 책들을 공저하거나 감수했다.
그는 축구와 럭비의 열광적인 팬이며 달리기와 스키(비록 서툴지만)를 즐긴다.
지금은 그의 아내인 재인, 그리고 그의 아이들, 에밀리와 토마스와 함께 스완시(Swansea)의 해변에 거주하고 있고, 이제 막 서핑의 짜릿함을 발견하여 그가 경험한 그 어느 것보다도 멋져 보인다고 생각하고 있다.
역자: 김태영(Taeyo)
Taeyo라는 온라인 아이디로 유명한 그는 ASP/ASP.NET 기술에 관한 한 국내에서 전설적인 전도사로 불린다. Taeyo.NET이라는 유명 커뮤니티의 대표 운영자이며, 현재까지도 스테디셀러인 수 많은 책들의 저자이기도 하다. 더불어, 한국인으로서는 유일하게 Microsoft MVP Insider를 수상하기도 하였다. 현재는 ㈜이노가드에서 기술이사로 재직하고 있으며, 꾸준히 온라인을 통해서 다양한 웹 프로그래밍 기술을 공유하고 있다. 그를 만나보고 싶다면, 강남역이나 선릉역 주변의 선술집들을 둘러보라. 간혹 프로그래밍과 전혀 관계없는 주제로 신나있는 그를 볼 수 있을지도 모른다.
역자: 송원석
현재 ㈜이노가드에서 솔루션 사업부 차장으로 근무하고 있다. 지난 3년간 마이크로소프트 MVP(IIS)를 수상했으며, 국내 최대의 ASP & ASP.NET 커뮤니티인 Taeyo.NET에서 IIS 게시판 시삽으로 활동하고 있다. 최근 몇 년간 개인 홈페이지(http://www.egocube.pe.kr/)를 통해서 IIS7 관련 문서들의 번역 작업을 꾸준히 진행해오고 있으며, 특히 IIS 관리 자동화에 관심이 많다.
4. 세부목차는 밑의 [더보기]를 클릭하시면 확인하실 수 있습니다.
Part 1 ASP.NET MVC 소개
>>> 1장 전체 개요
웹 개발의 간략한 역사 기존의 ASP.NET 기존 ASP.NET의 문제점
최근의 웹 개발 웹 표준과 REST 애자일과 테스트 주도 개발 루비 온 레일즈
ASP.NET MVC의 주요 장점 MVC 아키텍처 확장성 테스트 엄격한 HTML 제어 강력한 새로운 라우팅 시스템 ASP.NET 플랫폼의 장점들을 기반으로 만들어진 ASP.NET MVC NET 35 언어의 혁신 오픈 소스 ASP.NET MVC
누가 ASP.NET MVC를 사용해야 하는가? ASP.NET 웹폼과의 비교 루비 온 레일즈와의 비교 모노레일과의 비교
요약
>>> 2장 ASP.NET MVC 응용 프로그램 도전
개발환경 준비하기
새로운 ASP.NET MVC 프로젝트 생성하기 불필요한 파일 제거하기 동작원리
웹 페이지 렌더링 뷰 생성 및 렌더링 동적 출력 추가하기
첫 응용 프로그램 개요 액션간의 링크 걸기 데이터 모델 설계하기 폼 작성하기 폼 제출 처리하기 유효성 검사 추가하기 마무리
요약
>>> 3장 사전지식
모델-뷰-컨트롤러(MVC, Model-View-Controller) 아키텍처의 이해 스마트 UI 도메인 모델 분류 3-티어 아키텍처 MVC 아키텍처 모델-뷰-컨트롤러의 변형
도메인 모델링 도메인 모델 예제 엔티티와 값 개체 편재 언어 집합 및 단순화 리파지터리를 이용하여 데이터 접근 코드를 유지하기 LINQ to SQL 사용하기
느슨하게 연결된 구성 요소 작성하기 균형 잡힌 접근방식 IoC 사용하기 IoC 컨테이너 사용하기
자동화된 테스트 시작하기 단위 테스트 및 통합 테스트 실패 후 성공 개발방식8
새로운 C# 3 언어 기능들 설계 목표: 통합 언어 질의(LINQ) 확장 메서드 람다 메서드 제너릭 형식 추론 자동으로 구현된 속성 개체 및 컬렉션 이니셜라이저 형식 추론 익명 형식 LINQ to Objects 사용하기 람다 식 IQueryable<T>와 LINQ to SQL
요약
>>> 4장 스포츠스토어: 실무 응용 프로그램
시작하기 솔루션 및 프로젝트 생성하기
도메인 모델 작업하기 추상 리파지터리 생성하기 가상 리파지터리 만들기
제품 목록 출력하기 불필요한 파일 제거하기 첫 번째 컨트롤러 추가하기 기본 경로 설정하기 첫 번째 뷰 추가하기
데이터베이스 연결하기 데이터베이스 스키마 정의하기 LINQ to SQL 설정하기 실제 리파지터리 생성하기
IoC설정하기 사용자 정의 컨트롤러 팩터리 생성하기 IoC 컨테이너 사용하기
자동화된 테스트 생성하기
사용자 정의 URL 스키마 구성하기 RouteTable 정보 추가하기 페이지 링크 출력하기
모양 꾸미기 마스터 페이지 안에 페이지 레이아웃 정의하기 CSS 규칙 추가하기 파샬 뷰 생성하기
요약
>>> 5장 스포츠스토어: 탐색 및 장바구니
탐색 컨트롤 추가하기 제품 목록 필터링하기 카테고리용 URL 스키마 정의하기 카테고리 탐색 메뉴 만들기
장바구니 구현하기 Cart 엔티티 정의하기 ‘Add to Cart’ 버튼 추가하기 각각의 방문자에게 별도의 장바구니 제공하기 CartController 생성 하이 장바구니 출력하기 장바구니에서 항목 제거하기 타이틀 바에 장바구니 요약 출력하기
주문 전송하기 도메인 모델 개선하기 ‘Check Out Now’ 버튼 추가하기 고객으로부터 배송 상세 정보 입력하기 주문 제출자 IoC 구성 요소 정의하기 CartController 완성하기 EmailOrderSubmitter 구현하기
요약
>>> 6장 스포츠스 토어 관리기능 및 최종 개선 작업
카탈로그 관리 추가하기 AdminController 생성하기 CRUD 기능을 구현할 위치 리파지터리에 존재하는 제품의 그리드 렌더링 하기 제품 편집기 작성하기 새 제품 생성하기 제품 삭제하기
관리 기능 보안 폼 인증 설정하기 인증 적용을 위한 필터 사용하기 로그인 입력 창 출력하기
이미지 업로드 도메인 모델 및 데이터베이스 준비하기 파일 업로드 받기 제품 이미지 출력하기
요 약
Part 2 ASP.NET MVC 심화
>>> 7장 ASP.NET MVC 프로젝트 개요
비주얼 스튜디오에서 MVC 응용 프로그램 개발하기 기본 MVC 프로젝트 구조 명명 규약 초기 응용프로그램 골격 MVC 응용프로그램과 단위 테스트를 디버깅하기 디버거 사용하기 .NET 프레임워크 소스코드로 들어가기 ASP.NET MVC 소스코드로 들어가기
요청 처리 파이프라인 1단계: IIS 2단계: 핵심 라우팅 3단계: 컨트롤러와 액션 4단계: ActionResult와 뷰
요약
>>> 8장 URL과 라우팅
개발자가 제어할 수 있다
라우트 설정하기 라우팅 메카니즘 이해하기 라우트 엔트리 추가하기 매개변수 사용하기 Defaults 사용하기 Constraints 사용하기 매개변수의 가변 길이 목록 수용하기 서버의 하드 디스크에 있는 파일과 매치하기 라우팅 시스템을 우회하기 위해서 IgnoreRoute 사용하기
출력용 URL 생성하기 HtmlActionLink로 하이퍼링크 생성하기 순수 라우팅 데이터로부터 링크와 URL 생성하기 생성된 URL로 재전송하기 아웃바운드 URL 매치 알고리즘 이해하기 HtmlActionLink<T>와 람다 식으로 하이퍼링크 생성하기 라우트에 이름을 부여하기
라우트를 단위 테스트하기 인바운드 URL 라우팅 테스트하기 아웃바운드 URL 생성 테스트하기
그 이상의 사용자 정의 사용자 정의 RouteBase 엔트리 구현하기 사용자 정의 라우트 처리기 구현하기
URL 스키마 지침 URL을 깔끔하고 사용자 친화적으로 만들자 HTTP 관습을 따르자 검색 엔진 최적화
요약
>>> 9장 컨트롤러와 액션
개요 ASP.NET 웹폼과의 비교 모든 컨트롤러는 IController를 구현한다 컨트롤러 기본 클래스
입력 수신하기 컨텍스트 개체로부터 데이터 가져오기 액션 메서드 매개변수 사용하기 액션 메서드에서 수동으로 모델 바인딩 호출하기
출력 생성하기 ActionResult 개념 이해하기 뷰를 렌더하여 HTML 반환하기 재전송 수행하기 텍스트 데이터 반환하기 JSON 데이터 반환하기 자바스크립트 명령 반환하기 파일과 이진데이터 반환하기 사용자 정의 액션 결과 형식 만들기
재사용 가능한 동작을 추가하는 필터 사용하기 4개의 기본적인 필터 형식 소개하기 컨트롤러와 액션 메서드에 필터 적용하기 액션 필터와 결과 필터 만들기 권한부여 필터 만들고 사용하기 예외 필터를 만들고 사용하기 액션 필터와 결과 필터를 통해서 예외 버블링하기 [OutputCache] 액션 필터 그 외의 내장된 필터 형식
요청처리 파이프라인의 일부로서의 컨트롤러 DefaultControllerFactory 다루기 사용자 정의 컨트롤러 팩토리 만들기 액션 메서드가 선택되고 호출되는 방법 사용자 정의하기 컨트롤러와 액션 테스트하기 Arrange(준비), Act(행동), Assert(확인하는 방법) View와 ViewData의 선택을 테스트하기 재전송 테스트하기 테스트에 관한 부가적인 이야기 컨텍스트 개체를 Mocking하기
요약
>>> 10장 뷰
ASP.NET MVC와 뷰와의 조화 웹폼 뷰 엔진 뷰 엔진은 교체가 가능하다
웹폼 뷰 엔진 기초 뷰 템플릿에 콘텐트 추가하기 뷰 템플릿에 동적 콘텐트를 추가하는 5가지 방법
인라인 코드 사용하기 프로 ASP.NET MVC 프레임워크 인라인코드가 MVC 뷰 템플릿에 적합한 이유
MVC 뷰는 실제로 어떻게 동작하는가 ASPX 템플릿은 어떻게 컴파일되는가 ViewData 이해하기 ViewDataEval을 사용하여 ViewData 항목 렌더하기
HTML 도우미 메서드 사용하기 프레임워크의 내장된 도우미 메서드들 자체HTML 도우미 메서드 만들기
파샬 뷰 사용하기 파샬 뷰 만들기 서버태그를 사용하여 파샬 뷰 렌더하기
응용 프로그램 로직을 갖는 재사용 가능한 위젯을 만들기 위해서 HtmlRenderAction 사용하기 HtmlRenderAction이 하는 일 언제 HtmlRenderAction를 사용하는 것이 적절한가 HtmlRenderAction을 기반으로 하는 위젯 만들기
마스터 페이지를 사용하여 페이지 레이아웃 공유하기 MVC 뷰 마스터 페이지에서 위젯 사용하기
사용자 정의 뷰 엔진 구현하기 XSLT를 사용하여 XML을 렌더하는 뷰 엔진
다른 뷰 엔진 사용하기 NVelocity 뷰 엔진 사용하기 Brail 뷰 엔진 사용하기 Spark 뷰 엔진 사용하기 NHaml 뷰 엔진 사용하기
요약
>>> 11장 데이터엔트리
모델 바인딩 액션 메서드 매개변수에 대한 모델 바인딩 사용자 정의 형식에 대한 모델 바인딩 모델 바인딩을 직접적으로 호출하기 배열, 컬렉,션 딕셔너리에 대한 모델 바인딩 사용자 정의 바인더 만들기 업로드된 파일을 받기 위해 모델 바인딩 사용하기
유효성 검사 ModelState에 에러 등록하기 에러정보를 출력하기 위한 뷰 도우미 프레임워크가 입력 컨트롤에 상태를 유지하는 방법 모델 바인딩 중에 유효성 검사하기 유효성 검사 로직을 모델 계층으로 옮기기
클라이언트 측 JavaScript) 유효성검사
위저드와 다단계 폼
검증 CAPTCHA 구현하기 HMAC 코드를 통한 위조 방지와 승인 링크
요약
>>> 12장 Ajax와 클라이언트 스크립트
왜 자바스크립트 툴킷을 사용해야만 하는가
ASPNET.MVC의 Ajax 도우미 Ajax ActionLink를 사용하여 비동기적으로 페이지 콘텐트 가져오기 AjaxBeginForm을 사용하여 비동기적으로 폼 전송하기 액션메서드에서 자바스크립트 명령 호출하기 ASPNET.MVC의 Ajax 도우미 검토하기
ASPNET.MVC와 함께 jQuery 사용하기 jQuery 참조하기 기본적인 jQuery 원리 MVC 뷰에 클라이언트 측 상호작용 추가하기 Ajax가 사용되는 링크와 폼 JSON으로 클라이언트 서버 데이터 전송하기 jQuery를 사용하여 XML 데이터 가져오기 애니메이션과 그 외의 그래픽적인 효과 jQueryUI의 사전 구현된 사용자 인터페이스 위젯 jQuery를 사용하여 클라이언트 측 유효성 검사 구현하기 jQuery 요약
요약
>>> 13장 보안과 약점
모든 입력은 위조될 수 있다 HTTP 요청 위조하기
크로스-사이트 스크립팅과 HTML 인젝션 XSS 취약점의 예 ASP.NET의 요청 유효성 검사 기능 HTML Agility Pack을사용하여HTML 필터하기
세션 가로채기 클라이언트 IP 주소 검사를 통한 방어 쿠키의 HttpOnly 플래그를 설정하여 방어하기
크로스 사이트 요청 위조 위조방지(Anti-Forgery) 도우미를 사용하여 CSRF 막기
SQL 인젝션 입력을 인코딩하여 방어하기 매개변수를 사용하는(Parameterized) 질의를 사용하여 방어하기 개체-관계 매핑ORM)을 사용하여 방어하기
MVC 프레임워크를 보안적으로 사용하기 우연하게라도 액션 메서드를 노출해서는 안 된다 모델 바인딩이 민감한 속성을 변경하지 못하게 하라
요약
>>> 14장 배포
서버 요구사항 공유 호스팅을 위한 요구사항
IIS 기본 웹 사이트와 가상 디렉터리 이해하기 웹 사이트를 호스트명 IP 주소 포트와 바인딩하기 IIS가 요청을 처리하고 ASP.NET을 호출하는 방법
응용 프로그램 배포하기 응용 프로그램 파일을 서버로 복사하기 윈도우 서버2003/IIS 6에서 동작하게 만들기 IIS 7에서 동작하게 만들기
응용프로그램을 운영서버에서도 잘 동작하게 만들기 변경 가능한 라우팅 구성설정 지원하기 가상 디렉터리 지원하기 ASPNET 구성 기능 사용하기 서버 상에서 컴파일 제어하기 배포 전에 뷰 안에 있는 컴파일러 에러를 감지하기
요약
>>> 15장 ASP.NET 플랫폼기능
윈도우 인증 익명 액세스 막기 또는 제한하기
폼 인증 폼 인증 설정하기 Cookieless 폼 인증 사용하기
멤버십과 역할 및 프로필 멤버십 공급자 설정하기 폼 인증과 멤버십 공급자를 함께 사용하기 사용자정의 멤버십 공급자 생성하기 역할 설정하기 및 사용하기 프로필 설정하고 사용하기
URL 기반권한 부여
데이터 캐싱 캐시 데이터 읽고 쓰기 고급 캐시기능 사용하기
사이트 맵 사이트 맵 설정하고 사용하기 사이트 맵 API를 이용한 사용자 정의 탐색컨트롤 생성하기 라우팅 데이터로부터 사이트 맵 URL 생성하기
국제화 국제화 설정하기 리소스파일 활용 팁 리소스 문자열에서 형식 항목 사용하기
성능 HTTP 압축 추적 및 모니터링 페이지 생성 시간 모니터링 LINQ to SQL 데이터베이스 쿼리 모니터링
요약
>>> 16장 MVC와 웹폼의 결합
MVC 응용 프로그램에서 웹폼 기술 사용하기 MVC 뷰에서 웹폼 컨트롤 사용하기 MVC 웹 응용 프로그램에서 웹폼 페이지 사용하기 웹폼 페이지에 라우팅 지원 추가하기
웹폼 응용 프로그램에서 ASP.NET MVC 사용하기 MVC를 지원하도록 ASP.NET 웹폼 응용프로그램 업그레이드하기 MVC 항목에 대한 비주얼스튜디오 지원 구현하기 웹폼 페이지와 MVC 컨트롤러 간의 상호작용
댓글 영역