Buscar

Aula 12 - Framework NET, C#, Visual Basic, ASP NET e Visual Studio

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 126 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 126 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 126 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 3 de 125 
O sual udio é njunto e rramentas que uxiliam na iação e 
software, desde lanejamento té esign da rface ráfica, codificação, 
teste, debugging, análise da qualidade e digo e erformance, implantação. 
Todas essas ferramentas são integradas e estão disponíveis na IDE (Integrated 
Development Environment) Visual Studio. 
 
Existem três versões o Visual Studio Community (gratuito), o Visual Studio 
Enterprise (pago) e o Visual Studio Code (gratuito, código fonte para MAC e 
Linux). 
 
O Visual Studio permite a criação de: 
1. apps e jogos para Windows, Android e iOS. 
2. websites e web services baseados em ASP.NET, JQuery, AngularJS, e outros 
frameworks. 
3. aplicações para plataformas e dispositivos diversos como Azure, Office, 
Sharepoint, entre outros. 
4. jogos e aplicações com uso intensivo de gráficos para diversos dispositivos 
Windows, incluindo o Xbox, com a utilização do DirectX. 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 4 de 125 
 
 
 Este é o famoso Visual Studio IDE (versão 2015). Nela podemos ver um projeto 
aberto, a solução “BGs Restaurant Guide”. 
 
Agora que você já foi apresentado a tela do Visual Studio, vamos falar um pouco 
mais de alguns itens destacados: 
 
• Visual Studio Team Services - a Team Explorer Window permite a 
navegação pelo controle de versão de código e dos itens de trabalho da 
equipe do projeto. 
• Open Solution - o Solution Explorer permite a navegação pelas pastas e 
arquivos do projeto. 
• Code Editor - Toda IDE possui essa área, que é onde você efetivamente 
escreve o código. 
 
Uma ferramenta que merece destaque é a ToolBox. A imagem abaixo mostra os 
Controles que você pode incluir no seu formulário apenas clicando e arrastando. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 5 de 125 
 
 
 
 
 
Digamos que você queira criar um formulário como o da figura a seguir, nesse 
caso o Visual Studio adicionará Controles na sua classe, eles são objetos como 
qualquer outro, porém já tem um padrão de desenho. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 6 de 125 
 
 
Para projetos que utilizam uma interface baseada em XAML, o designer padrão é 
o Blend. Ele é integrado ao Visual Studio. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 11 de 125 
 
A) como os elementos do código se relacionam uns com os outros e suas 
dependências. 
B) as bases de dados utilizadas pela aplicação. 
C) as conexões utilizadas pela aplicação para controle do firewall. 
D) as permissões de acesso dos usuários à aplicação. 
E) se a aplicação necessita realizar chamadas de baixo nível para controlar algum 
dispositivo de hardware. 
 
Comentários: 
 
O arquivo Manifest é um XML que descreve quais assemblies são necessários para 
que uma aplição execute. Veja um exemplo do arquivo Manifest: 
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
 
 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
 <application> 
 <!--This Id value indicates the application supports Windows Vista 
functionality --> 
 <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
 <!--This Id value indicates the application supports Windows 7 
functionality--> 
 <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> 
 <!--This Id value indicates the application supports Windows 8 
functionality--> 
 <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> 
 <!--This Id value indicates the application supports Windows 8.1 
functionality--> 
 <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> 
 </application> 
 </compatibility> 
 
 <assemblyIdentity type="win32" 
 name="myOrganization.myDivision.mySampleApp" 
 version="6.0.0.0" 
 processorArchitecture="x86" 
 publicKeyToken="0000000000000000" 
 /> 
 <dependency> 
 <dependentAssembly> 
 <assemblyIdentity type="win32" 
 name="Proseware.Research.SampleAssembly" 
 version="6.0.0.0" 
 processorArchitecture="X86" 
 publicKeyToken="0000000000000000" 
 language="*" 
 /> 
 </dependentAssembly> 
 </dependency> 
</assembly> 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 14 de 125 
é digitado, sugestões ao programador, como por exemplo tipos de dados e 
membros de classes e estruturas. Esse analisador é chamado 
 
A)TextMate. 
B)Lexical Analyzer. 
C)IntelliSense. 
D)Active Directory. 
E)ActiveSync. 
 
Comentários: 
 
 
Este é o famosos recurso de AutoComplete que nós desenvolvedores adoramos não 
é? O VisualStudio chamou essa ferramenta de IntelliSense. Veja um exemplo na 
figura abaixo. 
 
 
 
 
Gabarito: C 
 
 
11. (CESGRANRIO - 012 E - NALISTA DE GESTÃO CORPORATIVA - 
TECNOLOGIA DA INFORMAÇÃO) 
 
O Microsoft Visual Studio Team Foundation Server 2010 é a nova plataforma 
colaborativa da Microsoft. Essa plataforma pode ser utilizada em substituição ao 
sistema de controle de versão conhecido como 
 
A) Team Explorer Everywhere 
B) Work Item Tracking 
C) Application Lifecycle Management 
D) Visual SourceSafe 
E) Development Platform Support 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 15 de 125 
 
Comentários: 
 
 
A antiga plataforma de colaboração era o Visual SourceSafe. Já o Team Explorer 
Everywhere é a ferramenta que permite a utilização do Team Foundation Server no 
Eclipse. Work Item Tracking faz parte do Visual Studio Team Services e permite que 
a equipe gerencie informações, bugs e tarefas para determinado item de trabalho. 
O Application Lifecycle Management (ALM), o Gerenciamento do Ciclo de Vida do 
Software compreende desde a governança, passando pelo desenvolvimento até a 
manutenção do produto; o Visual Studio é uma ferramenta de apoio não só ao 
desenvolvimento, mas também de todo o ALM. O Visual Studio também oferece o 
Development Platform Support, que auxilia o desenvolvedor com um ambiente 
preparado para a construção integrada da aplicação para todas as plataformas 
Microsoft (Desktop, Windows Store, Windows Phone, Cloud Services, etc). 
 
 
 
Gabarito: D 
 
 
12. (FGV - 016 BGE- A ÁLISE SISTEMAS ENVOLVIMENTO DE 
SISTEMAS) 
 
Com relação aos arquivos XAML do framework .NET produzidos pela IDE do 
Visual Studio durante o processo de desenvolvimento de uma aplicação móvel 
para o Windows Phone 8.1, analise as afirmativas a seguir: 
 
I. Um arquivo XAML deve ter mais de um elemento raiz. 
II. Window, Page, ResourceDictionary e Application são elementos do tipo raiz. 
III. O namespace padrão do WPF é o 
http://schemas.microsoft.com/winfx/2006/xaml/presentation. 
 
Está correto somente oque se afirma em: 
A) I 
B) II 
C) I e II 
D) I e III 
E) II e III 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 17 de 125 
 NHIBERNATE 
 
 
 
Galera, vamos entrar no mundo .NET? Mais especificamente vamos apresentar hoje 
um dos frameworks mais utilizados para mapeamento objeto relacional em 
aplicações .NET: o NHibernate! Esse nome nos lembra alguma coisa, pessoal?? 
Claro, né! O bom e velho Hibernate, implementação da especificação Java 
Persistence API deu nome ao seu primo, versão Microsoft. 
 
Pois o NHibernate é bem isso mesmo, um Hibernate para .Net. Com ele podemos 
fazer o mapeamento entre nossas classes .NET de entidade para bancos de dados 
(ou outras formas de armazenamento), facilitando bastante a camada de acesso a 
dados. O projeto do NHibernate começou em 2003 pelo desenvolvedor Paul 
Hatcher, que teve ajuda posterior de Mike Doerfler e Sergei Koshcheyev para 
tornar-se um produto robusto que, hoje, é utilizado por muitos desenvolvedores 
.NET. NHibernate é um projeto de código aberto e pode ser encontrado para ser 
baixado e instalado no site do SourceForge. 
 
