![]() |
Criado por Thiago Russo
mais de 7 anos atrás
|
|
Questão | Responda |
Vc está criando o seu próprio ORM otimizado. Vc permite q o usuário faça mapeamentos de tabela "uma pra um" no BD. Vc tb pode usar atributos especiais por razões de segurança. Ex: um tipo pode ser decorado com uma AuthorizeAttribute para assegurar que apenas usuários específicos podem acessar a uma determinada tabela. Vc usa um monte de reflection em seu aplicativo e vc começar a ver alguns problemas de desempenho. Vc tb está pensando em um gerador que irá criar tipos q são mapeados exatamente para um banco de dados existente. 1. Por que vc usa um atributo em vez de herdar a partir de uma interface? N seria mais fácil do q a adição de um conceito totalmente novo para C#? | 1. Embora herança de interface descreva uma relação "é-um-tipo de" , mas vc n pode dizer q o seu tipo é "uma espécie de AuthorizedObject." Em vez disso, vc usa atributos para dizer algo sobre outro tipo, razão pela qual C# contém metadados. Herança n deve ser usada para decorar um tipo com determinadas informações. |
2. O que você pode fazer sobre os problemas de desempenho com o uso de reflection? | 2. Reflection pode ser um processo muito lento. Vc pode substituir reflection por árvores de expressão. Qdo vc está mapeando dados para um tipo personalizado, vc pode construir uma árvore de expressão (e deixar no cache). A árvore de expressão pode ser compilado para código nativo. Será muito mais rápido do que a reflexão. |
3. Que técnica você usaria para criar o seu gerador? | 3. Para gerar o código, vcc pode usar o CodeDOM. A CompilationUnit criado pelo CodeDOM pode gerar um arquivo de código fonte. |
Quer criar seus próprios Flashcards gratuitos com GoConqr? Saiba mais.