> 백엔드 개발 > C#.Net 튜토리얼 > .NET 플랫폼을 기반으로 일반적으로 사용되는 프레임워크를 자세히 소개합니다.

.NET 플랫폼을 기반으로 일반적으로 사용되는 프레임워크를 자세히 소개합니다.

黄舟
풀어 주다: 2017-03-09 15:37:37
원래의
1535명이 탐색했습니다.

.NET을 배운 이후로 우아한 프로그래밍 스타일, 극도로 단순한 확장성, 충분히 강력한 개발 도구, 최소한의 학습 곡선으로 인해 이 플랫폼에 큰 관심을 갖게 되었고, 작업과 연구를 통해 오픈 소스 지식도 축적하게 되었습니다. 일단은 여기서 정리하고, 나중에 생각나면 계속해서 이 로그에 추가해서 나만의 컴포넌트 경험 라이브러리를 만들어 보겠습니다.

분산 캐싱 프레임워크:

Microsoft Velocity: Microsoft의 자체 분산 캐시 서비스 프레임워크입니다.

Memcahed: 현재 많은 웹사이트에서 웹사이트 접속 속도를 향상시키기 위해 사용하고 있는 분산 캐싱 시스템입니다.

Redis: 고성능 KV 데이터베이스입니다. Memcached의 등장은 일부 측면에서 Memcached의 단점을 크게 보완합니다.

EnyimMemcached: 뛰어난 분산 균형 알고리즘을 통합한 Memcached의 최고의 .NET 클라이언트에 액세스하세요.

권장 오픈 소스 .NET 시스템:

OXITE: Microsoft ASP.NET MVC 사례 데모 프레임워크.

PetShop: Microsoft ASP.NET 애완동물 매장.

Orchard: 해외 MVC 오픈소스 블로그 시스템.

SSCLI: NET Framework 2.0 시대의 Microsoft 오픈 소스 코드입니다.

DasBlog: ASP.NET 기반의 외국 블로그 시스템입니다.

BlogEngine.NET: 외국의 무료 오픈 소스 블로그 시스템입니다.

Dotnetnuke.NET: ASP.NET 기반의 매우 뛰어난 오픈 소스 포털 프로그램입니다.

Discuz.NET: 국내 오픈소스 포럼 커뮤니티 시스템.

nopCommerce 및 AspxCommerce: 고품질 해외 오픈소스 B2C 웹사이트 시스템입니다.

JumboTCMS와 DTCMS: 국내 오픈소스 웹사이트 관리 시스템 2종:

로깅 예외 처리:

Log4Net.dll: 경량의 무료 오픈 소스 .NET 로깅 프레임워크입니다.

엔터프라이즈 라이브러리 로그 애플리케이션 블랙: Microsoft 엔터프라이즈 라이브러리 로그 기록.

Elmah: 가장 널리 사용되는 ASP.NET 애플리케이션 예외 로깅 프레임워크를 구현합니다.

NLog: Log4Net보다 성능이 뛰어나고 사용 및 유지 관리가 더 쉬운 간단하고 유연한 로깅 라이브러리입니다.

NoSQL 데이터베이스 정보:

Mongodb: 분산 파일 저장 데이터베이스.

멤베이스: 새로운 헤비급 가족 구성원입니다.

자동 작업 예약 프레임워크

Quartz.NET: 오픈 소스 작업 예약 및 자동 작업 프레임워크입니다.

Topshelf: Windows 서비스 생성을 위한 또 다른 오픈 소스 프레임워크

종속성 주입 IOC 컨테이너 프레임워크:

Unity: Microsoft의 Patterns&Practicest 팀이 개발한 IOC 종속성 주입 프레임워크로 AOP 교차 문제를 지원합니다.

MEF(Managed Extensibility Framework): .NET 애플리케이션을 확장하는 데 사용되는 프레임워크이며 플러그인 시스템을 개발할 수 있습니다.

Spring.NET: 종속성 주입, AOP(관점 지향 프로그래밍), 데이터 액세스 추상화 및 ASP.NET 통합.

