모든 프로그래머가 알아야 할 .NET Framework 4의 사항
최근에 Visual Studio 2010으로 이동하고 .NET Framework 4에서 작동하도록 웹 사이트를 업그레이드했습니다. (VS 2008-Framework 3.5부터)
사이트 속도, 가독성 또는 메모리 사용을 개선하기 위해 알아야 할 사항은 무엇입니까?
-
Parallel.For(0,10,(i)=> { // Do stuff in parallel. });
의 나머지 병렬 클래스는 같은 다른 큰 일을 제공 Parallel.Invoke(...)
하고 Parallel.ForEach(...)
.
또한 Linq로 작업을 수행하는 경우 ParallelEnumerable.AsParallel () 메서드 를 사용하여 Linq 쿼리를 병렬로 실행하도록 변환 할 수 있습니다.
이 모든 것은 작업 병렬 라이브러리 에 구축되어 있으며, 생성중인 스레드 수에 대해 너무 많이 생각할 필요없이 시스템에있는 리소스에 따라 확장되는 추상화 된 방식으로 작업을 처리 할 수있는 훌륭한 API 세트를 제공합니다.
DirectoryInfo
받는뿐만 아니라 클래스 GetDirectories
및 GetFiles
방법은 이제 게으른 버전이 EnumerateDirectories
와 EnumerateFiles
우리를 방지 한 번에 모든 개체를 보유 할 큰 배열을 가지고.
string.Join()
이제는 IEnumerable<T>
그냥 대신 취하는 서명을 가지고 있습니다 string[]
-당신 .Select()
과 .ToArray()
코드 를 뜯어 낼 수있는 작은 개선입니다 .
멋진 점은 클라이언트 ID를 조작 할 수 있다는 것입니다.
더 이상 CTL0001 $ _DIV0003_TextBox1001 $ 등 ...
web.config 파일이 길고 알려지지 않은 문으로 가득 찬 대신 작고 의미가 있다는 사실이 마음에 듭니다.
선택적 매개 변수는 제가 가장 좋아하는 것 중 하나입니다. dynamic
유형은 유망한 것으로 보인다
C #이 event
필드를 구현하는 방식 은 새로운 것입니다. 더 이상 lock (this)
기본적으로 내부적으로 매우 나쁘지 않습니다 . 그러나 Interlocked.CompareExchange(...)
이제 메커니즘이 대신 사용 되기 때문에 이벤트는 여전히 스레드로부터 안전 합니다.
이로 인해 일부 극단적 인 경우에 깨질 수있는 일부 변경 사항이 발생합니다. 더 많은 정보:
- Chris Burrows의 블로그 : C # 4에서 이벤트가 약간 개선됨, 파트 I : 잠금
- Chris Burrows의 블로그 : C # 4, 파트 II : 시맨틱 변경 및 + = /-=에서 이벤트가 약간 개편되었습니다.
- 채널 9 : Whirlwind 14 : C # 4의 새로운 기능-이벤트
System.Numerics.BigInteger- 임의의 큰 부호있는 정수를 나타냅니다.
System.Numerics.Complex- 복소수를 나타냅니다.
코드 계약은 더 정확한 코드를 만드는 관점뿐만 아니라 더 완전한 문서를 만드는 관점에서도 매우 유망 해 보입니다. 슬프게도 아직 VS2010에 모두 포함되어 있지는 않습니다. 애드온을 설치해야하지만 완료되지도 완료되지도 않았고 아직 진행중인 것으로 보입니다.
메모리 매핑 파일 (기본 Windows 기능이 메모리 매핑 파일에 액세스하는 것과 같은 방식)을 사용하여 매우 큰 파일을 편집하고 프로세스 간 통신을위한 공유 메모리를 만들 수 있습니다. 자세한 설명은 http://msdn.microsoft.com/en-us/library/dd997372.aspx를 참조하십시오.
ASP.NET 프로그래머 에게 ASP.NET 4 및 Visual Studio 2010 웹 개발 개요 백서는 ASP.NET 4의 새로운 기능에 대한 포괄적 인 개요를 제공합니다. 가장 눈에 띄고 흥미로운 변경 사항에 대한 일련의 기사를 보려면 Scott을 추천합니다. VS 2010 및 .NET 4 시리즈에 대한 Gutherie의 블로그 게시물 시리즈 .
ASP.net 캐시는 이제 자체 어셈블리에 있습니다!
System.runtime.caching.dll
즉, 전체 system.web 어셈블리를 가져 오지 않고도 WPF 및 WinForms와 같은 다른 앱에서 사용할 수 있습니다.
캐시 항목이 추가 된시기와 같은 캐시 항목에 대한 내장 정보를 포함하도록 CacheItem을 강화했으면합니다. 만료시기 등
또한 포괄적 인 개선 및 추가 목록을 보려면 원본 문서 (이 경우 MSDN)를 참조합니다.
http://msdn.microsoft.com/en-us/library/ms171868.aspx
이 기사에서 기존 코드 기반을 개선 할 수있는 사항을 쉽게 찾을 수 있습니다.
가독성을 위해 질문에 쓰여진대로 발견 한 내용을 추가하겠습니다.
AJAX를 사용할 때 scriptManager의 EnableCdn 속성을 지정하여 CDN (예 : Microsoft CDN)에서 값을로드 할 수 있습니다.
.Net 3.5의 각 엔드 포인트에 대해 구성 WebGet
/ WebInvoke
다르게 구성 할 수없는 것과 같은 이전의 성가심을 제거하는 WCF의 개선 사항도 있다고 생각 합니다. 4.0에서 완전히 구성 할 수 있다고 생각합니다.
'Program Tip' 카테고리의 다른 글
accepts_nested_attributes_for 하위 연결 유효성 검사 실패 (0) | 2020.10.28 |
---|---|
자바 단위 테스트, 디렉토리 레이아웃 (0) | 2020.10.28 |
과학 컴퓨팅의 F # 성능 (0) | 2020.10.28 |
TabControl의 탭 페이지 활성화 (0) | 2020.10.28 |
디스플레이 없음없이 jQuery 페이드 아웃? (0) | 2020.10.28 |