일단
.NET의 가장 중요한 두가지 특징에 대해 살펴보면
1. 모든 .NET언어가 동일한 .NET 기능에 엑세스 한다는것
2. 다양한 언어로 작성된 코드가 밀접하게 상호 운용된다는 점


이런 기능을 지원하는 일등공신은 MSIL인데, .NET 컴파일러는 소스코드등을 통해 Windows PE가 아닌 MSIL을 생성한다

MSIL의 등장으로 .NET 응용프로그램은 표준적이고 공통적인 포맷으로 컴파일되므로
일관성있게 .NET 런타임 환경에서 운용된다.

.NET 응용프로그램을 컴파일하고 실행할때 어떤일이 발생할까?

1. .NET 언어를 사용해 소스코드를 작성
2. 소스코드는 컴파일되 EXE파일로 작성
3. .NET 컴파일러는 MSIL 코드와 메니페스트를 생성하고 이 정보를 EXE의 한부분으로 포함시킨다.
    .NET 컴파일러가 생성하는 EXE는 기타 EXE와 마찬가지로 표준 PE헤더를 포함하고 있다.
    (메니페스트는 .NET 바이너리의 내용과 런타임 요구사항에 대한 정보를 포함하고 있다.
     메니페스트는 .NET 바이너리 파일에 저장되는 정보를 언급한다. )
4. (가장중요한단계) 컴파일러가 산출물을 생성할 때 .NET 런타임에서 _CorExemail이라는 이름의 함수를 임포트 한다.
5. 사용자가 응용프로그램을 실행하면 운영체제는 PE파일과 관련된 DLL 파일들을 로드한다.
    이 DLL 중에는 _CorExeMail 함수가 정의되어 있는 mscoree.dll 파일들이 포함된다.
    이 파일은 모든 .NET PE 파일이 실행될때 로드된다.
6. 운영체제 로더는 PE내 진입점(entry point)으로 점프한다.(휘릭~) 모든 PE는 Windows에서 이런 프로세스에
   따라 진행된다.
7. 운영체제에서 MSIL 코드를 실행할 수 없기 때문에 진입점은 mscoree.dll의 _CorExeMail으로 점프하는
   루틴에 불과하다.
8. _CorExeMail 함수는 컴파일러에서 PE에 놓아 둔 MSIL코드를 실행한다.
9. MSIL코드는 직접 실행될수 없다.(실행가능한 형식이 아니므로. )
    따라서 CLR에서 JIT 컴파일러를 사용해 MSIL을 CPU전용 명령어로 컴파일한다.
    JIT 컴파일러에서 컴파일할 때 프로그램의 메서드로만 호출되며, 컴파일된 실해오드는 시스템에 임시로
    저장되고 소스코드가 별경될때만 재컴파일 된다.

출처 : INSIDE C#
by 피요히코~ 2009. 4. 22. 23:54

image

.NET Framework 4.0 은 Visual Studio 2010 에 포함되는 최신 프레임워크입니다. 이전에는 .NET Framework 의 새로운 특징이라면 .NET Framework 의 기능 향상과 안정성, 그리고 기능 개선이었습니다. 하지만 .NET Framework 4.0 은 탄탄한 Based .NET Framework 를 통해 여러 가지 새로운 변화를 가져옵니다.

이제는 .NET Framework 가 Win32 API 와 같이(Win32 API 와 비교하기 적절하지는 않지만…) 라이브러리의 집합이 아닌, 어플케이션의 차원에서 보다 견고하고 세련된 빌딩(Building) 을 할 수 있는 진정한 프레임워크로 거듭납니다. .NET Framework 4.0 의 특징을 살펴 봅니다.

Base Class Library 개선

  • MEF(Managed Extensibility Framework)
    • 확장성이 쉬운 선언과 사용
    • 런타임 확장 모니터링
  • 데이터 구조 추가
    • BigInteger & CodeplexNumber
    • Tuple, SortedSet
  • IO 개선
    • 메모리 매핑 파일
    • 모델 해제 통일

MEF 는 어플케이션과 컴포넌트의 재사용성을 높이기 위한 새로운 라이브러리입니다. 확장성 있는 어플케이션과 프레임워크를 만들기 위해 MEF 가 그 대안이라고 제시하고 있습니다. 이 프로젝트는 현재 CodePlex 를 통해 Preview 4 가 릴리즈되었고, 여기에서 다운로드 받을 수 있습니다.

또한 64 비트 프로그래밍을 위한 새로운 데이터 구조가 추가 되었습니다. 64비트 컴퓨팅 시대에 맞춰 .NET Framework 의 Int32 가 한계였다면, 이제는 그보다 더 큰 비트 연산을 할 수 있는 데이터 구조와 새로운 데이터 구조가 추가 되었습니다.

Parallel Computing

  • Task Parallel Library (TPL)
    • 수평적인 병렬 작업의 실행
    • 최대 효율을 위한 Stealing 알고리즘 작업
    • 상위 레벨을 추상화 ( 더 이상 스레드의 지식이 필요 없다 )
  • Parallel Linq (PLINQ)
    • 선언적인 데이터 병렬처리(초점은 ‘무엇’, ‘어떻게’가 아니다)
    • LINQ to Object 를 사용하여 단순한 병렬 처리
  • Coordination Data Structures (CDS)
    • 병렬 처리를 쉽게 하기 위한 공통 구조

