The end of the 2019 GSoC program came to an end quite fast, but on the other hand, it just kicked off the development of the .NET WPS API and ArcGIS Pro Add-In. I’ll introduce you to what has been done so far, what we might expect from future contributors and my personal thoughts on this.
.NET WPS API
This project was imperative to have a functioning code later in the development of the Add-In. We needed a library that could provide an easy to use API to access the WPS services without much struggle, thus WPS.NET was created. It implements the WPS standard version 2.0 and provides a modern API written in C# respecting the conventions detailed in the Microsoft Documentation for C#.
As for the development of this library, I found it quite interesting and it was my very first time implementing a standard. It can feel very challenging at times since the standard tells you how things work, not how they should be implemented in a programming language. The implementation choice is all up to the developer, so the developer must maintain a balance between ease of use and coherence.
ArcGIS Pro Add-In
The Add-In is the part of the project that stands out the most. It isn’t made only for developers, but also for the users of ArcGIS Pro. The Add-In allows any ArcGIS Pro users to fetch data from WPS providers through a simple user interface. An example of the window guiding you to create the process is shown below.
The development of the Add-In was also written in C# and made in WPF. It is based on our WPS library and uses it to make and handle the requests created by the user. The current state of the UI/UX still needs polishing and improvements. Due to the limitations of the .NET SDK, we couldn’t implement the Add-In along side with the other Geo-processing tools, but instead had to go with our own implementation of process and execution handling.
Tips for future contributions
In order to contribute to one of these two projects, you need to have at least a basic understanding of WPS. This you can easily catch up on by reading the WPS Standard 2.0. Following this, here is a sparse list of the most important points that need to be reviewed in the nearby future:
- Review the implementation of the WPS standard in WPS.NET and check for any small inconsistencies or mishaps with the data models or (de)serialization.
- Look into importing the generated different file formats (such as ShapeFile or KML) directly into the ArcGIS Pro map, without requiring user intervention after the execution finished.
- Properly integrate the Add-In interface & execution into the Geo-processing tools. This might require prior Python programming knowledge. (hint: You can loosely couple a .NET Add-In and a Python tool through the .NET SDK)
- Offer backwards compatibility for WPS.NET with the first version of the standard.
It was my first time participating to GSoC, and so far I’ve experienced a rollecoaster of challenges. I find it interesting working in a domain I’ve never tried to before, but also quite challenging from a technical point of view. It is really easy to get lost in such a vast domain like Geoprocessing. It is under different implementations and there is so much to learn. This GSoC also helped me work on open source in a professional environment. I would like to warmly thank Benjamin Proß and the rest of 52°North’s team for excellently mentoring me throughout this program, answering my concerns when needed, and always be at the reach.
A short summary of the overall project and links to the work that has been done are available here.