Marko Apfel - Afghanistan/Belgium/Germany

Management, Architecture, Programming, QA, Coach, GIS, EAI

  Home  |   Contact  |   Syndication    |   Login
  168 Posts | 2 Stories | 136 Comments | 4 Trackbacks

News



Twitter | LinkedIn | Xing

Article Categories

Archives

Post Categories

BizTalk

C#

Enterprise Library

SAP

SQL Server

Technologie

ArcObjects

Motivation LINQ (language integrated query) is a component of the Microsoft. NET Framework since version 3.5. It allows a SQL-like query to various data sources such as SQL, XML etc. Like SQL also LINQ to SQL provides a declarative notation of problem solving – i.e. you don’t need describe in detail how a task could be solved, you describe what to be solved at all. This frees the developer from error-prone iterator constructs. Ideally, of course, would be to access features with this way. Then this ......

Problem this code does not work Type t = typeof(ESRI.ArcGIS.Framewor... System.Object obj = Activator.CreateInstance(t); but yet this code Type t = Type.GetTypeFromCLSID(typeo... System.Object obj = Activator.CreateInstance(t); Reason In the first variant the runtime tries to cast to AppRefClass . This is not possible. And in the second one, the runtime does not knows anything about AppRefClass. So it leave it as IUnknown. (originally communicated ......

Motivation During programming suddenly this error (“Failure has occurred while loading a type”) was thrown by accessing a artifact of a referenced library. In such cases I take the assembly fusion logger fuslogvw to search for problems of loading assemblies. Sometimes an old version from a not expected folder is binded. But all bindings were correct. Problem After several hour I got the right hint. Because the assembly is a COM+ one, there are some registration things in die background – and I don’t ......

Wie so oft im Leben sind manche Dinge auf den zweiten Blick komplexer als sie auf dem Ersten den Anschein haben. Es kam die Anfrage, ob es nicht doch einen Unterschied zwischen "as" und "is" gibt & dann wurden noch ein paar Inputs gefunden, dass im Falle des "Überladens von Cast-Operatoren" mögliche Fallen lauern. Für den Fall der Überladung muss man natürlich wissen, was der Programmierer bei der Überladung getrieben hat. Im ArcObjects-Kontext sollte man im Allgemeinen nicht in derartige Fallen ......

in unten stehendem Code ist ein Anti-Pattern, welches immer wieder im ArcObjects-Kontext zu beobachten ist. if (element is IMapSurroundFrame) { IMapSurround mapSurround = ((IMapSurroundFrame)element... .. Es wird eine is-Abfrage gemacht (element is IMapSurroundFrame) und dann ein Stück später der tatsächliche Cast ((IMapSurroundFrame)element). Im Hintergrund macht die is-Abfrage nichts anderes als einen Cast und schaut, ob der geht. Da ein Cast immer eine "teure" Angelegenheit ist, sollte ......

Als erstes möchten Jochen und ich uns bei euch Teilnehmern bedanken für das große positive Feedback zu diesem Workshop. Das waren sicher für uns alle 3 sehr spannende Stunden – für euch im technischen Inhalt und für uns in der Frage euren Geschmack zu treffen. Ein derartiger Workshop war eine Premiere für Esri im Rahmen der GIS Konferenz - und eure Einwertung kann man durchaus als einen Arbeitsauftrag an uns auffassen diesbzgl am Ball zu bleiben. Für den allgemeinen Frageblock ergab sich folgende ......

If you develop ArcGIS Add-ins with Visual Studio under limited permissions you get during the build process an error, that the stuff could not be registered. Normally its enough to run one times this build as an admin. Then all needed information are set and also taken for users with limited access. So – how to suppress the registration task? If you look inside the running target (C:\Program Files (x86)\MSBuild\ESRI\ESRI.Arc... you will see these statements: <Warning Text="Skipping ......

Vorkenntnisse: Kenntnisse einer Programmiersprache sind hilfreich. Zielgruppe: Dieser Workshop richtet sich an alle Softwareentwickler und Softwarearchitekten, die Lösungen in Form von ArcGIS Desktop Erweiterungen oder ArcGIS Engine Anwendungen planen und entwickeln. Kurzbeschreibung: Professionelle Softwareentwicklung hat primär nichts mit Geld zu tun, oder mit der Verwendung teurer Entwicklungstools. Vielmehr basiert Professionelle Softwareentwicklung auf Werten mit dem Ziel, dauerhaft guten, fehlerfreien ......

During a refactoring i realized that renaming of components, which will be registered for COM-Interop, must be done carefully. In my case i changed the casing of XyzToolbar to XyzToolBar. At the developing machine everything works fine. But after installing the modified stuff at the production machine, the toolbar was not visible. Using regasm with the new assemblies helped. So this was the hint: we use WIX to build the setup. And during setup-development the heat-tool extracted the needed registry-keys. ......

After accessing one feature now i iterate through all features of a feature class: open System;; #I "C:\Program Files\ArcGIS\DotNet";; #r "ESRI.ArcGIS.System.dll";; #r "ESRI.ArcGIS.DataSourcesGDB... #r "ESRI.ArcGIS.Geodatabase.dl... open ESRI.ArcGIS.esriSystem;; open ESRI.ArcGIS.DataSourcesGDB;; open ESRI.ArcGIS.Geodatabase;; let aoInitialize = new AoInitializeClass();; let status = aoInitialize.Initialize(esr... let workspacefactory = new SdeWorkspaceFactoryClass();; ......

After having a first look on F# its time to ask: How could i use F# with ArcObjects. So my first steps was to do something with a feature in a F# interactive session. And these are my first code lines: open System;; #I "C:\Program Files\ArcGIS\DotNet";; #r "ESRI.ArcGIS.System.dll";; #r "ESRI.ArcGIS.DataSourcesGDB... #r "ESRI.ArcGIS.Geodatabase.dl... open ESRI.ArcGIS.esriSystem;; open ESRI.ArcGIS.DataSourcesGDB;; open ESRI.ArcGIS.Geodatabase;; let aoInitialize = new AoInitializeClass();; let ......

Today i played a little bit with IFeature-sequences and piping data. The result was a calculator of the bounding box around all features in a feature class. Maybe a little bit dirty, but for learning was it OK. ;-) open System;; #I "C:\Program Files\ArcGIS\DotNet";; #r "ESRI.ArcGIS.System.dll";; #r "ESRI.ArcGIS.DataSourcesGDB... #r "ESRI.ArcGIS.Geodatabase.dl... #r "ESRI.ArcGIS.Geometry.dll";; open ESRI.ArcGIS.esriSystem;; open ESRI.ArcGIS.DataSourcesGDB;; open ESRI.ArcGIS.Geodatabase;; open ......

to catch the COM-Exception in own applications thrown from the underlaying ArcObjects-Library could be done with: catch (COMException ComEx) { Console.WriteLine(string.Fo... errored: {0}, Error Code: {1}", ComEx.Message, ComEx.ErrorCode)); } the special error constants could be found under: ArcObjects Library Reference (GeoDatabase) - fdoError Constants ......