레이블이 #CLR인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #CLR인 게시물을 표시합니다. 모든 게시물 표시

2022년 1월 15일 토요일

(동영상)닷넷이란? CLI, CLS, CLR, CTS, 어셈블리 VS 2022, C# HelloWorld, Main함수, C#닷넷교육, 닷넷학원, 시샵학원

 (동영상)닷넷이란?  CLI, CLS, CLR, CTS, 어셈블리  VS 2022, C# HelloWorld, Main함수, C#닷넷교육, 닷넷학원, 시샵학원





이미지 썸네일 삭제
닷넷이란? CLI, CLS, CLR, CTS, 어셈블리 VS 2022, C# HelloWorld, Main함수

닷넷이란? CLI, CLS, CLR, CTS, 어셈블리 VS 2022, C# HelloWorld, Main함수C#닷넷이란?CLI, CLS, CLR, 어셈블리VS 2022, C# HelloWorld닷넷이란?(CLI, CLR, CTS, CLS)닷넷이란? 마이크로소프트에서 개발한 프로그램 개발 및 실행 환경이다.CLS(Common Language Specific…

ojc.asia

이미지 썸네일 삭제
닷넷이란? CLI, CLS, CLR, CTS, 어셈블리 VS 2022, C# HelloWorld, Main함수

닷넷이란? CLI, CLS, CLR, CTS, 어셈블리 VS 2022, C# HelloWorld, Main함수C#닷넷이란?CLI, CLS, CLR, 어셈블리VS 2022, C# HelloWorld닷넷이란?(CLI, CLR, CTS, CLS)닷넷이란? 마이크로소프트에서 개발한 프로그램 개발 및 실행 환경이다.CLS(Common Language Specific…

ojc.asia






닷넷이란?  CLI, CLS, CLR, CTS, 어셈블리  VS 2022, C# HelloWorld, Main함수

C#




 

닷넷이란?

CLI, CLS, CLR, 어셈블리

VS 2022, C# HelloWorld





 닷넷이란?(CLI, CLR, CTS, CLS)


  • 닷넷이란마이크로소프트에서 개발한 프로그램 개발 및 실행 환경이다. 


  • CLS(Common Language Specification) : 닷넷 컴파일러가 지원해야 하는 최소한의 표준규약으로 C#.NET, VB.NET, C++.NET, F#등 닷넷 프레임웍 언어가 반드시 지켜야 하는 언어 스펙으로 CLS를 따르는 언어라면 어떠한 언어라도 닷넷 프레임워크에서 실행가능하다.


  • CLR(Common Language Runtime) : 닷넷의 실행환경. 닷넷 언어의 컴파일된 자원들은 CLR이라는 독립적인 환경에서 실행된다. 즉 소스코드를 컴파일 하면 닷넷 어셈블리가 되는데, 이 어셈블리가 CLR 위에서 동작한다.VS 2022에서는 C#, C++, VB, F#, Python, Node.js, JavaScript, TypeScript 등의 언어를 지원한다. 사용자가 컴파일된 중간언어 파일인 .exe를 실행하면 CLR이 메모리에 로드되고 .exe를 번역하여 기계어(머신코드)로 변환 후 OS위에서 실행을 한다.






  • CTS(Common Type System) :  닷넷 호환 언어가 지켜야할 타입의 표준 규격. C#에서는 4바이트 정수를 int 라고 사용하고, VB.NET에서는 Integer라고 사용한다. 하지만 이들은 모두 닷넷의 공용 타입인 System.Int32 타입이다.


  • CLI(Common Language Infrastructure) : CTS를 명세를 포함하고 MSIL(중간언어)에 대한 코드정의, 메타데이터와 이를 포함하는 MSIL(중간언어)의 구조를 포함하여 표준사양으로 기술한다. 결국 닷넷 프레임워크는 CLI의 구현체로 보면 된다.


  • Visual Studio.NET 2022는 C#, C++, VB, F#, Python, Node.js, JavaScript, TypeScript 등 여러 언어들을 지원하며 닷넷 환경에서 어느 프로그래밍 언어로 작성하던지 컴파일 된 코드(MSIL, Microsoft Intermediate Language)는 같다는 것이 아주 강력한 특징이다. 즉 프로그래머가 가장 자신 있고 편한 언어로 개발하면 된다는 것이다. 그렇지만 대부분 C#을 많이 사용하고 있다. C#은 자바의 객체지향 특징과 C++의 강력함, VB처럼 쉬운 통합환경의 3가지 요소가 결합된 최고의 언어라고 할 수 있다. 


  • C#으로 프로그래밍을 하기 위해서는 닷넷프레임워크에 대한 이해가 우선되야 하는데 먼저 CLR(Common Language Runtime)에 대해 알아보자. CLR의 Architecture는 아래와 같다. 자바언어로 생각하면 JVM 이라고 보면 된다.



  • CLR(닷넷 환경의 런타임)은 하부구조로 OS를 가지며 OS 위에서 닷넷 Application을 실행할 수 있게 해주는 중요한 환경이다. 이 때문에 닷넷 환경하에서 어떠한 언어로 개발하던지 컴파일된 파일(중간언어, IL)은 같은 모양을 가지며 파일들은 CLR 위에서 여러 라이브러리 등을 참고해서 실행 하게 된다.


