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 added 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, we have revamped our build system and make it very flexible. We will walk you through how it 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 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 recompiled 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 typical build took around 5 hours on that machine. That was better than batch files, but we still found it cumbersome at some point.
Nearly ten 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. Furthermore, we wanted to reduce the build time to under an hour.
Our solution was to use ten 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.
In this new build system, we use the following components:
ReconnectionMaxRetries
to 90, making the upload task very stable.This latest generation is a big improvement. It frees us from the daily build tasks and helps us focus more on coding and researching of the new features.
Here are some screenshots of the system: