plataforma net

Post on 18-Jan-2017

108 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

A Plataforma .NETA Plataforma .NET

2

AgendaAgenda

Web Services e Smart DevicesWeb Services e Smart DevicesA Plataforma .NETA Plataforma .NETO Modelo de programaçãoO Modelo de programaçãoSumárioSumário

3

AgendaAgenda

Web ServicesWeb Services e Smart Devicese Smart DevicesA Plataforma .NETA Plataforma .NETO Modelo de programaçãoO Modelo de programaçãoSumárioSumário

4

Empresa AEmpresa A

A empresa “Virtual” A empresa “Virtual”

Escrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores

Empregados no ExteriorEmpregados no Exterior

Empresa BEmpresa B

ClientesClientesParceirosParceiros

Fornecedores Fornecedores

Escrit.Remoto/ConsumidoresEscrit.Remoto/ConsumidoresEmpregados no ExteriorEmpregados no Exterior

Exigencia de negócio = Estar tudo ligadoExigencia de negócio = Estar tudo ligado

5

Empresa AEmpresa A

Escrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores

Empregados no Empregados no ExteriorExterior

Exigencia de negócio = tudo ligadoExigencia de negócio = tudo ligado

Empresa BEmpresa BEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores

ClientesClientesParceirosParceiros

FornecedoresFornecedores

Empregados no Empregados no ExteriorExterior

Empresa FEmpresa FEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores

ClientesClientesParceirosParceiros

FornecedoresFornecedores

Empregados no Empregados no ExteriorExterior

Empresa EEmpresa EEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores

ClientesClientesParceirosParceiros

FornecedoresFornecedores

Empregados no Empregados no ExteriorExterior

Company CCompany CEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores

ClientesClientesParceirosParceiros

FornecedoresFornecedores

Empregados no Empregados no ExteriorExterior

Empresa DEmpresa DEscrit.Remoto/ConsumidoresEscrit.Remoto/Consumidores

ClientesClientesParceirosParceiros

FornecedoresFornecedores

Empregados no Empregados no ExteriorExterior

6

A IntegraçãoA Integração Problema clássicoProblema clássico

Costuma ficar para o fimCostuma ficar para o fim Demasiado difícil, cara, lenta e frágilDemasiado difícil, cara, lenta e frágil Ilhas de tecnologia no mar da Ilhas de tecnologia no mar da

conectividadeconectividade As soluções estão a evoluir para As soluções estão a evoluir para

constelaçõesconstelações ExemplosExemplos

Dentro das empresasDentro das empresas Entre empresasEntre empresas O indivíduo e diferentes tecnologiasO indivíduo e diferentes tecnologias

7

Web ServicesWeb Services ConceptualmenteConceptualmente““Pequenos componentes de Pequenos componentes de

funcionalidade funcionalidade disponibilizadas para poderem disponibilizadas para poderem ser consumidos como serviços ser consumidos como serviços através de uma rede”através de uma rede”

TecnicamenteTecnicamente““Conjunto de operações Conjunto de operações

acessíveis através deacessíveis através de mensagensmensagens “ “standard” sobre standard” sobre uma redeuma rede

8

DemoDemo

9

Novos dispositivosNovos dispositivos Uma plataforma de Uma plataforma de

desenvolvimento tem de desenvolvimento tem de integrar os novos dispositivos integrar os novos dispositivos de forma transparente; de forma transparente;

ConectividadeConectividade Baixo custo, a Internet a Baixo custo, a Internet a

universalizar-seuniversalizar-se Wireless, acesso a banda largaWireless, acesso a banda larga Proliferação de equipamentosProliferação de equipamentos Equipamentos ligados à Internet Equipamentos ligados à Internet

- PDAs, Telefones celulares etc.- PDAs, Telefones celulares etc. Standards para a Internet Standards para a Internet

Integração assente em XMLIntegração assente em XML

10

DemoDemoVídeo Web ServicesVídeo Web Services

11

AgendaAgenda

Web Services e Smart DevicesWeb Services e Smart DevicesA plataforma .NETA plataforma .NETO Modelo de ProgramaçãoO Modelo de ProgramaçãoSumárioSumário

12

O que é o .NET?O que é o .NET? Uma plataforma de desenvolvimento: Uma plataforma de desenvolvimento:

interfaces, componentes e ferramentas para interfaces, componentes e ferramentas para desenvolver software.desenvolver software.

A maior alteração dentro da Microsoft desde A maior alteração dentro da Microsoft desde que o Windows NT substituíu o DOSque o Windows NT substituíu o DOS

As alterações incluem:As alterações incluem: Formato do código, compiladores,Formato do código, compiladores, Modelos de carregamento e execução do código, Modelos de carregamento e execução do código, Modelo de segurança,Modelo de segurança, Modelo de objectos, metadados, protocolos remotingModelo de objectos, metadados, protocolos remoting Bibliotecas de classes,Bibliotecas de classes, ……

13

A plataforma .NETA plataforma .NET

14

O valor estratégico da O valor estratégico da plataformaplataformaSuporte ao desenvolvimento de novos Suporte ao desenvolvimento de novos

negócios assentes na tecnologianegócios assentes na tecnologia

15

Novos modelos de negócioNovos modelos de negócio

AUTENTICAÇÃOAUTENTICAÇÃO

Fornecedor AFornecedor A

………………

Fornecedor BFornecedor B

Fornecedor CFornecedor C

LeilõesLeilões

16

Novos modelos de negócioNovos modelos de negócio

AUTENTICAÇÃOAUTENTICAÇÃO

Fornecedor AFornecedor A

………………

Fornecedor BFornecedor B

Fornecedor CFornecedor C

LeilõesLeilões

PagamentosPagamentos

Empresa AEmpresa AEmpresa BEmpresa B

Empresa CEmpresa C

17

Novos modelos de negócioNovos modelos de negócio

AUTENTICAÇÃOAUTENTICAÇÃO

Fornecedor AFornecedor A

………………

Fornecedor BFornecedor B

Fornecedor CFornecedor C

LeilõesLeilões

PagamentosPagamentos

Empresa AEmpresa AEmpresa BEmpresa B

Empresa CEmpresa C

18

O software tem de permitir:O software tem de permitir:

O Software será a base dos O Software será a base dos novos modelos de negócionovos modelos de negócio

Experiências de utilização de software Experiências de utilização de software consistentes entre os diversos consistentes entre os diversos dispositivos;dispositivos;

Produção de software como um Produção de software como um serviço;serviço;

Modelo de programação consistente.Modelo de programação consistente.

19

AgendaAgenda

Web Services e Smart DevicesWeb Services e Smart DevicesA plataforma .NETA plataforma .NETO Modelo de ProgramaçãoO Modelo de ProgramaçãoSumárioSumário

20

O modelo de programação O modelo de programação tem de:tem de:

Simplificar o desenvolvimento de Simplificar o desenvolvimento de aplicaçõesaplicações

Fornecer um ambiente de execução Fornecer um ambiente de execução seguro e robustoseguro e robusto

Suporte para múltiplas linguagens de Suporte para múltiplas linguagens de programaçãoprogramação

Simplificar a distribuição e Simplificar a distribuição e manutenção de aplicações manutenção de aplicações

22

A .NET Framework é o modelo de A .NET Framework é o modelo de programação que serve de base programação que serve de base para a visão .NETpara a visão .NET

.NET: Princípios.NET: Princípios Visão Microsoft para a computaçãoVisão Microsoft para a computação

Tornar a computação distribuida na Internet Tornar a computação distribuida na Internet comumcomum

Explorar o poder de processamento e largura de Explorar o poder de processamento e largura de banda cada vez mais baratosbanda cada vez mais baratos

Integração natural entre múltiplas aplicações e Integração natural entre múltiplas aplicações e dispositivosdispositivos

Disponibilizar software como um serviçoDisponibilizar software como um serviço Experiência de utilização nova e mais ricaExperiência de utilização nova e mais rica

23

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO.NET and XMLADO.NET and XML

ASP.NETASP.NETWeb Forms Web ServicesWeb Forms Web Services

Mobile DevicesMobile DevicesWindowsWindows

FormsForms

Common Language Common Language Runtime (CLR) Runtime (CLR) Suporte múltiplas Suporte múltiplas

linguagenslinguagens Sistema único de tiposSistema único de tipos Deployment simplificadoDeployment simplificado Code Access SecurityCode Access Security

Bibliotecas base ricasBibliotecas base ricas Modelo de programação Modelo de programação

poderoso e consistentepoderoso e consistente Focus no código e Focus no código e

funcionalidadefuncionalidade Integração com as tools de Integração com as tools de

desenvolvimentodesenvolvimento Suporte de funcionalidade Suporte de funcionalidade

