(올바른 제목을 추가) |
Doubleplus (토론 | 기여) |
||
30번째 줄: | 30번째 줄: | ||
== 안드로이드/iOS 애플리케이션 개발 == | == 안드로이드/iOS 애플리케이션 개발 == | ||
Xamarin을 설치하여 개발할 수 있다, 하지만 부분 유료화이고 특히 무료 사용자는 Visual Studio랑 연동 불가능하다(30일 체험판 제외). 닥치고 무조건 Xamarin Studio다. | Xamarin을 설치하여 개발할 수 있다, 하지만 부분 유료화이고 특히 무료 사용자는 Visual Studio랑 연동 불가능하다(30일 체험판 제외). 닥치고 무조건 Xamarin Studio다. | ||
== 버전 == | |||
{| class="wikitable" style="float:left; text-align:center; border:2px solid #9932CC;" | |||
|- | |||
| style="background:#9932CC;" {{!}} {{색|white|버전}} | |||
| style="background:#9932CC;" {{!}} {{색|white|플랫폼}} | |||
| style="background:#9932CC;" {{!}} {{색|white|표준}} | |||
| style="background:#9932CC;" {{!}} {{색|white|출시일}} | |||
| style="background:#9932CC;" {{!}} {{색|white|변경사항}} | |||
|- | |||
| '''1.0''' | |||
|.NET Framework 1.0 | |||
| rowspan="2" {{!}} [http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-334,%202nd%20edition,%20December%202002.pdf ECMA-334] | |||
| 2002년 1월 | |||
| - | |||
|- | |||
| '''1.1''' | |||
| .NET Framework 1.1 | |||
| 2003년 4월 | |||
| - | |||
|- | |||
| '''2.0''' | |||
| .NET Framework 2.0 | |||
| ECMA-334 | |||
| 2005년 11월 | |||
| <ref>제네릭, 파셜(partial) 타입, 열거자(iterator), nullable, 속석 멤버, 정적 클래스, 대리자(delegate) 추가.</ref> | |||
|- | |||
| '''3.0''' | |||
| .NET Framework 2.0~3.5 | |||
| - | |||
| 2007년 11월 | |||
| <ref>암시적 형식의 로컬변수(var), 객체 및 컬렉션 초기자, 자동구현 프로퍼티 (get; set; 만으로 getter / setter 메소드가 구현되는 편의 ㄱ ㅣ능), 익명 타입, 확장 메소드(기존 클래스에 확장되는 메소드로, 지정 타입에 메소드처럼 사용은 가능하나 해당 타입의 접근 제한된 멤버는 접근 불가능), 질의 표현식(Linq의 시초), 람다식, 표현식 구조, 파셜 메소드 추가</ref> | |||
|- | |||
| '''4.0''' | |||
| .NET Framework 4.0 | |||
| - | |||
| 2010년 4월 | |||
| <ref>동적 바인딩(dynamic, 초기화 후에도 다른 타입으로 값을 할당할 수 있는 특징이 있다.), 이름있는 선택적 메소드 인자(argument) 추가.</ref> | |||
|- | |||
| '''5.0''' | |||
| .NET Framework 4.5 | |||
| [http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf ECMA-334] | |||
| 2012년 8월 | |||
| <ref>비동기 메소드(async / awit), 호출정보 특성 추가</ref> | |||
|- | |||
| '''6.0''' | |||
| .NET Framework 4.6 | |||
| - | |||
| 2015년 7월 | |||
| <ref>Roslyn 기반의 동적 컴파일러, 네임스페이스 정의란에 정적 타입 별칭 정의, 예외 필터, 비동기 try / catch / finally 구문, 자동구현 속성 할당, 읽기 전용 속성 기본값 할당, 멤버에 표현식 지원, 계층형 null 체크, 치환형 문자열 식, nameof 식(주로 멤버 및 타입 등 정의된 명칭을정확하게 문자열로 표현하는 식), Dictionary 초기자 추가.</ref> | |||
|- | |||
| '''7.0''' | |||
| .NET Framework 4.7 | |||
| - | |||
| 2017년 3월 | |||
| | |||
|} | |||
== 개발 프로그램 == | == 개발 프로그램 == |
2018년 11월 12일 (월) 15:48 판
프로그래밍 언어 | |
---|---|
언어 이름 | C# |
개발 주체 | 마이크로소프트 |
표준안 |
ECMA-334 ISO/IEC 23270 |
패러다임 | 객체지향적 |
C#은 마이크로소프트에서 개발한 객체지향적 프로그래밍 언어로 윈도우 프로그램, 웹 프로그램, 웹 서비스 등을 개발할 수 있다.[1] Java가 실행시 JRE를 필요로 하듯 C#은 .NET Framework를 필요로 한다.
C# 프로그램은 실행시에 컴파일된다.
프로그래밍 언어의 명세는 ECMA-334 표준이다.
특징
- 객체지향 패러다임이다. (class, struct, interface등의 개념이 있다.)
- 클래스 다중 상속은 불가능하다. (다만 인터페이스 다중 상속은 가능)
- 기존에 만들어진 여러 클래스들 (e.g. System.XML.XMLDocument)을 쉽게 사용할 수 있어 생산성이 높다.
- 가베지 콜렉터가 있어 메모리 관리에 신경 쓸 필요가 적다.
- unsafe 블럭 내에서 포인터 연산을 할 수 있다. (다만 권장되진 않는다.)
Mono
C# 및 VB.NET 등 .NET 계열 언어로 만들어진 프로그램들은 보통 윈도우에서 구동되지만 Java과 같은 중간 언어 (CIL, MSIL로 불리기도 한다.)를 가지기에 리눅스에서도 mono를 사용하면 CIL로 작성된 프로그램(C# 또는 VB.NET으로 작성된 프로그램) 구동할 수 있다.
다만 오류가 날 수도 있고 윈도우 플랫폼에서만 작동되는 코드[DllImport]가 있을 수 있기에 모든 C# 프로그램들을 안정적으로 돌릴 순 없다.
안드로이드/iOS 애플리케이션 개발
Xamarin을 설치하여 개발할 수 있다, 하지만 부분 유료화이고 특히 무료 사용자는 Visual Studio랑 연동 불가능하다(30일 체험판 제외). 닥치고 무조건 Xamarin Studio다.
버전
버전 | 플랫폼 | 표준 | 출시일 | 변경사항 |
1.0 | .NET Framework 1.0 | ECMA-334 | 2002년 1월 | - |
1.1 | .NET Framework 1.1 | 2003년 4월 | - | |
2.0 | .NET Framework 2.0 | ECMA-334 | 2005년 11월 | [2] |
3.0 | .NET Framework 2.0~3.5 | - | 2007년 11월 | [3] |
4.0 | .NET Framework 4.0 | - | 2010년 4월 | [4] |
5.0 | .NET Framework 4.5 | ECMA-334 | 2012년 8월 | [5] |
6.0 | .NET Framework 4.6 | - | 2015년 7월 | [6] |
7.0 | .NET Framework 4.7 | - | 2017년 3월 |
개발 프로그램
- Visual Studio
- MonoDevelop / Xamarin Studio
- SharpDevelop
각주
- ↑ MSDN 문서
- ↑ 제네릭, 파셜(partial) 타입, 열거자(iterator), nullable, 속석 멤버, 정적 클래스, 대리자(delegate) 추가.
- ↑ 암시적 형식의 로컬변수(var), 객체 및 컬렉션 초기자, 자동구현 프로퍼티 (get; set; 만으로 getter / setter 메소드가 구현되는 편의 ㄱ ㅣ능), 익명 타입, 확장 메소드(기존 클래스에 확장되는 메소드로, 지정 타입에 메소드처럼 사용은 가능하나 해당 타입의 접근 제한된 멤버는 접근 불가능), 질의 표현식(Linq의 시초), 람다식, 표현식 구조, 파셜 메소드 추가
- ↑ 동적 바인딩(dynamic, 초기화 후에도 다른 타입으로 값을 할당할 수 있는 특징이 있다.), 이름있는 선택적 메소드 인자(argument) 추가.
- ↑ 비동기 메소드(async / awit), 호출정보 특성 추가
- ↑ Roslyn 기반의 동적 컴파일러, 네임스페이스 정의란에 정적 타입 별칭 정의, 예외 필터, 비동기 try / catch / finally 구문, 자동구현 속성 할당, 읽기 전용 속성 기본값 할당, 멤버에 표현식 지원, 계층형 null 체크, 치환형 문자열 식, nameof 식(주로 멤버 및 타입 등 정의된 명칭을정확하게 문자열로 표현하는 식), Dictionary 초기자 추가.
프로그래밍 관련 정보 |
|||||||||
---|---|---|---|---|---|---|---|---|---|
문자 인코딩 | |||||||||
문자 집합 |
|
||||||||
프로그래밍 언어 | |||||||||
마크업 언어 | |||||||||
표준과 API와 규격 | |||||||||
라이브러리 | |||||||||
프레임워크 | |||||||||
개발 소프트웨어 | |||||||||
튜토리얼 |