.NET FrameWork는 Microsoft에서 만들어낸, 응용 프로그램 개발을 위한 새롭고도 혁신적인 플랫폼이며 유비쿼터스에 대응하기 위한 Microsoft의 차세대 전략이라고 볼 수 있다. 유비쿼터스란 1988년 제록스사에서 근무하던 마크 와이저가 ‘유비쿼터스 컴퓨팅’이라는 개념을 제시하면서 알려지게 되었다. 유비쿼터스라는 말은 ‘언제 어디서나 존재한다‘라는 뜻의 라틴어로써 유비쿼터스, 유비쿼터스 컴퓨팅 모두 같은 의미를 지니고 있다고 봐도 무관하다. 유비쿼터스의 의미는 언제 어디서나 어떤 장치를 이용해서라도 온라인 네트워크 상에 있으면서 서비스를 받을 수 있고 모든 장치가 네트워크를 통해 연결되어 데이터를 주고 받는 환경 또는 공간을 뜻한다.
이미 우리 사회는 유비쿼터스의 초기 단계에 진입했다고 볼 수 있다. 사람들은 인터넷, 카메라, MP3 기능이 포함된 휴대폰을 가지고 다니고, DMB 단말기를 통해 언제 어디서든 TV를 볼 수 있으며, 달리는 자동차 안에서도 인터넷을 이용 할 수도 있다. 유비쿼터스 환경에서 사용되는 개인 휴대용 단말기 또는 여러 가지 장치들은 PC환경과 달리 다양한 플랫폼의 하드웨어로 구성되며, 이러한 유비쿼터스 환경 하에서 사용될 프로그램은 플랫폼에 독립적이고 이식성이 좋아야하며 보안 기능이 뛰어나야 할 것이다. 또한 대용량 저장장치(XML, 데이터베이스)에 쉽게 접근이 가능해야하며 웹과의 연동이 쉬워야 할 것이다.
.NET은 이러한 요구 조건을 충족하는 새로운 개발 환경으로 가상머신(Virtual Machine)개념을 사용해 다양한 운영체제와 하드웨어 상에서 작동 할 수 있다. .NET FrameWork는 VB.NET, ASP.NET, VC.NET, C#, J# 등 20가지 이상의 다양한 개발 언어를 지원하고 있으며 이들은 CRL(Commom Runtime Library)의 지원을 받는 통합 개발환경을 제공한다. CRL은 공통된 기본 라이브러리를 제공하여, 서로 다른 닷넷 언어들로 작성된 프로그램들도 동일한 실행 환경에서 사용 할 수 있도록 만들어준다.
.NET FrameWork는 기본적으로 클라이언트 언어와 객체 지향적 프로그래밍 기술을 이용해서 사용하는 방대한 코드 라이브러리로 이루어져 있다. 이 라이브러리는 목적에 따라 여러 가지 모듈로 나누어져 구성되어 있으며, Windows 응용 프로그램을 위한 모듈, 네트워킹을 위한 모듈, 웹 개발과 관련된 모듈 등등이 포함된다. 이러한 구조를 통해 모듈들 전체 혹은 필요한 모듈만 지원이 가능하도록 할 수 있게 된다.
C#은 위와 같은 .NET 개발에 쓰일 수 있는 여러 언어들 중 하나일 뿐이지만, .NET FrameWork를 위해 Microsoft에서 완전히 새롭게 고안한 언어이며 .NET 코드 라이브러리가 제공하는 모든 기능들을 완전하게 활용 할 수 있으며, 네트워크 환경에서 개발자의 생산성을 증대시키고 프로그래머가 작성해야 하는 코드의 양을 줄이는 기술이 포함되어있다.
C#의 장점
분산 환경에 적합한 언어 : ASP.NET, XML.NET, 모바일 프로그램을 빠른 시간 안에 개발 할 수 있으며 특히 ASP.NET은 웹 관련 프로그램 개발에 뛰어난 생산성과 성능을 발휘한다.
구조 중립적 : C#을 이용해 개발된 프로그램은 다양한 환경의 운영체제에서 실행 할 수 있다.
뛰어난 생산성 : C#은 Visual Basic의 생산성과 Visual C++의 성능을 동시에 제공하여 개발 시간을 크게 단축시킨다.
강력한 디버깅 기능 : ASP.NET, 모바일 프로그래밍 등 기존 언어에서 디버깅 제공이 곤란했던 분야에 대해 뛰어난 디버깅 기능을 제공한다.