0

저는 여러 가지 분야의 업무가있는 웹 응용 프로그램에서 작업하고 있습니다. 시간이 지남에 따라 개발 및 유지 관리하는 것이 문제가되었습니다. 공유 할 공통 파일 (Masterpages, Resources, Css 등)이있는 기본 루트 웹 프로젝트에 따라 웹 프로젝트를 여러 하위 프로젝트 또는 라이브러리로 나누고 싶습니다. 이상적으로 저는 일종의 주입으로 선택적으로 "구성 요소"를 게시하거나 사용자 정의 된 변형을 게시 할 수 있습니다.이 구성은 배포 DB 설치 후에 따라 달라집니다.asp.net webforms에서 여러 웹 프로젝트 구조 구현

나는 여러 프로젝트, 의존성 주입 및 복합 응용 프로그램과 관련된 모든 페이지를 읽은 후 '내 머리를 부드럽게 할 때까지 찾을 수 있지만 정말 유용한 것을 찾지 못했습니다. 이론적 인 접근법이나 단위 테스트 응용 프로그램의 주요 부분 (음, 원하는 응용 프로그램을 만들 수는 없지만 여전히 다른 단위 테스트 가능) VS2010.Net 4.0의 다른 접근 방식은 단순히 작동하지 않습니다.

누군가가 완벽한 해결책이나 예를 나에게 알릴 수 있습니까? 아니면 간단히 논의하도록하십시오.

우리는이 솔루션이 이미 디렉토리로 분리 모듈의 내용으로, 다음과 같은 구조를 가지고 말 :

솔루션

 L_ Datalayer library project 
     L_ Bussiness logic /common utils library project 
     L_ Web project 
     L_ Controls 
     L_ Images 
     L_ Css.... 
     L_ Warehouse 
     L_ Sales 
     Masterpages 
     ... 

창고 및 판매는 "모듈"

감사 관련된 페이지를 포함 ,


내 진행 상황 게시 주제에.

스티븐의 제안에 따라 나는 MEF를 사용하여 더 많은 것을 실험했다. 문서의 부족으로 인해, 특히 webform의 경우, 그게 고통 스러웠습니다. 지금까지 나는 내 솔루션에서 MEF를 구현하고 성공적으로 메인 프로젝트에서 볼 수있는 플러그인 프로젝트를 삽입했다.

그런 다음 플러그인 이름, 기본 페이지 URL 및 주문을 가진 인터페이스를 통해 사용 가능한 플러그인을로드하고이 모든 데이터를 선택하고 메뉴 탭을 렌더링합니다. 그 부분은 쉽습니다. 드디어에 리소스로 내장 된 aspx 페이지를 가지고

(다른 수출 인터페이스) 포함 된 그 페이지에 대한 여러 가지 메뉴를 렌더링 플러그인의 기본 페이지로 리디렉션해야합니다 메뉴 요소를 클릭

플러그인 프로젝트. 내가 현재 붙어있는 곳.

¿ MEF를 사용하여 라이브러리에 리사이져로 포함 된 페이지를 렌더링하는 방법이 있습니까? 아니면 VirtualPathProvider도 사용해야합니다. 해당 페이지로 리디렉션 할 문장을 구체적으로 표시 하시겠습니까? 몇 가지 방법을 시도했지만 아무도 작동하지 않습니다. (MEF 및 VirtualPathProvider)

나는 그것에 대해 이야기하는 수많은 기사를 보았지만 모두 제어 렌더링을 수행했지만 페이지는 끝내지 않았습니다. 너무 초조해.

+0

더 나은 관심사 분리를 원한다는 것을 이해합니다. 이는 유지 관리 가능성을 높여주기 때문입니다. 하지만 정말로 플러그인 아키텍처가 필요합니까? 플러그 인을 사용하여 일반 LOB 응용 프로그램에 새로운 기능을 추가하는 것은 정말 어렵습니다. 이러한 변경으로 인해 일반적으로 완벽한 응용 프로그램을 테스트해야하며 가장 중요한 문제를 생산에 적용하기 쉽고 유지 보수 성은 무엇보다 중요합니다. – Steven

+0

@Steven 이제 애플리케이션을 실제로 테스트해야합니다. 고객이 절차를 더 잘 수행하기 위해 이익을 얻고 개발하면서 사용하려고합니다. 나는 그것으로 모든 문제를 알고 있지만, 그것을 다른 방법으로 만들고 싶지 않습니다. 온라인으로 분리 된 구성 요소를 배치하는 데 어려움을 겪으면 모든 사무실에 작업을 중단하고 관련 부품 만 말하도록 피할 수 있습니다. – Sergio

+0

@Steven 위의 매우 불행한 답변. Bussiness 구성 요소의 웹 인터페이스를 분리하여 더 나은 디버깅을하고 컴파일하지 않도록합니다. 동시에 나는 그것들을 교환하고 다른 세트의 배치를 만들기 위해 더 가벼운 버전의 "구성 요소"를 가질 수있는 능력을 원합니다. 더 가볍거나 더 표준. 고객이 내가 알고있는 것을 구현하려고한다고 표시됩니다. – Sergio

답변

0

귀하의 질문에 대한 답변이 아니지만 제안 사항의 길이 때문에 답변으로 추가하고 있습니다. NopCommerce은 기존 솔루션에 대한 플러그인 및 확장을 지원하는 자체 프레임 워크로 .net 이상 확장 한 방식을 따르고 있습니다.비록 nopcommerce가 전자 상거래 솔루션이라는 것을 확실히 알고 있지만, 당신이 그것을 공부한다면, 비즈니스 요구에 따라 수정할 수 있습니다. 또는 적어도 솔루션을 설계하는 동안 채택해야하는 것에 대해 머리를 맞출 수 있습니다. 희망이 도움이됩니다.

+0

서식 지원에 감사드립니다. 당신보다 더 빨리 나보다. NopCommerce 솔루션을 살펴 보았지만 MVC 였으므로 v1.9 소스를 다운로드하고 살펴 보았습니다. 사실 그것은 제가 신청할 때 유용하다고 느끼지 못했습니다. 아마도 masterpage-page-custom/user 컨트롤을 사용하여 고전적인 방식으로 개발하고 있습니다. 다른 NopCommerce 버전을 볼 것을 권장합니까? – Sergio

관련 문제