.Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ?...

29
.Net Framework

Transcript of .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ?...

Page 1: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

.Net Framework

Page 2: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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

Page 3: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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

Page 4: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

• .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

Page 5: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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

Page 6: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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.

Page 7: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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.

Page 8: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

Alguns recursos da plataforma

• WPF

• WCF

• Windows CardSpace

• WF

• LINQ

• Entity Framework

Page 9: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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

Page 10: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 11: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 12: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 13: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 14: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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

Page 15: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 16: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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

Page 17: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 18: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 19: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 20: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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)

Page 21: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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.

Page 22: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 23: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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 .

Page 24: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos
Page 25: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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.

Page 26: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

.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

Page 27: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

.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

Page 28: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

.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.

Page 29: .Net Framework - inf.ufsc.brfrank/INE5612/Seminario2010.1/DotNet.pdf · O que é .Net ? •Proprietário da Microsoft •Versão simplificada para Linux •Versão compacta para dispositivos

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