Live data from Hacker News

Open Source .NET libraries that make your life easier

thomasvm.github.io

81–90 of 116 posts

Re: Open Source .NET libraries that make your life easier

#82

Humanizer Fantastic string, number, and datetime manipulation library http://www.nuget.org/packages/Humanizer/ Units.Net I love this for measurement and weight conversions http://www.nuget.org/packages/UnitsNet/ 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's type vs. its name https://…

Fibber looks great, how does it compare to AutoFixture?

Re: Open Source .NET libraries that make your life easier

#83
post #8

You guys should check these ones: * Hangfire( http://hangfire.io/ ): for background jobs. * Polly( https://github.com/michael-wolfenden/Polly ): For exception handling policies. Edit: formatting.

CircuitBreaker is neat otherwise you know how hard it would be to implement it

Re: Open Source .NET libraries that make your life easier

#84

With .NET going open source, I'd like to see what is out there for web services. Are there any linux-compatible .NET web servers/routers that I can use that have a similar feature set and performance to the Spray/Scala stack? C# or F#, but preferably F#. I've tried a couple (suave, nancy), but some simple benchmarks showed they were about half as scalable as spray.

Were those simple benchmarks running on Mono? .Net is certainly going open-source, but it hasn't arrived yet. It might be worth rerunning those benchmarks once .Net proper is available for *nix.

Yes they were on the latest version of Mono, which in my experience outside of web programming is just as fast as the JVM. I think the gap has more to do with the libraries than the VM, but I'd be willing to wait it out to see. I'm not migrating soon anyway...although it would be nice to know how far out it is.

Re: Open Source .NET libraries that make your life easier

#85

Does anyone have recommendations for frameworks or libraries for implementing CQRS and distributed processing of large sets of data through DDD? I've found some different options including Lokad, NServiceBus, MassTransit, MPAPI, but would love to hear what, if any, tools HN users are utilizing.

I started use Circus. New and in active development. Greg Young mentioned at GOTO talk last year (https://www.youtube.com/watch?v=8JKjvY4etTY&t=2712)

https://github.com/d60/Cirqus/

Re: Open Source .NET libraries that make your life easier

#86
post #27

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/Python/Node/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've just made me feel a whole lot better about the .net community as a whole.

Please visit regularly asp.net\community , codeplex.com . There is ton of stuff there

Re: Open Source .NET libraries that make your life easier

#87
post #4

To add to the author's list: * I seem to install Json.net in every .NET project I create (json serializer - thanks James Newton-King!) * NLog for logging. It's fantastic. * Dapper is also excellent (Micro ORM) (and anything written by Marc Gravell is generally top-notch - see protobuf-net, miniprofiler, StackExchange.Redis) * Automapper, to avoid writing boilerplate code to convert between similarly shaped types (E.G…

Thanks for these. Adding a couple others:

* EPPlus for reading or creating Excel spreadsheets without using Excel (such as on a server). http://epplus.codeplex.com/

* RTFConverter for parsing RTF. http://www.codeproject.com/Articles/27431/Writing-Your-Own-R...

These are good enough to drive the decision to use C#/.NET for projects needing these capabilities.

Re: Open Source .NET libraries that make your life easier

#88

Earlier quoted context omitted.

Were those simple benchmarks running on Mono? .Net is certainly going open-source, but it hasn't arrived yet. It might be worth rerunning those benchmarks once .Net proper is available for *nix.

Yes they were on the latest version of Mono, which in my experience outside of web programming is just as fast as the JVM. I think the gap has more to do with the libraries than the VM, but I'd be willing to wait it out to see. I'm not migrating soon anyway...although it would be nice to know how far out it is.

Lately I checked the Perlin noise performance test that was linked to on reddit (http://www.reddit.com/r/programming/comments/31mzu1/go_vs_ru...).

Summary:

Benchmark: C# (Mono) - 1052.041381 ms, Java - 597.9874 ms

My machine: C# (Windows) - ~475 ms, Java - ~552 ms

Even considering that Mono is using maximum precision available (so instead of floats it's using doubles), when I swapped all floats to doubles it still ran in ~525 ms on my box.

So while Mono might be 'getting there', sometimes it's still lagging behind. It's just something to keep in mind :)

Re: Open Source .NET libraries that make your life easier

#89
post #66

Some additional ones I haven't seen mentioned so far: * FluentValidation: excellent validation library, keeps validation rules grouped together and easy to keep track of - https://github.com/JeremySkinner/FluentValidation * AutoFixture: great for the "Arrange" phase of unit tests. Populates object graphs with test data, highly customizable. There's a bit of a learning curve. Pairs nicely with xUnit but can be used wi…

I've been considering abandoning AutoFixture for FsCheck.

Partially because that's what AutoFixture's maintainer seems to have done recently. Mostly because FsCheck adds a number of additional features such as automatically reducing failing test cases down to the the simplest failing example it can find that make it very powerful for more complex cases.

One downside, though, is that the C# interfaces are somewhat neglected. It's really a lot nicer to use from F#.

https://fsharp.github.io/FsCheck/

Re: Open Source .NET libraries that make your life easier

#90

Earlier quoted context omitted.

It's definitely superior to hand rolling Windows services. We have something like 6 or 7 TopShelf-based services, a couple of which are self-hosted WebAPI endpoints. No problems or gotchas that I can remember, aside from slightly marginal documentation last time I looked.

Topshelf's documentation does need some more TLC -- if there's something specific you thought was lacking I can take a look at updating it. I'm glad to hear you're getting value out of it! Last place I was at, we had about 30 distinct services running. It was a huge bonus to have Topshelf.

I think my problem was using the Custom Service style, rather than inheriting from ServiceControl. There are a number of ways to interact with the HostConfiguration.Service() method and its overloads, but there's only one tiny section in the documentation.

TBH, I think you might want to deprecate that whole way of using TopShelf. Using ServiceControl is much much easier and better documented. I think if one wants to keep TopShelf out of their core code, it's easier to create a separate "ServiceWrapper" project that has a ServiceControl subclass and calls into your other code, rather than using the HostControl.Service() style.

Post reply on HN