2011-04-08 3 views
3

Visual Studio 2008로 작성된 응용 프로그램의 서버 구성 요소 (.NET 3.5 C#)를 Linux로 포팅하고 단일 버전을 유지하기 위해 Mono를 사용할 것입니다. 코드 기반.Mono와 Visual Studio 간의 소스 코드 교환

이론적으로 우리는 VS 코드 만 업데이트 할 예정이지만 플랫폼 기능을 유지하기 위해 두 가지 사이에 약간의 미묘한 차이가있을 수 있습니다.

두 가지를 확인하는 데 도움이되는 팁/자습서/응용 프로그램이 있습니까?

+1

다른 구현을 자신의 어셈블리에 넣고 IOC에서와 같이 공통 인터페이스 – kenny

+0

@kenny를 구현 하시겠습니까? 두 개의 별도 코드 스트림이 필요하며 별도의 유지 관리가 필요합니다. 그렇지 않습니까? 최고의 코딩 방법은 아닙니다. – johnc

+3

차이점을 분리하여 보관하는 것이 좋은 코딩 방법입니다. #IF 엉망진창을 넘기보다. – kenny

답변

3

Mono와 호환되지 않는 코드가 많습니까? 이론적으로 대부분의 코드를 동일하게 유지하고 Mono와 MS.NET 사이를 확인해야하는 경우는 거의 없습니다.

Mono와 MS.NET의 코드가 완전히 다른 경우 공통 인터페이스를 별도로 구현해야합니다. 예를 들어 MSMQ 또는 ActiveMQ간에 스왑 아웃 할 수있는 애플리케이션의 서비스 버스를 사용합니다. 우리는 ActiveMQ를 Mono 배포판과 MSMQ를 MS.NET 배포판에 사용합니다.

당신은 당신의 응용 프로그램을 Mono-Suggets에 "포팅"해야 할 필요가 있다고 말했을 경우 호환되지 않는 많은 코드가 있습니다. P/Invoke 또는 다른 Windows 전용 기능을 광범위하게 사용하는 경우 조금 더 어려워 질 것입니다.

우리는 모노 버전과 MS.Net 버전을 유지 관리하지 않으며 우리는 하나의 코드 트리를 컴파일 할 수 있습니다. UI가있는 플랫폼 별 프로그램의 경우 각 플랫폼마다 별도의 UI 프로젝트 (일반적으로 Windows 용 WPF 및 Linux/Mac 용 GTK - Mac 용 MonoMac을 살펴보기 시작 함)를 사용합니다. 그 외에도 모든 코드는 공통적입니다. 플랫폼 간에는 유지할 것이 없습니다.

+0

실제로 Mono 용으로 컴파일 할 필요조차 없습니다. Linux에서 VS 빌드를 사용하고 다른 GUI 어셈블리를로드하면됩니다. – skolima

+0

의미가 있습니다. 감사합니다. 옵션에 대한 느낌이 들기 시작했습니다. – johnc

관련 문제