Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESRI...

Preview:

DESCRIPTION

Resumo Sessão Técnica "ArcGIS 10.1 Desktop Developer Migration Topics" do ESRI Developer Summit 2012

Citation preview

Resumo da Sessão Técnica

ArcGIS 10.1 Desktop Developer Migration Topics

Bruno CaimarImagem Soluções Verticais

Maio / 2012

Agenda• Mudanças no ArcGIS 10.0 e 10.1 - Requisitos do SDK - Suporte 64 Bit - Publisher Policy Files - Mudanças nome de produto (10.1)• Runtime Binding ( Aplicações Standalone )• Mudanças no registro de componentes• Workflow para migração• Novas opções para customização - Add-ins - Python - ArcGIS Runtime• Migração VBA/VB6• FAQ (Perguntas e Respostas) e Dicas rápidas

Requisitos SDK10.0• Visual Studio 2008 sp 1 / Visual Studio Express 2008• Visual Studio 2010• .NET Framework - 3.5 sp 1• Certificado no .Net 3.5 sp1

10.1• Visual Studio 2010 / Visual Studio 2010 Express • .NET Framework - 3.5 sp 1• Certificado .Net 4.0

ArcGIS Desktop• Engine Runtime deve estar instalado• ArcObjects .NET SDK• ArcGIS Engine Developer Kit License

.NET Framework

.NET Framework 3.5 é o minimo requerido - Instalado com o Engine ou Desktop .NET Framework 4.0 completamente suportado (10.1) - requer instalação independente

Interop types não são mais necessários

Suporte 64 Bit

• ArcGIS Desktop e Engine são aplicações de 32 bit - Rodam como aplicações 32 bit em SO's 64 Bit

• Aplicações Standalone - Compilar para plataforma x86 (padrão VS é “Any CPU”)

• ArcGIS 10 já é Large Address Aware - Pode utilizar até 4 GB de RAM (se disponível) em SO's 64 bit

No Publisher Policy Files

● Policy files especificam o redirecionamento de assembly's- Incluído nas versões anteriores

● Desktop inclui um arquivo de configuração- Redireciona os assemblies do 9.3.x para o 10- Apenas para auxiliar na migração

● Recomenda-se que todas as aplicações sejam recompiladas (tanto para o 10.0 quanto para o 10.1)

Mudanças no nome de Produto (10.1)

- Mudanças na enumeração esriProductCode10.0 10.1esriProductCodeArcView esriProductCodeBasicesriProductCodeArcEditor esriProductCodeStandardesriProductCodeArcInfo esriProductCodeAdvanced

- Mudanças na enumeração esriLicenseProductCode10.0 10.1esriLicenseProductCodeArcView esriLicenseProductCodeBasicesriLicenseProductCodeArcEditor esriLicenseProductCodeStandardesriLicenseProductCodeArcInfo esriLicenseProductCodeAdvanced

Runtime BindingAplicações Standalone

• No ArcGIS 10 cada aplicação possui seu próprio runtime - Cada aplicação tem seu próprio local de instalação - Service pack separados

● ArcObjects deve ser, obrigatoriamente, apontado para um runtime - Requerido para todas as aplicações standalone - Obrigatório fazer “bind” antes de qualquer chamada ArcObjects - Aplicações “Engine” podem fazer “bind” para runtime “Desktop” ou “Engine”

● Importante - Binding não é licenciamento - Ainda e necessário utilizar uma licença

Runtime Binding - How To

• Adicionar uma referencia para ESRI.ArcGIS.Version• Utilizar classe estática RuntimeManager - Chamar ESRI.ArcGIS.RuntimeManager.Bind passando o código do produto que deseja utilizar - Também é possível utilizar o método BindLicense que realiza o “Bind” e também chama o AoInitialize (licença)

• Recomendado efetuar o “Bind” no método main(c#)/evento startup(VB.NET)

- O assembly chama-se ESRI.ArcGis.Version- O namespace chama-se Esri.ArcGis

Componentes customizadosRegistro de componentes

• Antes da versão 10, o ArcGIS 'descobria' quais customizações ele deveria carregar baseado na categoria que o componente estava registrado (registro do Windows)

• No ArcGIS 10 as categorias de componentes NÃO são mais obtidas no registro

• Essas informações são agora obtidas em arquivos de configuração (*.eecfg)

Componentes customizadosComo registrar componentes

• Componentes ainda são baseados em COM - Obrigatório registrar como componente COM

• Utilizar o utilitário ESRIRegAsm.exe para: - Registrar o componente COM - Criar o arquivo ECFG no local apropriado Engine: %CommonProgramFiles%\ArcGIS\Engine10.0\Configuration\CATID

\ArcGIS\Engine10.1\Configuration\CATID Desktop: %CommonProgramFiles%\ArcGIS\Desktop10.0\Configuration\CATID

\ArcGIS\Desktop10.1\Configuration\CATID

• Sugestão em tempo de desenvolvimento- Adicionar um “custom build step” no seu projeto .NET

para realizar a chamada ao utilitário

Componentes customizadosDeploy

Opção 1: - Chamar o utilitário ESRIRegAsm.exe na maquina alvo - ESRIRegAsm.exe <MyDll.dll> /p:<Product>

* Utillitário é sempre instalado pelo ArcGIS no caminho%CommonProgramFiles%\Common Files\ArcGIS\bin

Opção 2: - Registrar o componente COM normalmente - Copiar o arquivo ecfg para o local apropriado Engine: %CommonProgramFiles%\ArcGIS\Engine10.0\Configuration\CATID

\ArcGIS\Engine10.1\Configuration\CATID Desktop: %CommonProgramFiles%\ArcGIS\Desktop10.0\Configuration\CATID

\ArcGIS\Desktop10.1\Configuration\CATID

Workflow para migração• Executar o “Code Migration Analyzer” que está incluído no ArcObjects SDK - Gera um relatório com avisos que auxiliam na migração para o 10

• Acertar as mudanças nos Assemblies (Marcar “specific version” para “false”)• Adicionar novo passo para o registro dos componentes• Aplicações Standalone devem adicionar o código para o “Bind” do runtime

(10.1) • Atualizar códigos que utilizam as enumerações que mudaram

Add-InsNovo Framework de Customização

• Não requer componentes COM• Disponível em Java\.NET e Python (10.1)• Empacotado em um arquivo *.esriaddin(zip file)

• Deploy pode ser feito com um simples Xcopy• Instalação com duplo clique

• Instalação por usuário• Não requer permissões administrativas• Pode ser assinado digitalmente• Instalação pode ser controlada por administrador• Pode ser disponibilizado em um diretório compartilhado na rede

PythonMuitas melhorias no suporte ao Python no ArcGIS 10

• Pacote ArcPy - Automation of GIS mapping functionality - Geoprocessing / Printing and Exporting - Manipulate Map Document and Layer Files - Automate Map Book creation / Automation of GIS analysis - Python API for Spatial Analyst and GeoStatistical Analyst

* Add-Ins em Python (10.1)

• Um mesmo script pode rodar no - Desktop - Engine - Server - Windows / Linux

Novo ArcGIS Runtime (10.1)- Nova arquitetura- Deploy mais simples (app, maps e data)- Suporte a 64 bit nativo- API modernas (WPF and JAVA)- Footprint de Memoria e espaço em disco reduzidos

Mas atenção...- Não é equivalente funcionalmente ao Engine- Não é um substituo para o ArcObjects - Novas API's - Código deverá ser reescrito- Representa um novo padrão para compatilhamento\distribuição

Migração VBAStatus para 10.0 e 10.1

• Free VBA Compatibility Setup - Requer solicitação de licença - Sem suporte e sem SDK

• Esri recomenda a migração das aplicações VBA para um dos ambientes de desenvolvimentos suportados atualmente

• Para onde um desenvolvedor VBA deve ir?- Python- Add-Ins

Migração VB6Status atual

• VB6 não é mais suportado na versão 10- Não possui mais um SDK para VB6- VB6 runtime não é instalado com o ArcGIS

• Componentes VB6 não são bloqueados- Podem ser registrados para auxiliar na migração- Recomenda-se testar muito bem para se certificar que

funcionam

FAQ Perguntas e Respostas

● O utilitário EsriRegAsm.Exe é instalado em todas as maquinas?Sim. Todas as instalações de Desktop e Engine instalam o utilitário.

● Houve alguma mudança no registro de componentes entre o 10.0 e 10.1?Não. As mesmas regras se aplicam a ambas versões incluindo a necessidade do “Bind”

● Tenho que me preocupar com a duplicação dos arquivos .ecfg?Não. Como são baseados em GUID's, na teoria eles nunca se duplicam.

● Tenho que recompilar minhas aplicações a cada nova versão 10.x?A recomendação é sempre recompilar.

● Existe algo similar as macros VBA?Não. O mais próximo disso são scripts Python que podem ser criados\testados interativamente.

● Existe algum roadmap para que o ArcGIS Desktop seja 64 bits?Não. Ainda existem muitas dependências de 32 bits e isso ainda irá levar um certo tempo para ser alterado.

Dicas rápidas

●Quando você está trabalhando com VB.NET é sempre recomendado trabalhar com “Option Explicit” e “Option Strict”. Isso pode ajudar a evitar a descoberta de problemas apenas em tempo de execução.

● É possível utilizar o utilitário Categories.exe para converter componentes existentes para o novo formato.

● Add-In é a forma existente para que você não tenha que se preocupar com registro e afins.

Resources● Migration Resources para desenvolvedoreshttp://blogs.esri.com/esri/arcgis/2011/03/09/migration-resources/

● ArcGIS Beta Resourceshttp://resourcesbeta.arcgis.com/

● VBA\VB6 devs vejam2008 Dev Summit - Migrando aplicações ArcObjects VBA/VB6 para .NET - http://bit.ly/IekSwW

● Dev Summit 2011 - ArcGIS 10 Desktop Developer Migration Topics

Slides - http://bit.ly/Ixt3Qy e Vídeo - http://bit.ly/Ii6Nzb

● Dev Summit 2012 - ArcGIS 10.1 for Desktop Developer Migration Topics

Vídeo - http://bit.ly/JUFzsE

Perguntas?

Obrigado!

Bruno CaimarImagem Soluções Verticais

bcaimar@img.com.br

Maio/2012

Recommended