Resumo da Sessão Técnica


ArcGIS 10.1 Desktop Developer Migration Topics




                                           Bruno Caimar
                                Imagem 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 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
.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 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
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
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 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)
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
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
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-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
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
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
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
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
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.
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 desenvolvedores
    http://blogs.esri.com/esri/arcgis/2011/03/09/migration-resources/

●   ArcGIS Beta Resources
    http://resourcesbeta.arcgis.com/

●   VBAVB6 devs vejam
     2008 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 Caimar
Imagem Soluções Verticais
  bcaimar@img.com.br

       Maio/2012

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

  • 1.
    Resumo da SessãoTécnica ArcGIS 10.1 Desktop Developer Migration Topics Bruno Caimar Imagem Soluções Verticais Maio / 2012
  • 2.
    Agenda • Mudanças noArcGIS 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 • VisualStudio 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 Framework3.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 PolicyFiles ● 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 nomede 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)
  • 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 Frameworkde 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 nosuporte 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 para10.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.
  • 23.
    Resources ● Migration Resources para desenvolvedores http://blogs.esri.com/esri/arcgis/2011/03/09/migration-resources/ ● ArcGIS Beta Resources http://resourcesbeta.arcgis.com/ ● VBAVB6 devs vejam 2008 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
  • 24.
    Perguntas? Obrigado! Bruno Caimar Imagem Soluções Verticais bcaimar@img.com.br Maio/2012