[OFF] ECONOMIA DE RECURSOS...
Citação:... é comum ver pessoas reclamando que o programa ficou lento e você vai ver ele está tentando carregar 5 milhões de registros em um Grid
Já passei por isso usando listView, depois que passei a usar uma barra
de progresso e ocultá-la durante o carregamento ficou bem melhor.
Citação::Apesar de todas as explicações anteriores, vou tentar acrescentar algo (rs)...
Toda opinião é sempre bem vinda e a sua foi de excelente contribuição.
Citação::O fato é que muito dessa [Ô]economia[Ô] pode também ser interpretada
como boas práticas de programação.
Verdade, boas práticas são fundamentais, principalmente no reaproveitamento de
códigos.
Citação::
... é comum ver pessoas reclamando que o programa ficou lento e você vai ver ele está tentando carregar 5 milhões de registros em um Grid
Já passei por isso usando listView, depois que passei a usar uma barra
de progresso e ocultá-la durante o carregamento ficou bem melhor.
E se eu te disser que existe uma forma de ter um grid que exibe 5 milhões de registros e ele pode abrir praticamente instantaneamente?
Para isso você teria que usar o VirtualMode do DataGridView, que é bem mais complicado de usar já que não é só definir um DataSource, você teria que tratar alguns eventos dele e ir carregando os dados e controlar um cache deles manualmente, fazendo consultas paginadas trazendo poucos registros de cada vez, mas basicamente você poderia ter um grid que parece ter 5 milhões de registro, mas na prática você fez uma consulta que teve apenas 50 registros como resultado, e quando o usuário rola o grid você vai fazendo novas consultas para mostrar as outras linhas.
Esta não só é uma forma mais rápida de mostrar grids com muitos dados como é a forma recomendada de se fazer isso, já que o VirtualMode foi criado especificamente para isso.
Se usar componentes de terceiros é até mais fácil, eu por exemplo uso os da DevExpress, e eles possuem um ServerMode, no caso deles se você usar uma fonte de dados compatÃvel com isso ele basicamente faz o que o VirtualMode do DataGridView faz só que tudo automaticamente.
Citação::
Essa questão de carregar milhares de registros, geralmente é desnecessário, deve haver buscas por parâmetros e não navegar em registros que é coisa desnecessária e ultrapassada, dificilmente isso é preciso.
Concordo plenamente, sempre que alguém me pergunta como faz navegação de registros a primeira coisa que faço é perguntar [Ô]qual o motivo de você querer fazer isso?[Ô], e geralmente não conseguem dar uma resposta lógica para isso.
O mesmo para grids, não vejo motivos para isso, eu sempre digo que ninguém usa tanta informação de uma vez só, o único momento válido para se ter tanta informação é na geração de relatórios e mesmo assim quando fica muito grande eu ainda questiono a necessidade disso, pois muitas vezes o que realmente querem ver são os totais.
Citação::
Essa questão de carregar milhares de registros, geralmente é desnecessário, deve haver buscas por parâmetros e não navegar em registros que é coisa desnecessária e ultrapassada, dificilmente isso é preciso.
Essa foi boa, em todos os sistemas que crio eu coloco o botão [Ô]Exibir Todos[Ô]
mas agora estou me perguntando qual é mesmo a finalidade disso...
No fundo é só uma questão de esta ali, mas não há uma utilidade real.
Citação::
é sempre desenvolver pensando em máquinas modestas, ainda mais se o alvo do nosso software for amplo. O WhatsApp até hoje suporta o Android 2.3.3 : https://www.whatsapp.com/faq/pt_br/android/21166563
Esse também é um ótimo exemplo.
Citação::...E se eu te disser que existe uma forma de ter um grid que exibe 5 milhões de registros e ele pode abrir praticamente instantaneamente?...
Até o presente momento só utilizo listView mas se algum dia for
utilizar um Grid vou lembrar de suas palavras e criar um post
pedindo dicas de como fazer isso, parece ser muito didático.