Com o NHibernate podemos persistir objetos numa base de dados e carregá-los a 
partir de um SGBD. O NHibernate automaticamente traduz a linguagem .NET, 
orientada a objetos, para uma linguagem que o banco de dados entende. Ou seja, 
galera, ele gera o código SQL necessário para inserir, atualizar, remover e carregar 
dados de um (ou vários) Sistemas Gerenciadores de Bandos de Dados (SGBDs). O 
NHibernate suporta muitos tipos de SGBDs, incluindo Oracle, SQL Server, MySQL, 
PostgreSQL, SyBase. Esse mapeamento entre objetos e dados dos bancos de 
dados é chamado de mapeamento objeto-relacional. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 18 de 125 
O mapeamento é responsável por definir qual classe é mapeada para qual tabela, 
e qual propriedade da classe é mapeada para qual coluna da tabela. A partir 
dessas definições o NHibernate pode operar nessa tradução e criar os comandos 
SQL necessários para realizarmos os acessos à camada de persistência. As formas 
mais comuns de realizar esse mapeamento são a partir de documentos XML ou de 
definições no próprio código das classes e seus atributos. Existem algumas 
ferramentas que realizam esse mapeamento de forma automática, como é o caso 
do Fluent NHibernate (http://fluentnhibernate.org). 
 
Galera, para usar o NHibernate nas aplicações .NET, temos que seguir os passos: 
• Baixar e instalar o NHibernate (é mesmo, professor, não diga! :P) 
• Referenciar os binários no NHibernate no projeto .NET (NHibernate.dll) 
• Criar os arquivos de classes de entidades (C#) 
• Criar os arquivos de mapeamento (ou realizando mapeamento no código) 
• Configurar uma SessionFactory 
 
Vamos a um exemplo de criação de classe, com uma respectiva tabela no banco 
de dados, e seu mapeamento objeto-relacional. A classe “Banda” é a segue: 
 
public class Banda { 
public virtual Guid Id { get; set; } // ID da banda 
public virtual string Nome { get; set; } // Nome da banda 
public virtual IList<Musico> Integrantes { get; set; } // Integrantes da banda 
} 
 
Temos que a classe possui dois atributos, tipo Guid e Nome, bem como uma 
coleção de objetos da classe Musico. O mapeamento da classe para a tabela 
“BANDA” é descrito no arquivo “banda.hbm.xml” e teria o seguinte código: 
 
】スxml version『テÜカ¿ト encoding『テutf-êト ス+ 
<hibernate-mapping xmlns『テurnオnhibernate-mapping-äカäト + 
 】class name『テBandaト table『テBANDAト+ 
 】id name『テIdト column『テIDト type『テSystemカGuidト マ+ 
 】property name『テNomeト column『テNOMEト type『テSystemカStringト マ+ 
 】set name『テIntegrantesト table『テMUSICOト lazy『テtrueト+ 
 】key column『テMUSICOIDト マ+ 
 <one-to-many class『テMusicoト マ+ 
 </set> 
</class> 
</hibernate-mapping> 
 
Vejam que o mapeamento do músico é do tipo one-to-many e com as restrições 
de um conjunto, ou seja, não se pode repetir os músicos. A tabela abaixo 
apresenta todos os tipos de mapeamento de como devem ser armazenadas as 
coleções no NHibernate: 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 20 de 125 
Na maioria dos casos, para usar o NHibernate, basta que o programa crie uma só 
configuração, crie somente uma SessionFactory e, a partir daí, utilize objetos da 
classe Session para realizar toda a persistência dos objetos do programa. 
 
Vamos à classe que realiza a configuração, cria a SessionFactory e retorna objeto 
da classe Session para ser usada na aplicação: 
 
using NHibernate; 
using NHibernate.Cfg; 
 
namespace NHibernate.CadastroBandas.AcessoDados { //Projeto e pacote 
 
 public class NHibernateBase { 
 private static Configuration Configuration { get; set; } 
 protected static ISessionFactory SessionFactory { get; set; } 
 private static ISession session = null; 
 private static IStatelessSession statelessSession = null; 
 
 public static Configuration ConfigureNHibernate(string assembly) { 
 Configuration = new Configuration(); 
 // Busca todas as informações de configuração e arquivos de mapeamento 
 Configuration.AddAssembly(assembly); 
 return Configuration; 
 } 
 
 // Executado somente uma vez no incio do programa! 
 public void Initialize(string assembly) { 
 Configuration = ConfigureNHibernate(assembly); 
 SessionFactory = Configuration.BuildSessionFactory(); 
 } 
 
 // Define classe que implemente ISession e retorna uma Sessao para ser usada 
 // para persistir os objetos 
 public static ISession Session { 
 get { 
 if (session == null) { 
 session = SessionFactory.OpenSession(); 
 } 
 
 return session; 
 } 
 } 
 } 
} 
 
Finalmente, galerinha, vamos fazer uma consulta utilizando HQL (Hibernate Query 
Language), que é uma espécie de Object Query Language, que nada mais é que 
um SQL para manipular objetos. 
 
public IList GetBandas () { 
 using (ITransaction transaction = Session.BeginTransaction()) { 
 IQuery query = Session.CreateQuery 
 ルテselect Idウ Nome from Banda order by Nomeトレエ 
 return query.List(); 
 } 
} 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 21 de 125 
A consulta traz todas as bandas, com os respectivos ids. Vejam que utilizamos 
objeto de Session para criar uma consulta da interface IQuery, dentro de uma 
transação. 
 
Pessoal, isso era o que tínhamos para mostrar para vocês sobre NHibernate! 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 22 de 125 
 NTITY FRAMEWORK 
 
 
 
Galera, vamos ver uma das alternativas para utilizar mapeamento objeto-relacional 
no mundo .NET? Mais especificamente vamos apresentar o Entity Framework 
 
Entity Framework é uma espécie de Hibernate (e alternativa ao NHibernate) da 
Microsoft que permite que o desenvolvedor trabalhar com dados relacionais 
(bancos de dados relacionais) como se fossem conjunto de classes e objetos. Ele 
consegue eliminar muito do código “baixo nível” no acesso a bases de dados, 
principalmente por deixar transparente o uso de objetos ADO.NET (ActiveX Data 
Objects) para acesso aos dados. O Entity Framework, assim como todo framework 
objeto-relacional que se preze, facilita muito a manipulação de dados persistidos 
em Sistemas Gerenciadoresde Bancos de Dados (SGBDs), e cria uma camada de 
acesso simples de utilizar. 
 
A primeira versão do Entity Framework foi a 3.5 e foi distribuída junto do.NET 
Framework 3.5 SP1 e Visual Studio 2008 SP1. 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 23 de 125 
Galera, esse é um exemplo de mapeamento feito pelo código: 
 
[Table("ToDo")] // Table name 
public class Banda 
{ 
 [Key] // Primary key 
 public int Id { get; set; } 
 
 [Column("NOME_BANDA", TypeName="ntext")] 
 public string Nome { get; set; } 
 
 [Column("EH_DE_ROCK", TypeName="bit")] 
 public bool IsRockNaVeia { get; set; } 
} 
 
O mapeamento, portanto, é feito por meio das anotações entre “[]”. Cada atributo 
é mapeado para uma coluna da tabela correspondente à classe. Mas para 
configurar o banco, precisamos de uma string de conexão: 
 
public partial class BandaDBContext : DbContext 
{ 
 public BandaDBContext() 
 : base("name=BandaConnectionString") 
 { 
 } 
 
 public DbSet<Banda> Bandas { get; set; } 
} 
 
Legal, professor, e como faço para buscar todas as bandas do banco de dados? 
Padawan, o código é esse que segue (bem facinho!!): 
 
using(BandaDBContext db = new BandaDBContext()) 
{ 
 IEnumerable<Banda> bandas = db.Bandas; 
} 
 
Galera, pra finalizar, temos que ter em mente que o Entity Framework roda por 
cima do ADO.NET, que já é uma baita biblioteca que define muitas formas de 
acessos a fontes de dados diversas. A ideia do Entity é realizar esse mapeamento 
objeto-relacional e facilitar a codificação. Assim, temos que a arquitetura de uma 
aplicação que usa o Entity Framework é mais ou menos assim: 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 24 de 125 
 
Figura 1 - Fonte - Mastering Entity Framework (Rahul Rajat Singh) 
 
Era isso, galerinha! Infelizmente não encontramos questões de concursos, mas se 
acharem estamos aqui para tirar as dúvidas!! 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 25 de 125 
 V CRIPT 
 
 
 
Galera, vamos conhecer uma das linguagens de script mais utilizadas no mundo: 
VBScript 
 
O VBScript é conhecido por esse nome, mas ele se chama Microsoft Visual Basic 
Scripting Edition, e faz parte da família Visual Basic, que inclui o Microsoft Visual 
Basic Development System (the retail version of Visual Basic in its Enterprise, 
Professional, and Learning Editions) and Visual Basic for Applications (the language 
component of Visual Basic, which is included in the individual applications within 
Microsoft Office and Microsoft Project, as well as in a host of third-party 
applications). 
 
VBScript is, for the most part, a subset of the Visual Basic for Applications 
programming language. It was developed so that the millions of Visual Basic 
developers could leverage their knowledge of VB/VBA in Internet scripting. One of 
the strengths of VBScript is that it uses the same familiar and easy syntax that has 
made VBA so popular as a programming language, making it very easy to learn for 
those who have some Visual Basic background. In addition, VBScript is fairly easy 
to learn for those without any programming experience. 
 
Ironically, VBScript started as a client-side scripting language to create interactive 
web pages, but it had a major liability: it was and is not supported by Netscape 
Navigator. Instead, the two major web browsers on the market, Navigator and 
Microsoft Internet Explorer, both supported a common scripting language, 
ECMAScript, that became the de facto standard and is now the de jure standard 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 26 de 125 
for client-side scripting. (Netscape's implementation of ECMAScript is named 
JavaScript, while Microsoft's implementation is named JScript.) Despite its failure in 
this area, however, VBScript rapidly became the major scripting language in three 
other areas: 
• Active Server Pages (ASP) applications 
• Outlook forms 
• Windows Script Host (WSH) scripts 
 
Differences Between VBScript and VBA 
VBScript is a subset of the Visual Basic for Applications language. There are several 
features that VB and VBA programmers have become accustomed to that are not 
present in VBScript. This does not lessen the usability of VBScript: it only serves to 
reinforce that VBScript is meant for scripting and not full-blown client/server 
application development or COM component development. Let's take a look at a 
few of the larger differences between VBScript and VBA: 
 
VBScript is a weakly typed language. 
Unlike Visual Basic and Visual Basic for Applications, in which the developer can 
define the data type of a variable in advance, all variables in VBScript are variants. 
There are types to handle different types of data; you can use these as you would 
the traditional data types in Visual Basic. 
 
VBScript does not support early binding. 
Because variables are untyped and code is not compiled, all external objects 
instantiated in VBScript code are necessarily late-bound. This has a number of 
implications. First, late binding typically entails a substantial performance penalty in 
comparison to early binding. Second, while the properties and methods of early-
bound objects can be examined in Visual Basic or hosted VBA environments using 
the Object Browser, this is not the case with late-bound objects. Finally, the help 
facilities available for early-bound objects in VB and VBA (like Auto List Members 
and Auto Quick Info) are not available, making syntax errors more likely and ready 
access to good documentation all the more necessary. 
 
VBScript does not support named arguments. 
VBA supports both positional and named arguments for most functions and 
procedures. For example, the VBA MsgBox function can be called using positional 
arguments as follows: 
 
lResult = MsgBox("Delete this file?", _ 
 vbYesNo Or vbQuestion Or vbDefaultButton2, _ 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 27 de 125 
 "Confirm File Deletion") 
A method call using named arguments takes the following form: 
 
lResult = MsgBox(Prompt:="Delete this file?", _ 
 Title:="Confirm File Deletion", _ 
 Buttons:=vbYesNo Or vbQuestion Or vbDefaultButton2) 
Note that while positional arguments must occur in a predefined sequence, named 
arguments need not. At least in our experience, more advanced programmers 
tend to prefer positional syntax, while more novice programmers tend to prefer 
named arguments. 
 
Given all of this, it is unfortunate that VBScript supports only positional arguments. 
 
VBScript does not have an IDE. 
There is no integrated development environment for VBScript that parallels the IDE 
for Visual Basic and Visual Basic for Applications. Development tools are available 
for all of the environments in which VBScript is used, but all fall short of the power, 
simplicity, elegance, and ease of use of the VB/VBA IDE.Typically, web developers 
have had their own environments for writing their code. VBScript for the Web, 
whether it is client-side or server-side, is embedded inside of a <SCRIPT> tag. This 
allows web developers to continue to use their tool of choice even when using 
VBScript; a wide array of tools for web script developmentare available. Scripts for 
WSH can be created with the use of a simple text editor like Windows Notepad. 
Outlook comes with its rudimentary IDE (a glorified version of Notepad) for 
attaching code to Outlook forms. 
 
Functions and Procedures Functions and procedures (or subroutines) are central 
to modern programming. Dividing our script into subroutines helps us to 
maintain and write programs by segregating related code into smaller, 
manageable sections. It also helps to reduce the number of lines of code we 
have to write by allowing us to reuse the same subroutine or function many 
times in different situations and from different parts of the program. In this 
section, we'll examine the different types of subroutines, how and why they 
are used, and how using subroutines helps to optimize code.Defining 
Subroutines: The Sub . . . End Sub Construct The Sub...End Sub construct is 
used to define a subroutine; that is, a procedure that performs some 
operation but does not return a value to its calling program. Blocks of code 
defined as subroutines with the Sub...End 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 28 de 125 
 Sub cmdButton1_OnClick Call ShowAlertBox(cmdButton1.Value) End 
Sub Sub cmdButton2_OnClick ShowAlertBox cmdButton2.Value End Sub Sub 
cmdButton3_OnClick ShowAlertBox cmdButton3.Value End Sub Sub 
ShowAlertBox(strButtonValue) dim strMessage strMessage = "This is to let you 
know" & vbCrLf strMessage = strMessage & "you just pressed the button" & 
vbCrLf strMessage = strMessage & "marked " & strButtonValue Alert 
strMessage End Sub 
 
Galera, esse é um exemplo de mapeamento feito pelo código: 
 
[Table("ToDo")] // Table name 
public class Banda 
{ 
 [Key] // Primary key 
 public int Id { get; set; } 
 
 [Column("NOME_BANDA", TypeName="ntext")] 
 public string Nome { get; set; } 
 
 [Column("EH_DE_ROCK", TypeName="bit")] 
 public bool IsRockNaVeia { get; set; } 
} 
 
O mapeamento, portanto, é feito por meio das anotações entre “[]”. Cada atributo 
é mapeado para uma coluna da tabela correspondente à classe. Mas para 
configurar o banco, precisamos de uma string de conexão: 
 
public partial class BandaDBContext : DbContext 
{ 
 public BandaDBContext() 
 : base("name=BandaConnectionString") 
 { 
 } 
 
 public DbSet<Banda> Bandas { get; set; } 
} 
 
Legal, professor, e como faço para buscar todas as bandas do banco de dados? 
Padawan, o código é esse que segue (bem facinho!!): 
 
using(BandaDBContext db = new BandaDBContext()) 
{ 
 IEnumerable<Banda> bandas = db.Bandas; 
} 
 
Galera, pra finalizar, temos que ter em mente que o Entity Framework roda por 
cima do ADO.NET, que já é uma baita biblioteca que define muitas formas de 
acessos a fontes de dados diversas. A ideia do Entity é realizar esse mapeamento 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 29 de 125 
objeto-relacional e facilitar a codificação. Assim, temos que a arquitetura de uma 
aplicação que usa o Entity Framework é mais ou menos assim: 
 
 
Figura 2 - Fonte - Mastering Entity Framework (Rahul Rajat Singh) 
 
Era isso, galerinha! Infelizmente não encontramos questões de concursos, mas se 
acharem estamos aqui para tirar as dúvidas!! 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 30 de 125 
 V UAL IC 
 
 
 
Visual Basic 2015 is Microsoft’s latest incarnation of the enormously popular Visual 
Basic language, and it’s fundamentally different from the versions that came before 
it. Visual Basic is more powerful and more capable than ever before, and its 
features and functionality are on par with “higher-level” languages such as C++. 
One consequence of this newfound power is added complexity. Gone are the days 
when you could sit down with Visual Basic and the online Help and teach yourself 
what you needed to know to create a functional program. 
 
In the past, Visual Basic was an autonomous language. This has changed. Now, 
Visual Basic is part of a larger entity known as the .NET Framework. The .NET 
Framework encompasses all the .NET technology, including Visual Studio .NET (the 
suite of development tools) and the common language runtime (CLR), which is the 
set of files that make up the core of all .NET applications. You’ll learn about these 
items in more detail as you progress through this book. For now, realize that Visual 
Basic is one of many languages that exist within the Visual Studio family. Many 
other languages, such as C#, are also .NET languages, make use of the CLR, and 
are developed within Visual Studio. 
 
Visual Studio 2015 is a complete development environment, and it’s called the IDE 
(short for integrated development environment). The IDE is the design framework 
in which you build applications; every tool you need to create your Visual Basic 
projects is accessed from within the Visual Basic IDE. Again, Visual Studio 2015 
supports development using many different languages, Visual Basic being the most 
popular. The environment itself is not Visual Basic, but the language you use within 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 31 de 125 
Visual Studio 2015 is Visual Basic. To work with Visual Basic projects, you first start 
the Visual Studio 2015 IDE. 
 
Start Visual Studio 2015 now by choosing Microsoft Visual Basic 2015 Express 
Edition from the Start/Programs menu. If you are running the full retail version of 
Visual Studio, your shortcut may have a different name. In this case, locate the 
shortcut on the Start menu and click it once to start the Visual Studio 2015 IDE. 
 
As a Visual Basic 2015 developer, you need to understand the concepts and 
technology that empower your applications. Microsoft .NET is the technology that 
provides the infrastructure for building next-generation applications for the 
desktop, the web, and the cloud—that run on the most recent operating systems. 
Although covering every aspect of .NET is not possible, in this chapter you learn 
the basics of its architecture, as well as the Base Class Library and tools. This 
chapter also introduces important concepts and terminology that are used 
throughout the rest of the book. If you have already had experience with .NET, in 
this chapter you will learn about the revolutionary changes in how Microsoft is 
offering .NET today. 
 
 
Generally speaking, applications you develop need an execution environment that 
offers services, tools, and libraries. For many years, for applications built with 
Microsoft Visual Basic, the execution environment has been the Microsoft .NET 
Framework. In previous releases, the .NET Framework was a unique environment 
for building a variety of applications, including desktop applications, web 
applications, and apps for mobile devices. With the new release, Microsoft has 
taken some steps forward: It has kept the full .NET Framework, now in version 4.6, 
for desktop applications, and it has created .NET Core 5, a new open source, 
modular framework for creating cross-platform applications and Windows 10 
applications. Both frameworks share a number of major components, such as 
compilers, some libraries, and the garbage collector. Both frameworks are part of 
the new .NET vision called .NET 2015. Figure 1.1 showsa high-level diagram of .NET 
2015. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 32 de 125 
 
 
Actually, .NET 2015 is not a specific development platform. Rather, it is an umbrella 
for a group of platforms, a convenient way to highlight and summarize what is new 
in this release. This chapter provides information about both .NET Framework 4.6 
and .NET Core 5 to give you a more precise idea about new directions for 
developing using .NET. 
 
The Common Language RuntimeAs its name implies, the Common Language 
Runtime provides an infrastructure that is common to all.NET languages. This 
infrastructure is responsible for taking control of an application’s execution and 
manages tasks such as memory management, access to system resources, security 
services, and so on. This kind of common infrastructure bridges the gap that exists 
between different Win32 programming languages because all .NET languages 
have the same possibilities. Moreover, the CLR enables applications to run inside a 
managed environment. The word managed is fundamental in the .NET 
development, as explained in the next section. 
 
 
Writing Managed CodeWhen talking about Visual Basic 2015 development and, 
more generally, about .NET development, you often hear about writing managed 
code. Before the first version of .NET (or still with non-.NET development 
environments), the developer was the only person responsible for interacting with 
system resources and the operating system. The developer had to consider tasks 
such as taking care of accessing parts of the operating system and managing 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 33 de 125 
memory allocation for objects. In other words, the applications could interact 
directly with the system. However, as you can easily understand, this approach has 
some big limitations both because of security issues and because damages could 
be dangerous. The .NET Framework provides instead a managed environment. 
This means that the application communicates with the .NET Framework instead of 
with the operating system, and the .NET Runtime is responsible for managing the 
application execution, including memory management, resource management, 
and access to system resources. For example, the Common Language Runtime can 
prevent an application from accessing particular system resources if it is not 
considered fully trusted according to the .NET security zones. 
 
With Visual Studio 2015, you can develop applications with the following integrated 
programming languages: Visual Basic 14 C# 6 F# 4 C++ 11/14/17Depending on 
where you look, you may see the latest version of Visual Basic described as either 
Visual Basic 2015 or Visual Basic 14. 
 
 
 
 
Figura 3 - Fonte - Mastering Entity Framework (Rahul Rajat Singh) 
 
Era isso, galerinha! Infelizmente não encontramos questões de concursos, mas se 
acharem estamos aqui para tirar as dúvidas!! 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 34 de 125 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 36 de 125 
 
 
 
Um programa está dentro de um Namespace - ele indica que as classes 
pertencem à sua aplicação - para que o código fique separado do .Net. Uma 
classe contém um “pedaço” do seu programa, deve haver no mínimo uma classe. 
Por sua vez, os métodos contêm as instruções, que são ações individuais. 
 
 
Muito abstrato? Então vamos ver nosso primeiro trecho de código. 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
namespace MinhaAplicacao { 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Console.WriteLine("Oi! Eu sou o Goku."); 
 } 
 } 
} 
 
 
Então o que apareceu de diferente? Já sabemos que o .Net é um framework, ou 
seja, nele estão contidas várias bibliotecas que podem ser utilizadas por sua 
aplicação. É exatamente isso que as primeiras 4 linhas do código acima estão 
fazendo, a palavra using é utilizada para incluir bibliotecas externas ao seu 
namespace. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 39 de 125 
 
 
Esta é uma boa classe para representar todos os animais, eles todos fazem essas 
coisas. Porém nem todos fazem tudo igual, não é mesmo? 
 
 
 
Agora, se fossemos criar as classes Hipopótamo e Cachorro quais métodos seriam 
diferentes? De acordo com a nossa tirinha (rs), Comer() seria um deles. Outro 
método diferente seria o FazerBarulho(), o cachorro late e o hipopótamo grunhe 
(pesquisei essa). A subclasse modifica os métodos da superclasse (ou classe base) 
através da sobrescrita, em C# basta utilizar a palavra-chave override no método 
da subclasse, e a palavra-chave virtual no método da classe base. 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 40 de 125 
 
 
Agora que já temos os conceitos básicos de herança, vamos ver um código de 
exemplo? 
 
 
 
public class Animal { 
 
 //esta é nossa classe base: Animal. 
 
public String nome; 
//o atributo nome é público será herdado por todas as subclasses 
 
public virtual void FazerBarulho(){ 
 Console.WriteLine("Grunhido"); 
} 
 
public virtual void Comer(){ 
{ 
 Console.WriteLine("Nhac"); 
} 
/** os métodos FazerBarulho() e Comer() estão marcados com a palavra-
chave virtual, ou seja podem ser sobrescritos. **/ 
 
public void Dormir(){ 
 Console.WriteLine("Zzz"); 
} 
 
public void Andar(){ 
 Console.WriteLine("Pegada"); 
} 
/** já os métodos Dormir() e Andar() não poderão ser sobrescritos. 
Todos os animais que herdarem a classe Animal poderão Dormir e Andar 
apenas através desses métodos da classe base. **/ 
} 
 
public class Cachorro : Animal { 
/** Cachorro será nossa primeira subclasse que extende Animal. Repare 
que o símbolo utilizado para indicar a herança é o sinal 
de dois pontos チオツカ ケケマ 
 
public override void FazerBarulho(){ 
Console.WriteLine("Au"); 
} 
/** O método FazerBarulho() foi sobrescrito, repare na palavra-chave 
override. Ela indica que o método que será chamado será o da classe 
filha, e não mais o da base. Ou seja, se você chamar 
cachorroカFazerBarulhoルレカ O resultado será テAuト e não mais テGrunhidoト 
**/ 
 
public override void Comer(){ 
 Console.WriteLine(ぶHumキ ossoぶ); 
} 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 43 de 125 
 
 
Vamos ver um trecho de código de exemplo? 
 
 
 
List<Pessoa> pessoas = new List<Pessoa>(); 
 
[...] 
 
foreach (Pessoa pessoa in pessoas) { 
 Console.WriteLine(pessoa.name); 
} 
 
 
A saída desse loop serão os nomes de todas as pessoas que tiverem sido inseridas 
na lista, em ordem. Caso a lista esteja vazia, o loop não imprimirá nada. 
Muito prático, não é mesmo? Mas como? O quê o foreach executa por trás das 
cortinas é isso: 
 
 
 
IEnumerator<Pessoa> enumerator = pessoas.GetEnumerator(); 
 
while (enumerator.MoveNext()) { 
 Pessoa pessoa = enumerator.Current; 
 Console.WriteLine(pessoa.name);} 
 
 
 
MoveNext() - retorna true se existe outro elemento na lista, e false quando o 
enumerator chega ao final da lista. 
Current() - retorna uma referência para o elemento atual. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 48 de 125 
classificacao= (entrada > 0) ? "positivo" : "negativo"; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 57 de 125 
A) 2 e 0. 
B) 10 e 18. 
C) 10 e 20. 
D) 12 e 19. 
E) 12 e 20. 
 
 
Comentários: 
 
