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

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

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

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

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

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

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



답변

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

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

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

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

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


답변

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

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

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


답변

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