Autofac: 가장 널리 사용되는 종속성 주입 및 IOC 프레임워크로 가볍고 고성능이며 프로젝트 코드에 대한 침입이 거의 없습니다.

PostSharp: 정적 AOP 크로스커팅 문제를 구현하고 사용이 간편하고 강력하며 대상 차단 방법을 변경할 필요가 없습니다.

Ninject: .NET 경량 오픈 소스 기반 종속성 주입 IOC 프레임워크

일반적으로 사용되는 여러 ORM 프레임워크:

EF (ADO.NET Entity Framework): ADO.NET을 기반으로 Microsoft에서 개발한 ORM 프레임워크입니다.

Nhibernate: .NET 환경을 위한 경량 ORM 프레임워크입니다.

SqlMapper.cs: 소규모 프로젝트를 위한 일반적인 C# 데이터베이스 액세스 클래스입니다.

AutoMapper: 많은 하드 코딩을 줄일 수 있고, 컴팩트하고 유연하며, 허용 가능한 성능을 제공하는 인기 있는 개체 매핑 프레임워크입니다.

SubSonic: 뛰어난 오픈 소스 ORM 매핑 프레임워크이며 사용자의 요구 사항을 충족하는 코드 생성기도 제공합니다.

FluentData: Fluent API를 기반으로 하는 오픈 소스 체인 쿼리 ORM 경량 프레임워크입니다.

Dapper: EMIT를 기반으로 생성된 경량의 고성능 ORM 프레임워크입니다.

EmitMapper: 리플렉션 메커니즘을 사용하는 대신 런타임 중에 EMIT를 통해 IL 코드를 동적으로 생성하는 고성능 ORM 프레임워크입니다.

형식 및 데이터 유형 변환

Newtonsoft.Json: 현재 .NET 개발에서 가장 인기 있는 JSON 직렬화 라이브러리로, WebApi 라이브러리의 새 버전에 대한 기반을 제공합니다.

System.JSON.dll: Microsoft에서 개발한 JSON 직렬화 구성 요소(별도 다운로드 필요)

DataContractJsonSerializer 및 DataContractXmlSerializer: Microsoft가 WCF에서 사용하는 직렬 변환기입니다.

JavaScriptSerializer: 웹 개발자를 위한 Microsoft의 기본 JSON 포맷터입니다.

iTextSharp, PDFsharp 및 PDF.NET: .NET을 통해 PDF 문서를 처리하고 생성하는 구성 요소입니다.

SharpZipLib.dll: 무료 오픈 소스 ZIP 및 GZIP 파일 압축 해제 구성 요소입니다.

Math.NET: 강력한 수학 연산, 미적분, 방정식 풀이 및 과학 연산.

DocX: 워드 소프트웨어를 설치할 필요가 없으며 C#을 통해 워드 파일을 작동할 수 있습니다.

SharpSerializer: 오픈 소스 XML, 바이너리, JSON, 압축 및 최적화 프레임워크.

리플렉션 및 동적 언어 ​​

Clay Dynamic: 오픈 소스 동적 언어 동적 프레임워크를 사용하면 JavaScript와 유사한 방식으로 객체를 생성할 수 있습니다.

ExposedObject: 동적 언어를 통해 클래스 외부의 비공개 멤버에 액세스합니다.

PrivateObject: 클래스의 비공개 멤버에 대한 외부 호출을 용이하게 하는 Microsoft 단위 테스트 프레임워크의 클래스입니다.

크로스 플랫폼 및 런타임 솔루션

MONO.NET: 크로스 플랫폼 .NET 운영 환경으로, .NET 크로스 플랫폼을 실행할 수 있습니다.

DotGnu Portable.NET: MONO.NET과 유사한 크로스 플랫폼 런타임입니다.

Phalanger: PHP를 .NET으로 컴파일하여 PHP와 .NET 간의 상호 운용성을 달성합니다.

VMDotNet: China Mobile Fetion에서 사용하는 .NET 런타임입니다.

Unity3D: Microsoft에서 강력하게 지원하는 C# 및 JavaScript용 크로스 플랫폼 게임 개발 프레임워크입니다.

