ORIENTACAO A OBJETOS - CONCEITO

KERPLUNK 31/07/2013 11:50:10
#426762
Citação:

:
Kerplunk, poderia fazer um pequeno exemplo do pool apenas para o uso básico de manipular a edição de registros? Seria muito útil. Daí pra frente é só seguir a linha de raciocínio.


é simplesmente um webservice, nada mais...
KERPLUNK 31/07/2013 16:44:03
#426800
Além disso, o pool de registros não é o tópico, ainda tem muita coisa para vermos sobre OOP, mais tarde, vemos sobre pool de registros e beacons(essa é nova, se quiserem posso explicar)
LUIS.HERRERA 31/07/2013 16:59:20
#426805
Quando disse Array era justamente isso [Ô]ToArray()[Ô], . ok entendi.

Sobre o pool de registro, na teoria parece [Ô]fácil[Ô], mas na prática kkkk só pra quem sabe.
Nota: Sendo um WebService não teria a mesma aplicação para desktop. Seria então ter de criar um serviço do Windows, mas nesse caso do servidor da empresa. Mas isso já é outro assunto.

Sobre o que disse do Guid já vi muitos comentários, mas nada na prática. Se é um código grande e difícil de entender, além de ser case sensitive, acredito que deve ser então uma string. Nesse caso a pesquisa de strings é muito lenta, quanto maior seu comprimento e volume de registros, o sistema pode entrar em colapso. Os índices não tem de ser sempre numéricos para serem os de melhor desempenho?
LUIS.HERRERA 31/07/2013 17:10:55
#426808
Kerplunk Dúvida:
Tenho uma lista com vários campos, sendo que após montados quero ordenar os dados por dois de seus campos. Vi um exemplo na web, mas não entendi, além de ser por apenas um campo.

 listPerguntas = listPerguntas.OrderBy(c => Int32.Parse(c.GRUPO.Trim().Substring(c.GRUPO.Trim().IndexOf([Ô] [Ô])))).ToList();  


Fiz a adaptação trocando o campo Nome por GRUPO apenas, mas não funcionou. Deu erro de start index vazio???

Consegui resolver assim para ordenar pelos dois campos GRUPO e DESCRICAO.
 listPerguntas = listPerguntas.OrderBy(c => c.GRUPO).ThenBy(c => c.DESCRICAO_ATIT_HABIL).ToList();
KERPLUNK 31/07/2013 17:54:39
#426813
Pelo que entendi, você estava tentando ordenar pela transformação para inteiro do que estivesse em c.GRUPO, depois do espaço em branco, então entendo que c.GRUPO é algo como [Ô]ABC 123[Ô], correto?
Se for o caso, ao invés do parse, deveria usar o Convert.ToInt32(valor).
O erro ocorreu, porque algum dos ítens da lista, não tinha espaço em branco em c.GRUPO, por isso, IndexOf(X) retornou erro e toda a expressão foi desconsiderada e a exceção lançada.
Quando me deparo com uma situação semelhante, normalmente, crio um tipo anônimo, com todas as propriedades do tipo que preciso, e incluo no tipo anônimo uma propriedade já pronta com os dados já preenchidos. No seu caso, seria um tipo anônimo, igual ao tipo que listaPerguntas usa, acrescido de uma propriedade [Ô]GrupoNumerico[Ô], onde eu gravaria o número desejado do grupo, sem as letras. Em seguida ordenaria o tipo anônimo pelo campo [Ô]GrupoNumerico[Ô] e repassaria para listaPerguntas o resultado da ordenação do tipo anônimo.
LUIS.HERRERA 02/08/2013 07:16:01
#426919
Entendi. Só não entendi isso:
Citação:

crio um tipo anônimo, com todas as propriedades do tipo que preciso, e incluo no tipo anônimo uma propriedade já pronta com os dados já preenchidos



O que seria e como funciona [Ô]Tipo Anônimo[Ô]?

Sobre o que escrevi no outro comentário:
Citação:

Sobre o que disse do Guid já vi muitos comentários, mas nada na prática. Se é um código grande e difícil de entender, além de ser case sensitive, acredito que deve ser então uma string. Nesse caso a pesquisa de strings é muito lenta, quanto maior seu comprimento e volume de registros, o sistema pode entrar em colapso. Os índices não tem de ser sempre numéricos para serem os de melhor desempenho?

