2009-02-26 4 views
1

우리는 대부분이 C# 1.1이지만, VB6에는 10 가지 이상의 주요 앱이 있습니다. 우리는 .NET 3.5에 VB6 응용 프로그램을 가져 오는 프로젝트를 진행하고 있습니다.MVP/MVC와 winform 앱을위한 전통적인 n 티어 접근법

모든 C# 1.1 앱은 전통적인 n 티어 방식으로 작성되었습니다. 실제로 UI 레이어에는 아키텍처/분리가 없습니다. 대부분의 코드는 이벤트에 응답하고 거기에서갑니다. 유지 관리의 관점에서 보았을 때, 꽤 좋았으며 코드를 따르고 새로운 앱을 빨리 익히기 쉽습니다.

VB6 앱을 포팅 할 때 초기 생각은 기존 패턴 (예 : n 계층)을 고수해야한다는 것이 었습니다.

패턴을 깨고 MVP/MVC 패턴을 사용하여 VB6 응용 프로그램을 수행할만한 가치가 있는지 궁금합니다. MVC/MVP winform 앱은 유지 관리가 더 쉽습니까? MVC 기반 프로젝트에서 일했고 전혀 유지 관리하기가 쉽지 않다고 생각했지만 프로젝트는 하나뿐입니다.

거기에 몇 가지 경험과 조언이 있습니까?

답변

4

야, 너를 위해 뭔가가 효과가 있다면, 너는 그걸로 편안하고, 팀은 그걸로 사양에 달려있다. 왜 변화해야합니까?

MVC/MVP가 좋게 들립니다 ... 그럼 왜 아직도 n-Tier에서 일하고 있습니까?

나는이 새로운 프로그래밍 방식으로 실제 개발에 대한 리소스를 투입하기 전에 생각합니다 ... 그것이 당신 팀에 효과가 있는지 고려해야합니다.

1

UI에있는 코드의 얇은 레이어를 이동합니다. 당신의 설명에서 당신은 아마 다른 곳에 많은 코드를 가지고있을 것이기 때문에 나는 얇게 말한다. 이 코드는 코드의 얇은 레이어를 단위 테스트 할 수있는 능력을 제공합니다.

업데이트 1 : 업그레이드를 수행하는 동안 다시 설계하지 않는 것이 좋습니다. 업그레이드 작업을 테스트해야하기 때문에 자동화 된 테스트 (유닛/통합/시스템)를 얻는 것이 최선의 노력입니다. 어쨌든. 일단 테스트가 완료되면 변경 사항을 되돌릴 수있는 테스트가있는 상태에서 애플리케이션을 점진적으로 변경할 수 있습니다.

3

VB6 응용 프로그램을 완전히 다시 작성하는 대신 포팅하는 경우 .Net 세계에 빠르게 적응하기 위해 Pri 1 목표에 중점을 두는 것이 좋습니다. 이 작업을 수행하면 조직에 많은 이점이 있습니다.

일단 귀하가 이러한 앱을 재 설계하는 데 투자하는 것이 유익한 지 여부를 평가할 수 있습니다.

완전히 다시 쓰는 중이라면 급락 한 다음 MVP/MVVM 패턴이있는 WPF 앱으로 이동하십시오. WPF willl은 당신에게 더 멋진 영상을줍니다. MVP/MVVM 패턴은 비주얼을 포함하여 모든 레이어에 대해 단위 테스트 가능성을 제공합니다. 또한 이러한 앱이 관련되어 있다고 가정하므로 실제로 모델과보기를 재사용 할 수있는 가능성이 있습니다. (하지만 내가 틀릴 수도 있습니다.)

0

MVC는 특히 n-Tier 아키텍처를 제외하지 않습니다.

우리도 ASP.NET 1.1 비즈니스 응용 프로그램을 보유하고 있으며 유지 관리가 정말 어려워합니다. 이벤트 핸들러가 원하는대로 무엇이든하면 어쩌면 다른 컨트롤을 조정할 수도 있고, 비즈니스 로직에서 뭔가를 호출하거나, 데이터베이스와 직접 대화 할 수도 있습니다. 소프트웨어가 전혀 작동하지 않을 수도 있습니다.

MVC를 올바르게 사용하면 데이터가 데이터베이스에서 UI로 거꾸로 흐르는 방식을 볼 수 있습니다. 예기치 않은 동작이 발생하면 오류를 쉽게 추적 할 수 있습니다.

적어도 내 자신의 작은 프로젝트에서 그렇습니다.

다시 한 번 강조해 보겠습니다. 사용하는 패턴이 무엇이든 명확한 n-Tier 아키텍처를 고수해야합니다. 2-Tier 또는 3-Tier를 사용하면 모든 것을 큰 상호 연결 공에 넣을 필요가 없습니다.

0

"변경 - 우리가 진전의 암시를주기 위해 참여한 활동." - Dilbert

그러나 개발 환경과 배포 플랫폼을 .NET 3.51로 업그레이드하는 것은 큰 진전입니다. 보안 검토 및 코드 연습과 같은 사항은 응용 프로그램을 다시 작성하기 전에 수행해야한다고 권장합니다.

MVC 및 MVVM은 테스트 가능성 측면에서 특히 탁월합니다. 그들에 대해 잊지 말고, 아마 전체 규모의 채택 전에 파일럿 프로젝트를 고려해야합니까?