I've been using it on most of my newer projects this year and I have to say I much prefer it over the (still excellent) Json.net.
Autofac is my favorite. Once built, containers are immutable, there is deterministic disposal of components in 'lifetime scopes', and delegate factories make it much easier to instantiate classes with a mixture of services and data.
* 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.
They also have a great MVC integration
Another interesting library for doing REST APIs is Refit: https://github.com/paulcbetts/refit
Technically, I implemented some of that stuff myself because I needed REST client that would work with PCLs and be a bit 'nicer' to use than just juggling strings/routes everywhere, so using annotations and wrapping Microsoft's HttpClient was obvious and relatively easy way out.
Anyway, I'll probably just phase out my own solution and start using the library.
[EDIT]
After checking it out, RefitStubs.cs file seems a little bit clunky, but the library as a whole looks solid enough. I'll look further into it.
On the other hand, I wonder if it wouldn't be easier to ship a T4 template? I know for sure that would integrate with VS (both the IDE and build process) without any issues, not sure about Xamarin Studio...
Many things are possible : http://imageresizing.net/
It isn't possible in Asp.Net 5 (vNext) though :( - because of the cross platform integration.
Also, https://github.com/jamietre/CsQuery is pretty nice for parsing webpages and using CSS Selectors (jquery style)
With CsQuery, you could use aBot ( https://github.com/sjdirect/abot ) for crawling ;)
I use ELMAH for logging but I'll give NLog a look!
I use NLog, but I access it through the Common.Logging facade. This is helpful when I need to bolt my code into an environment where NLog kind of sucks, like Xamarin.Android.
Commons.Logging always felt clunky in comparison.
In particular, it makes logging to the Windows event log much easier
We use Elmah instead of Nlog, which is also fine. Looks like NLog is a bit more flexible than Elmah is. But Elmah is KISS which is nice.
On the other side, if you need to work extensively with stored procedures or you have complicated or custom SQL to run, Dapper (or Insight.Database - https://github.com/jonwagner/Insight.Database, a library which I found really nice to use) will be your best friend.
I hope it's one of the pain points they will address and solve during their rewrite to EF7 at one point.
That being said, my opinion is that unless you have really strict performance and/or latency requirements, EF should be good enough. At least for simpler queries and in 'longer-running' applications :)
Dapper distills the converting database rows to objects. It's a micro ORM, which means it doesn't try to abstract SQL like a monolithic ORM (NHibernate, EntityFramework) would do. Example:
public TagModel GetTag(long id)
{
using (var conn = m_connector.GetConnection())
{
return conn.Query<TagModel>("SELECT TOP 1 * FROM Tags WHERE Id = @Id", new { Id = id }).FirstOrDefault();
}
}It might not be really clear, sorry. Try to look on their website https://github.com/AutoMapper/AutoMapper/wiki/Getting-starte....
Automapper basically allows you to convert a DB Model to a DTO or a ViewModel.
Doesn't completely replace automapper
* 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. DTOs to DB models).
* RestSharp makes talking to RESTful apis easier.
* Microsoft's Unity is a great IOC framework, although most people seem to use NInject.