Nessa questão vamos trabalhar com o operador condicional ternário ‘?’. Como já foi 
abordado na aula fica fácil, vamos executar o algoritmo? 
 
A primeira coisa que devemos fazer é separar as expressões a maior hierarquia é a 
atribuição, então podemos simplificar para x += expressao1 e y += expressao2; 
Agora é só resolver as expressões 1 e 2. 
 
expressao1: x == 20 ? x/y : y/x; 
Nossa condição é x == 20? 10 == 20? falso. É retornada a segunda expressão: y/x= 
20/10 = 2. 
Então, expressao1 = 2. E x += 2 é o mesmo que x = x + 2 => x = 12. 
 
expressao2: y == 10 ? y/x : x/y; 
Nossa condição é y == 10? 20 == 10? falso. É retornada a segunda expressão: x/y= 
10/20 = 0 (lembre-se que estamos trabalhando com inteiros!). 
Então, expressao2 = 0 e y -= 0 é o mesmo que y = y - 0 => y = 20. 
 
 
Gabarito: E 
 
 
11. (VUNESP - 013 -ES TE TÉCNICO - D ENVOLVEDOR) 
 
Na linguagem C#, é possível dividir a definição de uma classe em diversos 
arquivos. Para tanto, é necessário que a declaração da classe contenha a 
palavra chave: 
A) split 
B) partial 
C) extern 
D) continue 
E) abstract 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 58 de 125 
 
