-1

큰 웹 응용 프로그램의 아키텍처를 계획 중이므로 어디에서 시작하고 어떤 기술 및/또는 프레임 워크에 대한 제안 및/또는 권장 사항을 얻고 싶습니다. 사용.아키텍처 제안/하위 응용 프로그램이 포함 된 웹 응용 프로그램에 대한 권장 사항

응용 프로그램은 Windows 인증을 사용하고 IIS에서 실행되며 SQL Server와 ASP.NET을 사용하는 인트라넷 기반 웹 사이트입니다. 일부 구성 설정에 따라 "플러그 가능한"하위 응용 프로그램이있는 주/셸 응용 프로그램으로 구성해야합니다.

기본 또는 셸 응용 프로그램은 머리글/바닥 글, 사용 가능한 하위 응용 프로그램마다 동적으로 구성된 탭 및 사용자가 클릭 할 때 하위 응용 프로그램이로드되는 내용 영역을 제공하는 것입니다 하위 응용 프로그램의 탭 따라서 메인/셸 애플리케이션을 시작할 때 데이터베이스에서 구성 정보를 쿼리하고 사용자 및 사용 가능한 하위 응용 프로그램에 따라 기본 또는 셸 응용 프로그램이 동적으로 탭 (또는 버튼 또는 뭔가)를 개별 응용 프로그램에 액세스하는 방법으로 사용할 수 있습니다. 시작시 콘텐츠 영역에는 '홈'하위 애플리케이션이 채워집니다. 그러나 하위 앱 탭을 클릭하면 콘텐츠 영역이 탭에 해당하는 하위 앱으로 채워집니다.

예를 들어 보고서 응용 프로그램, 디스플레이 응용 프로그램 및 기타 두 개의 다른 응용 프로그램이있을 것입니다. 주/셸 응용 프로그램을 시작할 때 사용자가 누구인지를 결정한 후 기본 응용 프로그램은 데이터베이스를 쿼리하여 사용자가 사용할 수있는 하위 응용 프로그램을 확인하고 UI를 빌드합니다. 그런 다음 사용자는 사용 가능한 하위 응용 프로그램을 탐색하고 각 응용 프로그램에서 작업을 수행 할 수 있습니다.

마지막으로 전체 앱과 모든 하위 앱은 프레젠테이션, 서비스, 비즈니스 및 데이터 액세스 레이어뿐만 아니라 로깅, 예외 처리 등의 목적을위한 교차 절단 개체가있는 계층화 된 디자인이어야합니다.

어쨌든 내 질문은이 응용 프로그램과 같은 계획을 시작할 위치를 중심으로 이루어집니다.

이 응용 프로그램의 솔루션을 개발하는 데 가장 적합한 기술/프레임 워크는 무엇입니까? MVC? MVP? WCSF? EF? NHibernate? 엔터프라이즈 라이브러리? 저장소 패턴? 기타 ???? 나는 이러한 모든 기술/프레임 워크가 동일한 목적으로 사용되지 않지만 어떤 것에 초점을 둘지는 알지 못한다는 것을 압니다. 솔루션을위한 최상의 선택은 무엇입니까? 어떤 제품이 엔드 투 엔드 디자인을 위해 잘 작동합니까? 어떻게 이런 식으로 VS 프로젝트를 구성 할 수 있습니까?

감사합니다!

+0

일부 작은 프로젝트부터 시작하여 각 기술의 이점과 함정을 배우는 것이 좋은 시작일 것입니다. –

+0

이것은 스포츠 토크쇼를 소집 한 사람과 같습니다. 나는 매우 짧은 질문을합니다. "야구, 어떻게 경기하나요?" 나는이 질문이 너무 커서 여기에 잘 대답 할 수 없을 정도로 크고 내가 투표를 끝내기 위해 투표 할 수 있다면 그렇게 생각한다. 이것이 가치 있다고 생각하지 않기 때문에가 아니라, 당신이 묻는 것에 대한 포럼이 아니라는 것입니다. –

+0

@Stephanie Page 저자가 '대형 ASP.Net 기반 웹 프로젝트를 시작할 때 어떤 기술/패턴을 기억해야하는지'와 같은 몇 가지 체크리스트를 요구한다고 생각하지 않습니까? 몇 년 전에 우리 팀은 하나의 프로젝트를 시작했고 IoC와 같은 큰 것이 있다는 것을 놓쳤습니다. 나중에이 실수는 자동화 된 테스트를 통해 코드를 다루기 시작했을 때 매우 고통 스러웠습니다. 시작하기 전에 베스트 프랙티스 체크리스트가 있다면이 실수는 결코 일어나지 않을 것입니다. –

답변

0

저는 ASP.Net MVC이 그러한 프로젝트를위한 최상의 기본 프레임 워크라고 생각합니다. 매우 유연하고 사용자 정의가 가능하기 때문에 ASP.Net MVC의 최상위에서 앱에 대한 상위 수준의 프레임 워크를 구축 할 수 있습니다.

또한 플러그 가능 하위 응용 프로그램 등록에 MEF을 사용하는 것이 좋습니다. 이는 닷넷의 확장을위한 최고의 프레임 워크입니다.

가능한 한 서로 독립적으로 솔루션 구성 요소를 유지하려면 IoC/Dependency Injection containers을 사용해야합니다. 내가 가장 좋아하는 콘텐츠는 Structure MapAutofac이지만 프로젝트와 아키텍처에 따라 다르므로 리뷰를 읽을 필요가 있습니다. 인터넷에 많은 리뷰가 있습니다.

솔루션에 가장 적합한 ORM 프레임 워크는 무엇인지 알 수 없습니다. 또한 데이터 액세스 레이어에 있어야하며 응용 프로그램의 다른 레이어에는 영향을주지 않아야한다고 생각합니다.최상위 레이어에서 DTO (Data-Transfer-Object)을 사용하면 비즈니스 로직/UI를 DAL과 완전히 독립적으로 유지할 수 있습니다.

메인 호스트 응용 프로그램에서 인증, 로깅 등의 공통 서비스 계층을 구현하고 각 확장 응용 프로그램에 공통으로 적용하는 것이 좋습니다. 로깅, 나는 보통 log4net을 사용합니다.

+0

정보 주셔서 감사합니다! 좋은 정보가 많습니다. 감사합니다. – lmttag

관련 문제