C#과 .NET Framework

tangoo·2022년 3월 26일
0

C#

목록 보기
1/7
post-thumbnail

.NET Framework의 이해

.exe 파일로 win 32 api를 타겟으로 만들어진 것이다. 운영체제와 직접적으로 연결됨.Net은 CLR이라는 중간 단계를 거치게 된다. 예전에는 WIn32는 코딩 후 만들어진 것은 윈도우에 종속이 됨. Mac은 Mac용, Window는 Window용, .NET은 CLR 걸치면서 운영체제 상관없이 프로그램하면 되고 CLR이 운영체제에 알아서 대응해준다.

C# 소스 파일과 리소스 ,레퍼선스들이 프로그램 코딩 됨, C#은 compiler통해서 얘가 또 뭔가를 만듦, 이게 .exe아 .dll이 만들어짐, 예전에는 .exe 파일이 클릭시 운영체제에 종속되어 프로그램 바로 돌아감

하지만 이제는 metadata만들어 내서 돌아간다. 내부를 보면 .NET 프레임워크에서의 tuntime garbage collection, security등이 닷넷 프레임워크의 클래스 라이브러리에 합쳐서 닷넷프프레임워크에 convert 되는 machinecode로 만들어줌 이게 중간 역할을 해주고 있는 것이다. 운영체제랑 같이 대응을 하고 있다. 이파란색 중간 단계가 있기 때문에 C#를 배워서 코드를 만들기만하면된다. OS에신경안써도 된다. 중간 단계 닷넷들이 알아서 해주기 때문이다.

CLI : Common Language Infrastructure

  • CTS :Common Type SystemCLS :Common Language SpecificationCLR :Common Language Runtime
  • CLS : Common Language Specification
  • CLR : Common Language Runtime
  • BCL : Base Class LibraryMSIL :MS Intermediate Language
  • MSIL : MS Intermediate Lanaguage

여기서 제일 중요한건 Common → 공용으로 뭔가를 사용하고 있다. OS에 종속되지 않고 프로래밍을 할 수 있기에, 공용언어 표준 기능 그안에 저런것들이 있는것임

공용타입시스템 - 공용으로 사용하는 타입, 공용으로 사용된다.

공용 언어 규역 - 어떤 공통된 규역으로 코딩을 해야한다.

공용 언어 런타입 : 공통된 규역으로 코딩을 해야 정상적으로 CLR이 중간언어로 바꿔줄수 있다.

IL 속성이 있는 exe 파일로 나오는 것임 → WORA : 하나의 코드르 갖고 다양하게 플랫폼 다양한 operating System 에서 돌리겠다.

JAVA에서 이렇게 많이 사용한다. JVM = CLR과 비슷

유니티도 WORA와 비슷하다. →> 하나의 소스 코드를 갖고 다양한 플랫폼 Android ios동시에 지원해줄 수 있다는 장점이 있다. 가장 큰 장점이다.

C# 언어 컴파일 과정

C# 코딩 → 그럼 코딩을 하면 compile(Build가 되었다.) : →.NET FRAMEWORK → 실행파일

C#과 컴파일만 프로그래머가 신경쓰면 된다 .

C# 언어

  • C++에서 파생된 객체지향 언어
  • 형식 안정성 : 객체지향 언어이기때문이다
  • java의 특징 + C, C++

C# 프로그래밍

  • 메모리 관리가 쉽다 (garbage Collector) : 총알 계속 쏘는 것 화면 밖으로 사용되지 않을 때 메모리 반환이 않는다면.. ? 메모리 관리가 안되서 꺼진다. 그래서 메모리는 프로그래머들이 잘 관리해야한다. C#은 메모리 관리가 쉽다. 계속 슈팅게임 계속 쓰면 메모리를 많이 쓰기는 하지만 더이상 사용하지 않으면 Garbage Collector 가 알아서 가져간다.
  • 다양한 라이브러리 지원

더 자세한 내용은 .NET 아키텍처 구성요소를 보면 알 수 있다.
https://docs.microsoft.com/ko-kr/dotnet/standard/

profile
안녕하세요!

0개의 댓글