Cassini, IIS Express 및 Cassinidev: 오픈 소스 ASP.NET 실행 환경.

Katana: Microsoft의 비IIS 호스팅 ASP.NET 및 MVC는 OWIN 사양을 기반으로 합니다.

IKVM.NET: .NET 기반 JAVA 가상 머신으로 .NET에서 JAVA를 실행할 수 있습니다.

WEB 개발 및 디자인

Jumony Core: .NET을 기반으로 개발된 HTML 엔진입니다.

Microsoft.mshtml.dll, Winista.HtmlParser.dll 및 HtmlAgilityPack.dll: HTML 문서를 구문 분석하고 처리하기 위한 프레임워크입니다.

JavaScript.NET 및 ClearScript(Microsoft에서 제작): .NET을 기반으로 개발된 JavaScript 엔진입니다.

NCrawler: HTML 처리 엔진인 htmlagilitypack을 갖춘 오픈 소스 웹 크롤러 소프트웨어입니다.

AntiXSS: 사이트 간 XSS 스크립트 침입 공격을 방지하기 위한 Microsoft의 공식 오픈 소스 라이브러리입니다. 화이트리스트 메커니즘을 통해 콘텐츠를 인코딩합니다.

YUICompressor.NET, Microsoft Ajax Minifier 및 Google Closure Compiler: JavaScript 및 CSS 압축기.

NancyFx: 우수한 경량 오픈 소스 .NET WEB 프레임워크입니다. 간단한 WEB 애플리케이션을 빠르게 만들고 싶다면.

AspNetPager: 다양한 페이징 방법을 지원하는 잘 알려진 국내 ASP.NET 페이징 컨트롤입니다.

NOPI.dll: Excel 보고서 내보내기용 플러그인(Microsoft OpenXml 기반으로 구현됨)(nopi.css.dl은 CSS를 통해 스타일을 설정함)

엔터프라이즈 라이브러리: 엔터프라이즈 애플리케이션 개발을 위한 Microsoft의 모범 사례 구성 요소입니다.

PowerCollections: 해외의 인재가 집필한 고급 오픈소스 컬렉션입니다.

모바일 인터넷과 클라우드 컴퓨팅

PushSharp: .NET을 통해 다양한 모바일 플랫폼에 메시지를 푸시합니다.

Android용 모노: .NET 언어를 사용하여 Android 애플리케이션 개발:

MonoTouch: .NET 언어를 사용하여 IOS 애플리케이션을 개발합니다.

PhoneGap 및 AppCan: HTML5 기반 크로스 플랫폼 모바일 개발 플랫폼입니다.

Cordova: PhoneGap이 Apache에 기여한 오픈 소스 프로젝트입니다. PhoneGap을 구동하는 핵심 엔진입니다.

네트워크 통신 및 네트워크 프로토콜

SuperSocket: .NET 기반의 가볍고 확장 가능한 소켓 개발 프레임워크입니다.

SuperWebSocket: .NET을 통해 TML5 WebSocket 프레임워크를 구현합니다.

XProxy: NAT, 암호화 및 암호 해독, 역방향, 직접 및 간접 프록시가 내장된 플러그인을 지원하는 기본 프록시 어셈블리입니다.

그래픽 및 이미지 처리 프레임워크

Paint.NET: .NET 기반의 작고 유연하며 강력한 그래픽 처리 오픈 소스 프로젝트입니다.

Imagemagick.NET: C#을 사용하여 오픈 소스 이미지 처리 구성 요소 Imagemagick을 캡슐화합니다.

Skimpt: .NET 오픈 소스 기반 화면 캡처 소프트웨어입니다.

ImageGlue.NET: 상용 이미지 처리 구성 요소로 다양한 형식을 지원합니다.

스프라이트 및 이미지 최적화 프레임워크: Microsoft CSS 스프라이트는 여러 이미지를 하나의 큰 이미지와 CSS 스타일로 결합합니다.

데스크탑 애플리케이션 프레임워크

DevExpress: 세계적으로 유명한 데스크탑 애플리케이션용 UI 컨트롤 라이브러리입니다.

Prism: Microsoft가 WPF 및 Silverlight용으로 개발한 MVVM 프레임워크는 기능적 모듈화 아이디어를 사용하여 복잡한 비즈니스 기능과 UI 결합을 분리합니다.

WPFToolkit 및 Fluent Ribbon Control Suite: Office 스타일 리본 메뉴를 개발합니다.

테스트 및 성능 평가

Faker.Net: 대규모 테스트 데이터 배치 생성을 용이하게 하는 프레임워크입니다.

Nunit: 경량 단위 테스트 프레임워크입니다.

Moq: 매우 인기 있는 Mock 프레임워크로, LINQ를 지원하고 유연하며 성능이 뛰어납니다.

xUnit: Nunit 프레임워크의 업그레이드 및 향상된 버전인 NUnit보다 더 나은 단위 테스트 프레임워크입니다.

MiniProfiler 및 Glimpse: MVC 기반의 두 가지 성능 이벤트 모니터링 프레임워크입니다.

거래 및 분산거래 지원

KtmIntegration: NTFS 파일 시스템을 지원하는 트랜잭션 오픈 소스 클래스입니다.

NET 트랜잭션 파일 관리자: 파일 시스템 작업(복사, 이동 및 삭제)에 대한 트랜잭션 지원을 추가합니다.

단어 분할, 전체 텍스트 검색 및 검색 엔진

Lucene.net: 모든 유형의 정보에 대한 강력한 검색 기능을 제공하는 데 사용할 수 있는 인기 있는 고성능 전체 텍스트 색인 라이브러리입니다.

Lucene.Net.Analytic.PanGu: Lucene.Net의 Pangu 중국어 단어 분할 확장 라이브러리 최신 버전을 지원합니다.

데이터 검증 구성요소 구성

.NET용 FluentValidation: LINQ 표현 메서드 체인을 기반으로 하는 Fluent 인터페이스 확인 구성 요소입니다.

Microsoft.Practices.EnterpriseLibrary.Validation.dll: Microsoft Enterprise Library 유효성 검사 블록.

CuttingEdge.Conditions: Fluent 인터페이스 방법을 기반으로 하는 계약 프로그래밍 구성 요소입니다.

DotNetOpenAuth: OpenID, OAuth, InfoCard 등과 같은 신원 인증을 지원하는 기능을 웹사이트에 제공합니다.

오픈소스 차트 통계 제어:

Visifire: 3D 드로잉, 곡선, 폴리라인, 섹터, 링 및 사다리꼴을 지원하는 매우 효과적인 WPF 차트 컨트롤 세트입니다.

SparrowToolkit: 동적 곡선 그리기를 지원하고 오실로스코프, CPU 사용량 및 파형을 그릴 수 있는 WPF 차트 컨트롤 세트입니다.

DynamicDataDisplay: Microsoft의 오픈 소스 WPF 동적 곡선 차트, 꺾은선형 차트, 거품형 차트 및 열 지도입니다.

Message Queue 범주는 다음과 같이 확장될 수 있습니다. Kafka는 분산형 게시/구독 기반 메시징 시스템입니다. 주요 디자인 목표는 다음과 같습니다.

이는 O(1)의 시간 복잡도로 메시지 지속성 기능을 제공하여 TB 수준 이상의 데이터에 대해서도 지속적인 시간 복잡도 액세스 성능을 보장합니다.

높은 처리량. 매우 저렴한 상업용 시스템에서도 단일 시스템은 초당 100,000개 이상의 메시지 전송을 지원할 수 있습니다.

Kafka 서버 간의 메시지 분할 및 분산 소비를 지원하는 동시에 각 파티션 내에서 메시지의 순차적 전송을 보장합니다.

오프라인 데이터 처리와 실시간 데이터 처리를 모두 지원합니다.

수평 확장: 온라인 수평 확장을 지원합니다.

RabbitMQ