Comentários: 
 
Apesar de não ter abordado na aula podemos trabalhar por eliminação. Sabemos 
que ‘abstract’ é a classe que não pode ser instanciada, que precisa ser 
implementada por outra classe. ‘continue’ é a palavra chave utilizada em loops 
quando você quer que a iteração continue e que o restante das instruções sejam 
“puladas”, o ‘extern’ é um modificador que indica que seu método é implementado 
fora da sua classe. Aí nos sobram split e partial, as duas palavras caberiam, mas se 
você lembrar que split é na verdade um método para separar strings, sobra apenas 
o partial 
 
Uma classe pode ser dividida em vários arquivos, quando o compilador vê a 
palavra-chave partial ele sabe que este arquivo é apenas um pedaço da classe. Um 
exemplo de uso dessas classes parciais são os formulários do Visual Studio, se você 
adicionar um form em seu projeto, a IDE irá criar dois arquivos, um com a parte do 
formulário que você pode alterar e outro com o código que é gerado 
automaticamente. 
 
 
Gabarito: B 
 
12. (VUNESP - 013 -ES TE TÉCNICO - D ENVOLVEDOR) 
 
Na linguagem C#, a forma correta de declarar a classe B, derivada da classe A, 
é: 
A) public class B inherits A { } 
B) public class B => A { } 
C) public class A extends B { } 
D) public class B : A { } 
E) public class B implements A { } 
 
