Minhas classes de uso geral. Open Source
Publiquei há algum tempo uma biblioteca com algumas classes que uso constantemente e ajudam bastante. Não é preciso usar a minha DLL em si, você pode pegar só as classes que precisa e incluir no seu projeto também. Acho que ninguem quer um Fujiy.Util.dll no projeto, rs.
Em resumo, por enquanto tenho o seguinte:
-CacheHelper. Com ele você pode agrupar os itens do cache, apagar o cache por grupo, buscar chaves por grupo, apagar todo o cache, e o mais interessantes, chamar o cache desta forma: Cache.FromCacheOrExecute(() => myObj.MyMethod(paramInt1, param2String), new CacheOptions { GroupName = CacheGroupNames.RedesSociais }), a chave é gerada a partir da assinatura do método e dos parametros passados tudo automático.
-PagedCollection. Este já me salvou várias vezes. Normalmente quando fazemos paginação no banco não é possível usar ListView com DataPager pra gerar a paginação automáticamente, pois ele usa a coleção em memória pra saber quantos itens há na coleção. Com ele eu posso criar uma coleção falsa enganando o DataPager: new PagedCollection<Mensagem>(TotalMensagens, DtpMensagens.StartRowIndex, mensagens);
-Extensões Except e Union que aceitam Lambda Expression para fazer a comparação de igualdade. Assim você pode fazer um Union que olha pro Usuario.Id por exemplo. Seguindo a mesma lógica da pra criar facialmente pro Distinct, quem sabe crio essa extensão no futuro também.
-Pra terminar uma extensão pra Enums, o método ToDescription olha se o Enum tem o atributo DescriptionAttribute, se tiver mostra a mensagem nele, senão o ToString padrão. Ótimo pra popular DropDownList por exemplo