Our system uses an Entity Framework based data layer. For the recent months, we've been using the entities generated by EF for data transfer, business logic and UI.
Since our application is becoming larger and larger we made a decision to create a separate business layer and we used the CSLA.NET Framework to help us do that. This was supposed to help us "scale" as the load on our system increases.
We're in the middle ow writing the new BL and I've been comparing the performance of the application modules before and after migrating them to use the new BL. I am noticing an almost 50X slower performance! That's not 50% it's 50 times slower.
I know that introducing a BL will add some delay because of the extra layer and so, but I wasn't expecting the delay to be of this magnitude.
Is this normal? Is there any criteria to draw a line between acceptable introduced delay (because of the added layer) and between "we lost more than we can ever gain"
Thanks.
I wouldn't expect things to be that slow, but from experience...my group started using CSLA (v4) in the past year, and one of the first apps we did became extremely slow when loading larger lists of data. The stored procedure for the list was returning in under a second, but the business object Data Portal methods took 10+ seconds to return. In our particular case, the problem ended up being that we were instantiating a WCF event provider class as each record was being loaded into a list object. Once we realized and addressed that issue, performance was very snappy.
So - I wouldn't expect using CSLA to be the cause of the lag as you mention, but using it in the wrong way (like what I was doing) could easily cause issues.