Comentários: 
 
Essa você já sabe não é? Vimos na aula. Em C# a sintaxe é a mesma tanto para 
herança quanto para a implementação de interfaces. 
 
 
Gabarito: D 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 59 de 125 
 
13. (VUNESP - 013 -ES TE N CO - D ENVOLVEDOR) 
 
Na linguagem C#, a palavra reservada “sealed” pode ser utilizada na 
declaração de classes. Ela tem a função de 
A) indicar que a classe possui métodos que precisam ser sobrescritos. 
B) impedir que a classe seja instanciada mais de uma vez. 
C) impedir que a classe seja derivada por outras classes. 
D) garantir que a classe não seja instanciada por classes que não estejam no 
mesmo namespace. 
E) indicar que o conteúdo da classe é imutável, isto é, uma vez instanciada, seu 
conteúdo não é mais alterado. 
 
Comentários: 
 
Esse é um modificador extra da linguagem C# e indica que a classe não pode ser 
derivada, ou seja não há herança, ela está “selada”, “fechada”. 
 
 
Gabarito: C 
 
 
14. (AOCP - 012 C -PA - SESSOR TÉCNICO - ALISTA DE SISTEMAS) 
 
Em C#, os métodos chamados pelo mecanismo de execução do programa 
quando o objeto está prestes a ser removido da memória são denominados de 
A) Garbage Collection. 
B) Destruidores. 
C) Propriedades. 
D) Indexadores. 
E) Eventos. 
 
Comentários: 
 
As alternativas deixaram a questão fácil, mas vamos aproveitar e falar um 
pouquinho dos destrutores ou destruidores. Como o enunciado diz, os destruidores 
não podem ser chamados explicitamente, quem os chama é o Garbage Collector 
(Coletor de Lixo). Abaixo um exemplo de destruidor, ele é definido pelo sinal ‘~’ 
seguido pelo nome da classe. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 60 de 125 
class Exemplo 
{ 
 ~Exemplo() 
 { 
 System.Diagnostics.Trace.WriteLine("O destruidor da Classe Exemplo 
 foi chamado."); 
 } 
} 
 
 
 
Gabarito: B 
 
 
15. (AOCP - 012 C -PA - SESSOR TÉCNICO - ALISTA DE SISTEMAS) 
 
Analise o seguinte trecho do código C#: 
 
 
 
Sobre a linha 03 do código apresentado, é correto afirmar que 
A) a variável y recebe o valor de x se esta última (x) for do tipo int. 
B) atribui à variável y o valor da variável x convertido para o tipo int. 
C) passa como parâmetro o valor da variável x para y, do tipo double. 
D) a variável y recebe por referência o valor da variável x do tipo double. 
E) multiplica o valor da variável int por x e atribui o valor calculado para a 
variável y. 
 
Comentários: 
 
Este é um exemplo do cast que é a conversão pelo compilador de uma variável de 
um tipo para outro tipo. Várias linguagens fazem o cast. Não é diferente em C#. 
 
 
Gabarito: B 
 
 
16. (AOCP - 012 C -PA - A SESSOR TÉCNICO - A ALISTA DE SISTEMAS) 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 61 de 125 
Segundo a Microsoft, um conjunto de recursos introduzidos no Visual Studio 
2010 que estende as capacidades de consultas à sintaxe da linguagem de C# e 
Visual Basic é conhecido como 
A) LINQ. 
B) T-SQL. 
C) OQL. 
D) ADO. 
E) ASP. 
 
Comentários: 
 
Cabe recurso, pois o LINQ foi introduzido no Visual Studio 2008. Mas realmente os 
recursos da biblioteca LINQ trazem novas capacidades para que o desenvolvedor 
trabalhe com consultas. 
 
Gabarito: A 
 
 
17. (AOCP - 012 CE-PA - A SESSOR CNICO - A NISTRADOR DE BANCO 
DE DADOS) 
 
Sobre a linguagem C# assinale a alternativa correta. 
A) É uma linguagem de programação orientada a objetos, desenvolvida pela 
Microsoft como parte da plataforma .NET caracterizada por ser fracamente 
tipada. 
B) É a única linguagem de programação que suporta herança múltipla pura, ou 
seja, cada classe pode herdar características de uma ou mais classes. 
C) A linguagem não suporta ponteiros porque os blocos de códigos 
requisitariam permissões mais altas de segurança para serem executados. 
D) O garbage collection é um processo usado para a manutenção do 
processador evitando erros comuns que podem levar ao encerramento do 
programa. 
E) Há três tipos de passagem de parâmetros, por valor, por referência e por 
saída. 
 
Comentários: 
 
Vamos comentar os erros de cada alternativa:A. É uma linguagem fortemente tipada. 
B. Não suporta herança múltipla. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 62 de 125 
C. Ponteiros são suportados (int* p - p é um ponteiro para um inteiro). 
D. O garbage collection é o processo de “coleta de lixo”, através dele objetos que 
não são mais referenciados podem ser liberados da memória, que fica livre para a 
utilização por outro objeto. 
 
 
Gabarito: E 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 63 de 125 
18. (FCC - 014 ª REGIÃO (SP ) ALISTA JUDICIARIO 
INFORMATICA) 
 
 
 
O programa C# apresentado é executado apenas uma vez e finaliza. Para que 
o programa possa ser executado diversas vezes, até que o usuário digite 0 para 
finalizá-lo é necessário inserir Console.WriteLine("0. Finaliza."); como mais uma 
opção do menu e inserir a seguinte instrução de repetição: 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 64 de 125 
A) while (opcao != 0) antes do switch, que está na linha 33, com os 
delimitadores de início e fim { } desta instrução envolvendo as linhas 33 a 44. 
B) while (opcao != "0") antes do switch, que está na linha 33, com os 
delimitadores de início e fim { } da instrução envolvendo as linhas 33 a 44. 
C) for (; ;) { após o delimitador de início de bloco { na linha 26 e uma chave } 
para fechar o bloco logo após a linha 44. Antes do switch, que está na linha 33, 
inserir o comando if (opcao == "0") break; 
D) do antes do switch, que está na linha 33, com o delimitador de início { da 
instrução envolvendo as linhas 33 a 44, e finalizando com o delimitador de fim 
} while (opcao != "0"); 
E) for (opcao=0;opcao<3;opcao++) após o delimitador de início de bloco { na 
linha 26 com os delimitadores de início e fim { } da instrução envolvendo as 
linhas 27 a 44. 
 
Comentários: 
 
Mais uma questão de lógica de programação, vamos verificar todas as alternativas: 
A - dentro do while, a condição está errado pois 0 é do tipo int e opção é do tipo 
string isso causará um erro de compilação. 
B - Caso o while termine na linha 44, o valor da variável opção nunca será 
atualizado, então caso o usuário selecione a opção = “1”, o programa entrará em 
um loop infinito, sempre executando o trecho dentro do switch case opcao = “1”. 
C - Perfeito. Ao colocar o loop for na linha 26, o usuário visualizará novamente o 
menu e poderá executar o programa quantas vezes desejar. Já que o for não possui 
condições. Porém, ao colocar o comando ‘if (opcao == "0") break;’ o loop é 
interrompido quando o usuário selecionar a opção “0”. 
D - Aqui temos o mesmo problema da letra B. 
E - Mesmo erro da letra B. E além disso, nesse caso não adianta trabalharmos com 
o valor de opcao no for, pois ele será sobrescrito pelo valor que o usuário digitar. 
Então mesmo que o usuário digite a opção 0, não sairá do programa pois a 
condição continua sendo válida opção é < 3. 
 
 
Gabarito: C 
 
 
19. (FCC - 014 RF 3ª REGIÃO (SP S) 
 
Considerando o programa e a linguagem C#, é correto afirmar: 
A) Console é uma classe. As classes Object e System herdam desta classe. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 67 de 125 
O que ocorre com o programa C#, apresentado abaixo, quando é compilado e 
posteriormente executado? 
 
 
 
A) Compila corretamente, executa e imprime o número 45. 
B) Compila corretamente, executa e imprime o número 9. 
C) Compila corretamente e executa, mas nunca termina. 
D) Compila corretamente, mas apresenta erro de execução. 
E) Apresenta erro na compilação. 
 
 
Comentários: 
 
