Artigo: 935218 - Última revisão: quinta-feira, 4 de Outubro de 2007 - Revisão: 2.8 MCTS Paced Training Kit (Exam 70-536): Microsoft ® .NET Framework 2.0, comentários de Foundation de desenvolvimento de aplicações e correcções parte 2
Nesta páginaSumárioEste artigo contém comentários, correcções e informações sobre erros conhecidos relacionados com o livro do Microsoft Press MCTS Paced Training Kit (Exam 70-536): Microsoft ® .NET Framework 2.0-Application Development Foundation , 0-7356-2277-9.Estão disponíveis no artigo 923018
(http://support.microsoft.com/kb/923018/)
949730
(http://support.microsoft.com/kb/949730/)
e 949734
(http://support.microsoft.com/kb/949734/)
correcções adicionais para este livro. Abrange os seguintes tópicos:
Mais InformaçãoPágina 200: Resposta B para pergunta 2 é impreciseNa página 200, responda B leituras:"Para verificar se dois objectos estão a mesma referência de um objecto" Deverá ler: "Para testar se duas variáveis estão a referenciar o mesmo objecto" Página 204: Descrição do código de exemplo está incorrectaNa página 204, a última antes do primeiro exemplo de código frase:"Depois de ter uma instância da classe, utilizar o método Push adicionar itens a fila e o método Dequeue para remover itens da lista, tal como mostrado neste exemplo curto:" Deverá ler: "Depois de ter uma instância da classe, utilize o método Push para adicionar itens a pilha e o método POP para remover itens da pilha, conforme é ilustrado neste exemplo curto:" Página 209: DictionaryEntry referido como DictionaryEntriesNa página 209, lê o quarto ponto de marca:"Enumerar dicionários e saber como utilizar DictionaryEntries." Deverá ler: "Enumerar dicionários e saber como utilizar DictionaryEntry." Página 210: Parênteses utilizada incorrectamente no exemplo de código VBNa página 210, lê o exemplo de código VB em segundo parágrafo:Deverá ler: 213 De página: Método incorrecto utilizado para suportar a classeNa página 213, in a quarta do primeiro parágrafo em "Noções sobre igualdade" frase:"Esta classe suporta o método GetHash, que devolve um número inteiro que identifica o objecto." Deverá ler: "Esta classe suporta o método GetHashCode, que devolve um número inteiro que identifica o objecto." Página 213: Valores de propriedade referida como a propriedade valorNa página 213, a última frase:"Também pode iterar sobre os valores por iteração a propriedade valor em vez disso, tal como neste exemplo:" Deverá ler: "Também pode iterar sobre os valores por iteração a propriedade de valores em vez disso, tal como neste exemplo:" Página 214: Exemplo de código falta o comentárioNa página 214, no segundo exemplo de código VB linha de código 6ª falta um comentário.Alterar: Para: Página 215: Exemplo de código contém um erro de sintaxeNa página 215, linha 2 do exemplo de código VB segundo contém um erro de sintaxe.Alterar: Para: 216 De página: Descrição incorrecta da funcionalidade HashtableNa página 216, a segunda na página frase:"Esta situação é proveniência capacidade ?s Hashtable para fornecer uma classe que calcula a igualdade." Deverá ler: "Esta situação é proveniência capacidade ?s Hashtable para utilizar uma classe que calcula a igualdade." Página 216: Interfaces referido como classesNa página 216, leia as primeiras duas frases do segundo parágrafo:"A classe Hashtable suporta um construtor que pode aceitar uma instância da classe IEqualityComparer como um argumento. Muito semelhante a classe IComparer mostrada na Lição 1 permitido para ordenar conjuntos, a interface IEqualityComparer suporta dois métodos: GetHashCode e é igual A. " Deverá ler: "A classe Hashtable suporta um construtor que pode aceitar uma instância de interface IEqualityComparer, tal como um argumento. Muito semelhante a interface IComparer mostrada na Lição 1 permitido para ordenar conjuntos, a interface IEqualityComparer suporta dois métodos: GetHashCode e é igual A. " 227 De página: Código de VB incorrecta utilizado na BitArray exemploNa página 227, lê a segunda parte do código VB no passo 4:Deverá ler: Página 228: Incorrecta C# código utilizado na BitArray exemploNa página 228: o C# código de exemplo na parte superior de leituras de página:Deverá ler: Página 228: Bits quatro referenciados em vez de três bitsNa página 228, a segunda do terceiro parágrafo de como a utilizar um BitVector32 de máscaras de bits secção frase:"Assumem que tem de definir o valor dos primeiros quatro bits em alguns 32-bit inteiro." Deverá ler: "Assumem que tem de definir o valor dos primeiros três bits em alguns 32-bit inteiro." Lê a primeira frase do passo 4 da secção: "Repita os passos 1 a 3 até ter quatro bits máscaras." Deverá ler: "Repita os passos 1 a 3 até ter três bits máscaras." Página 230: Bits designado por bytesNa página 230, o oitavo do segundo parágrafo na secção Noções sobre matemática binário frase:"Para se um byte não assinado tiver 8 bytes preenchidos, pode ser representado por esta equação: 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255." Deverá ler: "Para se um byte não assinado tiver 8 bits preenchidos, pode ser representado por esta equação: 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255." Página 230: Não assinados deve ser assinadoNa página 230, a quarta frase do último parágrafo na secção Noções sobre matemática binário refere-se para um inteiro em vez de um número inteiro assinado.Alteração: "Complicating assuntos maior é o facto do BitVector32 funciona na realidade com um número inteiro não assinado, pelo que o último dígito é realmente ?(2^31), que trata o intervalo negativo de um 32-bit inteiro assinado." Para: "Complicating assuntos maior é o facto do BitVector32 funciona na realidade com um número inteiro assinado, pelo que o último dígito é realmente ?(2^31), que trata o intervalo negativo de um 32-bit inteiro assinado." Página 232: 98314 deve ser 196634 e 00000000000000011000000000001010 deve ser 00000000000000110000000000011010Na página 232, o valor da variável BitVector32 está incorrecto.Alteração: " Conseguiu efectuar operações matemáticas para calcular que pode armazenar o número 98314 192, 1 e 10, mas o BitVector32 pode fazê-lo para si com muito menos trabalho." Para: " Conseguiu efectuar operações matemáticas para calcular que pode armazenar o número 196634 192, 1 e 10, mas o BitVector32 pode fazê-lo para si com muito menos trabalho." Página 234: CollectionsUtil referido como CollectionUtilNa página 234, a terceira da secção Case-Insensitive colecções frase:"Como se trata de uma utilização comum, o .NET Framework tem uma classe CollectionUtil que suporte criar Hashtable e SortedList objectos sensível a maiúsculas e minúsculas." Deverá ler: "Como se trata de uma utilização comum, o .NET Framework tem uma classe CollectionsUtil que suporte criar Hashtable e SortedList objectos sensível a maiúsculas e minúsculas." Página 235: CollectionsUtil referido como CollectionUtilNa página 235, o sexto do segundo parágrafo frase:"Ao contrário das colecções não sensível a maiúsculas e minúsculas, CollectionUtil métodos não podem ser utilizados para criar as colecções." Deverá ler: "Ao contrário das colecções não sensível a maiúsculas e minúsculas, CollectionsUtil métodos não podem ser utilizados para criar as colecções." 235 De página: Cadeia incorrecta utilizada no exemplo de código VB e C#Na página 235, no exemplo de código VB e C# lê:Deverá ler: Página 237: "++ x"deve ser"x ++"Na página 237, linha de exemplo de código C# última Quinta está incorrecta.Alterar: Para: Página 238: Utilização incorrecta do nome da classe ListCollection no passo 3Na página 238, lê passo 3:"Método principal do projecto, criar uma nova instância do ListCollection classe, especificar sensível a maiúsculas e minúsculas e cultura invariável." Deverá ler: "Método principal do projecto, criar uma nova instância do ListDictionary classe, especificar sensível a maiúsculas e minúsculas e cultura invariável." Página 239: CollectionsUtil referido como CollectionUtilNa página 239, lê o terceiro ponto de marca:"Pode criar versões não sensível a maiúsculas e minúsculas Hashtable e SortedList objectos utilizando a classe CollectionUtil." Deverá ler: "Pode criar versões não sensível a maiúsculas e minúsculas Hashtable e SortedList objectos utilizando a classe CollectionsUtil." Página 246: KeyValuePair referido como NameValuePairNa página 246, lê a última entrada na página 4 a 20 tabela:"DictionaryEntry NameValuePair <>" Deverá ler: "DictionaryEntry KeyValuePair <>" Página 249: Classe designado por objectoNa página 249, a frase após o primeiro código exemplo lê:"Esta abordagem é muito mais fácil de escrever um objecto de comparação todo para comparações raramente utilizados." Deverá ler: "Esta abordagem é muito mais fácil do que escrever uma classe de comparação toda para comparações raramente utilizados." Página 249: ReverseIntComparison deve ser AddressOf ReverseIntComparisonNa página 249, o primeiro exemplo de código VB está incorrecto.Alterar: Para: Página 250: Dicionário referida como uma filaNa página 250, a quarta da secção de classe de dicionário genérico frase:"Para utilizar um tipo de fila genérico, pode seguir estes passos:" Deverá ler: "Para utilizar um tipo genérico do dicionário, pode seguir estes passos:" Página 250: Primeira linha do exemplo de código VB incorrectoNa página 250, lê a primeira linha de exemplo de código VB:Deverá ler: Página 254: KeyValuePair referido como NameValuePairNa página 254, a segunda do parágrafo seguinte tabela 4-23 frase:"Este comportamento é ao contrário do tipo de dicionário genérico, onde o enumerador devolve um objecto NameValuePair genérico". Deverá ler: "Este comportamento é ao contrário do tipo de dicionário genérico, onde o enumerador devolve um objecto KeyValuePair genérico". Página 258: Classe ReadOnlyCollectionBase referido como ReadOnlyCollection baseNa página 258, a primeira do quinto parágrafo na secção escrita o próprio colecções frase:"Ao contrário as classes base CollectionBase e ReadOnlyCollection, o DictionaryBase implementa as interfaces IDictionary IEnumerable e ICollection." Deverá ler: "Ao contrário das classes CollectionBase e ReadOnlyCollectionBase, o DictionaryBase implementa as interfaces IDictionary IEnumerable e ICollection." Página 259: O termo "estado abreviaturas" utilizados em vez de "chamados códigos"Na página 259, lê a primeira frase no Exercício 1:"Neste exercício, pode criar um dicionário genérico para conter as abreviaturas de estado com os respectivos nomes completos." Deverá ler: "Neste exercício, pode criar um dicionário genérico para conter chamados códigos com os respectivos nomes completos." Páginas 280, 281: "XML" utilizado em vez de "SOAP"Nas páginas 280 e 281, lê o título da tabela 5-1:"Attributes serialização de XML" Deverá ler: "Attributes de serialização SOAP" 286 De página: Falta de SoapFormatterNa página 286, resposta A pergunta 1 omite uma referência a SoapFormatter.Alteração: "R. uma instância de BinaryFormatter" Para: "R. uma instância de BinaryFormatter ou SoapFormatter" 287 De página: anular a serializado local utilizado de serializaçãoNa página 287, pergunta 4 lê:"Qual das seguintes interfaces devem implementar que lhe permite executar o método depois de uma instância da classe for serializada?" Deverá ler: "Qual das seguintes interfaces devem implementar que lhe permite executar o método depois de uma instância da classe é anular a serialização?" 292 De página: Linha de quantidade no código de exemplo em faltaNa página 292, lê o código de exemplo para serialização de uma classe no meio da página:Deverá ler: Página 301: O XML deve ser XMLNa página 301, revisão seis pergunta respostas utilizar XML em vez de XML.As respostas a pergunta 2, altere: "B. XMLType C. XMLElement D. XMLAttribute" Para: "B. XmlType C. XmlElement D. XmlAttribute" As respostas a perguntas 4, altere: XMLType de r." B. XMLIgnore C. XMLElement D. XMLAttribute" Para: XmlType de r." B. XmlIgnore C. XmlElement D. XmlAttribute" Página 305: OnDeserialized deve ser OnDeserializingNa página 305, a última frase referencia OnDeserialized em vez de OnDeserializing.Alteração: "Aplicar o atributo OnDeserialized no método que deve ser executada durante este evento." Para: "Aplicar o atributo OnDeserializing no método que deve ser executada durante este evento." Página 306: OnDeserializing deve ser OnDeserializedNa página 306, faz referência a frase última da secção Deserialized OnDeserializing em vez de OnDeserialized.Alteração: "Aplicar o atributo OnDeserializing no método que deve ser executada durante este evento." Para: "Aplicar o atributo OnDeserialized no método que deve ser executada durante este evento." Página 343: Image.FromFile shoudl ser novo mapa de bitsNa página 343, o segundo exemplo de código VB utiliza Image.FromFile em vez de novo mapa de bits.Alteração: "Dim B como mapa de bits = Image.FromFile ("C:\windows\gone fishing.bmp")" Para: "Dim B como mapa de bits = novo mapa de bits ("C:\windows\gone fishing.bmp")" Página 370: ThreadState.WaitJoinSleep referenciado em vez de ThreadState.WaitSleepJoinNa página 370, lê a descrição da interrupção na tabela 7-2:"Confere um ThreadInterruptedException quando um thread está no estado de bloqueio (ThreadState.WaitJoinSleep). Se o thread nunca bloqueia, a interrupção nunca acontece." Deverá ler: "Confere um ThreadInterruptedException quando um thread está no estado de bloqueio (ThreadState.WaitSleepJoin). Se o thread nunca bloqueia, a interrupção nunca acontece." Página 373: Thread referenciado no lugar do valorNa página 373, a última do primeiro parágrafo frase:"Mais tarde no, será utilizada neste thread para ver o que está a ser desenvolvida qual thread." Deverá ler: "Mais tarde no, utilizaremos este valor para ver o que está a ser desenvolvida qual thread." Correcção 373 de página: Nome de método e saída expressãoNa página 373, a primeira e segunda do parágrafo abaixo do primeiro conjunto de exemplos de código frase:"Quando é chamado o método Start, o método SomeWork denomina-se num thread novo e o thread executa até o método completa. Neste exemplo, os nossos SimpleWork método escreve a expressão "No thread" e mostra a propriedade ManagedThreadId." Deverá ler: "Quando é chamado o método Start, o método SimpleWork denomina-se num thread novo e o thread executa até o método completa. Neste exemplo, os nossos SimpleWork método escreve a expressão "Thread #" e mostra a propriedade ManagedThreadId." Página 377: ThreadStart delegado referido como StartThreadNa página 377, leia as primeiras três frases dos dados passar à secção de threads:"Em cada um dos exemplos anteriores, estamos foram utilizar o delegado StartThread, que utiliza não parâmetros. Utilização mundo real mais de threading, terá de passar informações a threads individuais. Para efectuar este procedimento, terá de utilizar um novo delegado chamado ParameterizedStartThread." Deverá ler: "Em cada um dos exemplos anteriores, estamos foram utilizar o delegado ThreadStart, que utiliza não parâmetros. Utilização mundo real mais de threading, terá de passar informações a threads individuais. Para efectuar este procedimento, terá de utilizar um novo delegado chamado ParameterizedThreadStart." Página 378: Quebra de linha em falta no exemplo de códigoNa página 378, lê a primeira linha do exemplo de código:Deverá ler: Página 378: Código incorrecto instrução exemplo código C#Na página 378, lê o exemplo de código C#:Deverá ler: Página 380: Domínio referenciado em vez de estadoNa página 380, lê a primeira frase da página:"Para resolver o problema de deixar objectos ou o domínio de aplicação num domínio inconsistente, a classe de thread tem dois métodos estáticos importantes: BeginCriticalRegion e EndCriticalRegion." Deverá ler: "Para resolver o problema de deixar objectos ou o domínio de aplicação num estado inconsistente, a classe de thread tem dois métodos estáticos importantes: BeginCriticalRegion e EndCriticalRegion." Página 383: Incluir referenciada em vez de utilizar a instrução de declaraçãoNa página 383, lê o passo 3:"Na nova classe, adicione uma instrução de inclusão (ou a declaração de importação de Visual Basic) ao espaço de nomes System.Threading." Deverá ler: "Na nova classe, adicione um utilizando instrução (ou a declaração de importação de Visual Basic) ao espaço de nomes System.Threading." Página 383: StartThread referenciado em vez de ThreadStartNa página 383, lê o passo 7:"Voltar atrás para o método principal e criar um novo delegado StartThread que aponta para o método de contagem." Deverá ler: "Voltar atrás para o método principal e criar um novo delegado ThreadStart que aponta para o método de contagem." Página 387: Classe de bloqueio referenciado em vez da classe InterlockedNa página 387, lê a primeira marca:"Utilizar a classe de bloqueio para efectuar operações atómicas." Deverá ler: "Utilizar a classe Interlocked para executar operações atómicas." Página 389: Leitura da memória referido como ler na memóriaNa página 389, a segunda do anterior parágrafo Figura 7-2 frase:"Tal como mostrado na Figura 7-2, dois threads foi cada ler os valores para a memória e actualizá-los com o mesmo valor actualizado." Deverá ler: "Tal como mostrado na Figura 7-2, dois threads podem cada ler os valores da memória e ao mesmo tempo actualizá-los com o mesmo valor actualizado." Página 390: AddCount método referenciado em vez do método UpdateCountNa página 390, lê a primeira frase depois tabela 7-7:"Pode alterar os nossos AddCount método classe Interlocked para resolver o problema thread seguinte forma:" Deverá ler: "Pode alterar os nossos UpdateCount método classe Interlocked para resolver o problema thread seguinte forma:" Página 394: Exemplo de código C# está incorrectoNa página 394, o exemplo de código C# incorrectamente bloqueia numa instância pública onde deve ser privada, também utiliza um operador incorrecto na variável _evenCount.Alterar: Para: Página 396: Thread.Sleep método necessário no exemplo de códigoNa página 396, o exemplo de código C# falta o método Thread.Sleep.Alterar: Para: classe Página 397: AddressOf em falta do código de exemploNa página 397, as linhas de terceira e quarta do exemplo de código do Visual Basic estão incorrectas.Alterar: Para: Página 407: EventWaitHandles referenciado em vez de EventWaitHandleNa página 407, lê a terceira frase do parágrafo final:"Quando criar ou abrir um evento nomeado, é necessário lidar com EventWaitHandles em vez das classes AutoResetEvent e ManualResetEvent." Deverá ler: "Quando criar ou abrir um evento nomeado, é necessário lidar com EventWaitHandle em vez das classes AutoResetEvent e ManualResetEvent." Página 410: Classe de bloqueio referenciado em vez da classe InterlockedNa página 410, lê a primeira marca:"Para executar operações matemáticas atómico, utilize a classe de bloqueio. Deverá ler: "Para executar operações matemáticas atómico, utilize a classe Interlocked." Página 414: Bytes escritos referenciado em vez de bytes lidosNa página 414, lê a primeira frase do primeiro parágrafo:"As diferenças incluem que devolve um IAsyncResult em vez do número de bytes escritos e que são adicionados dois parâmetros para a assinatura de método para suportar a APM." Deverá ler: "As diferenças incluem que devolve um IAsyncResult em vez do número de bytes lidos e que são adicionados dois parâmetros para a assinatura de método para suportar a APM." Lê a primeira frase após o segundo exemplo de código: "No fim da operação, chamará o EndRead com o objecto IAsyncResult e irá devolver os bytes escritos." Deverá ler: "No fim da operação, chamará o EndRead com o objecto IAsyncResult e irá devolver que os bytes lidos." Página 415: strm.Read método não é necessárioNa página 415, a primeira linha em C# código exemplo no "/ / efectuar a chamada assíncrona" comentário não é necessário.Remova a seguinte linha de código: Página 417: AddressOf em falta do código de exemploNa página 417, a linha 10 no exemplo de código VB falta AddressOf.Alteração: Para: Página 419: Eventos referenciado em vez da classeNa página 419, a terceira na caixa de processamento de excepções Windows formulários aplicação frase:"Isto ser feito através do registo para o evento ThreadException no acontecimento de aplicações." Deverá ler: "Isto ser feito através do registo para o evento ThreadException na classe de aplicação." Página 421: QueueWorkItem referenciado em vez de QueueUserWorkItemNa página 421, lê a primeira frase da página:"Em vez de criar um novo thread e controlá-lo, pode utilizamos o ThreadPool para efectuar este trabalho utilizando o método QueueWorkItem:" Deverá ler: "Em vez de criar um novo thread e controlá-lo, pode utilizamos o ThreadPool para efectuar este trabalho utilizando o método de QueueUserWorkItem:" 421 De página: Parêntese de fecho extra incluído no exemplo de códigoNa página 421, lê o segundo exemplo de código:Deverá ler: Página 424: RegisterWaitHandle referenciado em vez de RegisterWaitForSingleObjectNa página 424, da terceira frase do ThreadPool e WaitHandle secção leituras:"É fazê-lo chamar ThreadPool.RegisterWaitHandle, conforme ilustrado no exemplo seguinte:" Deverá ler: "É fazê-lo chamar ThreadPool.RegisterWaitForSingleObject, conforme ilustrado no exemplo seguinte:" Página 429: Comportamento de execução de thread misrepresentedNa página 429, o último passo 8 frase:"Note que alguns dos itens de trabalho são executados em diferentes threads." Deverá ler: "Note que alguns dos itens de trabalho podem ser executadas em diferentes threads." Página 432: Caso cenário tópicos misrepresentedNa página 432, a primeira da secção cenário de caso de frase:"Nos seguintes cenários caso, irá liquidar o aprendeu sobre como utilizar serviços e domínios de aplicação." Deverá ler: "Nos seguintes cenários caso, irá liquidar o aprendeu sobre os tópicos neste capítulo." Página 438: Explicação do processo de trabalho do ASP.NET incorrectoNa página 438, a segunda frase no primeiro parágrafo contém inconsistências com o ASP.NET.Alteração: "Se 10 pessoas visitar um Web site ASP.NET simultaneamente, o ASP.NET vai criar um domínio de aplicações separados para cada utilizador." Para: "Um processo de trabalho do ASP.NET existirá um domínio de aplicação por web site. Os utilizadores do mesmo web site serão todas executada no contexto do mesmo domínio de aplicação." Página 454: Exemplos de código VB e C# contém uma linha desnecessária de códigoNa página 454, passo 3 do 1 º linha do VB e C# código é redundante e deve ser removido.Remover código VB: Remover código C#: Página 456: Resposta D da pergunta 3 parcialmente incorrectoNa página 456, lê respostas D da pergunta 3:"Crie uma instância da classe AppDomainSetup e, em seguida, defina a propriedade de base de aplicações. Passar o objecto AppDomainSetup para o Construtor de domínio de aplicação." Deverá ler: "Crie uma instância da classe AppDomainSetup e, em seguida, defina a propriedade de base de aplicações." Páginas 481-482: título incorrecto numa tabelaNas páginas 481 e 482 lê o título da tabela 9-1:"ConfigurationManager propriedades e métodos de" Deverá ler: "Configuração de propriedades e métodos de" Página 483: Configuração deverá ser ConfigurationManagerNa página 483, o título da tabela 9-2 está incorrecto.Alteração: "Métodos e propriedades de configuração tabela 9-2" Para: "Tabela 9-2 ConfigurationManager propriedades e métodos de" 490 De página: Exemplo de código incorrectoNa página 490, amostras thecode estão incorrectas.Alteração: Para: Está empenhada em fornecer informativos e precisos livros Microsoft Press. Todos os comentários e as correcções listadas acima estão prontas para inclusão no futuras impressões deste livro. Se tiver uma posterior impressão deste manual, já pode conter a maior parte ou todas as correcções acima. A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 935218
(http://support.microsoft.com/kb/935218/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo