Откакто научих. .NET, елегантният стил на програмиране, изключително простата мащабируемост, достатъчно мощните инструменти за разработка и много малката крива на учене ме накараха да проявя силен интерес към тази платформа, а също така съм натрупал някои компоненти с отворен код в работата и обучението си. Рамка за разпределено кеширане: Microsoft Velocity: Собствената рамка за разпределена кеш услуга на Microsoft. Memcahed: Разпределена кешираща система, която в момента се използва от много уебсайтове за подобряване на скоростта на достъпа до сайта. Redis: е високопроизводителна KV база данни. Външният му вид до голяма степен компенсира недостатъците на Memcached в някои аспекти. EnyimMemcached: Достъп до най-добрия .NET клиент на Memcached с добър алгоритъм за разпределена еквализация. Отворен код. Препоръка за система .NET: OXITE: Microsoft ASP.NET рамка за представяне на казуси MVC. PetShop: Microsoft ASP.NET зоомагазин. Orchard: Чуждестранна MVC система за блогове с отворен код. SSCLI: Отвореният код на Microsoft в ерата на NET Framework 2.0. DasBlog: Система за блогване, базирана на asp.net, в чужбина. BlogEngine.NET: Безплатна и отворена блог система в чужбина. Dotnetnuke.NET: Много добър набор от отворени портални програми, базирани на ASP.NET. Discuz.NET: Вътрешна система за форуми с отворен код. nopCommerce и Aspxcommerce: Набор от висококачествени B2C уебсайтове системи с отворен код в чужбина. JumboTCMS и DTCMS: Две системи за управление на уебсайтове с отворен код в Китай: Обработка на логване на изключения: Log4Net.dll: Лека безплатна и отворена .NET логова рамка. Приложение Enterprise Library Log Black: Microsoft Enterprise Library Logging. Елма: Реализира най-популярната рамка за записване на изключения ASP.NET приложения. NLog: е проста и гъвкава библиотека за логване с по-висока производителност от Log4Net и ниска трудност при използване и поддръжка. За NoSQL бази данни: Mongodb: Разпределена база данни за съхранение на файлове. Membase: Нов тежък член на семейството. Рамка за автоматизирано планиране на задачи Quartz.NET: Отворено планиране на работни места и автоматизирана рамка за задачи. Topshelf: Още една рамка с отворен код за създаване на Windows услуги IOC контейнерна рамка за инжектиране на зависимости: Unity: Рамка за инжектиране на зависимости в IOC, разработена от екипа за модели и практики на Microsoft, която подкрепя AOP cross-cutting въпроси. MEF (Управлявана рамка за разширяемост): е рамка за разширяване на .NET приложения и за улесняване на разработването на плъгин системи. Spring.NET: Инжектиране на зависимости, аспектно-ориентирано програмиране (AOP), абстракция на достъп до данни и интеграция ASP.NET. Autofac: Най-популярната рамка за инжектиране на зависимости и IOC, лек и високопроизводителен, практически ненатрапчив към проектния код. PostSharp: Реализира статично AOP crosscutting cutting на проблемите, лесен е за използване, мощен и не изисква промени в метода на прихващане на целта. Ninject: IOC рамка за инжектиране на зависимости, базирана на .NET лек и с отворен код Няколко често използвани ORM рамки: EF (ADO.NET Entity Framework): ORM рамка, разработена от Microsoft на базата на ADO.NET. Nhibernate: Лека ORM рамка за .NET среди. SqlMapper.cs: Общ клас за достъп до база данни на C# за малки проекти. AutoMapper: Популярна рамка за картографиране на обекти, която намалява много хардкодиране, компактна и гъвкава и има приемлива производителност. SubSonic: Отлична отворена ORM картографска рамка, която предоставя генератор на код, отговарящ на вашите нужди. FluentData: Open-source, базирана на Fluent API базирана chained query ORM платформа за лека платформа. Dapper: Лек, високопроизводителен, базиран на ORM, генерирана от EMIT. EmitMapper: Високопроизводителна ORM рамка, която динамично генерира IL код чрез EMIT по време на изпълнение, вместо да използва механизъм за отражение. Преобразуване на формати и типове данни Newtonsoft.Json: Най-популярната библиотека за сериализация на JSON, която в момента е в разработка на .NET, осигуряваща основата за новата версия на WebApi библиотеката. System.JSON.dll: Собственият JSON сериализационен компонент на Microsoft (трябва да се изтегли отделно) DataContractJsonSerializer и DataContractXmlSerializer: Сериализатори, използвани от Microsoft в WCF. Javascrip{filter}tSerializer: Стандартният JSON форматор на Microsoft за WEB разработчици. iTextSharp, PDFsharp и PDF.NET: През. .NET за обработка и генериране на PDF документи. SharpZipLib.dll: Безплатни и с отворен код компоненти за декомпресия на ZIP и GZIP файлове. Math.NET: Силни математически операции, калкулус, решаване на уравнения и научни операции. DocX: Няма нужда от инсталиране на Word софтуер, работете с Word файлове през C#. SharpSerializer: Open-source XML и, бинарна, JSON, компресия и оптимизационна рамка. Рефлексивен и динамичен език Clay dynamic: Отворената динамична рамка позволява да създавате обекти под формата на javascrip{filtering}t. ExposedObject: Достъп до частни членове извън класа по динамичен езиков начин. PrivateObject: Клас в рамката за модулно тестване на Microsoft, който е удобен за външно извикване на частни членове на класа. Кросплатформени и runtime решения MONO.NET: Кросплатформен. .NET среда за изпълнение, което прави възможна .NET кросплатформена операция. DotGnu Portable.NET: Кросплатформено работно време, подобно на MONO.NET. Фалангер: Компилирането на PHP в .NET позволява съвместимост между PHP и .NET. VMDotNet: .NET runtime, използван от China Mobile Feixin. Unity3D: Силната подкрепа на Microsoft за C# и кросплатформената рамка за разработка на игри на Javascrip. Cassini, IIS Express и Cassinidev: Open-source ASP.NET изпълнителни среди. Katana: Не-IIS бордовият ASP.NET и MVC на Microsoft, базиран на спецификацията OWIN. IKVM.NET: Въз основа на. .NET е JAVA виртуална машина, която позволява JAVA да работи върху .NET. УЕБ разработка и дизайн Jumony Core: HTML енджин, разработен на базата на .NET. Microsoft.mshtml.dll, Winista.HtmlParser.dll и HtmlAgilityPack.dll: Рамки, които анализират и обработват HTML документи. Javascrip{filtering}t.NET и Clearscrip{filtering}t (произведени от Microsoft): Базирани на . .NET разработи Javascrip{filter}t енджин. NCrawler: Отворен уеб crawler за своя HTML процесорен двигател htmlagilitypack. AntiXSS: Официалната библиотека с отворен код на Microsoft за предотвратяване на атаки за проникване на XSS скриптове между различни сайтове, която кодира съдържание чрез механизъм за бял списък. YUICompressor.NET, Microsoft Ajax Minifier и Google Closure Compiler: JavaScrip и CSS Compressor. NancyFx: е хубав, лек open source .NET WEB фреймуърк. Ако искате бързо да направите просто WEB приложение. AspNetPager: Добре познат ASP.NET контрол на пейджинг в Китай, поддържащ множество методи за пейджинг. NOPI.dll: Плъгин за експортиране на Excel отчети (базиран на Microsoft OpenXml имплементация) (nopi.css.dl стилизиран чрез css) Enterprise Library: Компонентът на Microsoft за най-добра практика за разработка на приложения в корпоративно ниво. PowerCollections: Висококачествена колекция с отворен код, написана от чуждестранен талант. Мобилен интернет и облачни изчисления PushSharp: Изпращайте съобщения към различни мобилни платформи чрез .NET. Моно за Android: Използвай. .NET езикова разработка за Android приложение: MonoTouch: Разработване на IOS приложения на .NET език. PhoneGap и AppCan: Кросплатформени мобилни платформи за разработка на база HTML5. Cordova: Проект с отворен код след като PhoneGap допринесе за Apache, това е основният двигател, който движи PhoneGap. Мрежова комуникация и мрежови протоколи SuperSocket: Лека и мащабируема рамка за разработка на сокети, базирана на .NET. SuperWebSocket: Реализира рамката TML5 WebSocket чрез .NET. XProxy: Основният агент асемблер, който поддържа плъгини, с вградени NAT, криптиране и декриптиране, обратни, директни и индиректни проксита. Графични и рамки за обработка на изображения Paint.NET: Въз основа на. .NET е компактен, гъвкав и мощен проект с отворен код за графична обработка. Imagemagick.NET: Капсулиране на компонента за обработка на изображения с отворен код Imagemagick в C#. Skimpt: Софтуер за скрийншотове с отворен код, базиран на .NET. ImageGlue.NET: Комерсиалните компоненти за обработка на изображения имат голям списък с поддържани формати. Рамка за оптимизация на спрайтове и изображения: Microsoft CSS Wizard, мулти-образ, комбиниращ голям образ и CSS стил. Рамка за настолни приложения DevExpress: Световноизвестна библиотека с UI контроли за десктоп приложения. Prism: MVVM фреймуъркът, разработен от Microsoft за WPF и Silverlight, който разделя сложните бизнес функции и UI свързването чрез идеята за функционална модулност. WPFToolkit и Fluent Ribbon Control Suite: Разработване на менюта с ленти в стил офис. Тестове и оценка на производителността Faker.Net: Рамка за генериране на големи партиди тестови данни. Nunit: Лека рамка за тестване на единици. Moq: Много популярна Mock рамка, която поддържа LINQ, гъвкава и високопроизводителна. xUnit: По-добра рамка за unit testing от NUnit, подобрена версия на Nunit framework. MiniProfiler и Glimpse: Две MVC-базирани рамки за мониторинг на събития в производителността. Поддръжка на транзакционни и разпределени транзакции KtmIntegration: Транзакционен клас с отворен код, който поддържа файловата система NTFS. NET транзакционен файлов мениджър: Добавена транзакционна поддръжка за операции във файловата система (копиране, преместване и изтриване). Сегментиране на думи, търсене в пълен текст и търсачка Lucene.net: Популярна високопроизводителна пълнотекстова индексна библиотека, която може да се използва за предоставяне на мощни функции за търсене на всякаква информация. Lucene.Net.Analysis.PanGu: Поддържа най-новата версия на пангуската китайска разширена библиотека за сегментация Lucene.Net. Организация на компонентите за валидиране на данни FluentВалидация за . NET: Компонент за проверка на флуентния интерфейс, базиран на верига от методи от изрази LINQ. Microsoft.Practices.EnterpriseLibrary.Validation.dll: Блокът за валидация на Microsoft Enterprise Library. CuttingEdge.Conditions: Договорен програмен компонент, базиран на интерфейсния метод Fluent. DotNetOpenAuth: Позволява на уебсайтове да поддържат удостоверяване с OpenID, OAuth, InfoCard и други. Контрол на статистиката на диаграми с отворен код: Visifire: Много добър комплект WPF карти за контроли, които поддържат 3D рисуване, криви, полилинии, сектори, пръстени и трапецови. SparrowToolkit: Набор от WPF контроли за графики, които поддържат рисуване на динамични криви, включително осцилоскопи, използване на процесора и вълнови форми. DynamicDataDisplay: Динамични графики WPF с отворен код, линейни графики, балонни диаграми и топлинни карти.
Категориите на опашката за съобщения могат да бъдат разширени, като Kafka, която е разпределена система за съобщения, базирана на публикуване/абонамент. Основните цели на дизайна са следните: Запазването на съобщенията се осигурява под формата на времева сложност O(1), а производителността на достъпа с постоянна времева сложност може да бъде гарантирана дори за данни над терабайтите. Висока пропускателна способност. Дори на много евтини търговски машини може да поддържа предаване на над 100K съобщения в секунда на една машина. Той поддържа разделяне на съобщения и разпределено потребление между Kafka сървъри и гарантира последователно предаване на съобщения във всеки дял. Поддържа както офлайн обработка на данни, така и обработка на данни в реално време. Мащабиране: Подкрепа за онлайн хоризонтално разширяване. RabbitMQ RabbitMQ е опашка за съобщения с отворен код, написана на ерланг, която поддържа много протоколи: AMQP, XMPP, SMTP, STOMP, поради което е много тежка и по-подходяща за корпоративна разработка. В същото време е реализирана архитектурата на брокера, което означава, че съобщенията се поставят на опашка първо в централната опашка, когато бъдат изпратени към клиента. Има добра поддръжка за маршрутизиране, балансиране на натоварването или запазване на данните. Редис Redis е NoSQL база данни, базирана на двойки ключ-стойност, която се разработва и поддържа активно. Въпреки че е система за съхранение на бази данни с ключови стойности, тя самата поддържа MQ функционалност, така че може да се използва като лека опашка услуга. За операциите по въвеждане и излизане на опашка на RabbitMQ и Redis, по 1 милион пъти всяка, а времето за изпълнение се записва на всеки 100 000 пъти. Тестовите данни са разделени на четири различни размера: 128Bytes, 512Bytes, 1K и 10K. Експериментална таблица: Когато се присъедините към екипа, производителността на Redis е по-висока от тази на RabbitMQ, когато сравнението на данните е малко, а ако размерът на данните надвишава 10K, Redis е непоносимо бавен. Когато излизахме от екипа, Redis показа много добри резултати, независимо от размера на данните, докато представянето на RabbitMQ беше значително по-ниско от това на Redis. ZeroMQ ZeroMQ твърди, че е най-бързата система за опашка за съобщения, особено при сценарии с високо пропускателно търсене. ZeroMQ може да реализира напреднали/сложни опашки, в които RabbitMQ не е добър, но разработчиците трябва сами да комбинират множество технически рамки, а техническата сложност е предизвикателство за успешното приложение на този MQ. ZeroMQ има уникален режим без междинен софтуер, при който не е нужно да инсталираш и стартираш сървър за съобщения или междинен софтуер, защото приложението ти ще изпълнява тази сървърна роля. Всичко, което трябва да направите, е просто да се позовете на библиотеката ZeroMQ, която може да се инсталира чрез NuGet, и можете спокойно да изпращате съобщения между приложенията. Въпреки това, ZeroMQ предоставя само непостоянни опашки, което означава, че ако не работи, данните ще бъдат загубени. Сред тях е версията на Twitter за Storm преди 0.9.0 използва ZeroMQ като предаване на потоци от данни по подразбиране (Storm поддържа както ZeroMQ, така и Netty като модул за предаване от версия 0.9). ActiveMQ ActiveMQ е подпроект под Apache. Подобно на ZeroMQ, той позволява опашки с агент и peer-to-peer технология. В същото време, подобно на RabbitMQ, може ефективно да реализира напреднали сценарии на приложения с малко количество код. Кафка/Яфка Kafka е подпроект на Apache, високопроизводителна разпределена система за публикуване/абониране на опашка за съобщения между езици, а Jafka се инкубира върху Kafka, която е подобрена версия. Той има следните характеристики: бърза персистентност, която може да запазва съобщения под системния overhead на O(1); Висока пропускателна способност, която може да достигне пропускателна способност от 10W/s на обикновен сървър; Напълно разпределена система, брокер, производител и потребител всички нативно поддържат разпределено и автоматично реализират балансиране на натоварването; Поддържа паралелно зареждане на Hadoop данни, което е жизнеспособно решение за лог данни и офлайн системи за анализ като Hadoop, но с ограниченията на обработката в реално време. Kafka обединява онлайн и офлайн обработката на съобщения чрез паралелния механизъм за зареждане на Hadoop. Apache Kafka е много лека система за съобщения спрямо ActiveMQ и освен много добрата си производителност, тя е и разпределена система, която работи добре. |