design-timedesign-time Suporte para Debugging, Suporte para Debugging,

profiling e instrumentaçãoprofiling e instrumentação

.NET Framework.NET Framework

24

CompiladorCompilador AssemblyAssembly

Common Language RuntimeCommon Language RuntimeDesenvolvimentoDesenvolvimento

C#C#J#J#VBVB

CobolCobol……

CILCILMetadataMetadata

ResourcesResources

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

CódigoCódigo

25

CompiladorCompilador AssemblyAssembly

DesenvolvimentoDesenvolvimento

C#C#J#J#VBVB

CobolCobol……

CILCILMetadataMetadata

ResourcesResources

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

CódigoCódigo

AssemblyAssembly

DesenvolvimentoDesenvolvimento

ApplicationApplicationDirectoryDirectory

GlobalGlobalAssemblyAssembly

Cache (GAC)Cache (GAC)

Common Language RuntimeCommon Language RuntimeDistribuiçãoDistribuição

SetupSetupCopyCopy

BrowserBrowser

Download Download CacheCache

InstallInstall

26Debug EngineDebug Engine

IL to NativeIL to NativeCompilerCompiler

ApplicationApplicationDirectoryDirectory

SetupSetupCopyCopy

BrowserBrowser

Download Download CacheCache

GlobalGlobalAssemblyAssembly

Cache (GAC)Cache (GAC)

AssemblyAssemblyon Target on Target MachineMachine

Common Language RuntimeCommon Language Runtime

AssemblyAssembly

DesenvolvimentoDesenvolvimento DistribuiçãoDistribuição

InstallInstall

ExecuçãoExecução

AssemblyAssemblyLoaderLoaderSecuritySecurityClass Class

LoaderLoader

Native .exe Native .exe + GC table + GC table

Code Code ManagerManager

Garbage CollectionGarbage Collection

Exception ManagerException Manager

Thread SupportThread Support

COM InteropCOM Interop

Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"

27

DemoDemoCommon Language RuntimeCommon Language Runtime

28

Objectivos no desenho Objectivos no desenho da .NET Frameworkda .NET Framework

Simplificar o desenvolvimento de Simplificar o desenvolvimento de aplicaçõesaplicações

Fornecer um ambiente de execução Fornecer um ambiente de execução seguro e robustoseguro e robusto

Suporte para múltiplas linguagens de Suporte para múltiplas linguagens de programaçãoprogramação

Simplificar a distribuição e Simplificar a distribuição e manutenção de aplicaçõesmanutenção de aplicações

29

Simplificar o desenvolvimentoSimplificar o desenvolvimento

HWND hwndMain = CreateWindowEx(HWND hwndMain = CreateWindowEx( 0, "MainWinClass", “Janela Principal",0, "MainWinClass", “Janela Principal", WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, hInstance, NULL); (HWND)NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hwndMain, SW_SHOWDEFAULT); ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain);UpdateWindow(hwndMain);

Form form = new Form();Form form = new Form();form.Text = “Janela Principal";form.Text = “Janela Principal";form.Show();form.Show();

Windows APIWindows API

.NET Framework.NET Framework

30

Simplificar o desenvolvimentoSimplificar o desenvolvimento OrganizaçãoOrganização

O código é organizado em classes e O código é organizado em classes e namespaces hierárquicosnamespaces hierárquicos

Sistema de tipos unificadoSistema de tipos unificado Tudo é um objecto, não há Variants, um Tudo é um objecto, não há Variants, um

só tipo string, todas as strings são só tipo string, todas as strings são UnicodeUnicode

Orientado a ComponentesOrientado a Componentes Suporte nativo para propriedades, Suporte nativo para propriedades,

métodos, eventos, e atributosmétodos, eventos, e atributos Funcionalidade Design-timeFuncionalidade Design-time

31

System

System.Data System.Xml

System.Web

GlobalizationDiagnosticsConfigurationCollections

ResourcesReflectionNetIO

ThreadingTextServiceProcessSecurity

DesignADO

SQLTypesSQL

XPathXSLT

RuntimeInteropServicesRemotingSerialization

Serialization

Configuration SessionStateCaching Security

ServicesDescriptionDiscoveryProtocols

UIHtmlControlsWebControls

System.Drawing

ImagingDrawing2D

TextPrinting

System.WinFormsDesign ComponentModel

..NET Framework NamespaceNET Framework Namespace

