ASP.NET MVC 3이 우리에게 주는건 뭐?!

Posted by 네버덜레스
2010.03.25 09:00 .NET/MVC 3 뒷북치기

ASP.NET MVC 2 베타버전일때 여기에 있는 로드맵을 확인하고 정리해야겠다 했는데, 어느덧 세월(?)이 흘러~ MVC 2가 릴리즈 되고 MVC 3를 기다리는 이때에 MVC 3이 우리에게 줄 편안함을
제 발자취에도 기록하게 되네요^^;

ASP.NET MVC 3이 우리에게 주는건 뭐?!

생산성 향상

- 업무 기반의 헬퍼를 제공한다네요. (헬퍼는 도우미 메쏘드를 의미합니다.)
: 태그를 사용해서 해왔던 것들(input, img, textarea..)을 헬퍼를 사용해서(Html.TextBox, Html.CheckBox..) 대체하고, 제공되지 않은 헬퍼들은 태그빌더클래스를 사용해서 만들고(Html.Image, Html.Div..), 사용했죠. 그리고, 계속 업그레이드되어 헬퍼 뒤에 For을 붙인 형식화된 헬퍼(Strongly-Typed)의 등장으로( Html.TextBoxFor, Html.TextAreaFor ..) 람다식을 사용해서 바로 모델에 접근, 데이터를 뿌려줄수 있었죠.
MVC 3에서는 여기서 더 나아가~~ CAPTCHA나 소트,페이징이 되는 데이터 그리드 등의 웹 어플리케이션에서 일상적으로 사용되는 것들에 중점을 두고있다네요. 후후 좋군요.

- 유효성 검사 향상
: 기존의 유효성 검사처럼(똑같은 유효성 검사를 각 UI에서 처리하고, 또 그것을 신뢰할수 없기에(믿음없는세상?) 서버단에서도 같은 유효성검사를 해왔죠.(저는 그랬습니다. 암튼..)
ASP.NET MVC 의 경우 DataAnnotation을 모델이나 뷰모델 클래스에 사용해서 유효성 검사를 할 수 있습니다. 필수값, 글자길이, 값의 범위, 정규식을 사용할수 있고, 또한 커스텀한 정규식을 만들어서 사용할 수 있습니다. 
이메일같은 정규식처럼 더 많은 유효성 검사 속성들을 제공할거라네요.
다들 아시겠지만 이렇게 모델에만 유효성 검사를 체크해놓으면 이 모델객체를 사용하는 곳에서는 모두 유효성 검사를 할수 있게 됩니다.(간단하죠^^;) 클라이언트에서도 스크립트 파일 두개만 추가하면(추후에 한번 해보죠) 서버단까지 호출하지 않고서도 바로 결과를 얻을 수 있습니다. 암튼 편해졌죠-_-;

- 뷰엔진은 옵션으로
: Spark 같은 뷰엔진을 옵션설정으로 할수있게끔 한다는 것 같은데요. 일단 이것도 다음에 한 번 해보고 포스팅하게되면.. 하도록... 하죠..

- 커맨드 라인 툴... 이라 뭘 말하는걸까요? 답변주세요^^(글쓰는게 장난이야? 라고 하시는 분들은 그냥 조용히~ 다른 블로그로 가시면 됩니다!)


Ajax - 현재 안쓰이는 곳이 없다는 이놈을 쉽게 제공해준다는 거겠죠?

- 더 많은 Ajax 헬퍼 지원
: 캘린더 같은 jQuery UI를 제공할건가봐요. 나이스~

- 많은 파샬 업데이트
: 기존에는 뷰페이지에 있는 하나의 파샬뷰만 업데이트되었는데, 이제는 여러개의 파샬뷰를 받아서 모두 처리를 해준다는 얘기? 그렇다면~ 오케이~
(일단 주저리 떠들고 잘못된 부분은 수정하겠습니다... ㅎㅎㅎㅎ)

- 클라이언트 템플릿 지원
: json 데이터를 받고 리턴하고 하는 액션메쏘드가 있는 템플릿들을 쉽게 사용하게 해준다는 건가? 일단 이것도 여러경험을 쌓은 후에.. 다시~


아키텍쳐
- DI, MEF, 어플에서의 스카폴딩이라.. 몰라. 다음(공부할게요ㅠㅠ)


퍼포먼스

- 향상된 캐싱 지원
: RenderAction이 호출될때 child action의 캐싱을 한다는... 도넛캐싱을 보겠다는.. 머 그렇다는..
(진짜 공부하자.. ASP.NET이 캐싱을 어떻게 하는지도..)

- 세션컨트롤
: 액션이나 컨트롤에서 세션상태를 변경할수 있게끔한다는것 같은데.. 제 지식이 얕아서 잘 모르겠습니다.


정말 모르는것 투성이네요. MVC 3이 나오기전에 어서 위에서 살펴본 많은 것들을 현재는 어떻게 하고 있는지 경험해 봐야 겠습니다. 암튼.. 점점 향상되어가는데.. 저만 제자리에 있으면 안되겠죠?
열공!!!

참고 :
http://aspnet.codeplex.com/wikipage?title=Road%20Map&referringTitle=Home&ProjectName=aspnet

이 댓글을 비밀 댓글로