KERPLUNK 02/08/2013 09:23:21
#426924
Um tipo anônimo, é nada mais que uma classe que não existe, ela é criada em runtime. Exemplo:

var cli = new { Codigo = 1, Descricao = [Ô]sapato[Ô], valor = 10.52, Criacao = DateTime.Now };
Textbox1.Text = cli.Descricao;

Repare que no código acima, na primeira linha, instancio um tipo, mas não especifico nenhum apenas [Ô]new[Ô] e as propriedades que quero. Depois de instanciado é uma classe normal e pode ser usada normalmente como qualquer outra. A diferença é que nunca criei essa classe fisicamente, apenas em runtime.
No seu caso, para converter uma lista para um tipo anônimo, ficaria mais ou menos assim:

var list = listPerguntas.Select(x=> new Cliente { Codigo = x.Codigo, Grupo = x.GRUPO, GrupoSeparado = x.GRUPO.Trim().Substring(x.GRUPO.Trim().IndexOf([Ô] [Ô])) }).ToList();

Assim, [Ô]list[Ô] conteria uma lista de tipos anônimos com as propriedades [Ô]codigo[Ô], Grupo e GrupoSeparado, que conteria a parte que te interessa do grupo.

Entenda que o GUID, não é uma string, e não é indexado como um string. Existe sim, uma leve(realmente leve) perda de performance, mas é mesmo bem pequena, levando em conta as vantagens do tipo GUID sobre o tipo Int como PK. Existem vários artigos de especialistas pondo isso na prática e mostrando, como este aqui.
Mas obviamente, isso é uma escolha pessoal, bem, nem sempre, às vezes não tem escolha, tem que ser um ou outro.

Sua dúvida sobre o tipo GUID me leva a lembrar uma coisa:
Gente, não vejam tudo como string. Uma coisa difícil de explicar e consequentemente de se aprender, é [Ô]não ver como um ser humano[Ô]. Um exemplo simples que vejo aqui mesmo no fórum, são as muitas(muitas mesmo) dúvidas e erros com o tipo Data. As pessoas, geralmente enxergam a data como uma string de duas partes, a data e a hora. E cada uma também separada por partes, dia/mês/ano e hora:minuto:segundo. A verdade é NÃO. Tipo data é um tipo próprio e não deve jamais ser visto como uma string. Essa é simples, a maioria que já tem algum conhecimento um pouco mais avançado, consegue entender. Mas vejamos um caso de algo que não estão tão familiarizados, o XML. A maioria, vai ver um XML como um arquivo texto e tentar ler como um arquivo texto, linha por linha e formular algo à partir disso. E novamente a resposta é NÃO. XML é um arquivo, geralmente serializado, de um objeto ou lista de objetos, portanto pode ser desserializado novamente para objeto ou lista de objetos. Além disso, XML, tem tipagem(sim, os dados nele tem TIPO, não são tudo texto), também notações e detalhes importantes, como namespace, por exemplo.
LUIS.HERRERA 05/08/2013 08:48:45
#427021
Kerplunk entendi. Agora uma dúvida. Quando tenho cadastros complexos, com várias tabelas relacionadas, em alguns casos tenho de criar uma nova entidade só para esse cadastro, pois os registros juntam duas ou mais tabelas, e não posso usar as entidades dessas outras tabelas, pois só parte dos dados são usados em cada uma. Assim crio a nova entidade com os dados reunidos para esse cadastro.

Com esse tipo anônimo que comentou eu não preciso fazer isso, mas em seu exemplo usou apenas uma entidade:

Supondo que tenho:

Entidade 1

IDCurso
Descricao
Inativo

Entidade 2

IDCategoria
Descricao
Inativo

O Tipo Anônimo para essas duas entidade como ficaria?

IDCurso
DescricaoCurso
IDCategoriaCurso
DescricaoCategoria
KERPLUNK 05/08/2013 09:02:45
#427022
Bem, vai depender da relação de um com outro. Cada Curso contém uma categoria? Como é a relação dessas entidades?
LUIS.HERRERA 05/08/2013 11:18:21
#427030
Desculpe esqueci, cada Categoria terá um conjunto de cursos, pois os cursos são classificados por categoria.

Ex:

Categorias // Cursos
Infomática Access, Excel, Word, etc...
Administração trabalho em equipe, técnicas de análise de problemas, etc...
Página 7 de 14 [136 registro(s)]
Faça seu login para responder