2012-11-07 2 views
1

ASP.NET이 장면을 입력 한 이후로 ASP 내에 쉽게 배포 할 수있는 라이브러리 (보기 + 코드)를 만들 수있는 깨끗한 방법이 없었습니다. NET 사이트.ASP.NET MVC 모듈 형 개발

  • 하는 ASP.NET 사이트
  • 클래스 라이브러리는 지금까지 컨트롤러 또는

코드 숨김 간다 : 우리가 시나리오를 가지고가는 경우에

그래서, 당신과 함께 해결책을 가지고 곳 그것은 쉽게 다룰 수 있습니다. 후자는 클래스 라이브러리에 컴파일 된 것이며, 전자는 클래스 라이브러리의 일부이기도하며 웹 응용 프로그램의 규칙에 따라 쉽게 감지 할 수 있습니다. 이제 조회수가 ascx, aspx 또는 cshtml이되면 다른 이야기가됩니다.

  1. 임베디드 전망하는 VirtualPathProvider를 통해 제공 : 지금까지 내가 말할 수있는, 이들은 옵션이 있습니다. 런타임 컴파일을 유지하지만 웹 사이트에서보기를 변경할 수는 없지만 으로 설정하여 사용 가능한보기 위치의 폴백 체인에 연결합니다.

  2. 컴파일 된보기. 이것은 기본적으로 코드 숨김 시나리오에 달려 있습니다. 나는 임베디드 뷰 (embedded views)와 동일한 발언을 유지한다고 생각한다.

  3. NuGet 패키지 뷰 파일을 복사합니다. 가장 실현 가능하지만 원치 않는 빌드 오버 헤드를 부과합니다. 별도의 프로젝트를 모델 :

    • 이 좋은 깔끔한 프로젝트를 유지 :

내 주요 문제는, 개발 및 프로덕션 배포 모두를 용이하게 할 한 가지 사이즈로 모든 시나리오가 없다는 것을 즉 컨트롤러와 뷰

  • 당신에 개발주기를 맞는 : 단지보기를 편집하고
  • 쉽게 배포를 활성화하려고 : 한 번 개발 된 다른 프로젝트
  • 에 적용

    다른 개발자가이 문제를 어떻게 처리하는지 궁금합니다. 누군가이 모든 문제를 해결할 방법을 찾았습니까?

    편집 : 많은 CMS가 어떤 식 으로든 그것을 촉진한다는 사실을 알고 있지만, 지금까지는 위의 것들을 해결하지 못했습니다.

    답변

    1

    Orchard CMS을 살펴볼 수 있습니다. 그것은 문제를 완벽하게 해결하는 모듈 식 프레임 워크로 개발되었습니다. 자체적으로 ASP.NET MVC 프레임 워크를 구현하는 모범 사례가 있습니다.

    "이 도구는 소스 코드로 배포 된 모듈을 동적으로 컴파일하는 기능을 지원하며 바이너리 배포보다 융통성이 있으며 Visual Studio를 사용하지 않고도"적절한 "코드 사용자 지정과 같은 흥미로운 시나리오를 사용할 수 있습니다."