Esta é uma ótima questão para relembrarmos o funcionamento dos arrays e do 
operador condicional ternário. 
 
Primeiramente é declarado um array ‘a’ de inteiros, com 10 posições; 
Em seguida é declarada a variável auxiliar ‘i’ também inteiro e inicializada com o 
valor 0 (Lembre-se que o primeiro índice dos vetores é 0 e não 1, então o vetor de 
tamanho dez irá de a[0] até o a[9]). O loop while irá preencher o vetor ‘a’. 
 
A expressão do ternário é a seguinte: i > 0 ? a[i-1] : 0. 
Então na primeira iteração, o resultado é falso, será retornado o valor da segunda 
expressão 0. 
a[0] = 0 + 0 => 0. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 71 de 125 
} 
 
O resultado produzido no console é: 
A) PP 
 A 
 PP 
B) PP 
 PP 
C) A 
 PP 
 A 
D) AA 
 P 
 AA 
E) A 
 A 
 A 
 
Comentários: 
 
Questão de lógica de programação. Nesse programa temos a classe P que tem o 
método PP() e a classe E que herda de PP() - lembre-se que o operador “:” (dois 
pontos) significa herança. Então começamos a executar pelo Main. 
 
Primeiro, é criado o objeto d do tipo P, ao chamar o método PP(), já é escrito na 
saída “PP”, em seguida é criado o objeto s do tipo E. Ele chama o método A(), que 
escreve no console “A” depois ele chama o método PP(), ele pode pois E herda de P, 
e escreve no console “PP” novamente. Então a saída fica PP/ A/ PP. Como writeline 
pula linha, e readkey mantém o cursos no mesmo ponto, letra a. 
 
 
Gabarito: A 
 
 
27. (FGV - 016 BGE- A ÁLISE SISTEMAS ENVOLVIMENTO DE 
SISTEMAS) 
 
using System; 
namespace TESTE 
{ 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 75 de 125 
 
 
Uma strutura ásica o rquivo de ayout é a s guinte: 
 
<!DOCTYPE html> 
<html> 
<head> 
 <title>@ViewBag.Title</title> 
</head> 
<body> 
 <div> 
 @RenderBody() 
 </div> 
</body> 
</html> 
 
Agora quando você criar uma nova página, poderá utilizar um layout. No Visual 
Studio, uma nova página é criada através da caixa de diálogo “Add View” (figura 
abaixo). 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 84 de 125 
 
 
 
Sobre o retorno da instrução 
 return RedirectToAction("Index","Servidores"); 
é correto afirmar que: 
A) transfere o fluxo navegacional do usuário para a página definida na 
aplicação MVC como Default Web Site, ou seja, Index; 
B) transfere o fluxo navegacional do usuário para a Action Index do Controller 
Servidores; 
C) transfere o fluxo navegacional do usuário para a página Servidores abaixo 
do diretório Index; 
D) a substituição da instrução RedirectToAction("Index","Servidores"); por 
Redirect("Index","Servidores"); não traria alteração de resultado para a 
aplicação; 
E) a instrução RedirectToAction("Index",”Servidores”) retorna um ActionResult, 
que é subtipo de ViewResult. 
 
Comentários: 
 
Você já sabe o funcionamento do método RedirectToAction, lembre-se o primeiro 
parâmetro é a action, o segundo (opcional), é a classe controller. Então ficou fácil: 
a) index não é página, é action. 
b) certo. 
c) servidores também não é página, é controller, e index não é diretório. 
d) daria erro de compilação o método Redirect recebe uma string apenas de 
parâmetro, que deve ser uma URI. 
e) dois erros, o retorno é RedirectToRouteResult (resultado do redirecionamento)e o 
ActionResult não é subtipo de ViewResult é o contrário. 
 
 
Gabarito: B 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 86 de 125 
 
Comentários: 
 
O valor da propriedade AutoEventWireup indica se os eventos das páginas ASP.NET 
será conectado automaticamente as funções padrão do framework para tratamento 
de eventos. Quando seu valor é true, os eventos são associados dependendo de seu 
nome e assinatura. Para cada evento, o ASP.NET procura por um método que é 
nomeado com o seguinto padrão: Page_eventname. Como por exemplo, Page_Load 
ou Page_Init. 
 
Gabarito: E 
 
10. (VUNESP - 013 E-ES AG NTE TÉCNICO - ENVOLVEDOR) Como os 
servidores web tratam cada requisição de forma independente, o ASP.NET 
oferece diversas opções de gerenciamento de estado para persistir os dados 
entre as requisições dos usuários. Sobre a persistência de dados, a diferença 
entre o estado de sessão (Session state) e o estado de visualização (View state) 
é que 
 
A) o estado de sessão fornece persistência dos dados entre múltiplas páginas 
de uma aplicação web, enquanto o estado de visualização fornece persistência 
dos dados para uma única página da aplicação. 
B) apesar de ambos terem a mesma função, o estado de sessão fica 
armazenado na máquina do cliente, enuanto o estado de visualização fica 
armazenado no servidor. 
C) o estado de sessão fornece persistência dos dados entre usuários de uma 
mesma aplicação, enquanto o estado de visualização fornece persistência para 
um único usuário. 
D) o estado de visualização fornece persistência dos dados entre múltiplas 
páginas de uma aplicação web, enquanto o estado de sessão fornece 
persistência dos dados para uma única página da aplicação. 
E) ambos são armazenados na máquina do cliente, no entanto, o estado de 
sessão utiliza uma criptografia de chave simétrica para proteger os dados. 
 
 
Comentários: 
 
Como vimos na aula a sessão pode ser salva a nível de página (view state) ou a 
nível de aplicação (session state). Ambos são armazenados no cliente através de 
cookies e podem ser criptografados ou não. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 87 de 125 
 
Gabarito: A 
 
 
11. (CESPE - 013 E-ES ALISTA ADMINISTRATIVO - NFORMÁTICA) Com 
base em aplicações web, assinale a opção correta. 
 
A) Para validar usuários, o Form Authentication utiliza credenciais que devem 
ser armazenadas no arquivo de configuração da aplicação. 
B) Utilizando-se ASP, é impossível, nos casos em que o browser não suporta o 
uso de cookies, passar informações de uma página para outra em uma 
aplicação. 
C) No LINQ, os métodos que implementam operadores de consulta padrão 
devem ser chamados com o uso da sintaxe de métodos estáticos. 
D) Usando-se ADO.NET, a conexão com um data source fornece as 
informações de autenticação necessárias e deve ser feita com a utilização de 
um objeto Connection, que depende do tipo de data source adotado. 
E) No Padrão MVC, as regras do negócio que definem a forma de acesso e 
modificação dos dados são geridas pelo controlador. 
 
Comentários: 
 
Esta questão aborda vários assuntos, vamos analisar item a item: 
a) as credenciais de autenticação podem ser armazenadas em banco de dados. 
b) é possível utilizando-se paraâmetros passados pelos requests GET e POST. 
c) essa é cruel, o correto seria os métodos que extendem operadores de consulta 
padrão. 
d) certo. 
e) as regras de negócio vêm do modelo. 
 
Gabarito: D 
 
12. (AOCP - 012 C -PA - SSESSOR TÉCNICO - ALISTA DE SISTEMAS) 
Segundo a Microsoft, a plataforma de aplicativos da web, unificada, que 
oferece os serviços necessários para a criação e a implantação de aplicativos 
corporativos da web, é conhecida como 
A) XML. 
B) C#.NET. 
C) ASP.NET. 
D) Web Server. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 88 de 125 
E) ADO.NET. 
 
Comentários: 
 
Uma questãozinha de graça para relaxar rs. A plataforma é o ASP.NET. 
 
Gabarito: C 
 
13. (FUNCAB - 012 P -RO - ALISTA JUDICIÁRIO - P OGRAMADOR DE 
COMPUTADORES) O texto abaixo foi extraído da biblioteca MSDN, disponível 
no site Microsoft. Sobre o mesmo, é INCORRETO afirmar que: 
 
 
A) o tema abordado refere-se à critpografia de informações disponíveis em 
arquivos de configuração. 
B) as seções appSettings, connectionStrings, identify e sessionState são sessões 
que normalmente contêm informações que merecem mecanismos de 
segurança. 
C) Web.config é um exemplo de arquivo de configuração. 
D) os mecanismos de criptografia e descriptografia não comprometem a 
performance; portanto, a recomendação é, por segurança, criptografar todas 
as seções dos arquivos de configuração. 
E) a seção identify pode conter credenciais de apresentação. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 89 de 125 
 