다중 코어 프로세서의 사용을 극대화 하기 위해 이제는 병렬 처리를 위해 스레드를 생성하여 동기화 하는 과정을 더 이상 고민하지 않아도 됩니다. 병렬 처리를 하기 위한 확장 메서드를 제공하며, LINQ 식을 통해 데이터의 병렬 처리가 무척이나 쉬워졌습니다. 이제는 ‘어떻게’가 아닌, '무엇을’ 병렬 처리 할 것인지만 생각하면 됩니다.

.NET Framework Client

  • Windows Presentation Foundation
    • 클라이언트 프로파일(Client Profile)
    • 비지니스 컨트롤에 초점
    • 실버라이트 시너지 효과
    • Windows 7 지원 (멀티터치 등)

ADO.NET 4.0

  • Entity Framework v2
    • Code-Fiirst 개발 지원
    • TDD 지원
    • 외래키(Foreign Key) 지원
    • Lazy 로딩

.NET Framework 3.5 SP1 에 등장한 Entity Framework 의 차기 버전입니다. 이전 버전은 기본 키를 중심으로 한 Entity Data Model 이였다면 새로운 버전에서는 외래 키도 지원하게 되었습니다. 또한, TDD(Test-Driven-Development) 을 지원하며, Code-First 방식의 개발도 지원하게 되었습니다.

ASP.NET 4.0

  • ASP.NET Dynamic Data 개선
  • ASP.NET MVC
  • MVC 에 ASP.NET Dynamic Data 지원
    • 데이터 중심으로 뷰와 커스텀 컨트롤 만들기 쉽게
  • CSS, ID, ViewState 컨트롤이 더 좋아진 ASP.NET
  • 확장할 수 있는 캐싱 프레임워크(Caching Framework)

ASP.NET 4.0 의 가장 큰 매력은 바로 ASP.NET MVC 의 통합입니다. 그 동안 Postback, ViewState 기반의 빠른 생산성이 ASP.NET 의 핵심이었습니다. 하지만, ASP.NET MVC 를 통해 Form 기반에서도 빠른 생산성을 향상시켰습니다. 또한, MVC 를 구현하기 위해 많은 코드와 분리 작업을 자동화 할 수 있는 템플릿을 지원합니다.

Velocity

  • .NET 을 위한 분산 캐싱
  • ASP.NET 의 Session State Provider
  • 유연하고, 서로 다른 캐싱 모델
    • Partitioned
    • Replicated
    • Local

.NET 이 지원하는 가장 대표적인 분산 캐싱이 ASP.NET 의 Session State Provider 입니다. 그렇지만 Session State Provider 의 분산 캐싱 능력에는 한계가 있으며, 이러한 한계를 극복할 수 있는 프레임워크가 바로 Velocity 입니다. 캐싱을 분산 처리 하기 위해 많은 고민을 해야 하며, 이러한 분산 캐싱 환경에서 빠른 응답성, 확장성, 고사용성을 높였습니다.

엔터프라이즈 어플케이션 환경에서 많은 관심을 보일 것이며, 특히 요즘 새롭게 대두 되고 있는 SaaS 나 Cloud Computing 을 위해 빠져서는 안될 핵심 기술이 될 것입니다.

Windows Workflow & Communication Foundation

  • 완전 선언적인 서비스
  • 워크플로우 개선
    • 프로그래밍 모델 개선
    • 새로운 플로우차트 모델 스타일 & 확장 활동 팔레트
    • 워크플로우 규칙 통합
    • 디자이너 경험 향상
    • 상당한 성능 향상
    • 상호 메시지
  • WCF 개선
    • Duplex 내구성
    • In-process Channel
    • WS-Discovery & UDP Channel

ADO.NET Data Services

  • 관계형 데이터 지원
  • ‘오프라인’ 상태 지원

ADO.NET Data Services 도 .NET Framework 3.5 SP1 에서 사용하기 위해 몇 가지 추가 작업이 필요하였으며, 보다 자세한 내용은 여기를 참고 하십시오.

특히, 이 버전에서는 Data Services 의 오프라인을 지원합니다. 오프라인에서도 ADO.NET Services 의 사용은 수 많은 외부 시스템과 연동 시에 서비스의 일관성을 유지해 줄 것입니다.

ASP.NET AJAX

  • 자바스크립트 UI 템플릿과 데이터 바인딩
  • AJAX 컨트롤 툴킷 개선
  • DOM Selection, 애니메이션 등

ASP.NET AJAX 는 요즘 가장 인기 있는 AJAX 프레임워크인 JQuery 와 통합하게 됩니다. JQuery 를 사용하고 인텔리센스를 지원하기 위해 몇 가지 수작업이 있었다면, 이제는 그러한 작업 없이도 JQuery 의 고급 기능을 ASP.NET AJAX 에서 사용할 수 있습니다.

출처 : 땡초님 블로그


아직  3.0도 제대로 못하는데. 이제 4.0이 곧 나오겠네요.
4.0 나오기 전에 3.0은 좀 어느정도 할줄 알게 됐음 좋겠는데..
열심히 해야겠네요
by 피요히코~ 2009. 2. 25. 10:27
| 1 |