ArcGIS platformu ile geliştirici verimliliğini artırmak mı istiyorsunuz?


20

.NET geliştiricilerinden oluşan küçük bir ekibiz. Geniş bir CBS deneyimimiz var ve hiçbirimiz yazılım / veritabanı geliştirme veya sistem yönetimi için yeni değiliz. Teknik derecelerimiz ve uzun yıllara dayanan endüstri tecrübemiz var. Esri Geliştirici Zirvelerine katıldık.

Esri'nin teknolojisi - özellikle ArcGIS Server, ArcSDE ve ArcObjects - geliştirdiğimiz tüm yazılımlarda küçük ama gerekli bir rol oynuyor. ESRI'nin teknoloji yığınımızdaki azınlık durumuna rağmen, anlaşılması zor hataların giderilmesi, geçici çözümlerin hazırlanması, belirsiz hata mesajlarının deşifre edilmesi, performans sorunlarının izlenmesi ve geri dönüşüm süreçleri için çok fazla zaman harcıyoruz.

Tipik olarak sorunlarımız, gerçek hatalar, kötü istisna yönetimi, tasarım / mimari kararların sınırlandırılması, dokümantasyon eksikliği, kararsızlık veya bunların bazı kombinasyonlarından kaynaklanmaktadır. (Burada ESRI yığınından bahsediyorum.)

Bir proje yöneticisinin bakış açısından, ekip verimliliği konusunda çok endişeliyim. Bu bize çok zaman harcıyor. ESRI yığınının her tanımını öğrenmek için zamanımız yok, ama yine de işleri halletmemiz gerekiyor. (Onunla yaşayamam, onsuz yaşayamam.)

Karışımda ESRI ile geliştirici verimliliğini artırmak için hangi pragmatik önerileriniz var?

Alternatif teknoloji yığınları hakkında öneriler aramıyorum.


2
Yazılımınızda ESRI ürünlerini kullanmanın nedenini sormak ister misiniz?
OptimizePrime

Geliştiriciler, bulduğunuz her hata için taze ile tehdit ederseniz iyi yanıt verir. Daha ciddi bir notta: ESRI ürünlerini kullanırken aşağıdaki yorumunuz normaldir. <blockquote> Zor hataların giderilmesi, geçici çözümlerin hazırlanması, belirsiz hata mesajlarının deşifre edilmesi, performans sorunlarının izlenmesi ve geri dönüşüm süreçleri için çok fazla zaman
harcıyoruz

@capdragon "Zor hataların giderilmesi, geçici çözümlerin hazırlanması, belirsiz hata mesajlarının deşifre edilmesi, performans sorunlarının izlenmesi ve geri dönüşüm süreçleri için çok fazla zaman harcıyoruz" - bu hemen hemen tüm yazılım geliştirme ve kurulumları için geçerlidir ..
geographika

1
@geographika - Anahtar kelime birlikte çalıştığımız diğer tüm teknolojilere göre "sıra dışı" dır.
nw1

1
Geliştiricilerinizin "Tuğla Duvarlar" konseptine dikkat ederek Son Dersi izlemelerini isterim ... Tuğla duvarlar bizi dışarıda tutmak için orada değildir. Tuğla duvarlar bize bir şey ne kadar kötü istediğimizi gösterme şansı vermek için var. Çünkü tuğla duvarlar, onu yeterince istemeyen insanları durdurmak için var.
Kirk Kuykendall

Yanıtlar:


10

Performans için en iyi çözüm bu makalede belirtildiği gibi ArcObjects C ++ proxy kodu yazmak gibi görünüyor . Örnek ESRI'de COM birlikte çalışmasının yoğun kullanımının kaldırılması 6 kat performans artışı sağlar.

ESRI ayrıca şifreli COM hata mesajlarının ele alınmasına ilişkin öneriler / en iyi uygulamalar ve HRESULT hata kodlarının bir açıklaması da sunar .

Bu yapılandırma sorunlarının ötesinde, Windows ile ilgilidir ve Windows sunucu yönetimi, IIS, Windows hizmetleri, Windows olay günlükleri, kayıt defteri, kayıtlı COM nesneleri vb.

Bu makalelere ek olarak, yararlı bulabileceğiniz bir dizi daha genel geliştirme yaklaşımı vardır.

