My name is Mike Eshva and I am the current maintainer of EveHQ, one of the best tools for EVE Online. It has a long story and helped enormous amount of players in many different ways through this years. I even don’t know when was released the very first version. And today I have two news for you. One bad and one good.
I start with the bad one. I will not update the current ‘legacy’ version you know and, I hope, love.
The good one: I will develop the new version which I call EveHQ Next Generation or for brevity EveHQ NG.
In this post I will explain the reasons behind discontinuing of development the ‘legacy’ version and in the following posts I will explain my vision and the current state of development.
Why I don’t want to develop further this version? For many cumulating reasons.
Firstly the upcoming discontinuing of maintains for XML and CREST APIs by CCP as well as API keys we used to use. It should happen in May of 2018. Just in 3 month. And the ‘legacy’ version heavily relies on both of them. Some change already happened when CCP added types of clones, Alpha and Omega. Account-based APIs are broken. You can notice it in the skill planner when your account in the alpha state. There is no legitimate way to judge about your account status, only some workarounds. ESI API uses SSO-authentication with character-based authentication and authorization you starting to see more and more in other EVE-related tools. It isn’t just a minor change. It is a completely different approach. So you can ask: “What’s the problem Mike? Just change the code, use the new ESI API and SSO.” And here we come to the second reason.
The code base is pure in many different ways. I want you understand, the developers of ‘legacy’ EveHQ can be proud about their results. They released a useful product, the working soft. But the code base is almost unmaintainable.
- It’s written mostly in VB.NET. Some developers tried to port it into C# but no one had enough time and power to finish it. I can program in VB.NET with the help of Google but I prefer C# like most of .NET developers. With many good reasons.
- It written using Windows Forms as the main UI-framework. WinForms is a very old framework. You can find a very good job in terms of salary if you are ready to maintain such a project. But this way you will bury your future as a developer.
- The ‘legacy’ EveHQ uses a commercial UI-components library. Uses it in every screen, tab and window. And I couldn’t come to an agreement with the developers of this library. They want money and only money. They don’t care that EveHQ is an open-source and free application. And it’s impossible to change UI in Visual Studio without an installed extensions of this library. As a Russian and an experienced Windows-developer I’ve found a way how to trick this soft but you should understand that anytime the owners of this library can complain to GitHub and the GitHub staff can close access to the project.
- ‘Spaghetti’ code developed in RAD-approach (RAD = rapid application development). This approach is very good for studding software engineering but horrible for big applications and long terms maintaining. Almost everything put into UI-forms files in event-handlers: UI-logic, business-logic, calls to remote APIs and so on and so forth. The authors of this code had not heard about GoF patterns, SOLID, maintainability and things like that. Every time I start to change the code I want to refactor it. And it costs me enormous amount of struggling to concentrate on the actual task and don’t squander the time on refactoring. It can eat a few month of my time to refactor the code in a good way.
- The ‘legacy’ EveHQ is a Windows-only application. I don’t have the statistics how many players use Linux and MacOS as the primary OS but my fillings tell me: at least 20-30%. It’s a lot. In theory it’s possible to port a WinForms application to Mono but I don’t want to do it. There are better ways to develop multi-platform applications and again, I don’t want to spend my time on a legacy framework nobody needs anymore – WinForms.
- The conception of the application. What is EveHQ currently? It is a swiss knife, a toolbox of unconnected utilities. Some tools I don’t understand how to use. Especially in Prism. Some of them not needed to anybody, some requires to be re-envisioned. I have a vision of a better solution and will explain it in the following posts.
I will not close the access to the repository or delete the source code of the ‘legacy’ EveHQ. You can always look into the code, fork it and even post a pull request if you are sure you want and can improve the application. I can share the knowledge about the commercial UI-components, how to deal to them in your local environment. But before that try to make you familiar with the code.
I hope I have reasoned the discontinuing of maintaining the ‘legacy’ EveHQ well enough. I’ve started already an architecture prototype of EveHQ NG. It still work in progress and not finished. From time to time I break something but most of the time it’s workable at least in Windows. You can find it in my personal space on GitHub if you wish. But I prefer you wait until the next post where I will explain my vision of EveHQ NG.
Me and Slivo will keep everything up like forum, website and the public on Facebook. Possibly the ‘legacy’ version will receive some minor bug fixes and updates for the fitter… but it’s not for sure.
As always you can write us your ideas and questions. Probably I want to start a discussion with you about what you want to see in the new version. Our efforts for you comrades!