C# 웹 프로그래밍
웹 프로그래밍은 일반적으로 웹 서버 프로그래밍을 의미하지만, 이 카테로리에는 웹 API를 사용하는 웹 클라이언트 프로그래밍을 포함한다.
웹 서버 프로그래밍
C#에서는 ASP.NET 이라는 Web Framework을 활용하여 웹 서버 프로그램을 쉽게 작성할 수 있다.
ASP.NET (ASP.NET 4.5)은 크게
- 기존 윈폼 프로그래밍 방식을 상당 부분 Web에 적용한 ASP.NET WebForms
- UI, 모델 그리고 컨트롤러를 분리한 보다 모던한 ASP.NET MVC (MVC 5)
- REST API 개발을 쉽게 해주는 ASP.NET Web API 등으로 나눌 수 있다.
최근에 ASP.NET은 ASP.NET Core라는 명칭 (주: 한때 ASP.NET 5로 불림)으로 새로운 아키텍쳐로 크게 변화하였는데,
ASP.NET Core는 ASP.NET MVC6, Entitiy Framework Core를 지원하면서, WebForms을 제거하였으며, Web API를 MVC에 통합하였다.
기존의 ASP.NET이 여러 기본 기능들을 Built-in 했던 반면, ASP.NET Core는 가장 기본적인 기능을 제외하고 모두 Optional로 하였기 때문에 개발자가 필요한 기능들을 별도로 추가해서 사용해야 한다.
ASP.NET Core는
- 이전부터 계속 지원했던 방식인 Full .NET 세트인 .NET 4.6 (.NET CLR)을 사용하여 웹 프로그램을 개발하여 Windows/IIS를 올려 사용할 수 있으며,
- Full .NET의 Subset인 .NET Core (CoreCLR)를 활용하여, Windows 뿐만 아니라 Linux, OSX 등에서도 사용할 수 있으며,
- 또한 기존 Mono를 활용하여 Linux, OSX 등에서 사용할 수 있다.
웹 클라이언트
C#으로 Web 리소스를 다운로드하거나 Web API를 호출하기 위해 여러 .NET 라이브러리를 사용할 수 있다.
흔히 가장 많아 사용되는 클래스는 아래와 같다.
- WebClient
- HttpWebRequest / HttpWebResponse