Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
Gustavo Cabral / Igor GatisGustavo Cabral / Igor Gatis{gflc,ialg}@cin.ufpe.br{gflc,ialg}@cin.ufpe.br
.NET Compact Framework.NET Compact Framework
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
RoteiroRoteiro CLR do .NET Compact FrameworkCLR do .NET Compact Framework .NET para Smart devices (Dispositivos Inteligentes).NET para Smart devices (Dispositivos Inteligentes)
MIT (Mobile Internet Toolkit)MIT (Mobile Internet Toolkit) SDE (Smart Device Extensions)SDE (Smart Device Extensions)
Smart Device Extensions e desenvolvimentoSmart Device Extensions e desenvolvimento ConclusãoConclusão ReferênciasReferências
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
CLR do .NET Compact Framework CLR do .NET Compact Framework
Motor de Execução (Execution Engine - EE) por CPU e SOpor CPU e SO MSCOREE.dll, MSCOREE1_0.dll (EE)MSCOREE.dll, MSCOREE1_0.dll (EE) NETCFAGL.dll (GWES interface)NETCFAGL.dll (GWES interface) CGACUTIL.exe (GAC manager)CGACUTIL.exe (GAC manager)
Biblioteca de Classes Independente de CPU e OSIndependente de CPU e OS DLLsDLLs
Arquivo de Erros (SYSTEM.SR.dll) Por linguagemPor linguagem
Globalização Pacote por linguagem/regiãoPacote por linguagem/região
Core do Sistema:Core do Sistema:
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
Arquitetura do CLR .NET Compact Arquitetura do CLR .NET Compact FrameworkFramework
Sistema OperacionalSistema Operacional
Camada de Adaptação da PlatformaCamada de Adaptação da Platforma
Motor de Execução (MSCOREE.DLL)Motor de Execução (MSCOREE.DLL)
Biblioteca de classes específicas da platformaBiblioteca de classes específicas da platforma
Classes BásicasClasses Básicas
AplicaçãoAplicação
.NET Compact Framework CLR.NET Compact Framework CLR
Dom
ínio
de
Apl
icaç
ões
Dom
ínio
de
Apl
icaç
ões
…RodandoGerenciaGerenciaNativoNativo
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
CLR do .NET Compact Framework CLR do .NET Compact Framework
Verificação de tipos na execução Controle de Controle de variáveisvariáveis não inicializadas, não inicializadas,
“casts” inseguros e verificação de indexes “casts” inseguros e verificação de indexes de arrays.de arrays.
Coletor de Lixo / Garbage collection Sem contador de referênciasSem contador de referências
Compilação JIT Sistema comum de tipos
Chamada, herança, depuração em Chamada, herança, depuração em diferentes linguagensdiferentes linguagens
Também tem:Também tem:
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
CLR do .NET Compact Framework CLR do .NET Compact Framework
ExceçõesExceções Construtores and DestrutoresConstrutores and Destrutores
IDisposable (Interface de Gerenciamento IDisposable (Interface de Gerenciamento de Recursos)de Recursos)
Debugging Remoto Debugging Remoto Domínio de AplicaçãoDomínio de Aplicação
Aplicação pode iniciar outro processo em Aplicação pode iniciar outro processo em outro domínio de aplicaçãooutro domínio de aplicação
Platform Invocation Services (Platform Invocation Services (P/Invoke)P/Invoke)
Suporta:Suporta:
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
CLR do .NET Compact Framework CLR do .NET Compact Framework Compacto?Compacto?
File Size Classes Methods
NETCF Desktop % NETCF Desktop % NETCF Desktop %
“MSCorEE” 400K* 2.2 M 18% N/A N/A N/A N/A N/A N/A
MSCorLib 200K 2M 10% 364 1286 28% 3989 13817 29%
System 100K 1.2M 8% 140 765 18% 1090 6953 16%
System.Drawing 20K 458K 5% 41 254 16% 385 3509 11%
System.Web.Services 67K 503K 13% 54 274 20% 302 2083 14%
System.Windows.Forms 56+55K 2M 5% 43 823 5% 393 11337 3%
System.XML 138K 1.2M 12% 100 724 14% 927 7227 13%
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
CLR do .NET Compact Framework CLR do .NET Compact Framework
ASP .NETASP .NET COM InteropCOM Interop
P/Invoke realiza chamadas a DLLs/Win32P/Invoke realiza chamadas a DLLs/Win32 Escrita de objectos COMEscrita de objectos COM
Framework é um subconjunto (cerca de 25%)Framework é um subconjunto (cerca de 25%) RemotingRemoting
Client Web Services é suportadoClient Web Services é suportado Serialização GenéricaSerialização Genérica ReflectionReflection Install-time JIT (nGen)Install-time JIT (nGen)
Não suporta:Não suporta:
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
RoteiroRoteiro CLR do .NET Compact FrameworkCLR do .NET Compact Framework .NET para Smart devices (Dispositivos Inteligentes).NET para Smart devices (Dispositivos Inteligentes)
MIT (Mobile Internet Toolkit)MIT (Mobile Internet Toolkit) SDE (Smart Device Extensions)SDE (Smart Device Extensions)
Smart Device Extensions e DesenvolvimentoSmart Device Extensions e Desenvolvimento ConclusãoConclusão ReferênciasReferências
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
.NET para Smart devices.NET para Smart devicesVisão da Planaforma de desenvolvimentoVisão da Planaforma de desenvolvimento
Visual Studio .NETVisual Studio .NET
.NET framework.NET framework
ASP.NET Páginas WebASP.NET Páginas Web
Mobile Web Mobile Web browserbrowser
Aplicação Aplicação Server-sideServer-side
Código LocalCódigo Local
.NET compact.NET compactframeworkframework
Aplicação Aplicação Client-sideClient-side
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
.NET para Smart devices.NET para Smart devicesMobile Internet Toolkit (MIT)Mobile Internet Toolkit (MIT)
Common Language Runtime (CLR)Common Language Runtime (CLR)
Framework BásicoFramework Básico
Data e XMLData e XML
Web ServicesWeb Services User interfaceUser interface
ASP.NET, Mobile Internet ToolkitASP.NET, Mobile Internet Toolkit
VBVB C++C++ C#C# PerlPerl PythonPython ……
Visual Studio .NETVisual Studio .NET
WindowsWindows
SOAPSOAP
XML Web servicesXML Web services
Páginas Web MoveisPáginas Web Moveis
Web browser MóvelWeb browser Móvel
Device OSDevice OS
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
.NET para Smart devices.NET para Smart devicesSmart Device Extensions (SDE)Smart Device Extensions (SDE)
Visual Studio .NETVisual Studio .NET
.NET framework.NET framework
ASP.NET Páginas WebASP.NET Páginas Web
Mobile Web Mobile Web browserbrowser
Aplicação Aplicação Server-sideServer-side
Código LocalCódigo Local
.NET compact.NET compactframeworkframework
Aplicação Aplicação Client-sideClient-side
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
.NET For Devices.NET For DevicesSDESDE
.NET compact.NET compactframeworkframework
Device OSDevice OS
Código LocalCódigo Local
SOAPSOAP
XML Web servicesXML Web services
Visual Studio .NETVisual Studio .NET
.NET compact framework.NET compact framework
WindowsWindows
Smart device extensionsSmart device extensions
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
.NET para Smart Devices.NET para Smart DevicesMIT versus SDEMIT versus SDEMITMIT
VantagensVantagens Suportado em mais dispositivosSuportado em mais dispositivos Acessado pelo BrowserAcessado pelo Browser MIT controla as difereças entre os dispositivosMIT controla as difereças entre os dispositivos
DesvantagensDesvantagens Não funciona “offline”Não funciona “offline” Não necessita de poder de processamento localNão necessita de poder de processamento local Interface com usuário limitadaInterface com usuário limitada
SDESDE VantagensVantagens
Aplicativos funcionam “online” e “offline”Aplicativos funcionam “online” e “offline” Pode utiliza todos recursos do Pocket PCPode utiliza todos recursos do Pocket PC Excelente integração com SQL ServerExcelente integração com SQL Server™™ CE CE Poder computacional local, gráficos ricos e multimediaPoder computacional local, gráficos ricos e multimedia
DesvantagensDesvantagens Suporte limitadoSuporte limitado
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
RoteiroRoteiro CLR do .NET Compact FrameworkCLR do .NET Compact Framework .NET para Smart devices (Dispositivos Inteligentes).NET para Smart devices (Dispositivos Inteligentes)
MIT (Mobile Internet Toolkit)MIT (Mobile Internet Toolkit) SDE (Smart Device Extensions)SDE (Smart Device Extensions)
Smart Device Extensions e DesenvolvimentoSmart Device Extensions e Desenvolvimento ConclusãoConclusão ReferênciasReferências
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
Smart Device Extensions (SDE)Smart Device Extensions (SDE)PotencialidadePotencialidade
Desenvolvimento de Aplicações Client-Desenvolvimento de Aplicações Client-side Móveis no Visual Studio .NETside Móveis no Visual Studio .NET Rico e fácilRico e fácil Visual Basic .NET and Visual C# .NETVisual Basic .NET and Visual C# .NET Debugging RemotoDebugging Remoto EmulaçãoEmulação
RAD - RRAD - Rapid Application Developmentapid Application Development Saídas do .NET Compact FrameworkSaídas do .NET Compact Framework
XML, XML Web Services, ADO.NETXML, XML Web Services, ADO.NET Components: Forms e Drawing para AplicaçãoComponents: Forms e Drawing para Aplicação
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
Smart Device ExtensionsSmart Device ExtensionsSaídas do .NET Compact FrameworkSaídas do .NET Compact Framework
Compact common language runtime
• Uso Mínimo de recursos
• Independente de Device, CPU e OS
• Performace e tamanho configuraveis
XML, SOAP, UDDIXML, SOAP, UDDI
OSOS
Common Language Runtime (CLR)Common Language Runtime (CLR)
Base frameworkBase framework
Data and XMLData and XML
Web servicesWeb services User interfaceUser interface
VBVB C++C++ C#C# PerlPerl PythonPython ……
Visual Studio.NETVisual Studio.NET Classes seguras e integradas (bibliotecas)• Modelo de Programação Unificado
• Integração entre linguagens
• Desenvolvido para ferramentas
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
Smart Device ExtensionsSmart Device Extensions.NET Compact Framework.NET Compact Framework
SystemSystem
System.DataSystem.Data System.XmlSystem.Xml
System.WebSystem.Web
ResourcesResources
RemotingRemotingSerializationSerialization
DescriptionDescriptionDiscoveryDiscoveryProtocolsProtocols
HtmlControlsHtmlControlsWebControlsWebControls
System.DrawingSystem.Drawing
ServiceProcessServiceProcessConfigurationConfiguration
DesignDesign Xslt/XPathXslt/XPath
RuntimeRuntimeInteropServicesInteropServices
SerializationSerialization
ConfigurationConfiguration SessionStateSessionStateCachingCaching
UIUI
ImagingImagingPrintingPrinting
System.WinFormsSystem.WinForms
GlobalizationGlobalizationTextTextSecuritySecurityCollectionsCollections
ReflectionReflectionNetNetIOIO
ThreadingThreadingDiagnosticsDiagnostics
ADO.NETADO.NETSqlServerCeSqlServerCeSqlClientSqlClient XmlDocumentXmlDocument
SecuritySecurity
ServicesServices
Drawing2DDrawing2DTextText
DesignDesign ComponentModelComponentModel
Reader/WritersReader/Writers
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
Desenvolvimento no VS .NETDesenvolvimento no VS .NETVisão GeralVisão Geral
Uso de forms do Windows Drag-and-drop e propriedades Subconjunto de controles de desktop
Controles de GUIControles de GUI Entrada de dados (imputs)Entrada de dados (imputs) Telas (frames)Telas (frames)
Formatação e controles RADFormatação e controles RAD Controles organizacionaisControles organizacionais Controles de AjudaControles de Ajuda
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
Data entryCheck boxCombo boxCommand buttonDomain up/downList boxNumeric up/downRadio buttonText boxTrack bar
DisplayLabelPicture boxProgress barStatus bar
HelperContext menuScroll barsImage listMain menuOpen and save file dialogsTimerTool bar
Organizational List viewPanelTab control
DesenvolvimentoDesenvolvimentoSubconjunto de controles do desktopSubconjunto de controles do desktop
Não Suportados:Checked list boxData gridDatetime picker
Group boxMonth calendarTree view
Splitter
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
ConclusãoConclusão .NET Compact Framework
Ambiente de desenvolvimento integrado e único: Visual Studio .NET
Prove um modelo único para programação de PDA’s e Desktops
Suporta XML Web Services
Gustavo Cabral / Igor Gatis {gflc,ialg}@cin.ufpe.br
Cin / UFPE
Projeto de Compiladores – Prof. André Santos
24/04/23
ReferênciasReferências .NET Compact Framework and SDE
MBL307: Microsoft .NET Compact Framework OverviewMBL307: Microsoft .NET Compact Framework Overview MBL306: Developing Applications Using Visual Studio .NET and .NET MBL306: Developing Applications Using Visual Studio .NET and .NET
Compact FrameworkCompact Framework MBL403: Building Mobile Enterprise Applications with .NET Compact MBL403: Building Mobile Enterprise Applications with .NET Compact
FrameworkFramework Pocket PC and Microsoft Smartphone Native Code
MBL200: Introduction to the Microsoft Smartphone Development PlatformMBL200: Introduction to the Microsoft Smartphone Development Platform MBL305: Cross Platform Programming for the Pocket PC and the MBL305: Cross Platform Programming for the Pocket PC and the
Smartphone 2002Smartphone 2002 MBL304: Programming Pocket PC for Enterprise Applications with MBL304: Programming Pocket PC for Enterprise Applications with
eMbedded Visual ToolseMbedded Visual Tools MBL404: Power Programming Enterprise Applications with MBL404: Power Programming Enterprise Applications with
eMbedded Visual ToolseMbedded Visual Tools Data access
DAT413: SQL Server™ CE: Building Mobile Applications with SQL Server CE DAT413: SQL Server™ CE: Building Mobile Applications with SQL Server CE and Smart Device Extensionsand Smart Device Extensions