I find it extremely limiting and frustrating to not have control over how the .NET Report class is initialized, and not being able to pass in any type of object/dependency (either into the constructor or by setting a property.) This makes it very difficult to keep custom reports decoupled from other code modules and make them unit-testable. There is the InstanceReportSource, which would have been perfect to solve this problem, but it's apparently deprecated. http://docs.telerik.com/reporting/t-telerik-reporting-instancereportsource DevExpress reports for example allow you to create the report instance yourself, and you can pass any objects you want directly into the constructor. This is what I find to be the biggest drawback to Telerik reports.