I have a quick pro-con question for you. I’ve never done any reporting within c# before so I am looking for a comparison between the Microsoft reporting technologies versus Crystal reports. Are there any big differences between the two? Does one do something particularly better then the other?
Before I start looking into reporting I’d like to figure out which one I want to use.
i find reporting to be a necessary evil, i’d much rather have the analysis managed through workflow, that reports. so if my answer seems negative it’s mk view of reporting more than the tool itself. I have only used CR so I cannot speak to the MS reporting.
CR has a different philosophy to their design time so the UI feels a bit awkward at first. Sort of like driving on the opposite side of the road. You know what your doing, but it feels uncomfortable.
I always pushed data to my CR reports through
datatablesrather than connect the report directly to the database. it was the only thing I could do to make the report “testable” in an automated fashion. This also separates the report from the database/source which made it easier to move from local development, to staging, to production.you can pass objects and collections to the report (IEnumerable), but the support for
datatableswas better. For example. if the collection is empty CR will throw an exception. But if the datatable is empty CR will render a report with no data.The preformance of
datasetwith CR is terrible. I would always flatten my object graph into a tabular data and then pass the data to the report. otherwise it would take forever to render.Before VS 2010 CR for .Net was released as part of VS which made upgrades and migrations fairly straight forward. Upgrades where never simple, but at least .net and CR were released together. Starting with VS 2010, CR is now on it’s own release cycle which means there are no guarantees of when you upgrade to the next version of VS and still be compatible with CR.