C #은 실제로 다중 플랫폼 언어입니까?


20

C # (및 일반적으로 .net 플랫폼)은 다중 타겟팅 앱에서 좋은 옵션 형태가되고있는 것처럼 보입니다.

  • 공식 MS .net 프레임 워크 : 풀 블로우 윈도우 개발, asp.net dev, Windows phone Dev 등
  • mono와 그것의 모든 파생 : monotouch, monodroid : 나머지 세계. 이 도구는 오늘날 RTM입니다.

  • C #이 데스크톱, 웹 및 모바일과 같이 가장 널리 사용되는 플랫폼을 대상으로하는 좋은 언어가되고 있습니까?

  • 대상 플랫폼 (객체 C, Java 등)의 "기본"언어를 사용하는 것이 여전히 낫습니까?
  • 연기와 마케팅 언어의 화면 일 뿐입니 까?

실제로 플랫폼간에 코드를 복사 / 붙여 넣을 수 없다는 것을 알고 있습니다. 그러나 하위 계층의 응용 프로그램 (모델, 비즈니스 등)을 재사용 할 수 있다고 확신하지만 상위 계층 (Gui 등)을 플랫폼에 맞게 조정해야한다는 것을 알고 있습니다. 저의 목표는 기술 코드 공유보다 필요한 기술에 더 중점을 둡니다.

[편집] 내가 생각 대규모의 C #을 사용하는 회사의 교류 # 개발자. 그래서 회사의 대상 플랫폼 범위를 확장하려는 계획에서 C #에 대해 이야기했습니다.

답변:


12

예. 일반적으로 .NET Framework는 광범위한 장치를 대상으로하는 앱에 적합합니다. 그러나 이것은 .NET에 고유하지 않습니다. 자바는 오래 전에 그렇게하고있었습니다. 명심해야 할 것은 특정 플랫폼의 기본 도구에 대한 실질적인 대안이 없다는 입니다.

.NET으로 생성 한 Mac 응용 프로그램은 기본 Mac OS X 응용 프로그램처럼 보이지 않으며 대다수 의 OS X 사용자 가 문제로 간주 합니다. 비즈니스 모델이 사용자 만족도를 극대화하는 것보다 채도를 극대화하는지 여부에 따라 전략적으로 중요하지는 않지만 선택시 반드시 명심해야 할 사항입니다.

Linux 및 Windows의 GUI 시스템은 "기본"으로 표시되고 플랫폼에 잘 맞는 응용 프로그램 측면에서 다소 융통성이 있습니다. 그러나 나는 명확한 인터페이스 지침이 부족하고 응용 프로그램 개발자가 역사적으로 존재하는 것을 무시할 것이라는 사실을 주로 비난합니다. 많은 Mac 사용자 는 일관된 사용자 인터페이스로 인해 Mac을 정확하게 선호합니다 .

GUI 계층을 특정 플랫폼에 맞게 조정해야하고 (Objective-C와 같은 다른 언어로 완전히 다시 작성해야 함) 라이브러리 코드에 대해서만 .NET 플랫폼을 활용할 수 있다는 점을 고려하십시오. 그리고 내 의견으로는 C ++보다 C #에 대한 명확한 승리는 없습니다.

신속한 응용 프로그램 개발을 위해서는 C # 및 .NET보다 나은 대안이 거의 없습니다. 그리고 앱을 신속하게 출시하고 다양한 플랫폼에서 즉시 사용할 수있게하는 것은 확실히 비즈니스 이점입니다. 그러나 사용자를 진정으로 만족시키는 진정한 다중 플랫폼 응용 프로그램의 경우 반드시 은색 총알 솔루션은 아닙니다.


9
".NET으로 생성 한 Mac 응용 프로그램은 기본 Mac OS X 응용 프로그램처럼 보이지 않습니다." 모노 맥 소개 : mono-project.com/MonoMac

3
@ 디미트리 스 : 그냥 회의적이라고 말합시다. Qt 사람들은 이것을 시도했지만 사람들은 여전히 ​​그것을 달성 한 것에 대해 위아래로 점프합니다. 그들은 틀렸다 : 그들은하지 않았다. Qt 응용 프로그램은 기본 OS X 응용 프로그램처럼 보이지 않습니다 . 그들은 단지 ... 잘못되었습니다. 제안한 링크에 스크린 샷이 표시되지 않지만 UI가 완벽하더라도 동작 및 구현 세부 정보가 모두 누락됩니다. 그래도 참고해 주셔서 감사합니다. 낙관적입니다.
코디 그레이

7
@Cody Grey : MonoMac은 크로스 플랫폼 API가 아니라 기본 Cocoa API를 기본적으로 감싸기 때문에 네이티브처럼 보이고 작동합니다. 네이티브이기 때문에 네이티브처럼 보이고 작동합니다.

1
@Cody Grey : MonoMac은 Mac의 경우 MonoTouch는 iOS의 경우입니다. 네이티브 앱을 작성할 수 있으며 Obj-C 대신 C #을 사용하면됩니다. "Mac에서 WinForms 또는 Gtk를보기 좋게 만들지"마십시오.

2
iPad 및 Windows Phone, ASP.NET MVC3 및 NT Services가 로봇 제어 시스템과 인터페이스하는 시스템을 구축하는 중이기 때문에 위의 대화를 시작하고 싶었습니다. Cody가 위에서 지적한 것처럼 Mono, MonoDroid, MonoTouch 등은 C #으로 코드를 작성하는 방법으로 C # 및 .NET Framework (Linq 포함)의 강력한 기능을 활용할 수 있습니다. 선택한 플랫폼의 "네이티브"API ... ... 또한 대부분의 네이티브 C / C ++ / ObjC 코드에 내재 된 많은 메모리 관리 문제를 피할 수 있습니다.
Richard Turner

6

Microsoft .NET은 공식 CLR, DLR, BCL, CLI 및 CLS 구현입니다. 다른 회사, 그룹, 커뮤니티 또는 작업 그룹은 최신 프레임 워크 및 언어 버전을 1 : 1로 구현할 수있는 방식으로 Microsoft와 관련이 없습니다.

기본적으로 구체적인 프로젝트에서 활용할 언어 및 프레임 워크 기능을 검토하고 비공식 .NET 구현에 존재하는지 확인해야합니다.

한 번만 컴파일 솔루션을 기대하고 어디서나 배포 할 경우 잘못된 것입니다. 사례 연구를 작성해야합니다.


그것은 많은 TLA입니다 !
Tamlyn

@tamlyn 그래 hahahaha
Matías Fidemraizer

이제 많은 .NET이 오픈 소스이므로 상황이 바뀌 었습니다.
Ian

@Ian Sure .......
Matías Fidemraizer

2

XBOX 및 Windows 컴퓨터에서 실행되는 게임에서 C #을 사용하고, 로봇 솔루션을위한 Compact Framework 앱에서 사용하고, iPad 개발을 위해 MonoTouch를 사용하고, Linux에서 실행되는 일부 웹 앱과 다른 솔루션은 거의 없습니다. 일반적으로 특정 플랫폼에서 작업을 수행하는 방법이 있습니다. 코어 레이어는 대부분 동일합니다 (사례 연구가 실제로 필요합니다). 문제는 시리즈 1이라고 생각하며 개발 환경입니다. Visual Studio 및 해당 기능에 익숙합니다. 그러나 MonoDevelop는 예를 들어 나를 미치게합니다.


1
Novell은 최근 VS 2010 확장을 출시하여 VS에서 모노 코드를 개발할 수 있습니다.
Morgan Herlocker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.