Comentários: 
 
Essa questão é pura interpretação de inglês. Mas é interessante perseber algumas 
seções de um arquivo de configuração ASP.NET. Como o texto diz é recomendado 
que apenas algumas seções sejam criptografadas, aquelas com dados sensíveis. 
 
Gabarito: D 
 
14. (FUNCAB - 012 P -RO - A ALISTA JUDICIÁRIO - P OGRAMADOR DE 
COMPUTADORES) Suponha que você queira desenvolver uma página web, 
conforme imagem abaixo, onde: 
 
• a lista CIDADE será carregada com as cidades da UF selecionada na lista UF. 
• a lista BAIRRO será carregada com os bairros da cidade selecionada na lista 
CIDADE. 
• sempre que um novo item for selecionado na lista UF ou na lista CIDADE, as 
demais listas deverão ser recarregadas de acordo com os novos itens 
selecionados. 
 
 
 
O ASP.NET AJAX extender que deve ser utilizado para reproduzir este tipo de 
comportamento é: 
A) ListSearch. 
B) AutoComplete. 
C) DropDown. 
D) ComboBox. 
E) CascadingDropDown. 
 
Comentários: 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 90 de 125 
O ASP.NET suporta AJAX, o componente que permite que os DropDowns sejam 
atualizados de forma encadeada é o CascadingDropDown. Vejamos os outros: 
a) ListSearch permite que conteúdos de um dropdown sejam pesquisados 
conforme a entrada do usuário, o foco vai para o item pesquisado, mas a lista não é 
filtrada. 
b) AutoComplete permite que os itens sejam filtrados conforme a entrada do 
usuário. 
c) O Dropdown é mais completo que um select normal pois permite marcação e 
links, é muito usádo para submenus. 
d) O ComboBox é parecido com o AutoComplete, porém é mais recomendado 
quando se tem poucas opções. 
 
Gabarito: E 
 
15. (CESGRANRIO - 014 B CO DA AMAZÔNIA - CNICO CIENTÍFICO - 
SUPORTE E INFRAESTRUTURA) Quais são os três modelos de desenvolvimento 
diferentes suportados por ASP.Net? 
A) Web Apps, Web Forms e Web Grid 
B) Web Forms, MVC e Web Grid 
C) Web Pages, MVC e Web Apps 
D) Web Pages, MVC e Web Forms 
E) Web Pages, Web Grid e Web Forms 
 
Comentários: 
 
Vimos na aula que os principais modelos de desenvolvimento de aplicações do 
ASP.Net são MVC e Web Forms. Além disso também existe o modelo mais simple 
de Web Pages. 
 
Gabarito: D 
 
16. (CESGRANRIO - 012 E - ALISTA DE GESTÃO CORPORATIVA - 
TECNOLOGIA DA INFORMAÇÃO) Considere que uma aplicação WEB em 
ASP.NET na linguagem C# contém classes X e Y, cujos trechos relevantes estão 
apresentados a seguir. 
 
public class X { 
 public int Foo() { return 2; } 
 public virtualint Bar() { return 1; } 
} 
 
public class Y: X { 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 91 de 125 
 public new int Foo() { return 0; } 
 public override int Bar() { return 5; } 
} 
 
Seja o conteúdo do corpo do método manipulador do evento Load da página 
principal dessa aplicação o trecho de código a seguir. 
 
X x = new X(); 
Y y = new Y(); 
 
int v1 = x.Foo(); 
int v2 = x.Bar(); 
int v3 = y.Foo(); 
int v4 = y.Bar(); 
int v5 = ((X)y).Foo(); 
int v6 = ((X)y).Bar(); 
 
ResponseカWriteルvÜ〉ト テ〉vä〉ト テ〉vë〉ト テ〉vï〉ト テ〉 vö〉ト テ〉vÜレエ 
 
Quando a aplicação exibir com sucesso, em um navegador, a página WEB 
resultante de sua execução, qual será a sequência de números apresentada 
nessa página principal? 
A) 0 5 0 5 0 5 
B) 2 1 0 5 0 5 
C) 2 1 0 5 2 1 
D) 2 1 0 5 2 5 
E) 2 1 2 1 2 1 
 
Comentários: 
 
O método manipulador do evento load executa no carregamento da página. A 
classe Y está extendendo a classe X e sobreescrevendo o método Bar(). 
 
Vamos executar instrução por instrução: 
int v1 = x.Foo(); // v1 = 2 
int v2 = x.Bar(); // v2 = 1 
int v3 = y.Foo(); // v3 = 0 
int v4 = y.Bar(); // v4 = 5 
int v5 = ((X)y).Foo(); // v5 = 2, foi feito o cast, então é buscado o método foo 
da classe X. 
int v6 = ((X)y).Bar(); // v6 = 5, apesar do cast, y continua sendo uma subclasse 
de x e como o método Bar() foi sobrescrito, o valor do método de y (5) é 
retornado. 
 
 
Gabarito: D 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 92 de 125 
17. (CESGRANRIO - 010 E - ALISTA DE GESTÃO CORPORATIVA - 
TECNOLOGIA DA INFORMAÇÃO) Um órgão federal disponibiliza serviços na 
Internet utilizando a plataforma ASP.NET, versão 3.5. Um dos objetivos da 
tecnologia LINQ dessa plataforma é 
A) substituir, gradativamente, o AJAX. 
B) simplificar o acesso a dados. 
C) permitir tipagem dinâmica de variáveis. 
D) realizar testes automatizados. 
E) consumir web service genéricos. 
 
Comentários: 
 
Já sabemos que o LINQ (Language Integrated Query (Linguagem de Consultas 
Integrada) é uma biblioteca que facilita o acesso a dados, simplificando a criação de 
consultas. 
 
Gabarito: B 
 
18. (CESGRANRIO - 010 ETROBRAS ALISTA DE STEMAS UPORTE 
BASIS SAP R/3) Analise o fragmento de código a seguir. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 93 de 125 
 
 
Qual o objetivo desse código? 
A) Alterar dados da tabela “Customers” de um banco de dados. 
B) Apresentar o resultado de uma consulta em um banco de dados em um 
navegador. 
C) Enviar um e-mail para todos os clientes de uma empresa. 
D) Criar um arquivo .mdb com o dump com alguns dados da tabela 
“Customers”. 
E) Escrever, em um banco relacional, as entradas de dados do usuário. 
 
Comentários: 
 
Este trecho é do ASP clássico. Veja, primeiro uma conexão com o banco é criada, 
depois o sql com apenas um select é executado. Na segunda parte, uma tabela é 
renderizada com os valores retornados. Os dados não são alterados, não aparece 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 100 de 125 
O Microsoft Visual Studio Team Foundation Server 2010 é a nova plataforma 
colaborativa da Microsoft. Essa plataforma pode ser utilizada em substituição ao 
sistema de controle de versão conhecido como 
 
A) Team Explorer Everywhere 
B) Work Item Tracking 
C) Application Lifecycle Management 
D) Visual SourceSafe 
E) Development Platform Support 
 
 
12. (FGV - 016 BGE- NÁLISE D SISTEMAS ENVOLVIMENTO DE 
SISTEMAS) 
 
Com relação aos arquivos XAML do framework .NET produzidos pela IDE do 
Visual Studio durante o processo de desenvolvimento de uma aplicação móvel 
para o Windows Phone 8.1, analise as afirmativas a seguir: 
 
I. Um arquivo XAML deve ter mais de um elemento raiz. 
II. Window, Page, ResourceDictionary e Application são elementos do tipo raiz. 
III. O namespace padrão do WPF é o 
http://schemas.microsoft.com/winfx/2006/xaml/presentation. 
 
Está correto somente o que se afirma em: 
A) I 
B) II 
C) I e II 
D) I e III 
E) II e III 
 
 
 
 
 
 
 
 
 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 106 de 125 
B) partial 
C) extern 
D) continue 
E) abstract 
 
 
12. (VUNESP - 013 -ES AG TE TÉCNICO - ENVOLVEDOR) 
 
Na linguagem C#, a forma correta de declarar a classe B, derivada da classe A, 
é: 
A) public class B inherits A { } 
B) public class B => A { } 
C) public class A extends B { } 
D) public class B : A { } 
E) public class B implements A { } 
 
 
13. (VUNESP - 013 -ES TE TÉCNICO - D ENVOLVEDOR) 
 
