별도의 방법 모델고,보고,컨트롤러 ASP.NET MVC 응용 프로그램은 다른 어셈블리
-
05-09-2019 - |
문제
에서 나는 순간을 얻으려고 노력하고 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 할 수 있습니다 그들을 찾을 수 있습니다.
하지만,물론,더 간단한 대답이 제공하는 알 수 없(구글)도 작동합니다!
나는 이것이 정말 오래된 질문이라는 것을 알고 있지만 나는 당신이 무엇을 요구하는지 정확히 방법에 대한 기사를 썼습니다.
@David의 답변 만 완료 :
프로젝트가 관리되는 경우 NuGet
, 클래스 라이브러리를 만든 후, 귀하의 사본을 수행하십시오. packages.config
클래스 라이브러리 루트에 파일. 그 후에는 각각을 편집해야합니다 packages.config
각 클래스 라이브러리의 요구에 따라 패키지 추가 또는 제거 파일.