ASP.Net MVC에서 ASP.Net Webforms로 돌아갑니다. 패턴 / 아키텍처를 추천 하시겠습니까?


12

많은 분들에게 이것은 우스운 질문처럼 들리지만 ASP.Net Webforms에 대한 경험이 거의 없기 때문에 묻습니다 . ASP.Net MVC로 바로갔습니다.

현재 .Net 2.0 및 Visual Studio 2005로 제한된 프로젝트를 진행 중입니다.

ASP.Net MVC로 작업 할 때 걱정을 완전히 분리하는 것이 마음에 들었고 웹 양식을 견딜 수 없게 만드는 것을 찾고 있습니다. asp.net MVC를 선호하지만 .net 2.0 및 Visual Studio 2005에 갇혀있는 사람들에게 권장되는 패턴이나 사례가 있습니까?


모든 제안에 감사드립니다. 하나 이상의 답변을 선택할 수 있기를 바랍니다.
jlnorsworthy 2

1
새 과제가 처음부터 시작되는 것이 아니라 기존 프로젝트에만 해당되기를 바랍니다. 컬렉션에 대한 간단한 쿼리를 위해 Linq를 사용하는 등 누락 될 수있는 기본 사항이 많이 있습니다. 생성 된 HTML을보고 예상 한 것과는 다르다는 것을보고 큰 좌절이 생길 것입니다. 행운을 빕니다, 그리고 당신이 성공하기를 바랍니다.
Chris

답변:


7

Model View Presenter (MVP)를 추천합니다. 우리는 이것을 최근 WebForms 앱에서 사용했으며 테스트 가능성을 높이고 관심사 분리를 시행 할 수있었습니다.

http://msdn.microsoft.com/en-us/magazine/cc188690.aspx 는이 패턴에 대한 Jean Paul Boodhoo의 훌륭한 기사입니다. 코드 다운로드도 좋습니다. 그러나 DTO 및 DTO에 대한 인터페이스가 필요하지 않을 수도 있습니다.

또 다른 좋은 기사는 codeproject.com에있는 것입니다 : http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx

편집 : WebForms MVP라는 프레임 워크가 있지만 그에 대해 많이 알지 못합니다.


Webvorms MVP는 정말 근사해 보이지만 프로젝트는 중단 된 것 같습니다 (07/10의 마지막 릴리스). 사용할 수있는 문서 나 튜토리얼이 많지 않습니다
jlnorsworthy

또한 .NET 3.5 SP1이 필요한 것 같으므로 너무 유용하지 않을 수 있습니다. 그러나 샘플과 소스는 MVP 패턴을 평가하는 데 도움이 될 수 있습니다.
Ciaran

좋은 지적, 나는 심지어 그것을 알아 차리지 못했습니다. 현재 기술을 보유한 회사와 웹 양식을 작성해야하는 경우 해당 프로젝트를 계속 주시하겠습니다. :
jlnorsworthy

4

.net 2.0의 페이지 수명주기를 이해하는 것이 좋습니다.

이 비디오 는 모두 무료는 아니지만 볼만한 가치가 있지만 적어도 이것은 당신에게 좋은 출발이 될 것입니다 .... 이것은 나중에 더 연구해야 할 것에 대한 아이디어를 줄 것입니다.


3

지금까지 ASP.NET MVC를 통해 배운 몇 가지 사항을 배울 필요가 있음을 알게되었을 것입니다. ASP.NET에서 MVC 패턴을 계속 구현할 수 있지만 이벤트 / 페이지 다시 게시 아키텍처로 인해 ASP.NET에서 View 및 Model의 분리가 매우 흐리게 나타납니다.

내 생각에, 귀하의 새로운 학습의 대부분은 페이지 수명주기 및 이벤트 및 제어와 관련이 있습니다. 일반적인 세션, 캐시, ViewState 및 DB 상호 작용은 동일하게 유지됩니다.

HTH ...


2

Asp.Net에서 전면 컨트롤러 패턴 점검 및 전면 컨트롤러 구현 프로젝트 규모가 좋은 경우에만이 작업을 수행하십시오. 소규모 프로젝트를 위해이를 수행한다고해서 ROI가 정당화되는 것은 아닙니다.

작은 프로젝트에서는 몇 가지 지침을 설정할 수 있습니다. 예를 들어, 코드 뒤에 비즈니스 로직, 세션 사용 등이 없습니다.

귀하의 경우에 가장 적합한 것을 참조하십시오. 어쨌든 공학에 대한 유혹을 품으십시오.


0

.NET 1.1의 어두운 시절로 돌아가서 (모두처럼) 이런 응용 프로그램을위한 일종의 MVC 시스템을 만들었습니다.

페이지는 일종의 '가짜'마스터로 만들어졌습니다. 여기에는 메뉴, 스크립트, 스타일 등을 보여주는 배관이 있습니다.

'보기'는 개별 사용자 컨트롤이었습니다.

각 뷰에 대한 정보가있는 테이블이있었습니다. 예를 들어 'Product'는 ~/Controls/Product.ascx자리 표시 자에 로드 됩니다. 또한 테이블에는 모델 클래스의 유형 이름이 포함 된 필드가 있습니다 (있는 것처럼). 각 모델은 잘 알려진 인터페이스를 구현했습니다. 이 클래스는 초기화를 위해 인스턴스화 Activator.CreateInstance()되고 호출 된 다음 컨트롤 자체 (컨버전 반전?)로 전달되었습니다. 그런 다음 컨트롤은 다양한 메소드를 호출하여 데이터 세트를 가져 오거나 그렇지 않습니다. 인터페이스 자체는 일반적인 CRUD 메소드 (읽기 / 쓰기 / 목록 / 삭제)를 갖도록 정규화되었습니다. 이 아래에는 DAL / ORM 레이어도있었습니다.

예쁘지는 않았지만 잘 작동했습니다. 테스트와 개발이 쉬웠으며, 출시 된 대부분의 개발자는 상당히 빠르게 따라 잡을 수있었습니다. 무엇보다 만들기가 비교적 간단했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.