C#, HelloWorld, Main 함수


VS.NET에서 HelloWorld 작성 하기


  • Visual Studio .NET 을 실행
  • 파일 -> 새로만들기 -> 프로젝트 메뉴선택
    • (프로젝트는 c:\dotnet\project\OnjConsole1 이라고 하자)
  • Visual C#, 콘솔 응용프로그램 선택


using System;


namespace OnjConsole1

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("Hello Onj");

        }

    }

}


[실행 : Ctrl + F5]

[결과]

Hello Onj



[메인 함수에서 인자 받아 들이기]


using System;


namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("Hello {0}, {1}",args[0], args[1]);

        }

    }

}


[실행]

메인함수에 인자 주기 : 프로젝트에서 우측 마우스버튼 클릭 하여 속성창에서 디버그의 디버그시작프로필UI열기를 클릭하여 명령줄 인스에 메인함수에 넣어 줄 인자를 기술한다. 



onj oraclejava


[결과] Hello onj oraclejava


명령프롬프트(Command Prompt)을 이용한 컴파일


D:\dotnet\project 폴더에 Hello.cs 파일을 만들자


[Hello.cs]

class Program

{

      static void Main(string[] args)

      {

          System.Console.WriteLine("Hello {0}", args[0]);

      }

}


자바와 달라 class명이 꼭 파일명일 이유는 없다.


[명령프롬프트 컴파일]

도구 메뉴 VS2022용 개발자 명령 프롬프트


D:\dotnet\project 로 이동, D:\dotnet\project>csc Hello.cs


[실행]

D:\dotnet\project>Hello ONJ


[결과]

Hello ONJ


C#에서의 메인함수(Main)


응용프로그램의 진입점(Entry Point), 닷넷 응용프로그램을 실행 시키는 런타임인 CLR(Common Language Runtime)은 프로그램 시작을 위해 Main 함수를 호출하게 되는데 Main 함수가 바로 프로그램의 진입점이 되는 것이다. 


위 예제에서 아래와 같이 Main 함수를 정의하였다.


static void Main(string[] args)


- 메인함수 첫글자 M

메인 함수의 첫글자 'M' 은 대문자이며 나머지는 소문자.


- static : Main함수가 static로 정의된 이유는 CLR에서 객체 생성없이 바로 메인함수를 호출하기 위해서이다.

 

- args 매개변수 : Main 메소드 안의 인자로, 문자열(string) 배열을 정의하고 있는데 프로그램을 시작 시 Main 함수로 전달하고자 하는 값이 있는 경우 사용된다.  필요하지 않다면 생략해도 되고 반드시 args라고 해야 하는 것은 아니다.



- Return 타입 : 위 예제에서 Main 함수는 리턴값이 없는 void 형으로 정의되었는데 int도 가능하다. int 형으로 정의할 경우에는 통상 종료할 때의 상태를 런타임(CLR)에 알려주기 위한 것인데, 반환 값이 int 형으로 정의되면 프로그램을 호출하는 쪽으로 자신의 상태 정보를 전달할 수 있다 


  • C# 응용프로그램 종료조건

C# 응용프로그램은 Main 함수의 실행이 끝나거나, 반환(return) 될 때 종료한다.


- Main 함수는 오직 한 개

하나의 C# 응용프로그램에는 하나의 Main 메소드만 있을 수 있다.

 

 

#닷넷, #닷넷이란, #CLI, #CLS, #CLR, #CTS, #어셈블리 #VS2022, #HelloWorld, #닷넷교육, #시샵교육, 닷넷, 닷넷이란, CLI, CLS, #CLR, CTS, 어셈블리 VS2022, HelloWorld, 닷넷교육, 시샵교육


(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...