O documento resume as principais mudanças na migração de aplicativos para o ArcGIS 10.1, incluindo novas opções de customização como Add-ins em Python, mudanças no registro de componentes customizados, e a recomendação de recompilar aplicações para as novas versões.
1. Resumo da Sessão Técnica
ArcGIS 10.1 Desktop Developer Migration Topics
Bruno Caimar
Imagem Soluções Verticais
Maio / 2012
2. 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
3. Requisitos SDK
10.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
4. .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
5. 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
6. 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)
7. Mudanças no nome de Produto
(10.1)
- Mudanças na enumeração esriProductCode
10.0 10.1
esriProductCodeArcView esriProductCodeBasic
esriProductCodeArcEditor esriProductCodeStandard
esriProductCodeArcInfo esriProductCodeAdvanced
- Mudanças na enumeração esriLicenseProductCode
10.0 10.1
esriLicenseProductCodeArcView esriLicenseProductCodeBasic
esriLicenseProductCodeArcEditor esriLicenseProductCodeStandard
esriLicenseProductCodeArcInfo esriLicenseProductCodeAdvanced
8. Runtime Binding
Aplicaçõ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
9. 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
10. Componentes customizados
Registro 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)
11.
12.
13. Componentes customizados
Como 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%ArcGISEngine10.0ConfigurationCATID
ArcGISEngine10.1ConfigurationCATID
Desktop:
%CommonProgramFiles%ArcGISDesktop10.0ConfigurationCATID
ArcGISDesktop10.1ConfigurationCATID
• Sugestão em tempo de desenvolvimento
- Adicionar um “custom build step” no seu projeto .NET
para realizar a chamada ao utilitário
14. Componentes customizados
Deploy
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 FilesArcGISbin
Opção 2:
- Registrar o componente COM normalmente
- Copiar o arquivo ecfg para o local apropriado
Engine:
%CommonProgramFiles%ArcGISEngine10.0ConfigurationCATID
ArcGISEngine10.1ConfigurationCATID
Desktop:
%CommonProgramFiles%ArcGISDesktop10.0ConfigurationCATID
ArcGISDesktop10.1ConfigurationCATID
15. 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
16. Add-Ins
Novo 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
17. Python
Muitas 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
18. 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
compatilhamentodistribuição
19. Migração VBA
Status 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
20. Migração VB6
Status 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
21. 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 criadostestados
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.
22. 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.