32

Robusto e SeguroRobusto e Seguro Gestão automática da “existência” dos objectosGestão automática da “existência” dos objectos

Todos os objectos no.NET são geridos pelo “garbage Todos os objectos no.NET são geridos pelo “garbage collector”collector”

Não há pointers “perdidos” ou referências circularesNão há pointers “perdidos” ou referências circulares Code correctness and type-safetyCode correctness and type-safety

O código IL pode ser verificado para garantir que é “type-O código IL pode ser verificado para garantir que é “type-safe”safe”

Não existem casts inválidos, variavéis não inicializadas, Não existem casts inválidos, variavéis não inicializadas, acesso a posições incorrectas nos arrays…acesso a posições incorrectas nos arrays…

Segurança baseada em “provas”Segurança baseada em “provas” Baseada na origem do código, assim como do utilizadorBaseada na origem do código, assim como do utilizador As permissões são extensíveisAs permissões são extensíveis

33

Plataforma Multi-LinguagemPlataforma Multi-Linguagem

Liberdade de escolha da linguagemLiberdade de escolha da linguagem Todas as funcionalidades da .NET Framework Todas as funcionalidades da .NET Framework

estão disponíveis para qualquer linguagem .NETestão disponíveis para qualquer linguagem .NET Os componentes de uma aplicação podem ser Os componentes de uma aplicação podem ser

escritos em várias linguagensescritos em várias linguagens Os Debuggers, profilers, code coverage Os Debuggers, profilers, code coverage

analyzers, etc…, funcionam para todas as analyzers, etc…, funcionam para todas as linguagenslinguagens

Compiladores disponíveisCompiladores disponíveis Da Microsoft: VB.NET, C++, C#, JScript.NET, J#Da Microsoft: VB.NET, C++, C#, JScript.NET, J# De outras companhias / universidades: APL, De outras companhias / universidades: APL,

COBOL, Eiffel, Fortran, Haskell, ML, Perl, COBOL, Eiffel, Fortran, Haskell, ML, Perl, Python, RPG, Scheme, Smalltalk, …Python, RPG, Scheme, Smalltalk, …

35

string s = "authors";SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn);cmd.ExecuteReader();

C#C#

Dim s as Strings = "authors"Dim cmd As New SqlCommand("select * from " & s, sqlconn)cmd.ExecuteReader()

VB.NETVB.NET

Suporte a várias linguagensSuporte a várias linguagens

C++C++String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s),

sqlconn); cmd.ExecuteReader();

36

Suporte a várias linguagensSuporte a várias linguagensJ#J#String s = "authors";

SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn);

cmd.ExecuteReader();

37

String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s), sqlconn); cmd.ExecuteReader();

PerlPerl

s = "authors"cmd =SqlCommand("select * from " + s, sqlconn)cmd.ExecuteReader()

PythonPython

var s = "authors"var cmd = new SqlCommand("select * from " + s, sqlconn)cmd.ExecuteReader()

Jscript.NETJscript.NET

Suporte a várias linguagensSuporte a várias linguagens

38

ENVIRONMENT DIVISION.CONFIGURATION SECTION.REPOSITORY. CLASS SqlCommand AS "System.Data.SqlClient.SqlCommand"    CLASS SqlConnection AS "System.Data.SqlClient.SqlConnection".DATA DIVISION.WORKING-STORAGE SECTION.01 str PIC X(50).01 cmd-string PIC X(50).01 cmd OBJECT REFERENCE SqlCommand.01 sqlconn OBJECT REFERENCE SqlConnection.PROCEDURE DIVISION. *> Establish the SQL connection here somewhere.MOVE "authors" TO str.STRING "select * from " DELIMITED BY SIZE,   str DELIMITED BY " " INTO cmd-string.INVOKE SqlCommand "NEW" USING BY VALUE cmd-string sqlconn RETURNING cmd.INVOKE cmd "ExecuteReader".

CobolCobol

Suporte a várias linguagensSuporte a várias linguagens

39

