2013-04-16 2 views
1

우리는 많은 복사본을 가진 추상 asp.net mvc 프로젝트를 가지고 있습니다. 실제로 모든 복사 프로젝트에는 거의 동일한 기능이 있습니다. 그러나 때로는 일부 동작 및 컨트롤러에서 다를 수 있습니다. 또한 모든 복사 프로젝트에는 자체 테마가 있습니다. 하지만 그들은 추상적 인 기본 프로젝트에서 대부분의 자바 스크립트 코드를 공유합니다.Asp.Net MVC 프로젝트의 다중 복사본

이 측면에서 우리는 몇 가지 어려움에 직면 해 왔습니다.

  • 먼저 모든 복사 프로젝트가 자체보기를 갖도록 mvc보기를 상속 할 수 없습니다. 기능을 변경하려면 모든 프로젝트 뷰에서이 기능을 구현해야합니다.
  • 또한이 접근 방식에서 javascript는 골치 거리입니다. 때로는 자바 스크립트에서 html 계층 구조를 사용해야하기 때문입니다. 그리고 모든 HTML 코드는보기가 다르기 때문에 다릅니다.
  • 우리가 새로운 복사 프로젝트를 시작할 때마다, 그것은 우리에게 고통입니다. 왜냐하면 우리는 기초 추상 프로젝트를 고수하려고하기는하지만 기본 프로젝트에서 출발해야하기 때문입니다.

테마 변경과 같은 새로운 프로젝트를 구축 할 수있는 프로젝트 구조가 필요합니다. MEF 구조를 살펴 보았습니다. 복사 프로젝트를 플러그인으로 만들면 어떻게 될지 모르겠습니다. 또한 뷰를 어셈블리 파일에 리소스로 통합하고 싶지 않습니다. 그것은 쉽게 수정할 수 없기 때문입니다. 또한 MVC 테마 구조를 살펴 보았지만 상속받지 못하기 때문에 좋은 해결책이 아닙니다.

당신의 제안은 무엇입니까?

+0

까다로운 문제가 있습니다. Umbraco 나 DotNetNuke와 같은 완전한 CMS 시스템으로 마이그레이션 할 수 있습니까? CMS의 이점은 동일한 IIS 인스턴스에서 호스팅되는 여러 웹 사이트를 지원한다는 것입니다 (그러나이 작업을 수행 할 필요는 없습니다). 기능, 테마 등을위한 플러그인 시스템이 있습니다. 자주 사용하는 뷰를 재사용 가능한 플러그인으로 롤백 할 수 있습니까? – Grubl3r

+0

웹 시스템은 조금 복잡하고 복잡합니다. 나는 CMS 시스템이 그것을 처리 할 수 ​​있다고 생각하지 않는다. 또한 우리는 그것을 많이 수정해야합니다. 내 게시물에서 플러그인 아키텍처에 대해 언급했습니다. 뷰를 플러그인에 넣으면 매번 최종 배포를 컴파일해야합니다. 쉽게 수정할 수는 없습니다. – oruchreis

답변

0

이미 내 2 센트

나는했습니다 여러 MVC 프로젝트와 내가 그들 모두를 통해 의견을 공유 할 필요가 몇 번이 여기에 귀하의 문제에 대한 해결책을 찾았지만 있는지 확실하지 않습니다. JS 문제를 해결하기 위해 다른 모든 응용 프로그램에 대한 정적 파일 (JS, CSS, Assets) 만 제공하는 "CDN"프로젝트를 만들었습니다. 그래서 내 JS 호출의 의견의 문제에 대한

<script type="text/javascript" src="http://my_cdn_app/Scripts/myscript.js"></script> 

것, 당신이 클래스 라이브러리 (정말 멋진 EY)에서 컴파일 된 뷰의 무리를 가질 수이 면도기 생성기를 발견 한 단점은 가지고있다 고통이 http://razorgenerator.codeplex.com/

를 업데이트 할 수 있습니다 오히려 MVC 뷰보다 도서관에서 마크 업이 그래서 당신은 기본 CSS 및 기본 JS있을 수 있으며, CDN 및 특정 테마에서 오는/각 오버로드 만 MVC 응용 프로그램 서 .

는 또한 공유 마크 업을 채우기 위해 JSON 데이터를 제공하는 API 응용 프로그램을 구현 했어 나 또한 다른 응용 프로그램

나는 그것이 도움이되기를 바랍니다에 JSONP를 통해 전체 태그보기를 전송할 수 있습니다. 건배