[.NET] Nancy + Self Host + Razor View Engine 개발시 Razor Intellisense 해결법

이번달에 경축할 만한 소식. 드디어 닷넷 웹 프레임워크의 미학인 낸시 프레임워크가 0.20.0 이 출시됐다.

게다가 Jetbrains 라는 업체가 이 프로젝트를 지원해주는 스폰서가 됐다..

잠깐.. 씨뱅 JetBrains 라면 InteliJ IDEA 만든 곳?

맞다. 이 업체는 자바 개발환경을 만든 업체다. 하지만 닷넷으로 업계 뛰어든 사람은 알겠지만 닷넷 솔루션도 만든다.

한마디로 자바와 닷넷 둘다 사업한다는 말이다. 상용 지속통합 환경툴인 TeamCity는 커뮤니티 에디션이 공짜라서 오픈소스 닷넷 개발자도 많이 이용한다. (닷넷에게 젠킨스는 워낙에 빡세거든.. 닷넷 통합 지원은 되긴 하지만…)

어쨌든, 구글 한국어 검색으로 Nancy 로 검색해보니, 낸시를 실무에 적용한 개발자도 봤고, 소개한 개발자도 봤다.

소개한 개발자 중에서도 내 낸시 프레임워크 소개글 링크까지 걸어준 고마운 개발자도 보였다.

이렇게 반응이 조금이나마 가시적으로 보여져서 그런지 마음이 짠하다.

그러니 닷넷 개발자 여러분은 ASP.NET MVC를 멀리하고 Nancy Framework 를 가까이하는게 낫습니다.

아니면 마소가 만든 Self Host WebAPI 쓰덩가.

내가 자바와 씨름하는 사이에 node.js 에서는 닷넷 코드와 연동할 수 있는 edge.js 도 출시했더라. 올ㅋ

잘하면 Nancy + Socket.IO 통합 웹 환경도 완성될듯 하지만.. 그건 쯰끔한 프로젝트에 한해서고..ㅋㅋ

너무 통합하려 하지 말자. 머리 아프다.

자. 이제 본론으로 들어가서. 낸시를 자체 호스팅으로 돌리는 분들을 위한 간단명료한 팁을 올리도록 하겠다.

Nancy + Self Host + Razor 를 깔았다. 괜찮은 웹 개발환경이다. script.cs 를 이용하면 node.js의 express 뺨치게 생겼다.

그런데..

그 상태에서 .vbhtml 이나 .cshtml 파일을 열면 인텔리센스가 안된다.뭐라 씨부렁대나 했더니..

Views\Test.cshtml: ASP.NET 런타임 오류: 파일이나 어셈블리 ‘Nancy.ViewEngines.Razor.BuildProviders’ 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다. (web.config line 13)    Views\Test.cshtml

근데 이건 빌드 한번 하면 해결된다. 왜냐면 낸시 Razor를 Nuget 으로 설치하면 프로젝트 세팅에서 Razor Buildprovider DLL 파일을 자동으로 bin 폴더에 옮기도록 세팅했기 때문이다.

또한 Razor 인텔리센스는 ASP.NET 환경만 생각했기 때문에 web.config 파일이 없으면 인텔리센스가 병신이 된다.

그 이유와 해결책을 공식 블로그 링크를 통해 참고하라. (당연히 영문이다.)

http://blogs.msdn.com/b/webdev/archive/2011/01/20/how-to-get-razor-intellisense-for-model-in-a-class-library-project.aspx

자.. 이제 한시름.. 놓는건 잠시… 아직 문제는 끝나지 않았다.

Views\Test.cshtml: ASP.NET 런타임 오류: 파일이나 어셈블리 ‘System.Web.Razor.Unofficial, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null’ 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다.    Views\Test.cshtml

이런.. 안타깝게도 System.Web.Razor.Unofficial 이녀석을 못찾는다는 거다. 당연히 nuget으로 깐 사람에 해당된다.

해결책은 무쟈게 간단하다. 그냥 System.Web.Razor.Unofficial DLL 파일 찾아서 bin 폴더에 옮겨주면 땡이다.

아니면 프로젝트 속성에 빌드 후 이벤트에 추가해도 된다.

xcopy /s /y /R “$(SolutionDir)packages\System.Web.Razor.Unofficial.2.0.2\lib\net40\*” “$(ProjectDir)bin\”

<

p>

그리고 빌드 한번 하고 vbhtml 이나 cshtml 파일 닫았다가 열어주면 인텔리센스가 깔끔하게 동작할 것이다.

Razor 인텔리센스가 얼마나 병신같은지 보여주는 대목 되겠다. GAC 이나 bin 아니면 인텔리센스는 이미 개나 줘버릴 수밖에..

뭐.. 이것으로 이제 Razor View Page 작성할 수 있으면 됐다. 레이아웃도 지원되고 파샬은 모르겠고 헬퍼 지원되니.

이제 마음껏 써보자.

내가 한가지 장담하는데. 낸시 프레임워크는 “실무 사이트에 적용해도 문제없이 잘 돌아가도록” 해놨다.

개발환경만 잘 꾸리면 ASP.NET MVC는 이제 너무 어려워서 보기 싫을 정도일 것이다.

ㅋㅋ 낸시 한국전도사 필자가 쓴 글은 여기서 마치도록 하겠다. 끝.

composite / 2013년 9월 16일 / 미분류
태그:, , , , , , , ,

답글 남기기

Your email address will not be published / Required fields are marked *