.Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ?...
Transcript of .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ?...
.Net Framework
O que é .Net ?
• Proprietário da Microsoft
• Versão simplificada para Linux
• Versão compacta para dispositivos móveis
• Plataforma de desenvolvimento e execução
• Interface com usuário, conectividade do banco de dados, criptografia, aplicações web, algoritmos numéricos, acesso a rede
Principais características
• Interoperabilidade: – Comunicação com sistemas não desenvolvidos em .Net
• Plataforma de execução comum:– Permite ao desenvolvedor abstrair o dispositivo
onde o software será executado (Web, Mobile, Desktop)
• Multilinguagem:– .Net é uma plataforma e não uma linguagem
– É possivel desenvolver aplicativos .Net em qualquer
linguagem que implemente as especificações da Common
Type System (CTS), atualmente mais de 20 linguagens
oferecem esse suporte entre elas C#, Java, Phyton, Ruby)
– É possivel desenvolver um aplicativo utilizando mais de uma
linguagem de programação, desde que as mesmas tenham
suporte a plataforma .Net. A “comunicação” entre elas
é feita de forma transparente.
• Portabilidade– Um aplicativo .Net pode ser executado em qualquer
dispositivo que possua a plataforma .Net instalada.
– Atualmente somente o Windows possui uma versão completa do framework
– Existem as versões Micro e Compact para aplicativos embarcados ou para dispositivos móveis
– Mono é a alternativa open source ao .Net
– Outras alternativas são CrossNet e Portable.Net
• .Net Framework 1.0
– 13/02/2002
• .Net Framework 1.1
– 24/04/2003
– Nativo no Windows Server 2003
• .Net Framework 2.0
– 07/11/2005
• .Net Framework 3.0
– 06/11/2006
– Windows Vista
– Windows Server 2008
• .Net Framework 3.5
– 19/11/2007
– Windows 7
– Windows Server 2008 R2
• .Net Framework 4.0
– 12/04/2010
CLI – Common Language Infrastucture
• O “núcleo” da plataforma .Net
• Composta pela– Common Language Runtime (CLR)
– Common Intermediate Language (CIL)
• Plataforma de desenvolvimento e execução
• Responsável por:– Tratamento de exceções
– Coleta de lixo
– Controle de transações
– Permissões de execução
– Interoperabilidade entre as linguagens suportadas
– Alocação de memória
Tipos de valor primitivos
• Byte – 1 Byte. Armazena valores de bytes entre 0 e 255, sem sinal.
• Sbyte - 1 Byte. Armazena valores de bytes entre -128 e 127.
• Int16 (ou apenas short) – 2 Bytes. Armazena valores inteiros entre – 32768 e 32767.
• Int32 (ou apenas int) -4 Bytes. Armazena valores inteiros entre – 2147483648 e 2147483647.
• Uint32 (uint em C#) - 4 Bytes. Armazena valores inteiros entre 0 e 4294967295, sem sinal.
• Int64 (ou apenas long) -8 Bytes. Armazena valores inteiros entre – 9223372036854776808 e 9223372036854776807.
• Single (float em C#) - 4 Bytes. Armazena valores de vírgula flutuante entre – 3.402823E+38 e 3.402823E+38.
• Double - 8 Bytes. Armazena valores de vírgula flutuante entre – 1.79769313486232E+308 e 1.79769313486232E+308.
• Decimal - 16 Bytes. Armazena valores de vírgula flutuante entre –79228162514264337593543950335 e 79228162514264337593543950335.
• Char - 2 Bytes. Armazena um único caracter Unicode.
• Boolean (ou apenas bool) - 4 Bytes. Armazena valores verdadeiro/falso.
• DateTime (ou apenas date) - 8 Bytes. Armazena momentos no tempo entre 1/1/0001 e 31/12/9999.
Outros tipos de valor
• Para usar um Tipo de Valor é necessário declarar uma variável do tipo desejado
• Estes Tipos possuem um construtor implícito, ou seja, ao declarar uma variável deste tipo estamos a instanciá-la imediatamente
• Tipos de Valor Nulos:
– Variável de um tipo primitivo que aceita também valores nulos: Nullable <int> x = null ou int? x = null
• Estruturas:
– Tipo de valor definido pelo programador
• Enumerados:
– Tipos com valores fixos e imutávies.
– ‘Constantes’ com nomes.
• Passagem de valores:
– Por valor e referência.
Alguns recursos da plataforma
• WPF
• WCF
• Windows CardSpace
• WF
• LINQ
• Entity Framework
Windows Presentation Foundation
• Subsistema do .Net 3.0
• Desenvolvimento de interfaces gráficas
• Serve tanto para desktop quanto web
• Suporta:– Interfaces 2D e 3D
– Graficos Raster
– Graficos vetoriais
– Vinculação de dados
– Audio
– Video
• Silverlight é a versão reduzida do WPF, feita para Web
Windows Communication Foundation
• Voltado para aplicação distribuídas
• Arquitetura orientada a Serviços
• Comunicação realizada através de SOAP
• Biblioteca já inclui suporte aos protocolos de comunicação mais comuns
• Existem adaptadores para comunicação com:– IBM WebSphere MQ
– JMS
Language Integrated Query
• Adiciona capacidades de busca ao .Net
• Define um conjunto de operadores (standard query operators) para realização de consultas
• Abstrai o local onde a consulta está sendo realizada– Arquivos XML
– Banco de dados
– Arrays
– Tipos enumeraveis
• Principais operadores:– Select, Where, Join, Take
– Skip, Sum, Min, Max,
– Count, Average, Aggregate
– OrderBy, Reverse,
– GroupBy, Distinct, First,
– Last, Union, Intersect,
– Single, Any, All, Contains
Providers para LINQ
• Existem providers adicionais para extender a capacidade de busca da técnologia. Dentre os providers disponíveis encontram-se:– LINQ to DataServices
– dotConnect (LINQ to Oracle, MySQL, PostgreSQL)
– Entity Framework (LINQ to Entities)
– Windows Search (LINQ to System Search)
– Google Search (LINQ to Google Search)
– Twitter (LINQ to Twitter)
– Wikipedia (LINQ to Wikipedia)
Entities Framework
• É um framework de mapeamento objeto relacional para .Net
• Converte as entidades do banco de dados em objetos
• Realiza o mapeamento das alterações realizadas nos objetos no banco de dados
• Possui controle de transações
• Cada banco de dados possui um provider específico
• A linguagem utilizada para buscas é LINQ
• Na versão 4.0 foi adicionado suporte a SQL, embora não seja recomendado.
Visual Studio
• Principal ferramenta da Microsoft para o desenvolvimento em .Net
• Suporte a desenvolvimento em C++ e VB além da plataforma .Net
• É um pacote de ferramentas baseadas em componentes e outras tecnologias para a criação de aplicativos avançados e de alto desempenho.
• Permite que os desenvolvedores criem aplicativos com muita rapidez.
• Aplicativos esses que proporcionam ao usuário uma experiência de mais alta qualidade e riqueza.
• Debugger , servidor de aplicação e emulador de dispositivos móveis.
• Tem funcionalidades que facilitam a captura e analise de informações o que significa melhor tomada de decisões de negócios .
Versões Visual Studio
• É uma ferramenta paga
• Existem diversas versões do Visual Studio, atualmente as principais versões do Visual Studio 2010 são essas
– Professional $799
– Premiun $5,469
– Ultimate $11,899
– Existe uma versão Express que é gratuita, porem possui algumas limitações.
.Net e Java
• Algumas semelhanças e diferenças com JVM e Java
– Baseiam-se em um conceito de maquina virtual que abstrai o hardware utilizado
– O código fonte é compilado para uma linguagem intermediária (CIL ou Bytecode)
– Em .Net o código é sempre compilado antes da execução, em Java o código é normalmente interpretado, embora existem meios de compilar antes da execução
– A plataforma .Net só está completamente disponível para Windows enquanto Java está disponível para diversos sistemas
– A JVM suporta apenas códigos escritos em Java enquanto a CLI possui suporte a várias linguagens
.Net e Java vantagens
Java .NET
Linguagem mais madura. Várias linguagens podem ser usadas no desenvolvimento.
Grande número de frameworks. O número de soluções pode ser menor, mas são garantidos por um único fabricante e se integram de maneira transparente.
Gratuito, inclusive as IDEs Tem acesso as bibliotecas do Windows
Multiplataforma. Existe o projeto mono
Facilidade de rodar aplicações móveis
Desenvolvimento de aplicações em .NET tende a ser mais rápido do que com Java
.Net e Java desvantagens
Java .NET
Pouca integração com o sistema operacional.
Número muito menor de soluções públicas e gratuitas
É difícil criar código não gerenciado pela JVM.
Mudanças de versão na plataforma tem causado dores de cabeça por falta de compatibilidade.
Dificuldade do desenvolvedor a se adaptar aos diversos frameworks que existem.
Pouco código aberto e dependência muito grande de Windows.
Bibliografia
• http://pt.wikipedia.org/wiki/Microsoft_.NET
• http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework
• http://en.wikipedia.org/wiki/Windows_Presentation_Foundation
• http://www.juliobattisti.com.br/tutoriais/almirrivas/vbdotnet001.asp
• http://en.wikipedia.org/wiki/.NET_Framework#.NET_Framework_1.0
• http://www.asp.net/
• http://msdn.microsoft.com/pt-br/default.aspx
• http://en.wikipedia.org/wiki/Comparison_of_the_Java_and_.NET_platforms
• http://pontonetpt.com/blogs/sekhmet/archive/2007/03/25/P13276.aspx