assembly_external(name="System.Data.SqlClient.SqlCommand")sqlcmdcharacter*10 xsqlcmd Cmd x='authors'cmd = sqlcmd("select * from "//x, sqlconn)           call cmd.ExecuteReader()end 

FortranFortran

  DclFld MyInstObj Type( System.Data.SqlClient.SqlCommand ) DclFld s Type( *string ) s = "authors" MyInstObj = New System.Data.SqlClient.SqlCommand("select *

from "+s, sqlconn) MyInstObj.ExecuteReader()

RPGRPG

Suporte a várias linguagensSuporte a várias linguagens

40

Suporte a várias linguagensSuporte a várias linguagens

    |s| := 'authors'.    |cmd| := SqlCommand('select * from '+s, sqlconn).    cmd.ExecuteReader().

SmalltalkSmalltalk

APLAPLs←String.New ‘authors’cmd←SqlCommand.New (‘select * from ‘,s.ToString σ) sqlconncmd.ExecuteReader

41

(let* ( (s "authors")  (cmd (new-SqlCommand (string-append "select * from " s) sqlconn)))(execute-command cmd))

SchemeScheme

ExecuteReader = invoke System.Data.SqlClient.ExecuteReader();SqlCommand = create System.Data.SqlClient.SqlCommand(String,\ System.Data.SqlClient.SqlConnection);query = sqlconn -> let{ s = "authors"; } in {   cmd <- SqlCommand ("select * from "+s, sqlconn);   cmd # ExecuteReader();    };  MondrianMondrian

local      s: STRING      cmd: SQLCOMMANDdo      s := "authors"      create cmd("select * from " + s, sqlconn)      cmd.ExecuteReader()end

EiffelEiffel

Suporte a várias linguagensSuporte a várias linguagens

42

DemoDemoSuporte multilinguagemSuporte multilinguagem

43

Standardização do .NETStandardização do .NET CLI e C# “standardizados” pela ECMACLI e C# “standardizados” pela ECMA

Submissão conjunta com Intel e Hewlett-PackardSubmissão conjunta com Intel e Hewlett-Packard A 13 de Dezembro de 2001, ECMA General A 13 de Dezembro de 2001, ECMA General

Assembly ractificou as especificações do C# e da Assembly ractificou as especificações do C# e da “common language infrastructure” (CLI) para “common language infrastructure” (CLI) para standards internacionais. standards internacionais.

Existem companhias a implementar as Existem companhias a implementar as especificações ECMA. Por exemplo, a Ximian com o especificações ECMA. Por exemplo, a Ximian com o Project Mono (.NET em Linux)Project Mono (.NET em Linux)

Está disponível para download “Está disponível para download “The Microsoft The Microsoft Shared Source CLI Implementation” para Windows e Shared Source CLI Implementation” para Windows e FreeBSD FreeBSD

http://msdn.microsoft.com/net/ecmahttp://msdn.microsoft.com/net/ecma//

44

Como saber mais sobre Como saber mais sobre a .NET Framework?a .NET Framework?

.NET Framework SDK (essencial!).NET Framework SDK (essencial!) CLR, compiladores de linha de comando, CLR, compiladores de linha de comando,

debuggers, class libraries, documentação, …debuggers, class libraries, documentação, … Download grátisDownload grátis Size: ~100 MBSize: ~100 MB

Visual Studio .NET (opcional)Visual Studio .NET (opcional) IDE (Ambiente de Desenvolvimento IDE (Ambiente de Desenvolvimento

Integrado) Integrado) Size: ~1.5 GBSize: ~1.5 GB

45

.NET Compact Framework.NET Compact Framework

.NET Framework para dispositivos .NET Framework para dispositivos embebidosembebidos

46

AgendaAgenda

Web Services e Smart DevicesWeb Services e Smart DevicesA plataforma .NETA plataforma .NETO Modelo de ProgramaçãoO Modelo de ProgramaçãoSumárioSumário

47

.NET em suma.NET em suma A plataforma de desenvolvimento de A plataforma de desenvolvimento de

software da Microsoft para a próxima software da Microsoft para a próxima décadadécada

Baseada em standards, para múltiplas Baseada em standards, para múltiplas linguagens e múlplipos dispositivoslinguagens e múlplipos dispositivos

Baseada na ideia dos Web ServicesBaseada na ideia dos Web Services

48

Referências:Referências: Sites:Sites:

http://msdn.microsoft.com/nethttp://msdn.microsoft.com/net

http://www.microsoft.com/portugalhttp://www.microsoft.com/portugal

http://www.microsoft.com/portugal/msdnhttp://www.microsoft.com/portugal/msdn

News GroupsNews Groups News.microsoft.comNews.microsoft.com

Microsoft.public.pt.vsnetMicrosoft.public.pt.vsnet

49

Muito Obrigado !Muito Obrigado !

top related