Pergunta

We have just started a web project. Sql tables of the project is expected to be large tables with millions of records. And web application will usually report the data to the users. That means web application will do "SELECT" mostly than "INSERT" or "UPDATE".
At this point, i wonder if i should use classic BLL-DAL-MODEL approach (layered architecture) or some ORM like Devexpress' XPO. Our company has used XPO in small many applications and developers are familiar to it. They are also familiar to layered architecture but as you know implementation of XPO is easer than layered architecture approach.
Now, i want to know which approach i should choose. Is there anyone who performs a performance test according to data select with both XPO and layered arc.? Or is there any idea?
Thanks.

Foi útil?

Solução

Fer, I understand the reason and meaning of your question but I would say that I would never give up layered approach just to shortcut use a certain technology or product like XPO in this case. also EF and NHibernate could be used directly from the UI without need for layering but this does not mean is good, see my answer here:

https://stackoverflow.com/a/7474357/559144

I would either do not use XPO or only use it if it can work with the layering as I described there and big chances are that it also works because in the end it's an ORM and can be isolated and decoupled from the rest like any other product. Still it's proprietary DevExpress and I would not use it for big applications which migh evolve differently over several years so something more standard like EF or NHibernate could probably offer a more reliable and proven ground.

Outras dicas

Regarding XPO performance. I have grids with 500k records and it works fine. Single grid page shows 20 records. Here are few hints (DevEx v10.2):

1.you can use ASPxGridView in ServerMode. You can take a look at demo here. In ServerMode grid binding does this:
- fetch record count
- fetch first 512 record ids
- fetch records for showing in grid. This should fetch records shown on first grid page, but it seems to me that XPO fetches cca. 50 records.

2.XPO will also fetch data needed for related objects. This will result in many simple queries. You can reduce this with caching.

3.We use XPO caching successfully. It makes application faster and reduces number of database hits. As I already said we use it on 500k tables.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top