Yazılım Geliştirme Yaklaşımları

  • Her iki coğrafi veri (WMS, WFS, ArcGIS REST hizmetleri) için web hizmetlerini mümkün olduğunca kullanın. Bu ayırma işlemi hata ayıklamayı ve bakımını kolaylaştırır.
  • Mümkünse Windows kurulumlarını temizlemek için sistemleri yükleyin. Bellek ve manuel işlemlere güvenmek zorunda kalmadan tüm sistemi sıfırdan yeniden oluşturabilmeniz için yükleme komut dosyaları oluşturun. Sanal makineler bunun için mükemmeldir.
  • ESRI'ye özel kod içeren saf .NET ve DLL'leri mümkün olduğunca ayrı tutun
  • Yeni Geometri ve Coğrafya sınıflarıyla doğrudan SQL Server 2008'de veritabanında daha fazla "ağır kaldırma / işleme" yapmaya çalışabilirsiniz.

İletişim

  • Zor hataları GIS SE / StackOverflow'a gönderin ve çözümleri de gönderirseniz, yaklaşık 6 ay sonra tamamen unuttuğum aynı hatayı ararken kendim yazdığım önceki cevapları buldum.
  • Notları saklayın ve ideal olarak ekipteki diğer kişiler tarafından aranabilir olmasını sağlayın. Wiki'leri denedim ama görüntüleri yapıştırma eksikliği düzenli olarak yapmamı engelleyen bir engeldi. Şu anda hataları, URL'leri, ekran görüntülerini takip etmek için mükemmel olan Microsoft OneNote kullanıyorum. Ayrıca paylaşılabilir.
  • Daha ayrıntılı teknik yaklaşımlar için bunları bir bloga gönderin. ESRI dünyasında, muhtemelen başkalarının ticari avantaj elde etmesinden korkması nedeniyle detayların çok daha az paylaşımı var gibi görünüyor, ancak iyi bir blog şirketinizin hizmetleri için iyi bir reklamdır

Cevap için -1 mi, yoksa OSS GIS'i geliştirmenin ve yapılandırmanın tam olarak aynı zorluklarla karşılaşmadığından bahsetmek için cesarete sahip miydi ?!
geographika

7

Bu sorudan pek çok iyi yanıt gelmeyeceğinden korkuyorum. Ama bu iyi bir şey ... ESRI ürünlerinin performansı bir süredir benim için bir endişe oldu.

Yukarıdaki yorumum ESRI ürünlerine olan ihtiyacı sorgulamak veya farklı bir teknoloji yığınına geçebilmeniz. ESRI kullanıcılarına hitap etmek için ESRI sistemleriyle entegre etmek için ESRI ürünleriyle geliştiriyorsanız, modern geliştirme ve kullanıcı platformlarına uyacak şekilde taşınmış veya bükülmüş bir ESRI kod tabanı ile sıkışıp kalırsınız.

ESRI'dan bazıları ESF'nin .NET kütüphanelerinin çoğu, en iyi hata raporlarında ve işlemlerde belirsiz erişim ve ek yükler sunan COM nesnelerine yönelik sarmalayıcılardır. Temel COM nesnelerini ve bunların kod tabanınıza katılımını anlamak, kodlarınızı işlemlerine uyacak şekilde daha iyi tasarlamanıza yardımcı olur. Bu gerçek, Python scriptlerimdeki performansı 10 kat artırmama yardımcı oluyor. Bir zamanlar 40 dakika süren şey şimdi 4 alır ve küçük bir değişiklikle şimdi 2.5 dakikaya iner!

ArcGIS 10 ile iyi şeyler duydum ama nefesini tutma.

Yazılımınızda bir GIS çözümü sağlamak için ESRI ürünlerini kullanıyorsanız, sunulan ve açık olan birçok açık kaynaklı projeden birine kilitleyin. @capdragon, bulutta size yardımcı olacak düşünceli geliştiricilerin destek ekibiyle size büyük miktarda esneklik ve ölçeklenebilirlik sağlayacak böyle bir uygulama seti sunar.

ESRI ürünleri ile geliştirme, yenilikçi ve ESRI Standart İşletim Prosedürü dışında bir şey yapmaya çalışıyorsanız, belirsizlik, belirsiz kesmek ve büyük oyuncuların tutarsızlığı ile bir zihin alanı oyunudur.

Birisinin bana yanlış olduğunu kanıtlamasını istiyorum!


Sorunuzu cevaplamak için, listelemek için çok fazla nedenden ötürü hemen hemen ona takılı kalıyoruz.
nw1

ArcObjects .NET SDK, temelde COM için neredeyse tümüyle çalışma zamanı çağrılabilir sarmalayıcılardır. Silverlight / WPF SDK COM tabanlı değildir.
James Schek

@James - Yanlışsam beni düzeltin, ancak Silverlight SDK sadece bir REST API istemcisi değil mi? Ve REST API ArcObjects üzerine kurulu değil mi?
nw1