Na linguagem C#, a palavra reservada “sealed” pode ser utilizada na 
declaração de classes. Ela tem a função de 
A) indicar que a classe possui métodos que precisam ser sobrescritos. 
B) impedir que a classe seja instanciada mais de uma vez. 
C) impedir que a classe seja derivada por outras classes. 
D) garantir que a classe não seja instanciada por classes que não estejam no 
mesmo namespace. 
E) indicar que o conteúdo da classe é imutável, isto é, uma vez instanciada, seu 
conteúdo não é mais alterado. 
 
 
14. (AOCP - 012 C -PA - A SESSOR TÉCNICO - A ALISTA DE SISTEMAS) 
 
Em C#, os métodos chamados pelo mecanismo de execução do programa 
quando o objeto está prestes a ser removido da memória são denominados de 
A) Garbage Collection. 
B) Destruidores. 
C) Propriedades. 
D) Indexadores. 
E) Eventos. 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 107 de 125 
 
15. (AOCP - 012 -PA - SESSOR TÉCNICO - ALISTA DE SISTEMAS) 
 
Analise o seguinte trecho do código C#: 
 
 
 
Sobre a linha 03 do código apresentado, é correto afirmar que 
A) a variável y recebe o valor de x se esta última (x) for do tipo int. 
B) atribui à variável y o valor da variável x convertido para o tipo int. 
C) passa como parâmetro o valor da variável x para y, do tipo double. 
D) a variável y recebe por referência o valor da variável x do tipo double. 
E) multiplica o valor da variável int por x e atribui o valor calculado para a 
variável y. 
 
 
16. (AOCP - 012 -PA - SESSOR TÉCNICO - ALISTA DE SISTEMAS) 
 
Segundo a Microsoft, um conjunto de recursos introduzidos no Visual Studio 
2010 que estende as capacidades de consultas à sintaxe da linguagem de C# e 
Visual Basic é conhecido como 
A) LINQ. 
B) T-SQL. 
C) OQL. 
D) ADO. 
E) ASP. 
 
 
17. (AOCP - 012 CE-PA - A SESSOR CNICO - A NISTRADOR DE BANCO 
DE DADOS) 
 
Sobre a linguagem C# assinale a alternativa correta. 
A) É uma linguagem de programação orientada a objetos, desenvolvida pela 
Microsoft como parte da plataforma .NET caracterizada por ser fracamente 
tipada. 
B) É a única linguagem de programação que suporta herança múltipla pura, ou 
seja, cada classe pode herdar características de uma ou mais classes. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 108 de 125 
C) A linguagem não suporta ponteiros porque os blocos de códigos 
requisitariam permissões mais altas de segurança para serem executados. 
D) O garbage collection é um processo usado para a manutençãodo 
processador evitando erros comuns que podem levar ao encerramento do 
programa. 
E) Há três tipos de passagem de parâmetros, por valor, por referência e por 
saída. 
 
18. (FCC - 014 ª REGIÃO (SP ) ALISTA JUDICIARIO 
INFORMATICA) 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 109 de 125 
 
 
O programa C# apresentado é executado apenas uma vez e finaliza. Para que 
o programa possa ser executado diversas vezes, até que o usuário digite 0 para 
finalizá-lo é necessário inserir Console.WriteLine("0. Finaliza."); como mais uma 
opção do menu e inserir a seguinte instrução de repetição: 
A) while (opcao != 0) antes do switch, que está na linha 33, com os 
delimitadores de início e fim { } desta instrução envolvendo as linhas 33 a 44. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 119 de 125 
C) recebam parâmetros do tipo System.EventArgs. 
D) retornam um dado do tipo System.Event. 
E) respeitam um padrão de nomenclatura predefinido. 
 
 
10. (VUNESP - 013 E-ES NTE TÉCNICO - ENVOLVEDOR) Como os 
servidores web tratam cada requisição de forma independente, o ASP.NET 
oferece diversas opções de gerenciamento de estado para persistir os dados 
entre as requisições dos usuários. Sobre a persistência de dados, a diferença 
entre o estado de sessão (Session state) e o estado de visualização (View state) 
é que 
 
A) o estado de sessão fornece persistência dos dados entre múltiplas páginas 
de uma aplicação web, enquanto o estado de visualização fornece persistência 
dos dados para uma única página da aplicação. 
B) apesar de ambos terem a mesma função, o estado de sessão fica 
armazenado na máquina do cliente, enuanto o estado de visualização fica 
armazenado no servidor. 
C) o estado de sessão fornece persistência dos dados entre usuários de uma 
mesma aplicação, enquanto o estado de visualização fornece persistência para 
um único usuário. 
D) o estado de visualização fornece persistência dos dados entre múltiplas 
páginas de uma aplicação web, enquanto o estado de sessão fornece 
persistência dos dados para uma única página da aplicação. 
E) ambos são armazenados na máquina do cliente, no entanto, o estado de 
sessão utiliza uma criptografia de chave simétrica para proteger os dados. 
 
 
11. (CESPE - 013 E-ES ALISTA ADMINISTRATIVO - NFORMÁTICA) Com 
base em aplicações web, assinale a opção correta. 
 
A) Para validar usuários, o Form Authentication utiliza credenciais que devem 
ser armazenadas no arquivo de configuração da aplicação. 
B) Utilizando-se ASP, é impossível, nos casos em que o browser não suporta o 
uso de cookies, passar informações de uma página para outra em uma 
aplicação. 
C) No LINQ, os métodos que implementam operadores de consulta padrão 
devem ser chamados com o uso da sintaxe de métodos estáticos. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 120 de 125 
D) Usando-se ADO.NET, a conexão com um data source fornece as 
informações de autenticação necessárias e deve ser feita com a utilização de 
um objeto Connection, que depende do tipo de data source adotado. 
E) No Padrão MVC, as regras do negócio que definem a forma de acesso e 
modificação dos dados são geridas pelo controlador. 
 
 
12. (AOCP - 012 C -PA - A SESSOR TÉCNICO A ALISTA DE SISTEMAS) 
Segundo a Microsoft, a plataforma de aplicativos da web, unificada, que 
oferece os serviços necessários para a criação e a implantação de aplicativos 
corporativos da web, é conhecida como 
A) XML. 
B) C#.NET. 
C) ASP.NET. 
D) Web Server. 
E) ADO.NET. 
 
13. (FUNCAB - 012 P -RO - A ALISTA JUDICIÁRIO - P OGRAMADOR DE 
COMPUTADORES) O texto abaixo foi extraído da biblioteca MSDN, disponível 
no site Microsoft. Sobre o mesmo, é INCORRETO afirmar que: 
 
 
A) o tema abordado refere-se à critpografia de informações disponíveis em 
arquivos de configuração. 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 121 de 125 
B) as seções appSettings, connectionStrings, identify e sessionState são sessões 
que normalmente contêm informações que merecem mecanismos de 
segurança. 
C) Web.config é um exemplo de arquivo de configuração. 
D) os mecanismos de criptografia e descriptografia não comprometem a 
performance; portanto, a recomendação é, por segurança, criptografar todas 
as seções dos arquivos de configuração. 
E) a seção identify pode conter credenciais de apresentação. 
 
 
14. (FUNCAB - 012 P -RO - ALISTA JUDICIÁRIO - P OGRAMADOR DE 
COMPUTADORES) Suponha que você queira desenvolver uma página web, 
conforme imagem abaixo, onde: 
 
• a lista CIDADE será carregada com as cidades da UF selecionada na lista UF. 
• a lista BAIRRO será carregada com os bairros da cidade selecionada na lista 
CIDADE. 
• sempre que um novo item for selecionado na lista UF ou na lista CIDADE, as 
demais listas deverão ser recarregadas de acordo com os novos itens 
selecionados. 
 
 
 
O ASP.NET AJAX extender que deve ser utilizado para reproduzir este tipo de 
comportamento é: 
A) ListSearch. 
B) AutoComplete. 
C) DropDown. 
D) ComboBox. 
E) CascadingDropDown. 
 
 
 
Curso de Desenvolvimento de Software para Concursos 
Profs. Diego Carvalho e Leon Sólon – Aula 12 
 
Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 123 de 125 
E) 2 1 2 1 2 1 
 
 
17. (CESGRANRIO - 010 E - ALISTA DE GESTÃO CORPORATIVA - 
TECNOLOGIA DA INFORMAÇÃO) Um órgão federal disponibiliza serviços na 
Internet utilizando a plataforma ASP.NET, versão 3.5. Um dos objetivos da 
tecnologia LINQ dessa plataforma é 
A) substituir, gradativamente, o AJAX. 
B) simplificar o acesso a dados. 
C) permitir tipagem dinâmica de variáveis. 
D) realizar testes automatizados. 
E) consumir web service genéricos. 
 
18. (CESGRANRIO - 010 ETROBRAS ALISTA DE STEMAS UPORTE 
BASIS SAP R/3) Analise o fragmento de código a seguir. 
 
 
 
Qual o objetivo desse código? 
A) Alterar dados da tabela “Customers” de um banco de dados.

Continue navegando