Top news and updates from ComponentPro which help you stay up-to-date with what we are doing.
Ultimate Studio 2019.Q1 v7.0 is released
This release includes lots of new features, improvement and bug fixes. We also included some new FTP, SFTP, SCP, Mail, and ZIP example projects for .NET Core. Click here to see the complete list of changes.
To release our components more frequently and send beta and hotfix releases to our customer faster, our build system has been upgraded and it's now very flexible. We will walk you through how our system has evolved since the very first builds to the recent ones.
Back in 2007 when .NET 2.0 was only available on Windows OSs and Visual Studio 2008 was the latest one, our build system was quite simple. The former team simply used a single master batch file named Build.bat and each component has a .bat file to start the build. In order to build the whole package including FTP, SFTP, Mail, SAML and Studio, they manually run each file and then upload the packages to the server. It did not do much since we only needed to support Windows and the components were built for just .NET 2.0.
In 2011 when we needed to support several VS versions and more than one platforms including .NET, .NET CF, Xamarin, we decided to write the build system in C#. That allowed us to be more flexible and write faster build code. But it still did not define any build pipelines, tasks, and release pipeline.
Whenever we needed to change something in the build process, we modified the codebase and recompile the build app. We used only a single build server to do everything: from building source code for .NET, CF, and Xamarin, testing to uploading to our production web server. A normal build took around 5 hours on that machine. That was better than batch files but we still found it cumbersome at some point.
Nearly 10 years have passed, we had still been using the 2nd generation. The Ultimate Components had to support .NET, .NET Core, Uwp, Android, iOS, and CF platforms, Windows, Linux, and Mac operating systems. We decided to revamp the build system again. At this time, we wanted a system that can be easily customized. Futhermore, we wanted to reduce the build time to under an hour.
Our solution was to use 10 build machines and 3 VMs. We defined dynamic build pipelines which can be designed and customized in a web app. The result was astonishing: build time reduced to 50 mins, instead of 6 hours long. Our developer can now select what libraries to build and click on a button to start a build. If a library build fails, we can rebuild it without restarting the whole build process. Here are some screenshots of the system: