Absolutely, we had a CSLA project in one of my previous places of work and it became that project no-one dared touch because it just about worked in it's current state but no one could actually understand.
So we'd just write "around" the abstractions to avoid having to interact with the CSLA "magic".
Eventually I think it was written out of the solution.
1) Designed for big projects
2) Easy to screw up without lots of experience
The fact that big projects require many developers means those developers rarely have the experience necessary (with CSLA - even an experienced .NET developer is at a disadvantage) to architect it properly, and so it becomes a maintenance nightmare.
It's instructive (for business app developers, anyway) to read Rocky Lhotka's book in order to understand what problems he was trying to solve with CSLA, but it's not really worth using the framework...
It looks like a list of stuff with no particular criteria of being "Awesome". I think, for a list like this, you need a better way to get community feedback to get some kind of feel whether the tools are 1) still relevant and maintained 2) Are actually awesome
I agree, Visual Studio Gallery is good for Visual Studio related tools.
For NuGet packages, I like http://nugetmusthaves.com/. It uses NuGet download counts, community voting, release date, etc. to give categorized, ranked recommendations.
probably an "awesome" collection should contains some more attributes. You look at the list, click a link and:
- no test are available,
- no dependencies are specified (in .net world today ...)
- no licence
- no type (API, lib, bin)
of course some (maybe many) of those projects contains that information, but the lack of these attributes, makes the list not suitable for the research of an ideal component to include into a project.
There's no such thing as just vendored. If you include a 3rd party library in a nuget package, and the developer using that package also includes that 3rd party library. It can cause problems.
One example of that I have run into at work is mismatched versions of json.net in dependencies. It becomes a mess when you realize one requires an older/newer version and you don't have the source to modify it or will take some time to have the developer of the dependency update their project.
So long as the newest version of the assembly is backwards compatible with the previous ones (i.e has same interfaces, etc) - then this is easily solved using Assembly binding redirection[1] in your .config file.
eg I have JSON.NET 8.0 installed, and a library I'm requires an earlier version then this will do the trick:
The only .NET PDF library on there cost money. If you don't feel like paying for a PDF library, just write yourself a PDF service in Java or Ruby or something, and use one of their free OSS options.
Not .NET specific, but I use WKHtmlToPDF[1] - you feed it a html file via command line and it converts it to PDF using the Webkit engine. Works well for my uses and I actually prefer maintaining html templates.
Same here; I've written a cross-platform (PC and Mac) .NET application that generates reports as HTML in shared code, and both systems create printable output as PDF files created by WKHTMLTOPDF.
Can't you use the Java lib over IKVM ? Won't be the prettiest but will be simpler and faster than going a custom service and spinning up a separate VM.
I would pay quite some money for a good PDF library. I've seen some monstrosities in my career. And never a good one that has the ease of merging data with a template. I heard of people using Microsoft Word templates and saving those to PDF. I don't know if I want to venture in that direction but I definitely understand where it's coming from.
Aspose Words (which costs money, and is only "cheap" if you're a med/large business) is the best PDF generation tool I've worked with recently for .NET, handily beating Aspose PDF. Generate the document(s) you need with templates and data as you say, then save them all as PDF.
glad to see n2cms in there. It's got some quirks, but on the whole its the only CMS I have every actually enjoyed customizing and integrating with (in any language). Even the older versions were pretty decent, and I've heard it's gotten better.
This is a great list for project discovery, but obviously there is a lot of choice here. My ASP.NET Core Library and Framework Support list is also on this list - how meta. :)
1: http://stackoverflow.com/a/10922373/60188