- Learning ArcGIS Runtime SDK for .NET
- Ron Vincent
- 355字
- 2021-07-14 11:14:55
Architecture of ArcGIS Runtime
As noted earlier, ArcGIS Runtime is written in C++ and compiled on each supported platform natively. Unlike ArcGIS Desktop and ArcGIS Engine, which relied heavily on COM, Runtime Core is pure C++. Therefore, it is as small and efficient as possible. The following architecture diagram shows the high-level architecture of ArcGIS Runtime. As you can see in the yellow box, there is C++ Runtime Core. This means that it makes full use of the hardware and graphics card of each OS. This aspect allows very fast performance for displaying the map content and analysis; it literally means that the API is pretty much the same across all platforms. In other words, Esri is maximizing code reuse, while at the same time, maximizing performance because it is natively compiled. Not only that, Runtime Core is actually pretty small. On Windows desktop, at the current release, it's only about 23 MB in size for the x86 build. For the x64 build, it's only about 30 MB. As such, it will fit easily on disk for any modern device. Esri has also developed this architecture so that it also minimizes battery use. Lastly, each API on top of Runtime Core has been designed to expose the full capabilities of Runtime Core.
When it comes to the rendering engine, Runtime Core uses OpenGL, OpenGL ARB shader, OpenGL ES 2.0, DirectX 9, and DirectX 11. Each rendering technology is selected to optimize the performance on each OS. Therefore, a desktop computer with a powerful graphics card can achieve maximum performance whereas a mobile device will obviously use a less powerful graphics card but it still maximizes the use of OpenGL ES, for example. Not shown in the architecture diagram is the Hardware Abstraction Layer (HAL) between the rendering engines and Runtime Core. With HAL, Esri can add even more rendering engine capabilities on top of these native rendering technologies, such as DirectX:

As a developer of ArcGIS Runtime, it's important to understand that the choices you make at the API level at the top of architecture really decide what happens at the HAL level and lower.
- LabVIEW 2018 虛擬儀器程序設(shè)計(jì)
- 在最好的年紀(jì)學(xué)Python:小學(xué)生趣味編程
- Getting Started with React
- Moodle Administration Essentials
- Oracle 11g從入門到精通(第2版) (軟件開(kāi)發(fā)視頻大講堂)
- 算法精粹:經(jīng)典計(jì)算機(jī)科學(xué)問(wèn)題的Python實(shí)現(xiàn)
- Mastering Swift 2
- PhoneGap:Beginner's Guide(Third Edition)
- Oracle GoldenGate 12c Implementer's Guide
- Android系統(tǒng)下Java編程詳解
- CryENGINE Game Programming with C++,C#,and Lua
- Clojure Data Structures and Algorithms Cookbook
- 分布式系統(tǒng)架構(gòu)與開(kāi)發(fā):技術(shù)原理與面試題解析
- Swift iOS Programming for Kids
- Head First Go語(yǔ)言程序設(shè)計(jì)