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 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, test 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 we needed to support several VS versions and more than one platform including .NET, .NET CF, and Xamarin. So 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 pipelines.
Whenever we needed to change something in the build process, we modified the build codebase and recompile the build app. We used only a single build server to do everything: from building source code for the needed platforms, 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 running on 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 without rebuilding the build system and fast enough to cut the build time to under an hour.
It was quite challenging but we found some solutions. Our best 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 5-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: