C #, .NET, ASP, ASP.NET 등의 관계


143

C #, C # .NET과 ASP 및 다른 '.NET'언어의 차이점에 대해서는 분명하지 않습니다.

내가 이해 한 바에 따르면 .NET은 ... 사물의 라이브러리 / 프레임 워크입니다. 나는 그들이 본질적으로 폼 요소 등과 같은 Windows 데이터에 액세스한다고 생각하지만 ASP.NET에는 적용되지 않는 것 같습니다.

또한 사람들이 스스로 '.NET'개발자라고 부릅니다. 이것이 C #, ASP 및 기타 언어에 능숙하다는 의미입니까?

마지막으로 .NET이 첨부되지 않은 C #은 절대로 보지 않습니다. C #이 없으면 .NET과 밀접하게 연결되어 있습니까?

요약하면 .NET은 정확히 무엇을 제공합니까? C # 및 ASP 등과 어떤 관련이 있습니까? '.NET 개발자'란 무엇입니까? 마지막으로 왜 .NET없이 C #을 보지 못합니까?

[제외 적으로, 나는 이것이 여러 가지 질문이라는 것을 알고 있지만, 그들은 매우 상호 관련이 있다고 생각합니다 (또는 적어도 브라우징 프로그래머 / SO 등이 나에게 준 인상입니다)].

답변:


172

귀하의 혼란을 이해합니다. Java 세계와 관련하여 동일한 관점을 가지고 있다고 믿습니다. 어쨌든 나는 당신의 질문을 하나씩 분해하고 하나씩 해결하려고 노력할 것입니다.

  1. C #과 C # .NET은 같은 것입니다 ... C #
  2. .NET은 .NET 언어와 통신 할 수있는 코드 라이브러리입니다.
  3. .NET 언어는 C # .NET, VB.NET, Managed C ++, F #과 같은 다양한 형태로 제공됩니다.
  4. .NET 언어는 CIL ( Common Intermediate Language ) 로 컴파일 되므로 모두 동일한 언어를 "통화"하기 시작하여 상호 운용 될 수 있습니다.
  5. ASP.NET은 웹 사이트를 만드는 데 사용되는 .NET 라이브러리의 일부입니다. ASP.NET에는 WebForms (구식 웹 페이지 작성 방법)와 같은 다른 하위 섹션이나 빠르게 살펴볼 가치가있는 MVC 라이브러리가 있습니다.
  6. 양식 (구 기술) 또는 새로운 WPF (Windows Presentation Foundation)는 일반적으로 .NET에서 기존 데스크톱 응용 프로그램으로 알려진 것을 만드는 데 사용하는 기술입니다.

마지막으로 마무리하려는 것은 라이브러리와 프레임 워크의 차이점입니다. 최근에이 두 용어는 동의어로 사용되었지만 실제로는 그렇지 않습니다. 두 가지를 구별 할 수있는 가장 쉬운 방법은 다음과 같습니다.

  • 라이브러리에는 선택하고 선택할 수있는 많은 기능이 포함되어 있습니다. 즉, 하나의 기술을 사용한다고해서 나머지에 갇혀 있다는 의미는 아닙니다. 이것은 자유를 의미하지만 더 많은 일을하게 될 것입니다.
  • 그러나 프레임 워크는 작업 방식을 설명합니다. 더 나은 또는 더 나쁜 변경하기 어려운 워크 플로를 제공합니다. 이는 빠른 개발 / 프로토 타이핑을 의미하지만 앞으로 중대한 변경이있을 경우 구현이 불가능하거나 시간이 많이 걸릴 수 있습니다.

작업중인 프로젝트는 어떤 선택을하는지에 따라 다릅니다.


7
+1이지만 # 2에서 약간의 문제가 발생했습니다. .NET은 "코드 라이브러리"가 아니며 프레임 워크입니다 (프로그램을 정의하고 실행하는 방법을 정의하는 "워크 플로"로 올바르게 정의 함). Microsoft에서 게시 한 .NET 언어로 제공되는 표준 라이브러리 모음은 .NET 기본 클래스 라이브러리 (BCL)입니다.
nlawalker

