1 plataforma de desenvolvimento ricardo cavalcanti ([email protected]) sérgio clemente...
TRANSCRIPT
1
Plataforma de desenvolvimento
Ricardo Cavalcanti ([email protected])Sérgio Clemente ([email protected])
Centro de Informática – 19/07/2005
2
Windows LonghornNova versão do sistema operacional windowsGrande mudança desde o windows 95 e o modelo de computação de 32 bitsCriado em .NET
Primeiro SO feito parcialmente em código gerenciado
3
Windows LonghornEvolução do sistema operacional Windows.Evolução da concepção do software.
Ric
hnes
sR
ichn
ess
Win16Win16 Win32Win32COMCOM
MFCMFC
Componentes
ComponentesServiçosServiços
APIsAPIsWindows
3.0
WinFXWinFX
.NET Framework “Whidbey”
4
Roteiro da apresentaçãoPlataforma de desenvolvimento (SDK)Plataforma de desenvolvimento (SDK)WinFX
WinFS (Armazenamento)Avalon (Apresentação)
XAMLIndigo (Comunicação)
5
Plataforma de desenvolvimento
Win32 .NETFramework
WinFX
SDK
6
Plataforma de desenvolvimento
ComponentesNova api (WinFX)Antiga api (Win32)Contém ferramentas envolvidas na fase de desenvolvimento do software
Compilador, runtime, etc.Semelhante ao JDK ou ao .NET Framework
7
Roteiro da apresentaçãoPlataforma de desenvolvimento (SDK)WinFX
WinFS (Armazenamento)Avalon (Apresentação)
XAMLIndigo (Comunicação)
8
WinFX - Win EffectsFuncionalidades do SO acessíveis através de uma API de código gerenciado orientado a objetosSucessora da API Win32
Não roda em cima da Win32WinFX está para .NET assim como Win32 está para C++.
9
WinFXTM
Apresentação Armazenamento Comunicação
Serviços básicos do sistema operacional
AvalonAvalon WinFSWinFS IndigoIndigo
BaseBase
10
WinFX
Codigo .NETCodigo .NET Win32 APIWin32 API
Codigo .NETCodigo .NET WinFXWinFX
PassadoPassado
PresentePresente
Código feito em CCódigo feito em C
Interoperabilidade Interoperabilidade custa caro!custa caro!
11
WinFX – Uma API extensa.Net Framework 1.0 Longhorn
(build beta)Assemblies 39 172
4.4x
Namespaces 121 4383.6x
Types 3,889 13,595 3.5x
Membros implementados
32,523 93,217 2.9x
•APIs para acesso a funcionalidades de baixo nível•Mais funcionalidades de alto nivel para aumentar produtividade
12
Roteiro da apresentaçãoPlataforma de desenvolvimento (SDK)WinFX
WinFS (Armazenamento)Avalon (Apresentação)
XAMLIndigo (Comunicação)
13
WinFS - Windows File System
Novo sistema de arquivos utilizado no longhornMotivação
Grande volume de dadosDesktops no futuro terão hds em tera bytes
Dificuldade de achar documentosPesquisa indica que de 15-30% do tempo do funcionário são gastas com buscas e 50% delas falham. [IDC]
Dificuldade de relacionar dadosDificuldade de achar documentos de um determinado autor
Segundo [WinFS101]Segundo [WinFS101]
14
WinFSUm sistema de arquivos totalmente novo? Não!
Construido sobre o NTFSTotalmente compatível com o sistema de arquivos atual
Utiliza uma base de dados relacional para armazenar metadados dos arquivos
Procurar documentos word cujo nome do autor é ‘Smith’Possibilidade de relacionar fotos com pessoas, documentos com pessoas, etc
15
WinFSAPI orientada a objetos
Utiliza uma linguagem denominada OPATH
SQLUtiliza T-SQL
Dim personItem As PersonFor Each personItem In Person.FindAll(context, "PersonalNames.Surname=’Smith’") ...Next
select p._Item from [System.Storage.Contacts.Store].[Person] p where exists (select * from unnest (p.PersonalNames) n where n.Surname=‘Smith')
16
Roteiro da apresentaçãoPlataforma de desenvolvimento (SDK)WinFX
WinFS (Armazenamento)Avalon (Apresentação)
XAMLIndigo (Comunicação)
17
AvalonSubsistema para apresentação do longhorn
Sucessor do GDI / GDI+ (motor de desenho do windows)
Integração de IU para aplicativos, documentos e conteúdos multimídia
Interfaces independentes do destino (web ou desktop)
Uso de XAML para definição da interfaceLinguagem declarativa
18
AvalonO motor do Avalon é criado sobre o DirectXMotor utiliza figuras em formato vetorial
Utilizando o poder da placa de vídeo (que passa grande parte do seu tempo ociosa)
Dois modelos de programaçãoDeclarativa (Designers)Procedural (Programadores)
19
AvalonMelhor da Web, Melhor do Windows
WebImplantação e atualização simples e fácil gerenciamentoFlow layoutModelo declarativo
WindowsNão restrição de funcionalidade (drag and drop)Integração com desktopBom suporte offline (Smart Clients)Escalabilidade e Performance
20
XAMLLinguagem declarativa baseada em XML para definir interface gráficaSeparação de apresentação e código permite que o designer trabalhe na IU enquando que o desenvolvedor trabalhe na lógica
21
XAMLExemplo<Window xmlns="http://schemas.microsoft.com/2003/xaml"> <Button>Hello World</Button></Window>
22
XAMLElementos do XML estão associados a classes
Atributos dos elementos estão associados a propriedades dos objetos
Tudo muito simples, mas onde colocar o código para os eventos??
InlineCodebehind
Button btn = new Button();btn.Width = new Length(90);btn.Height = new Length(32);Canvas.SetTop(btn, new Length(10));Canvas.SetLeft(btn, new Length(10));btn.Content = "Click Me";
<Canvas xmlns="http://schemas.microsoft.com/2003/xaml"> <Button Canvas.Left="10" Canvas.Top="10" Width="90px" Height="32px">Click Me</Button></Canvas>
Codigo procedural no longhornFuncionalidade idêntica feita em XAML
23
XAMLInline
<DockPanel><Button ID="btn1" Height="50" Width="200" Background="Red"
Foreground="White" FontFamily="Times New Roman" FontSize="14" Content="Red Button" Click="ButtonClickMethod"/>
<x:Code><![CDATA[void ButtonClickMethod(object sender, EventArgs e){ btn1.Background = Brushes.Green; MessageBox.Show("Red Button clicked");} ]]></x:Code> </DockPanel>
24
XAMLCodebehind<Window xmlns="http://schemas.microsoft.com/2003/xaml" xmlns:def="Definition" def:Class="Form1" def:CodeBehind="Form1.xaml.cs" Text="Form1" Visible="True" ><Button Width="90px" Height="25px" Click="Click">Click Me</Button></Window>
public partial class Form1 : Window{ private void Click(object sender, MouseButtonEventArgs e) {
// ... }}
25
Roteiro da apresentaçãoPlataforma de desenvolvimento (SDK)WinFX
WinFS (Armazenamento)Avalon (Apresentação)
XAMLIndigo (Comunicação)
26
O que é o Indigo?É um conjunto de tecnologias para criar aplicações distribuídas e de grande porte.Baseado em orientação a serviçosImplementa SOAP e outras tecnologiasInteroperabilidade inclusive com aplicações não-Microsoft
27
Orientação a serviços [Chappell]
Um serviço é um programa que interage com outros através de mensagens.
Fronteiras bem definidasAutonomiaApenas esquemas e contratos compartilhadosBaseados em políticas (WS-Policy-based)
Um cliente é um programa que torna os serviços usáveis por pessoas.Um sistema conectado é uma coleção de serviços interconectados.
28
Indigo [INDIGO]
Protocolos WS-*Protocolos WS-*InteroperabilidadInteroperabilidad
eeSOASOA
Transações Transações Distribuídas, Distribuídas,
etcetc
Enfileiramento Enfileiramento de Mensagensde Mensagens
Comunicação .Comunicação .NET – .NETNET – .NET
WSEWSEASMXASMX RemotingRemoting EnterprisEnterprisee
ServicesServicesMSMQMSMQ
29
Dúvidas?
30
ReferênciasMicrosoft Longhorn http://msdn.microsoft.com/Longhorn/[IDC] http://www.idc.comIntroduction - Windows 2000 Graphics API Black Book - http://graphicsbb.itgo.com/intro.htmlRevolutionary File Storage System Lets Users Search and Manage Files Based on Content - http://msdn.microsoft.com/longhorn/default.aspx?pull=/msdnmag/issues/04/01/WinFS/default.aspxCLI201: WinFS Overview: The New Storage Subsystem In Longhorn[WinFS 101] WinFS 101: Introducing the New Windows File System http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinfs/html/winfs03112004.asp[INDIGO] Longhorn Developer Corner: Indigohttp://msdn.microsoft.com/Longhorn/Indigo/default.aspx[Chappell] Chappell, David. Introducing Indigo: An Early Look. Disponível em http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.as:px?pull=/library/en-us/dnlong/html/introindigov1-0.asp
31
ReferênciasWindows Longhorn Developer Center http://www.c-sharpcorner.com/Longhorn/A First Look at Writing and Deploying Apps in the Next Generation of Windows http://msdn.microsoft.com/longhorn/understanding/pillars/fundamentals/default.aspx?pull=/msdnmag/issues/04/01/DevelopingAppsforLonghorn/default.aspxIntroduction To WinFX http://www.deepwinfx.com/Articles/IntroductionToWinFX.aspxIntroduction to Win32 http://www.functionx.com/win32/Lesson01.htmIntroduction to XAML http://www.longhorncorner.com/UploadFile/mahesh/XAMLIntro03282005195730PM/XAMLIntro.aspx?ArticleID=ed4b789e-7b95-4e25-8860-c0f7f3511d7b&PagePath=/UploadFile/mahesh/XAMLIntro03282005195730PM/XAMLIntro.aspxAvalon November 2004 Community Technology Preview http://msdn.microsoft.com/Longhorn/understanding/pillars/avalon/avnov04ctp/default.aspxWinFS Data Model http://www.longhorncorner.com/UploadFile/jrodriguez/WinFSDataModel03072005041249AM/WinFSDataModel.aspx?ArticleID=5ddee374-f09a-45b9-a9b8-cd22ef5d0897
32
Plataforma de desenvolviment
o
Ricardo Cavalcanti ([email protected])Sérgio Clemente ([email protected])
33
AvalonApplication Model
Composable component architectureLayout engineTwo-way transformable data bindingRich visual styling and themingBrowser hosting
Graphics Model2D & 3D GraphicsImagingTextVideo and audioAnimation
Document ModelFixed, flow and adaptive layoutsAdvanced typographyContainer servicesRights management
Media IntegrationLayer
Element Services
Appl
icatio
nM
odel
Docu
men
tM
odel
Grap
hics
Mod
el
Composition and Rendering
.NET Framework
DirectX
AvalonAvalon
Tool
s and
Lan
guag
es
34
WinFS
1
2
5
3
6
1. Sistema de arquivos NTFS
2. Motor relacional sqlserver
3. Serviços base de um sistema de arquivos, importação/exportação.
4. Fornece o relacionamento entre itens
5. Definição de itens complexos
6. Serviços de notificação, sicronização, etc.
7. API para acesso as funcionalidades
7
4
35
XAMLElementos raiz possíveis
Window (Windows/Web)CanvasPaineis
36
XAMLNecessita ou não ser compilado
Caso não contenha código, pode ser aberto no browserCaso contenha código, precisa ser compilado
37
XAMLProcesso de compilação
Arquivo XAML(Form1.xaml)
Code behind(Form1.xaml.cs)
Arquivo de projeto do longhorn
(Application1.proj)
Executável(Aplication1.exe)
Build (msbuild.exe)
38
WinFX
CommunicationAvalon WinFS IndigoWindows
FormsASP.NET
ObjectSpaces
DataSet
SQL XML
Providers
Framew
ork
ServicesSchemas
Data Model
ADO.NET
Connectivity
Synchronization(WinFS, Win32..)
InfoAgent(PreferenceRules..)
FileSystem Services(MetaDataHandlers..)
Calendar Media
Document …
Items
Relationships
ExtensionsCommunications Manager (Port)
Messaging Services
Transport Channels(IPC, HTTP, TCP…)
Channels (Datagram, Reliable, Peer, …)
Policy Engine
MessageEncoder
ChannelSecurity
Queuing
Eventing
Routing
Transaction
Desktop Services
Desktop WindowManager
Presentation Object Manager
Desktop Composition Engine
Animation andComposition
Media Services
Hardware Rendering
MediaProcessing
Capture and Sourcing
Software Renderingand Sinks
Adaptive UIEngine
Page/SiteComposition
Personalization andProfiling Services
Membership and Security Services
Designer Services
Controls Interop Engine
Controls
Windows Forms
ApplicationServices
People Group
Collaboration
People andGroups
CollaborationHistory
Real-TimeActivities
SignalingFederation
System Services
Transactions Storage
Protocols
Network Services
Kernel M
ode
Base Class Libraries
Memory Manager
Hosting Layer
Code Execution Loader Security Serialization
LightweightTransactions
TransactionCoordinator
KernelTransactionManager
LoggingService
Kernel
Hardware Abstraction Layer
ProcessManager
SecurityReference Monitor
LPCFacility
MemoryManager
PowerManager
ConfigManager
Plug andPlay
TransactedNTFS
Cache ManagerUniversal
Data Format
FilterEngine
TCP, UDPIPV4, IPV6 IPSEC QOS HTTP
Listener
Internet Connection Firewall
Demand Activation and Protocol Health
PNRP NativeWiFi SIP TCP
ListenerUDP Listener
IPC Listener
Network Class Library
GDI/GDI+ WindowManager
GlobalAudio Engine
Direct 3DGraphics
Graphics drivers
DDI InputManager
AudioDrivers
DirectX GraphicsMini port
Redirectors
SCSI/FC 802.3 802.11 ..
Device Drivers
ManagementServices
(Event Logs,Tracing,Probes,
Auto Update,Admin)
IO Manager
Application DeploymentEngine (Click-Once)
Identity &SecuritySystem
FAT 16/32
FilterManager
DistributedFile System
Virtual ShadowCopy Service
File ReplicationService
Virtual DiskService
Models
ServiceObject T/SQL XMLDocument UI Media
CLR
Apresentação Armazenamento Comunicação
Serviços básicos do sistema operacional
Avalon WinFS Indigo
TM