문제

내가 발견했다 기사 이 주제에 대해 Microsoft 직원이 설명했지만 이에 대해 보다 강력한 프레임워크를 구현한 사람이 있습니까?쉽게 이식할 수 있는 WinForms용 경량 프레임워크가 있습니까?나는 상당히 빨리 속도를 높이고 더 똑똑한 사람이 이미 이 작업을 수행했을 때 이를 처리하기 위해 자체 프레임워크/라이브러리를 생성하는 것을 피하고 싶습니다.

나는 보지 않았다 모바일 소프트웨어 공장 P&P 그룹의 제품이지만 좀 무거울 것 같아요.한번 볼만한 가치가 있나요?

편집하다:ASP.NET MVC 프로젝트에 대한 정보를 찾고 있지 않습니다.컴팩트 프레임워크인 'WinForms' 구현과 이를 통해 MVC를 구현하는 방법에 대해 질문하고 있습니다.

도움이 되었습니까?

해결책

개인적으로 모바일 소프트웨어 팩토리는 CF에 큰 즐거움을 주지 못한다고 생각합니다.우리는 여전히 그 중 한 부분(EventBroker)을 직장에서 사용하고 있으며 가능하다면 그 부분을 제거하고 싶습니다(일반 이벤트를 지원하지 않고 EventArgs에서 강력한 유형으로 인수를 캐스팅해야 하기 때문입니다).직장의 자매 프로젝트에서는 UI의 일부로 이를 사용했지만 성능 문제로 인해 이를 제거해야 했습니다(또 다른 대규모 프로젝트이지만 자체 성능 문제도 추가로 있음).

P&P lib가 제공하는 MVP 프레임워크에서 발견한 문제는 Forms를 소유한 발표자/컨트롤러("It's just a view"를 읽지 않은 사람) 대신 Forms 및 Controls OWN 표현자가 있다는 것입니다.실용적인 프로그래머?).이는 MS의 "Form First" 신속한 애플리케이션 개발 원칙에 완벽하게 들어맞지만 CE에서 Windows 핸들이 얼마나 비싼지를 고려하면(많은 경우) 짜증납니다.우리는 직장에서 매우 큰 CF 애플리케이션을 실행하고 자체 MVC 프레임워크를 구축했습니다.직접 구현하는 것은 어렵지 않습니다. 모든 것을 컨트롤러, 뷰, 비즈니스 개체 및 서비스로 분리하고 컨트롤러 간의 상호 작용을 제어하는 ​​UIController가 있는지 확인하세요.

실제로 한 단계 더 나아가 컨트롤러->보기->레이아웃 패턴을 사용하여 양식/컨트롤을 재사용합니다.컨트롤러는 평소와 동일하며, 뷰는 레이아웃을 특정 뷰로 사용자 정의하는 개체이고 레이아웃은 실제 UserControl입니다.그런 다음 이를 단일 양식 안팎으로 교환합니다.이렇게 하면 우리가 사용하는 Windows 컨트롤의 양이 크게 줄어듭니다.+ 시작 시 모든 양식을 초기화한다는 것은 새로운 Windows 컨트롤을 "주문형"으로 생성할 때 발생하는 눈에 띄는 일시 중지를 근절한다는 의미입니다.

분명히 대규모 애플리케이션을 롤링하는 경우에만 이런 종류의 작업을 수행하는 것이 실제로 도움이 됩니다.우리는 총 7가지 레이아웃을 사용하는 대략 20가지 이상의 다양한 유형의 뷰를 보유하고 있습니다.이로 인해 초기화 루틴(시작 시 양식을 로드할 때)이 약 10초 정도 손상되지만 심리적으로 대부분의 사용자는 런타임 중 눈에 띄는 일시 중지가 아닌 시작 시 이러한 적중을 기꺼이 받아들입니다.

내 책에 나오는 P&P 라이브러리의 주요 문제는 이것이 FF -> CF 포트이고 두 플랫폼 간의 특정 비호환성 및 성능 차이로 인해 많은 유용한 기능을 잃게 된다는 것입니다.