7
ASP는 ASP.NET 대신 클래식 ASP를 참조하는 데 사용될 수도 있습니다.
Brian

11
포인트 1에 동의하지 않습니다. C #을 .NET없이 사용할 수 있으므로 C # .NET은 C #을 .NET 프레임 워크와 함께 사용하지만 C #은 사용하지 않는다고 명시 적으로 명시합니다. 실제로 대부분의 사람들은 C #이 .NET과 함께 사용된다고 가정합니다.
Ian Newson 2016 년

23

.NET은 응용 프로그램 개발 프레임 워크이며 다양한 기능을 포함하는 수많은 라이브러리를 포함합니다.

C #은 .NET과 함께 사용하도록 만들어진 언어입니다. .NET 호환 언어 만이 아닙니다. 다른 옵션으로는 VB.NET, F #, Managed C ++, IronRuby 및 IronPython이 있습니다. .NET 프레임 워크의 기능을 사용하기 위해 선택한 언어로 코드를 작성합니다.

ASP.NET은 웹 기반 응용 프로그램 및 웹 사이트 작성에 도움이되는 .NET의 확장입니다. 이 컨텍스트에서 전체 프레임 워크의 대부분이 사용 가능합니다 (예 : WinForms의 경우 유용함).

[Classic] ASP는 Microsoft의 오래된 웹 프레임 워크입니다. 비슷한 이름에도 불구하고 ASP와 ASP.NET은 완전히 다릅니다. 주목할만한 차이점은 ASP에 대한 유일한 언어 옵션은 VBScript와 JScript입니다. ASP는 오래되고 오래된 기술이므로 문제를 일으키지 마십시오.


14

먼저 .Net은 Java 바이트 코드와 유사한 바이트 코드 프레임 워크입니다. 그러나 .Net은 BYTECODE입니다. ".Net"공식 언어가 없습니다. .Net을 대상으로하는 두 가지 주요 언어는 C # 및 VB.Net입니다. ASP.Net은 C # 또는 VB.Net (또는 다른 .Net 대상 언어)으로 작성된 응용 프로그램을 웹 사이트로 사용할 수 있도록 제공된 .Net 라이브러리의 확장입니다.

.Net을 알고 있다고 말하는 개발자는 일반적으로 C # 또는 VB.Net 또는 둘 다를 알고 있으며 모르는 것을 쉽게 배울 수 있습니다 (C # 및 VB.Net은 일반 구문 외에 매우 유사한 언어 임)

마지막으로 ASP는 ASP.Net과 동일하지 않습니다. 그들은 큰 차이가 있습니다


ac # 응용 프로그램과 ac # .net 응용 프로그램의 차이점이 있습니까? 귀하의 답변에 c # .net에서 .net을 삭제했을 때 묻습니다. .Net 개발자 섹션은 매우 도움이되었습니다.
Megan Walker

5
C #은 실제로는 .Net과 관련이없는 언어 일뿐입니다. 그러나 현재 C #의 모든 사용은 .Net과 함께 사용되므로 실제로 "C #"과 "C # .Net"사이에는 차이가 없습니다
Earlz

".NET"개발자는 언어 배타적 방법 / 기능을 가능한 많이 피하기 때문에 구문 변경만으로 모든 .NET 언어를 뛰어 넘을 수 있기 때문에 주장을합니다.
Wayne

1
C # 언어는 언어 일뿐입니다. .NET 백엔드 또는 프레임 워크와 통신 할 필요없이 C #으로 무엇이든 작성할 수 있습니다. 저를 의심하는 사람들은 Xamarin C #을 살펴보십시오. .NET을 사용하지 않고 iOS 및 Android 기본 앱을 작성하는 방법입니다.
Phil Ryan

@PhilRyan 가치있는 가치를 위해이 답변이 게시 될 때 Xamarin은 발명되지 않았습니다.
TylerH

8

