2009-10-20 2 views
8

Official Mono 프로젝트 웹 사이트에서는 Mono가 Windows, Linux 및 Mac OS X에서 성공적으로 작동한다고 말합니다. 사실입니까?
적어도 Windows와 Linux에서 작동하는 응용 프로그램을 만들고 싶습니다. 모노와 함께 할 수 있습니까?

Mono는 실제로 크로스 플랫폼입니까?

P. 유사한 주제가 이미 존재한다는 것을 알고 있습니다 (예 : Cross platform .Net?). 그러나 오래된 것일 수 있습니다.

+5

일반적으로 플랫폼 독립적이라고 밝혀진 것이 더 나쁘지는 않을 것이므로 오래된 정보를 찾아 내더라도 그 정보가 여전히 * atleast *라고 가정 할 수 있어야합니다 그 정보가 말했듯이. –

+1

이 링크를 체크 아웃 .. 유사한 주제에 대한 몇 가지 흥미로운 토론 .. http://stackoverflow.com/questions/751648/whats-the-point-of-mono-on-windows .. – RameshVel

+1

우리는 함께 살고 우리의 제품은 ... – pablo

답변

9

예 가능합니다.

일반적으로 잘 작동하지만 Mono에는 큰/중간 규모 응용 프로그램이 없다고 생각합니다. 찾아보기를 원할 수 있습니다 several other apps 있습니다.

Mono는 최상의 호환성을 유지하기 위해 Mono가 지원되는 플랫폼 (예 : Linux)에서 개발해야 할 수도 있습니다. 그런 다음 제대로 작동하면 그것은. NET에서 작동합니다. 나는 .NET과 매우 호환되지만 Mono는 많은 사람들이 생각하지 않기 때문에 이것을 말하고 있습니다 은 전체 .NET 스택과 호환되며 other limitations도 있습니다.

나는 그것에 대한 개발을 완료했으며 그 중 몇 가지를 발견했습니다. 귀하의 프로젝트에 광산만큼의 .NET 종속성이 없기를 바랍니다.

+0

예, Mono를 사용하여 작성된 심각한 응용 프로그램이 있습니다. GNOME 데스크탑으로 얻는 많은 프로그램은 Mono를 사용하는 writting입니다. – Jesper

+1

Monodevelop (IDE)는 상당히 크기가 크며 Windows, Mac 및 Linux에서 실행됩니다. 그리고 내가 아는 바에 따르면 그들은 Banshee (Media Player)를 Windows에서 실행하도록 노력하고 있습니다. – sgwill

+0

Second Life 스크립팅 언어 또는 Wikipedia 검색 구현은 대규모 응용 프로그램이 아닌 방법은 무엇입니까? 그렇습니다. 그들은 Mono에서 작동합니다. – skolima

3

확실합니다. Mono는 세 가지 플랫폼 모두에서 작동하지만 "응용 프로그램 만들기"라고 말하면 모든 .net 네임 스페이스가 Mono로 포팅 된 것은 아닙니다. 그들은 "웹 비트"를 포팅하는 데 중점을 두었으므로 크로스 플랫폼에서 작동 할 웹 응용 프로그램을 작성하는 데 너무 많은 어려움을 겪지 않아야합니다. 그러나 클라이언트 응용 프로그램을 작성하려는 경우에는 리눅스 용 실버 라이트 구현 프로젝트 인 달빛 프로젝트.

+1

OP가 Silverlight/Moonlight/Web 응용 프로그램에 대해 말하는지 잘 모르겠지만 데스크톱 응용 프로그램은 아닙니다. 데스크톱 응용 프로그램은 여러 플랫폼에서 쉽게 수행 할 수 있어야합니다. "응용 프로그램 만들기"는 반드시 Silverlight/Moonlight/WPF를 의미하지는 않지만 고전적인 Forms 일 수도 있습니다. –

+2

실례지만 Silverlight는 클라이언트 응용 프로그램과 어떤 관련이 있습니까? 나는 이것이 Flash-Clone의 일부라고 생각 했단 말인가? 또한 System.Windows.Forms 네임 스페이스는 완전히 이식되어 있으며 오랜 시간 이래로 GTK # Bindings도 있습니다. – Bobby

+0

전적으로 동의합니다. WPF 응용 프로그램이 Linux에서 작동하도록 기대할 수는 없으며, 심지어 양식 공간 내에도 Linux의 Win32API 바인딩과 Linux의 GDK 바인딩간에 몇 가지 단점이 있습니다. , 이러한 문제는 웹 앱에 그렇게 많이 존재하지 않는 경향이 있습니다. – lomaxx

2

아직 Mono를 많이 사용하지는 않았지만 실제로 잘 작동합니다. 나는 당신이 리눅스에서 개발하는 것이 좋습니다. 그렇다면 윈도우에서도 작동한다는 것을 확신 할 수 있습니다 (경로를 하드 코드하는 것과 같은 어리석은 일을하지 않는 한).