그런데, 이것 지금까지 MVC/MVP에 관해 읽은 기사 중 단연코 가장 포괄적인 기사입니다.Windows 응용 프로그램(데스크톱 또는 CE)의 경우 상호 작용, 명령 및 선택이 없는 Taligent Model-View-Presenter 버전을 사용하는 것이 좋습니다(예: 컨트롤러/발표자가 모든 작업을 수행함).

다른 팁

당신 (davidg 또는 Kevin Pang) 모두 그가 Web Forms 가 아니라 WinForms 에 관심이 있다는 사실에주의를 기울이지 않았습니다.그는 .NET Compact Framework를 사용하는 WinForms 프로젝트에서 Model-View-Controller 디자인 패턴 (davidg, MVC는 ASP.NET 프레임 워크의 이름이 아님)을 푸시하는 프레임 워크를 원합니다.그는 질문을 잘했습니다.

OpenNETCF IoC 프레임 워크 (이 질문을 받았을 때 존재하지 않았다고 생각합니다)도 있습니다.훨씬 가볍지 만 개체 모델은 P & P의 Mobile Software Factory와 비슷합니다.

@DavidG 및 @KevenPang

MVC는 웹 기술에 국한되지 않습니다. 사실 원래의 스몰 토크 MVC는 데스크톱 애플리케이션 용이었습니다.

다음과 같이 작동합니다.

  • 보기= 클라이언트 양식
  • Controller= View와 Model 사이의 클라이언트 이벤트와 마샬링 정리
  • 모델= 애플리케이션 데이터 및 비즈니스 로직

    순수한 Smalltalk MVC에서보기는 형식에 국한되지 않고 모델 데이터의 모든 표현이 될 수 있습니다 ... 예를 들어 스프레드 시트를 나타내는 모델이있는 경우 다음보기를 가질 수 있습니다.

    • 스프레드 시트보기
    • 인쇄용보기
    • 아이콘보기

      등, 모델은 동일하지만 뷰는 각 경우에 다른 출력 객체를 생성합니다.

      그런 프레임 워크가 .NET Compact 프레임 워크에 존재하는지는 모르겠지만 MVC가 웹 애플리케이션을 의미하지 않는다는 점을 지적하고 싶었습니다.

mFly의 모바일 MVC 를 살펴보세요.저는 한번도 사용 해본 적이 없지만 CF를위한 합리적인 MVC 프레임 워크입니다.

@davidg : "왜 Compact Framework에서 MVC를 원하십니까?"

왜 안됩니까?웹 개발을 위해 예약 된 것이 아니라 패턴입니다.

수정 : 위의 포스터가 정확합니다. MVC를보고 즉시 웹 양식을 생각했습니다. 죄송합니다. 이것을 무시 하셔도됩니다. 웹 양식 MVC에 관심이 있는 사람이 링크를 필요로하는 경우를 대비하여 원본 메시지를 그대로 두겠습니다. :-)

두 개의 MVC 프레임 워크가 있는데 둘 다 매우 "경량"되지는 않지만 MVC는 웹 양식에서 상당히 큰 변화이므로 예상됩니다.

  • ASP.NET MVC -이것은 MVC 프레임 워크에 대한 Microsoft의 시도입니다. 아직 미리보기 모드에 있으므로 재량에 따라 사용하지만 여러 사람이 이미 프로덕션 애플리케이션에서 사용하고 있습니다. .NET 군중 사이에서 인기가 높아지고 있으므로 간단한 Google 검색으로 이에 대한 충분한 문서를 찾을 수 있습니다.
  • Castle MonoRail -MonoRail 프레임 워크는 꽤 오랜 시간이 걸리며 여러 프로덕션 애플리케이션에서 사용되고 있습니다. ASP.NET MVC 프레임 워크보다 확실히 더 플러시되지만 Microsoft가 MVC 제공에 투입하는 노력의 양을 고려할 때 상대적으로 곧 바뀔 것이라고 생각합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top