TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Open Source .NET libraries that make your life easier

305 pointsby thomasvmabout 10 years ago

38 comments

Cakez0rabout 10 years ago
To add to the author&#x27;s list:<p>* I seem to install Json.net in every .NET project I create (json serializer - thanks James Newton-King!)<p>* NLog for logging. It&#x27;s fantastic.<p>* Dapper is also excellent (Micro ORM) (and anything written by Marc Gravell is generally top-notch - see protobuf-net, miniprofiler, StackExchange.Redis)<p>* Automapper, to avoid writing boilerplate code to convert between similarly shaped types (E.G. DTOs to DB models).<p>* RestSharp makes talking to RESTful apis easier.<p>* Microsoft&#x27;s Unity is a great IOC framework, although most people seem to use NInject.
评论 #9354226 未加载
评论 #9355041 未加载
评论 #9356538 未加载
评论 #9355074 未加载
评论 #9355209 未加载
评论 #9357752 未加载
评论 #9354851 未加载
评论 #9354748 未加载
评论 #9354387 未加载
评论 #9354359 未加载
xyz-xabout 10 years ago
Some that I build (and use):<p>* albacore for cross platform builds with ruby <a href="https:&#x2F;&#x2F;github.com&#x2F;Albacore&#x2F;albacore&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Albacore&#x2F;albacore&#x2F;</a> C++.Net, VB, C#, F#<p>* suave.io <a href="http:&#x2F;&#x2F;suave.io" rel="nofollow">http:&#x2F;&#x2F;suave.io</a> F#<p>* logary for structured logging and metrics and health-checks <a href="http:&#x2F;&#x2F;logary.github.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;logary.github.io&#x2F;</a> C# and F#<p>* Chiron for F# JSON parsing<p>* logibit.hawk for F# API Hawk verification <a href="https:&#x2F;&#x2F;github.com&#x2F;logibit&#x2F;logibit.hawk&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;logibit&#x2F;logibit.hawk&#x2F;</a><p>* Http.fs instead of RestSharp for F#<p>* FsSql for ADO.Net interaction
amageedabout 10 years ago
Some additional ones I haven&#x27;t seen mentioned so far:<p>* FluentValidation: excellent validation library, keeps validation rules grouped together and easy to keep track of - <a href="https:&#x2F;&#x2F;github.com&#x2F;JeremySkinner&#x2F;FluentValidation" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;JeremySkinner&#x2F;FluentValidation</a><p>* AutoFixture: great for the &quot;Arrange&quot; phase of unit tests. Populates object graphs with test data, highly customizable. There&#x27;s a bit of a learning curve. Pairs nicely with xUnit but can be used with any TDD library - <a href="https:&#x2F;&#x2F;github.com&#x2F;AutoFixture&#x2F;AutoFixture" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;AutoFixture&#x2F;AutoFixture</a><p>* Shouldly: a different approach to unit test assertions using &quot;Should&quot; that I find more readable. Also had friendlier error messages when assertions failed - <a href="https:&#x2F;&#x2F;github.com&#x2F;shouldly&#x2F;shouldly" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;shouldly&#x2F;shouldly</a><p>Shameless plug of my own library:<p>* Regextra: aims to solve some common regex related scenarios. Features a Passphrase Regex Builder to generate a pattern for passphrase criteria, and also supports named templates and a few utility methods - <a href="https:&#x2F;&#x2F;github.com&#x2F;amageed&#x2F;Regextra" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;amageed&#x2F;Regextra</a>
评论 #9356718 未加载
chtonabout 10 years ago
In addition to the great ones already listed on the link and in the comments here, I&#x27;d like to list 2 of my favorites:<p>* Simple.Data: <a href="https:&#x2F;&#x2F;github.com&#x2F;markrendle&#x2F;Simple.Data" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;markrendle&#x2F;Simple.Data</a> , the smallest and simplest ORM you&#x27;ll ever use.<p>* Hyperletter: <a href="https:&#x2F;&#x2F;github.com&#x2F;Jiddler&#x2F;Hyperletter" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Jiddler&#x2F;Hyperletter</a> , a very easy way to do inter-process communication. Great for writing distributed software over http, but can be just as useful locally.
manigandhamabout 10 years ago
Check out Akka.Net - <a href="http:&#x2F;&#x2F;getakka.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;getakka.net&#x2F;</a><p>This is a port of the Akka framework from Java to the .Net platform. It&#x27;s an actor model framework which works incredibly well for building highly concurrent and distributed applications. They just hit version 1.0 and are out of beta and are backed by a commercial company Petabridge.<p>Highly recommended.
zihotkiabout 10 years ago
I used to use NLog for logging until I&#x27;ve discovered Serilog ( <a href="http:&#x2F;&#x2F;serilog.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;serilog.net&#x2F;</a> ) - simple .NET logging with fully-structured events.
评论 #9354995 未加载
评论 #9355247 未加载
Schandlichabout 10 years ago
Humanizer Fantastic string, number, and datetime manipulation library <a href="http:&#x2F;&#x2F;www.nuget.org&#x2F;packages&#x2F;Humanizer&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.nuget.org&#x2F;packages&#x2F;Humanizer&#x2F;</a><p>Units.Net I love this for measurement and weight conversions <a href="http:&#x2F;&#x2F;www.nuget.org&#x2F;packages&#x2F;UnitsNet&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.nuget.org&#x2F;packages&#x2F;UnitsNet&#x2F;</a><p>And, of course, a shameless plug of my own library Fibber An indiscriminate data generator that will generate random data for all properties in a given class based on the property&#x27;s type vs. its name <a href="https:&#x2F;&#x2F;github.com&#x2F;Schandlich&#x2F;Fibber" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Schandlich&#x2F;Fibber</a> <a href="http:&#x2F;&#x2F;www.nuget.org&#x2F;packages&#x2F;Fibber&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.nuget.org&#x2F;packages&#x2F;Fibber&#x2F;</a>
评论 #9356367 未加载
willuabout 10 years ago
Surprised no one has mentioned Nancy: <a href="https:&#x2F;&#x2F;github.com&#x2F;NancyFx&#x2F;Nancy" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;NancyFx&#x2F;Nancy</a> I can&#x27;t imagine building APIs without it now.
评论 #9354768 未加载
sarciszewskiabout 10 years ago
Here&#x27;s another one that will make your life easier: <a href="https:&#x2F;&#x2F;github.com&#x2F;adamcaudill&#x2F;libsodium-net" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;adamcaudill&#x2F;libsodium-net</a><p>Now you have no excuses for rolling your own broken crypto.
tallesabout 10 years ago
This (article + HN comments) will be extremely handy for me in the future (I&#x27;m a .NET dev).<p>Knowing that&#x27;ll need some of those libraries later I decided to compile into a list here: <a href="https:&#x2F;&#x2F;github.com&#x2F;tallesl&#x2F;.NET-libraries" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tallesl&#x2F;.NET-libraries</a>
saosebastiaoabout 10 years ago
With .NET going open source, I&#x27;d like to see what is out there for web services. Are there any linux-compatible .NET web servers&#x2F;routers that I can use that have a similar feature set and performance to the Spray&#x2F;Scala stack? C# or F#, but preferably F#. I&#x27;ve tried a couple (suave, nancy), but some simple benchmarks showed they were about half as scalable as spray.
评论 #9356167 未加载
评论 #9356948 未加载
tonyedgecombeabout 10 years ago
TopShelf looks interesting, I have written quite a few Windows services over the years and there have always been lots of gaps in the MS offering.
评论 #9355920 未加载
评论 #9354680 未加载
评论 #9354762 未加载
评论 #9355848 未加载
candlabout 10 years ago
I&#x27;ve recently discovered Linq2Db. Works great for CRUD in conjunction with Dapper. <a href="https:&#x2F;&#x2F;github.com&#x2F;linq2db&#x2F;linq2db" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;linq2db&#x2F;linq2db</a> It also comes with handy T4 templates to generate models.
评论 #9355690 未加载
Halienjaabout 10 years ago
For those interested, here are the licenses each project is available under: (courtesy Evairfairy)<p>Hangfire --------<p>LGPL3 <a href="https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;gnu-lesser-general-public-license-v3-(lgpl-3)" rel="nofollow">https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;gnu-lesser-general-public-lice...</a><p>Postal ------<p>MIT <a href="https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;mit-license#summary" rel="nofollow">https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;mit-license#summary</a><p>Formo -----<p>MIT <a href="https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;mit-license#summary" rel="nofollow">https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;mit-license#summary</a><p>CsvHelper ---------<p>MS-PL <a href="https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;microsoft-public-license-(ms-pl)" rel="nofollow">https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;microsoft-public-license-(ms-p...</a> Apache <a href="https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;apache-license-2.0-(apache-2.0)" rel="nofollow">https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;apache-license-2.0-(apache-2.0...</a><p>Topshelf --------<p>Apache <a href="https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;apache-license-2.0-(apache-2.0)" rel="nofollow">https:&#x2F;&#x2F;tldrlegal.com&#x2F;license&#x2F;apache-license-2.0-(apache-2.0...</a>
otis_infabout 10 years ago
See: <a href="https:&#x2F;&#x2F;github.com&#x2F;Microsoft&#x2F;dotnet" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Microsoft&#x2F;dotnet</a><p>This is an extensive list of (non-MS) OSS libs and tools for .NET , complete with descriptions. The URL might suggest this is the .NET source, it&#x27;s a set of text documents with URLs to OSS libs&#x2F;tools.
评论 #9359883 未加载
untogabout 10 years ago
It&#x27;s been years since I worked in C#, and now I want to try out most of these libraries. I&#x27;m genuinely impressed by the ecosystem out there.
akiselevabout 10 years ago
One of my recent favorite libraries lately is DynamicData [1] which is Rx for collections. It allows you to use LINQ operators to create lots of different collections from a single &quot;observable cache&quot;. An example from the github page:<p><pre><code> var list = new ObservableCollectionExtended&lt;TradeProxy&gt;(); var myoperation = somedynamicdatasource .Filter(trade=&gt;trade.Status == TradeStatus.Live) .Transform(trade =&gt; new TradeProxy(trade)) .Sort(SortExpressionComparer&lt;TradeProxy&gt;.Descending(t =&gt; t.Timestamp)) .ObserveOnDispatcher() .Bind(list) .DisposeMany() .Subscribe() </code></pre> This takes the collection at <i>somedynamicdatasource</i>, transforms the contents to TradeProxy objects, sorts it, and binds it to <i>list</i>. Any time that an object is added or removed in <i>somedynamicdatasource</i>, <i>list</i> will be updated to match. This library has over 50 operators including dynamic filters (changing the filter causes the bound collection to be reevaluated), boolean operators (only update the resulting collection if the object is in both source collections or only one), etc.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;RolandPheasant&#x2F;DynamicData" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;RolandPheasant&#x2F;DynamicData</a>
marescaabout 10 years ago
I&#x27;d like to add one that&#x27;s great for turning the web into a query-able database: HtmlAgilityPack. HtmlAgilityPack + Linq is amazing.
评论 #9355269 未加载
评论 #9355190 未加载
twundeabout 10 years ago
I have to say that for someone starting to transition to .net, this is a great post. Posts like these are what I expect from the Ruby&#x2F;Python&#x2F;Node&#x2F;PHP communities but the lack of them and lack of good learning opportunities had made me hesitant to use .net in the past. Thanks a lot, you&#x27;ve just made me feel a whole lot better about the .net community as a whole.
评论 #9356463 未加载
luibelgoabout 10 years ago
Fasterflect, must-have reflection library <a href="https:&#x2F;&#x2F;fasterflect.codeplex.com" rel="nofollow">https:&#x2F;&#x2F;fasterflect.codeplex.com</a><p>Insight.Database, in my opinion much better than Dapper <a href="https:&#x2F;&#x2F;github.com&#x2F;jonwagner&#x2F;Insight.Database" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jonwagner&#x2F;Insight.Database</a>
deevusabout 10 years ago
One of my must haves that I&#x27;d definitely recommend is T4MVC[0]<p><pre><code> T4MVC is a T4 template for ASP.NET MVC apps that creates strongly typed helpers that eliminate the use of literal strings in many places. </code></pre> [0]: <a href="https:&#x2F;&#x2F;github.com&#x2F;T4MVC&#x2F;T4MVC" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;T4MVC&#x2F;T4MVC</a>
评论 #9360035 未加载
评论 #9361846 未加载
nreeceabout 10 years ago
Few more:<p>* ServiceStack - full-featured Services Framework <a href="https:&#x2F;&#x2F;github.com&#x2F;ServiceStack&#x2F;ServiceStack" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ServiceStack&#x2F;ServiceStack</a><p>* ServiceStack.OrmLite - Fast, Simple, Typed ORM for .NET <a href="https:&#x2F;&#x2F;github.com&#x2F;ServiceStack&#x2F;ServiceStack.OrmLite" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ServiceStack&#x2F;ServiceStack.OrmLite</a><p>* BCrypt.Net - A .Net port of jBCrypt implemented in C# <a href="http:&#x2F;&#x2F;bcrypt.codeplex.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;bcrypt.codeplex.com&#x2F;</a><p>* Stripe.net - .net api for Stripe <a href="https:&#x2F;&#x2F;github.com&#x2F;jaymedavis&#x2F;stripe.net" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jaymedavis&#x2F;stripe.net</a><p>* TuesPechkin - .NET Wrapper for the wkhtmltopdf library (to generate PDFs) <a href="https:&#x2F;&#x2F;github.com&#x2F;tuespetre&#x2F;TuesPechkin" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tuespetre&#x2F;TuesPechkin</a>
RomanPushkinabout 10 years ago
My personal list:<p>* RestfulRouting <a href="http:&#x2F;&#x2F;restfulrouting.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;restfulrouting.com&#x2F;</a> - must have<p>* Turbolinks for .net <a href="https:&#x2F;&#x2F;github.com&#x2F;kazimanzurrashid&#x2F;aspnetmvcturbolinks" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kazimanzurrashid&#x2F;aspnetmvcturbolinks</a><p>* Flash messages for .net <a href="https:&#x2F;&#x2F;github.com&#x2F;khalidabuhakmeh&#x2F;MvcFlash" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;khalidabuhakmeh&#x2F;MvcFlash</a><p>* Fixie, unit testing <a href="https:&#x2F;&#x2F;github.com&#x2F;fixie&#x2F;fixie" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;fixie&#x2F;fixie</a><p>* Entity Framework testing tool <a href="http:&#x2F;&#x2F;effort.codeplex.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;effort.codeplex.com&#x2F;</a><p>* Automapper, AutoFixture, FluentValidation - mentioned already<p>* StructureMap - IoC
partisanabout 10 years ago
Does anyone have recommendations for frameworks or libraries for implementing CQRS and distributed processing of large sets of data through DDD?<p>I&#x27;ve found some different options including Lokad, NServiceBus, MassTransit, MPAPI, but would love to hear what, if any, tools HN users are utilizing.
评论 #9356458 未加载
willuabout 10 years ago
One more I&#x27;ll add to the mix that has come in handy several times: CsQuery jQuery port. <a href="https:&#x2F;&#x2F;github.com&#x2F;jamietre&#x2F;CsQuery" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jamietre&#x2F;CsQuery</a>
numo16about 10 years ago
Some that I&#x27;ve been enjoying lately:<p>- SpecsFor: Some nice BDD wrappers around NUnit and Moq <a href="http:&#x2F;&#x2F;specsfor.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;specsfor.com&#x2F;</a> - Glimpse: A great diagnostic console tool for ASP.NET applications <a href="http:&#x2F;&#x2F;getglimpse.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;getglimpse.com&#x2F;</a> - FluentMigrator: Awesome DB migration framework <a href="https:&#x2F;&#x2F;github.com&#x2F;schambers&#x2F;fluentmigrator" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;schambers&#x2F;fluentmigrator</a>
chrismissalabout 10 years ago
re: Formo<p>Last summer and into the fall, I had plans for Formo 2.0, which included a lot more flexibility and customization capabilities (json config, http context config, environment variables, etc). When I learned about aspnet5&#x27;s configuration I essentially stopped development on Formo. The big reason being that they&#x27;re building in such a way that I imagined Formo would be used. (Which makes me quite happy)<p>For that reason, the project is largely &quot;finished&quot;, but it&#x27;s still stable and alive.
borismodabout 10 years ago
Great list. I found BizArk.Core powerful console application entry point library very useful. It provides command line arguments parsing based on class and properties atributes <a href="https:&#x2F;&#x2F;bizark.codeplex.com&#x2F;wikipage?title=Console%20application%20with%20command-line%20parsing%20and%20validation&amp;referringTitle=Documentation" rel="nofollow">https:&#x2F;&#x2F;bizark.codeplex.com&#x2F;wikipage?title=Console%20applica...</a>
latkinabout 10 years ago
Great list, but could use more F# love!<p>Lots of cool&#x2F;useful open source projects are always popping up in the F# community - <a href="http:&#x2F;&#x2F;fsharp.org&#x2F;community&#x2F;projects&#x2F;" rel="nofollow">http:&#x2F;&#x2F;fsharp.org&#x2F;community&#x2F;projects&#x2F;</a><p>Favs of mine from that list: Visual F# Power Tools, FSharp.Data.SqlClient, FsEye, Fantomas, R type provider
henrikschroderabout 10 years ago
Reading through the list I realized that we have implemented every single one of these things for ourselves over years of coding.
_camayaabout 10 years ago
You guys should check these ones:<p>* Hangfire(<a href="http:&#x2F;&#x2F;hangfire.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;hangfire.io&#x2F;</a>): for background jobs.<p>* Polly(<a href="https:&#x2F;&#x2F;github.com&#x2F;michael-wolfenden&#x2F;Polly" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;michael-wolfenden&#x2F;Polly</a>): For exception handling policies.<p>Edit: formatting.
评论 #9354428 未加载
评论 #9356108 未加载
评论 #9356401 未加载
zippy1981about 10 years ago
I can&#x27;t believe no one mentioned EPPlus for manipulating excel spreadsheets.<p>FastJSON is my favorite non JSON.NET Json serializer.
juntoabout 10 years ago
As an alternative to CsvHelper I can recommend FileHelpers by Marcos Meli: <a href="http:&#x2F;&#x2F;filehelpers.sourceforge.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;filehelpers.sourceforge.net&#x2F;</a><p>Don&#x27;t be put off by the dated SourceForge location. It is pure awesome for getting data in and out of CSV format.
评论 #9354859 未加载
评论 #9354855 未加载
Tanakoabout 10 years ago
About Object Mappers<p>* AutoMapper is a great mapper, but too slow <a href="http:&#x2F;&#x2F;automapper.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;automapper.org&#x2F;</a><p>* TinyMapper is extremely quick <a href="http:&#x2F;&#x2F;tinymapper.net&#x2F;" rel="nofollow">http:&#x2F;&#x2F;tinymapper.net&#x2F;</a>
georgeckabout 10 years ago
A collection of awesome .NET libraries, tools, frameworks and software (curated by community) <a href="https:&#x2F;&#x2F;github.com&#x2F;quozd&#x2F;awesome-dotnet" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;quozd&#x2F;awesome-dotnet</a>
vyrotekabout 10 years ago
Hangfire looks great. I&#x27;m currently running all my jobs through Azure Scheduler. Would anyone know what the pros &amp; cons are between these two job schedulers? Are there certain requirements or architectures that favor one or the other?
评论 #9355658 未加载
wehadfunabout 10 years ago
Will check out top shelf and love the list.
lnlyplntabout 10 years ago
very handy!