2011-03-08 3 views
2

지난 1 년 동안 MVC를 사용해 왔지만 불행히도 기존 웹 양식 사이트에 기능을 추가하지 않았습니다. 이 사이트는 인라인 SQL을 많이 사용하며 모든 곳에서 사용할 수 있습니다. ORM을 사용하면 문제가 발생하지 않으며 한 곳에서 쿼리를 유지하는 문제를 해결할 수 없습니다.리포지토리 패턴이 Asp.net 웹 폼과 잘 작동 할 수 있습니까?

리포지토리 패턴 및 서비스 계층도 기존 asp.net 웹 양식과 잘 작동 할 수 있습니까?

답변

4

네, 가능합니다. 그러나 응용 프로그램에 .ASPX 페이지 안에 이미 SQL 쿼리가있는 경우 일부 주요 리팩토링이 필요합니다. 예를 들어 configure your DI framework 페이지에 리포지토리를 삽입하고 마크 업 내부의 GridView와 같은 서버 측 컨트롤에 바인딩되는 강력한 형식의 개체를 반환하는 리포지토리의 코드 숨김 호출 메서드에 리포지토리를 삽입 할 수 있습니다.

실제로 ASP.NET MVC가 나오기 전에 내가하고 있었던 것과 정확히 같습니다.

+0

이 사이트에는 많은 프로그래머가 있습니다. 따라서 기존 코드에 대한 리펙토링은 적어도 얼마되지 않아 곧 완료 될 것입니다. 이것은 새로운 기능이나 섹션을 프로그램 할 때 더 유용합니다. 나는 ninject를 사용하여 이미 멀리 갈 것 같아 :) – chobo

1

이러한 패턴은 대부분의 유형의 응용 프로그램에 거의 보편적입니다. 웹 응용 프로그램과 Windows 응용 프로그램에서 사용했으며 모바일 응용 프로그램에도 적용 할 수 있음을 알고 있습니다.

Darin이 언급 한 것처럼 본질적으로 다시 작성하기 때문에 양식을 변경하는 데 필요한 작업량이 문제입니다. 때로는 리펙토링 비용이 그만한 가치가없는 경우도 있습니다. 모두 프로젝트에 따라 다릅니다.

+0

만약 내가 쿼리에 대한 저장소 경로를 갈 것이라고 내 반환 형식이어야합니까? DataSet, DataTable, 다른? – chobo

+0

알았어, 방금 App_Code 폴더 밖에있는 클래스 파일이 컴파일되지 않는다는 것을 알았으므로이 아이디어를 긁어 라. 여러분이 주요 리팩토링에 함축 한 것처럼 웹 애플리케이션 프로젝트로 이동하는 것이 훨씬 더 우선 순위가 있다고 생각합니다. – chobo

+0

그것은 당신이 원하는 것에 달려있다. 나는 보통 객체를 반환하기 위해 객체 지향적 인 모델 표현을 선호한다. 당신이 설명하는 솔루션에 맞는 도메인 구동 디자인에 대해 읽어 보길 권합니다. 나는 그것을 공부함으로써 많은 것을 배웠다. – Burt

관련 문제