RabbitMQ는 Erlang으로 작성된 오픈 소스 메시지 대기열입니다. AMQP, XMPP, SMTP, STOMP 등의 다양한 프로토콜을 지원하므로 매우 무겁고 엔터프라이즈 수준 개발에 더 적합합니다. 동시에 브로커 아키텍처가 구현됩니다. 즉, 메시지가 클라이언트로 전송되기 전에 중앙 대기열에 대기하게 됩니다. 라우팅, 로드 밸런싱 또는 데이터 지속성을 잘 지원합니다.

레디스

Redis는 Key-Value 쌍을 기반으로 하는 NoSQL 데이터베이스이며 적극적으로 개발 및 유지 관리됩니다. Key-Value 데이터베이스 저장 시스템이지만 MQ 기능 자체를 지원하므로 경량 큐 서비스로 사용할 수 있습니다. RabbitMQ와 Redis의 enqueue 및 dequeue 작업은 각각 100만 번 실행되며, 100,000번마다 실행 시간이 기록됩니다. 테스트 데이터는 128Bytes, 512Bytes, 1K, 10K의 네 가지 크기로 나누어집니다. 실험에 따르면 큐에 들어갈 때 데이터가 상대적으로 작을 때 Redis의 성능은 RabbitMQ보다 높지만 데이터 크기가 10K를 초과하면 큐를 나갈 때 Redis는 견딜 수 없을 정도로 느려집니다. RabbitMQ의 큐 제거 성능은 Redis보다 훨씬 낮습니다.

ZeroMQ

ZeroMQ는 특히 높은 처리량 수요 시나리오에서 가장 빠른 메시지 대기열 시스템으로 알려져 있습니다. ZeroMQ는 RabbitMQ가 잘 하지 못하는 고급/복잡한 대기열을 구현할 수 있지만 개발자는 여러 기술 프레임워크를 자체적으로 결합해야 합니다. 기술적 복잡성은 MQ의 성공적인 적용에 대한 과제입니다. ZeroMQ에는 미들웨어가 아닌 고유한 모델이 있으므로 애플리케이션이 이 서버의 역할을 하기 때문에 메시지 서버나 미들웨어를 설치하고 실행할 필요가 없습니다. NuGet을 사용하여 설치할 수 있는 ZeroMQ 라이브러리를 참조하기만 하면 애플리케이션 간에 메시지를 보낼 수 있습니다. 그러나 ZeroMQ는 비지속적 대기열만 제공하므로 대기열이 중단되면 데이터가 손실됩니다. 그 중 트위터의 Storm 0.9.0 이전 버전에서는 기본적으로 데이터 스트림 전송으로 ZeroMQ를 사용했다(Storm은 버전 0.9부터 전송 모듈로 ZeroMQ와 Netty를 모두 지원한다).

ActiveMQ

ActiveMQ는 Apache의 하위 프로젝트입니다. ZeroMQ와 유사하게 브로커 및 P2P 기술을 사용하여 대기열을 구현할 수 있습니다. 동시에 RabbitMQ와 유사하게 적은 양의 코드로 고급 애플리케이션 시나리오를 효율적으로 구현할 수 있습니다.

카프카/자프카

Kafka는 Apache의 하위 프로젝트로, Kafka의 업그레이드 버전인 Kafka를 기반으로 하는 고성능 교차 언어 분산 게시/구독 메시지 대기열 시스템입니다. O(1) 시스템 오버헤드로 메시지 지속성을 수행할 수 있는 빠른 지속성, 완전히 분산된 시스템인 Broker, Producer 및 일반 서버에서 10W/s의 처리 속도에 도달할 수 있는 높은 처리량 소비자는 모두 기본적으로 자동으로 분산을 지원하고 Hadoop 데이터의 병렬 로딩을 지원합니다. 이는 실시간 처리 제한이 필요한 Hadoop과 같은 오프라인 분석 시스템에 적합한 솔루션입니다. Kafka는 Hadoop의 병렬 로딩 메커니즘을 통해 온라인 및 오프라인 메시지 처리를 통합합니다. Apache Kafka는 ActiveMQ에 비해 매우 가벼운 메시징 시스템이며 성능도 매우 뛰어나고 잘 작동하는 분산 시스템입니다.

위 내용은 .NET 플랫폼을 기반으로 일반적으로 사용되는 프레임워크를 자세히 소개합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