@OptimizePrime - ArcGIS 10, bahsettiğiniz birçok alanda ve bunların 10.1 için açıkladıklarının ötesinde büyük adımlar attı. 10.1'de DCOM desteğini tamamen bırakıyorlar.
wilbev

1
@welbev Bu bilgi için çok teşekkür ederim. ESRI'nin bu konuda yol alması biraz zaman aldı, ancak bu endişeleri ele aldıklarını duymak memnuniyet verici.
OptimizePrime

7

ESRI ile çalışma deneyimime göre, ArcObjects'ten ne kadar uzaklaşırsanız, başarı şansınız o kadar artar. Pratik olarak, bu, yaptığınız işi yapmak için daha yeni REST API'lerini kullanabiliyorsanız, ArcGIS'e her zaman bu şekilde erişmeniz gerektiği anlamına gelir.

Java / .net'teki Web ADF'si olan toplam başarısızlıktan bir şey öğrendiler ve REST API'leri çok basitleştirilmiş ve çok fazla karışıklık olmadan çalışırken nispeten büyük bir geçmişe sahipler. REST API'ye erişmenin en basit yolu, ESRI oldukça iyi olanlar için kütüphaneler sağladığı için Javascript / Flex / Silverlight'ta çalışıyorsanız, ancak sadece standart bir REST arayüzüdür ve neredeyse her şeyle konuşabilirsiniz.

Bu şekilde yapamayacağınız şeyler var, ama ESRI yığınındaki hemen hemen her şeyle çalışmanın ne kadar güzel olduğunu vurgulayamıyorum. ArcObjects (veya .net ile sarılmış ArcObjects) ile çalışmanız gerektiğinde, gerçekten yapabileceğiniz tek şey kodunuzda son derece iyi belgeler oluşturmak ve bir sonraki yamada bir şeyler kırmamaları ( ).


6

Destek bakımınızı güncel tutun. Bir kod problemini anlamaya çalışmaktan daha sinir bozucu olan tek şey, kodu yazan insanlardan yardım almadan anlamaya çalışmaktır. Ve onlarla bir bakım anlaşmanız yoksa, ESRI'den herhangi bir yardım almayacaksınız. (Bu siteden veya ESRI forumlarından biraz yardım alabilirsiniz, ancak bu doğrudan onlarla konuşmaktan çok uzaktır.)

Hizmet paketleri ve yamaları takip edin. Bunu yaparsanız herhangi bir sorun yaşamanız garanti edilmez , ancak en son sürümün / güncellemelerin yüklü olup olmadığını destekle sorulduğunda "Evet" e güvenle yanıt verebilirsiniz.

Geçici çözümlerinizi topluluğa katkıda bulunun (bloglar, sorular burada vb.). Eğer yeterince insan bunu yaparsa, iki şeyin olacağını hayal ediyorum: bir, daha fazla geliştirici sorunların farkında olacak ve onları daha hızlı bir şekilde damgalamak için savaşma şansı olacak ve iki, sorunlar ESRI tarafından daha hızlı çözülecekti (büyüteç gibi bir şey yok) hareket ettirmek için cam var mı?


4

Ayrıca her gün bu ürünle sürekli mücadele eden bir ESRI geliştiricisiyim. Bakım desteğim yok, bu yüzden geliştiricilerden çok fazla geri bildirim almıyorum.

Ne denemek zor olursa olsun, "Sadece Çalışmıyor" (IJW - Sadece Çalışır aksine) bir şey gerçekten gerçekten çok can sıkıcı.

Kavgayı kazanmaya çalıştığım şey:

  • Soru sorun (çok fazla)
  • ArcObjects SDK referansını okuyun (çok fazla - tekrar tekrar)
  • Farklı kurulumlarla denemeler yapın

Bir sonuca ulaşmanın en kısa yolu, zaten aynı sorunu olan birine sormaktır, bu yüzden birisi bu belaya girer ve bir düzeltme bulursa, büyük olasılıkla size söyleyecektir.

Dokümantasyon iyi, ancak önemli eleman açıklamaları ve önemli detaylar eksik - bu yüzden 1'e geri dönün.

Deneyler de işe yarıyor. Bir konsol programı oluşturun ve test edin. Birim Sınama çerçeveleri bir IDE içinde her şeyi yapmanıza yardımcı olabilir, ancak farklı senaryoları test edebilirsiniz.

ESRI kitaplıklarının en ürkütücü veya en garip olanı Geodatabase'dir ve koşullara bağlı olarak tuhaf sonuçlar verebilir, bu yüzden master olmaya çalışın.


1

PostGIS> GeoServer> OpenLayers'ı kullanmayı deneyin. Bunun ekibiniz için nasıl çalıştığını görün.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.