+0

많이 해보지는 않았지만 수행 한 몇 가지 사항에 정말 효과적입니까? 어떻게 유용할까요? –

+1

메가 프로젝트를 개발하지는 않았지만 Mono에서 즉시 "집"을 느꼈다고합니다. "나는 본 적이 없지만 100 % 호환됩니다."라고 말하지 않았습니다. 그리 많지는 않다면 최소한 내 대답에는 가치가 있습니다. –

1

크로스 플랫폼이므로 Windows에서 개발하고 Mono에서 구현되지 않은 .NET 라이브러리를 사용하는 실수를 저 지르지 마십시오. 예를 들어, Mono는 .NET이 수행하는 경우에도 WebParts을 지원하지 않습니다.

0

예.

물론 개발할 대상과 개발 및 테스트 방법에 따라 다릅니다. 그것은 분명하게 들리 겠지만, 멀티 플랫폼 응용 프로그램은 지원해야하는 각 플랫폼에서 테스트해야합니다.

FWIW Mono 또는 Microsoft.NET을 사용하여 Linux 및 Windows에서 실행되는 NAnt 기반 Subversion 관리 도구를 만들었습니다. 주로 Windows에서 사용하지만 Linux에서도 잘 작동합니다.

또한 항상 Environment.NewLinePath.Combine을 사용하는 것처럼 자세한 세부 정보에주의를 기울여야하지만 좋은 방법입니다.

1

Mono는 Windows 및 Linux에서 작동하는 WinForms 응용 프로그램을 만드는 데 매우 적합합니다. 원하는 경우 GTK를 사용할 수도 있습니다 (일반적으로 Windows에서 WinForm UI의 모양이 약간 더 좋아 보이지만, 응용 프로그램에 따라 차이점을 거의 알지 못하더라도 GTK 인터페이스가 Linux에서는 약간 더 멋지게 보입니다).

웹 서비스 구현은 우수합니다 (사실 IIS에서의 Microsoft 구현보다 우수함). Windows, Linux 및 Mac OS에서 크로스 플랫폼으로 작동합니다.

그러나이 도로가 내려 가고 싶다면 Mono를 염두에두고 프로젝트를 만들어야합니다. Visual Studio에서 생성 된 .NET 프로젝트는 모든 .NET 라이브러리가 구현되지 않았기 때문에 Mono에서 실행되지 않을 가능성이 있습니다 (단, 중요 할 수도 있음). 단, Mono 코드는 Visual Studio에서 제대로 작동합니다 (모노 라이브러리를 호출하지 않는다고 가정하면 - Mono. * 네임 스페이스에있는 것처럼 그렇게하면 분명합니다.).

Mono 명령 줄 응용 프로그램도 Mac OS에서 잘 작동하지만 Mac OS에서의 WinForms 구현은 제한되어 있으므로 Mac OS를 고려할 때 Xcode에서 기본 GUI를 만들고 C# 백엔드로 연결하는 것이 좋습니다. (Windows 및 Linux와 달리) Mono의 Mac OS에서의 WinForms 구현은 제작 품질이 아닙니다.

Visual Studio에서 크로스 플랫폼 (Win/Linux/Mac OS) 응용 프로그램을 만드는 데 관심이 있으시면 Delphi Prism을 확인하시기 바랍니다. 다른 옵션 (MonoDevelop IDE, Eclipse, TextMate)이 있지만 자유롭지는 않지만 그립에 쉽게 접근 할 수 있습니다.

참고 : 이름에서 알 수있는 것과 반대 Delphi Prism은 Delphi를 사용하는 것이 아니라 C#으로 Mono 응용 프로그램을 작성할 수 있습니다. 또한 Mac OS GUI로 모노 애플 리케이션을 쉽게 연결할 수 있지만 Mac OS로 이식하는 데는 여전히 많은 노력이 필요합니다 (그러나 ObjC로 이식하는 것만 큼은 아닙니다!).

마지막으로, 이것은 사용자가 요구 한 것이 아니지만 관심이있을 수 있습니다. REALBasic과 같은 것을 사용하여 GUI를 만들고 백그라운드에서 Mono의 번들 된 응용 프로그램을 호출 할 수 있습니다 (어떤 종류의 RB의 Basic을 사용해 위장 할 수없는 경우).

0

일종의,하지만별로. 모노 프로젝트 사이트에 따르면 "기타"Linux 플랫폼은 "지원되지 않음"http://www.mono-project.com/Other_Downloads입니다.

JavaScript 및 HTML5는 다른 어떤 플랫폼보다 크로스 플랫폼입니다. 예, JavaScript를 사용하여 게임 (Unity3D)과 웹 서버 앱 (Node.js) 및 모바일 앱 (Appcelerator, 외)을 개발할 수 있습니다.

가장 좋은 조언은 은색 총알을 찾는 것입니다. 당신이 그것을 발견 할 때까지, 그것은 다른 것일 것입니다.

관련 문제