30-Day Free Trial

Try our fully-functional package for 30 days

Download

The Ultimate News

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

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.

How we build Ultimate components?

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.

Our first build system - batch files

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.

The 2nd generation of our build system

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.

Our 3rd generation

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:

  • Ultimate ZIP to compress the packages to ZIP files and copy to the staging environment.
  • Ultimate FTP to upload packages to the server using multiple threads. Since file upload may fail in the middle due to many reason like network, ISP, router, etc., we set ReconnectionMaxRetries to 90, making the upload task very stable.
  • Ultimate Mail to send notifications to build administrators.

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:

ComponentPro Build List

List of our builds

ComponentPro Build List

Build details

45-Day Money Back Guarantee

We will refund your full money in 45 days
if you are not satisfied with our products

Buy Now

Want to integrate File Transfer, SAML, Mail, PDF, Word, Excel, and other Network Utilities into your .NET applications?

Full documentation and C# and VB.NET Example projects demonstrating how to work with all the libraries.

Download and Integrate Now