database, scalability

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
12 years ago
Hi guys
The project looks good, but I think once its popularity grows to attract bigger clients the database side will become a problem.
And I am afraid Entity Framework will make it difficult to improve performance and add nice features.
I think it's a mistake to include [indirect] dependency on EF into repository interfaces (e.g. IQueryable<T> IRepository<T>.Table).
In reality efficient queries cannot [always] be reliably generated automatically.
Also, EF does not make it too easy to take over and do a sensitive operation manually.
I would personally:
- remove dependency on any LINQ provider from repository interfaces
- implement alternative database layer (repositories) with NHibernate, making use of stored procedures when necessary
- likely, develop db layer versions specific to major database brands, starting from SQL Server; NHibernate allows to generate queries automatically (I think it does it even better than EF), but things like CTEs and full-text queries are not generated automatically as far as I know; alternatively, it may be possible to push vendor-specific stuff into stored procedures and provide single database layer working with SPs.

The above would require a change in db development approach. Code-first (e.g. when database objects are generated automatically) provides insufficient control and is suitable for small-scale/simple projects only. SQL should be first class citizen. I tried this approach before and it payed off with interest.

Full text search is very important I believe.

I will start doing this for my own sake, but if there's an interest would be happy to contribute.
12 years ago
A new EF version is coming out sometime in the near future. When it is finally released, I'm hoping the nop team will upgrade to the new version. That should then make things much faster.

I agree that as it currently stands, things aren't very fast, but damn the scalability is good. :)
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.