레이블이 MVC인 게시물을 표시합니다. 모든 게시물 표시
레이블이 MVC인 게시물을 표시합니다. 모든 게시물 표시

2012년 2월 22일 수요일

[책] Test-Drive ASP.NET MVC

아직 다 읽은 건 아니지만, 저자가 개발 환경, 철학, 사용 라이브러리까지 어찌 저랑 그리 비슷한지^^ NHibernate, Castle.Windsor 사용, MVC 가 Castle.MonoRail 에서 발전했다니까, Castle.Windsor 사용은 어찌보면 자연스럽고, 거기다가 NUnit, Rhino Mock 같은 테스트 툴까지도 같네요^^ Resharper 쓰자는 말까지 하다니^^

전 이 책을 TDD 를 위해서 보는 게 아니라, MVC 3 를 공부해서, 제품 하나 만들어 보려고 하는데, MVC 관련 책이 한국에는 없네요… 아마존에 주문해 놓고, 그냥 심심해서 서점 갔더니 이 책이 있어서 그냥 사 봤습니다.

글쓴이의 TDD 에 대한 자세나 여러가지 경험 및 의견에 대해 대부분 동의하고, MVC 에 대한 글도 자세히 설명되어 있어 일석이조가 아닌가 싶습니다.

단 아쉽게도 MVC 2를 기준으로 하여, Razor 를 배우고자 하시는 분은 따로 공부하셔야 합니다. 뭐 Razor 문법 자체는 너무도 간단해서 굳이 책으로 공부할 필요까지는 없을 듯 하더군요… (아직까지는^^)

2012년 2월 20일 월요일

ASP.NET MVC 가 ASP.NET WebForm 보다 좋은 점

요즘 UI 쪽을 다시 공부하고 있는데, 기존 ASP.NET WinForm 보다 새로운 기능이면서, 빠른 발전을 하고 있는 ASP.NET MVC 3 를 보고 있습니다.  MVC 1, MVC 2 에 비해 MVC 3가 많이 좋아졌고, Razor Template 엔진까지 나왔고… 곧 MVC 4 도 나올 예정이니, 상당히 빠르게 발전하고 있긴 합니다.
사실 전 뭐가 발전하고 있는지, 흐름을 놓친지 하도 오래되어 다시 찬찬히 보고 있는데, 오호라~ 몇 가지 제가 좋아라 하는 기능이 기본적으로 들어 있군요^^
public ActionResult Welcome(string name, int numTimes = 1)
{
    ViewBag.Message = "Hello " + name;
    ViewBag.NumTimes = numTimes;

    return View();
}


Controller 에 다음과 같은 함수를 정의하면,


http://localhost:12095/HelloWorld/Welcome?name=Scott&numTimes=4


과 같이 사용할 수 있군요. 이게 뭐냐구요? 웹 페이지 호출을 함수 호출하듯이 인자가 정의되어 있다는 점 – 즉 Named Parameter 를 사용하여, ASP.NET 의 불명확한 인자에 대한 처리를 명확한 API 형식으로 정의가 가능하다는 점이지요.


또 하나는 ViewBag 이 dynamic 이라 기존 정보 전달에서는 IDictionary<string, object> 가 기본이었는데, 위와 같이 속성처럼 사용이 가능하니, 문자열 타이핑 오류를 상당히 줄일 수 있겠네요^^ 다만, dynamic 속성에 대해서는 refactoring을 지원하지 않는 아쉬움이 있네요.

뭐 저야 화려한 UI를 만드는 역할이 아니라 이런 규격화된 규칙을 정하고, 사용하도록 하는 역할을 수행합니다만. 그 동안 Presentation Layer에 좀 무심했네요.

그리고 얼린 .NET 4 로 올라와야겠군요. 언제까지 .NET 3.5에 머물러 있을 수는 없을 듯 하네요.

아직 MVC 에 많은 것을 공부하지 못했지만, 기존 WebForm 방식보다는 제 맘을 끄는 기능이 많군요. Testing 도 그렇고, MVC 자체 패턴도 그렇고…

2009년 4월 5일 일요일

https://Catharsis.svn.codeplex.com/svn

Based on Microsoft .NET 3.5 SP1 + ASP.NET MVC (RC1)
NHibernate 2.0.1

Nothing else needed, All other stuff is provided directly by Catharsis framework and Catharsis guidance. The core libraries are named ProjectBase to allow smoother introduction to your organization. Catharsis is Open Source.