단 한 가지 답변 만 자세히 설명하지 않고 Mono를 언급하기 때문에

언어로서의 C #은 원래 .NET Framework의 일부로 Microsoft에서 개발되었지만 나중에 ECMA 에 의해 표준화되었습니다 . 이는 언어의 독립적 인 표준 호환 구현을 개발할 수 있다는 의미입니다. 그중 가장 눈에 띄는 것은 Mono 입니다.

Mono는 C # 컴파일러 및 CLI 구현 (Microsoft의 CLR (.NET Framework의 가상 시스템)에 해당하는 Mono Runtime)을 포함하여 .NET Framework와 호환되는 ECMA 표준 호환 도구 세트의 오픈 소스 구현입니다. 목표는 .NET 애플리케이션을 크로스 플랫폼으로 실행하는 것입니다. 현재 C # 4.0과 .NET Framework 기능의 상당 부분을 지원 합니다 . Mono 팀은 Microsoft 구현을 미러링하는 것 외에도 자체 혁신을 수행하고 있습니다.

따라서 .NET없이 C #에서 작업하는 것이 가능하고 가능합니다. 그러나 Mono가 Microsoft의 시장 점유율 및 .NET Framework의 위치와 경쟁 할 수는 없을 것입니다.


누군가가 Mono를 설명하기를 기다리고 있었고 .NET과 쌍을 이루지 않고 C #을 보지 못한다는 잘못된 가정을 수정했습니다. +1.
KChaloux

7

Jon Skeet의 책 C # In Depth는 .NET을 간결하게 분류합니다. 그것은 종종와 관련하여 사용

  1. 프로그래밍 언어 (C #, VB)
  2. 해당 언어가 컴파일 된 바이트 코드를 실행하는 런타임 (CLR)입니다.
  3. 프레임 워크 라이브러리 (Windows Forms / ASP.NET)

2

다른 답변은 각 기술이 무엇인지 설명하는 데 도움이되지만 혼란의 주요 원인 중 하나를 놓치고 있다고 생각합니다. C #과 C # .NET은 본질적으로 동의어이지만 VB.NET과 VB는 다르고 ASP와 ASP.NET도 다릅니다. VB는 일반적으로 VB6 이하를, ASP는 클래식 ASP를 나타냅니다. 이러한 기술은 .NET 프레임 워크의 릴리스로 근본적으로 재 설계되었으며 Microsoft가 .NET을 거의 모든 제품에 추가 한 제품의 새로운 이름을 제시하기보다는 C #도 새로운 것이므로 두 이름이 실제로 동일한 것을 나타냅니다.


0

언어, 프레임 워크, CLR, 패턴 및 프로그래밍 방법을 구별해야합니다.

ASP.Net은 완전히 다른 프로그래밍 패턴을 사용하여 Winforms 개발은 동일한 기초를 공유하지만 Winforms 개발에 사용합니다. 다양한 언어로 ASP.net 및 .Net 응용 프로그램을 프로그래밍 할 수 있습니다.

그런 다음 Mono 컨텍스트에 Mono 및 C # 언어가 사용되며 아마도 연구 할 가치가 있습니다.

다음 링크를 읽으십시오.
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementations
http://en.wikipedia.org/wiki/File : Overview_of_the_Common_Language_Infrastructure.svg


"ASP.net 및 .Net 응용 프로그램을 다양한 언어로 프로그래밍 할 수 있습니다." 무슨 말인지 잘 모르겠습니다. 다양한 언어로 ASP.net 프로그램을 작성할 수 있다고합니다. 그러나 ASP는 언어이고 .NET은 추가 한 프레임 워크라고 생각했습니다.
Megan Walker

ASP.net은 프레임 워크이며 프로그래밍 방법론이라고 생각합니다. ASP.net은이 목록에서 모든 언어로 코딩 할 수 있습니다. en.wikipedia.org/wiki/List_of_CLI_languages ASP 클래스는 할 수 없습니다.
Jeremy

1
ASP는 언어가 아닙니다.
Marcie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.