별도의 방법 모델고,보고,컨트롤러 ASP.NET MVC 응용 프로그램은 다른 어셈블리

StackOverflow https://stackoverflow.com/questions/910089

문제

에서 나는 순간을 얻으려고 노력하고 ASP.NET MVC framework.
대부분의 테스트는 응용 프로그램을 사용되는 하나의 어셈블리/프로젝트입니다.이를 위해 일부 작은 응용 프로그램.그때 나는 어떻게 나 수소를 내 모델 컨트롤러 보기 클래스 별도 어셈블리로?에서 정말 큰 웹사-응용 프로그램 그것은 매우 사실적인 모든 것을 넣어 하나의 어셈블리/프로젝트입니다.

그래서 제 질문은:그것은 말 ASP.NET MVC 프레임워크에서 검색하려면 다른 어셈블리에 대한 전망 그리고/또는 컨트롤러를 잃지 않고장에서 유연성의 라우팅 엔진?

도움이 되었습니까?

해결책

(알 수 없음)가 맞습니다. 클래스 라이브러리와 MVC 웹 프로젝트의 두 프로젝트를 만듭니다. MVC 프로젝트는 컨트롤러와 파일 뒤에있는 코드 (글로벌 ASAX 등)가 포함 된 클래스 라이브러리를 참조해야합니다. 다음은 예제 레이아웃입니다.

클래스 라이브러리에는 .cs 파일 만 포함되어야하며 뷰는 없어야합니다 (.aspx/.ascx 파일).

MyProject.BaseSite (class library)
    + Controllers
        - HomeController.cs
        - ... any other controllers
    - default.aspx.cs
    - global.asax.cs

MVC 웹 프로젝트에는 구성, 뷰 등과 클래스 라이브러리에 대한 참조가 포함되어야합니다.

MyProject.ExampleSite
    + Content
        + scripts
        + css
        + images
    + Views
        + Home
            - index.aspx
            - .. other aspx files
        + Shared
            - Site.master
    - web.config

다른 네임 스페이스를 기억하십시오. 그런 다음 동일한 코드를 참조하는 여러 예제 웹 사이트를 만들 수 있습니다. 이를 통해 웹 사이트를 완전히 다르게 피부에 빠뜨릴 수 있습니다.

다른 팁

각 책임 계층에 대해 별도의 클래스 라이브러리 프로젝트를 작성하고, 조립품을 만들려면 컴파일 한 다음 적절한 경우 응용 프로그램에서 각각을 참조하십시오.

예,중 하나를 사용할 경우 지원 성 주입 컨테이너,그리고 그들의 구성 데이터는 일반적으로 지정할 뿐만 아니라 클래스를 로드할에 대응하여 특정한 쿼리,하지만 또한 어셈블리에서는 로드할 수 있습니다.이것은 당신을 당신의 클래스로 분할에서 임의의 어셈블리 및 MVC 할 수 있습니다 그들을 찾을 수 있습니다.

하지만,물론,더 간단한 대답이 제공하는 알 수 없(구글)도 작동합니다!

나는 이것이 정말 오래된 질문이라는 것을 알고 있지만 나는 당신이 무엇을 요구하는지 정확히 방법에 대한 기사를 썼습니다.

http://dotnetslackers.com/articles/aspnet/storing-asp-net-mvc-controllers-views-in-separate-assemblies.aspx

@David의 답변 만 완료 :

프로젝트가 관리되는 경우 NuGet, 클래스 라이브러리를 만든 후, 귀하의 사본을 수행하십시오. packages.config 클래스 라이브러리 루트에 파일. 그 후에는 각각을 편집해야합니다 packages.config 각 클래스 라이브러리의 요구에 따라 패키지 추가 또는 제거 파일.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top