blog

First day at CDOT and ASP.NET on Linux

The first post on my blog already started wrong: this is not really my first day at CDOT - I previously worked in the ZAPP system (Z3 project) for 4 months, but it was my first day for the ENGINEERING.com project! So here I go again, starting a new blog about my adventures on CDOT. The orientation day is not exactly very exciting if you are not here for the first time: we discussed about the project and how to set up the workstations, practiced a little bit with GitHub, and attend to a meeting that gives us relevant information about CDOT. It was a challenge, however, to make a solid plan for our workstations: I am not exactly good with Linux (any Operating System, actually), and on top of that, the existing system for our project is written with ASP.NET an "open source" (it is open source, but certainly doesn't feel like it) framework developed by Microsoft. Don't get me wrong: I actually like ASP.NET: the framework itself is great, most people would agree that it is a very solid tool, liking it or not; the problem is that it is not easy to deploy in non-Windows machines without Visual Studio. Microsoft announced ASP.NET's open-sourceness (that's how I call it) in 2014, which I think is a great move; but even after almost 2 years, there are many good, but no excellent way of deploying it without Windows. Probably the most acceptable solution for this is Mono, which is free and open source! The drawback of Mono, however, is that it is still not able to deploy the most up-to-date versions of ASP.NET - with "most up-to-date" I mean versions from the last 4 years: the latest version of ASP.NET is 5.0, while Mono seems to only accept 4.5 projects. Another problem, besides deployment, is the IDE: for frameworks like .NET, it is important to have an actual IDE for your project (vim will not take you very far: it is super fast if you know it well, but I don't feel like the biggest constraint in programming is our typing speed); up to now, there are no IDEs to match Visual Studio and its ASPness, unfortunately. Oh, except for an excellent, open-source, cheap (free if you are a student), lightweight, snappy and fantastic one made by JetBrains (which also has IDEs for C, C++, Java, JavaScript, Ruby, Python, PHP, iOS, and SQL - all with similar qualities): the IDE is called Rider - it is still under development, but stable enough to be used. I'm using it. We are feeling optimistic about this project: despite Mono not being able to run the latest version of ASP.NET, it is likely that the current application wasn't built with it (we still don't have access to it). We were also successful installing Mono and Rider in our machines, meaning we can be (hopefully) very close to deploy the system in a Linux environment. Developing .NET in such an environment was an alien concept some years ago. We also downloaded an ASP.NET virtual machine from TurnKey GNU/Linux, which can come in very handy for deployment and testing. Now we shall wait. Hopefully we will have access to the actual system soon, so we can deploy it and really start working on our project.