Preview of TMS WEB Core for Visual Studio Code

At the TMS Training Days in Düsseldorf, Germany as well as at the Be-Delphi conference in Belgium, José León Serna (creator of Delphi for PHP & former Embarcadero IDE lead architect) gave a presentation previewing TMS WEB Core for Visual Studio Code. After more than a year of hard work & intensive collaboration with the TMS team, we were proud to present this technology preview with an almost complete feature set for the first release.

What is Visual Studio Code?

For software developers not familiar with Visual Studio Code, this is a free, open-source, extensible and cross-platform IDE. This means that the Visual Studio Code IDE works exactly the same on Windows, macOS and Linux and this also with full high-DPI support. Visual Studio Code is an initiative from Microsoft and focuses on being open & extensible. It is open source and fully free and is not to be confused with the regular Microsoft Visual Studio IDE. There is meanwhile a very rich offering of extensions for Visual Studio Code with numerous programming languages supported and all kinds of interesting IDE tools, utilities, convenient extensions. Last we looked, almost 3000 such extensions can be found at

What does TMS WEB Core for Visual Studio Code bring to the table?

As far as we know, at this moment nor Visual Studio Code nor any of its extensions provides a RAD, component based approach with a visual form designer. As this has always been at the heart of what Delphi means to Object Pascal developers, TMS WEB Core for Visual Studio Code brings a RAD component based experience with form designer, tool palette, object inspector, structure pane. In other words, it enables the Delphi or Lazarus developers to work on TMS WEB Core web client projects in pretty much the same way from Visual Studio Code.

Why the choice for Visual Studio Code?

Live data and live a bootstrap theme used in the form designer in Visual Studio Code

Live Google Maps in the form designer in Visual Studio Code

The reason for our efforts to develop a TMS WEB Core for Visual Studio Code is purely technology driven. Visual Studio Code itself is built using web technology. The Visual Studio Code UI is all rendered using HTML/CSS/JavaScript via the Chrome browser engine. This opens the fantastic opportunity to build a form designer from web technology, meaning that from the form designer, we can see the TMS WEB Core web components as-is or WYSIWYG. Where in the Delphi IDE the form designer is a VCL form designer and at design-time the web components are mimicked as VCL controls, here we have the real web component rendered in the form designer just like it will be rendered in the browser when the application is generated. Even at design-time, a CSS library such as Bootstrap can be used and it will show the controls on the form designer using the selected Bootstrap classes/themes. Of course, the fact that the IDE itself is free, light, fast, modern and that it runs on Windows, macOS, Linux is a fantastic & welcome additional benefit. Another not to be overlooked technical advantage is that Visual Studio Code has bindings to make it easy to debug Object Pascal code from the IDE (as opposed to debugging JavaScript code from the browser console).

Debugging a TMS WEB Core application directly from the Visual Studio Code IDE


The OmniPascal Visual Studio Code extension already brings excellent Object Pascal syntax highlighting, code completion, class completion and several more features for code editing. An interesting tidbit is that OmniPascal internally uses the Delphi AST engine, written by our colleague Roman Yankovski, product manager of TMS FixInsight. Of course, another prerequisite is the pas2js compiler. This is the compiler that brings the magic of compiling (or transpiling if you prefer this terminology) the Object Pascal code to JavaScript in the browser. This means that as Delphi developers, anything that happens in the browser, is under control of our beloved language. Fortunately, the TMS WEB Core for Visual Studio Code extension is developed in such way that these prerequisites are fully automatically installed in the IDE.

How does it compare with TMS WEB Core for Delphi or Lazarus?

The good news here is that the full TMS WEB Core framework works unchanged under Visual Studio Code. So, there is full framework feature parity between Delphi, Lazarus & Visual Studio Code. We also set it as a development requirement to offer the ability to open up Delphi created TMS WEB Core projects from Visual Studio Code and vice versa. As TMS WEB Core for Visual Studio Code uses the exact same framework code as Delphi, this means that whenever we add features or improvements to the Delphi product, this will be automatically adopted in the Visual Studio Code version. The reverse is of course also true.

What does this mean for TMS WEB Core for Delphi?

TMS WEB Core for Visual Studio Code is not a replacement for TMS WEB Core for Delphi. It is nothing more and nothing less than another IDE choice. We believe in freedom of choice. So, every developer can decide for himself what the preferred IDE is, be it Delphi, Lazarus or Visual Studio Code. Of course, the fact that Visual Studio Code & Lazarus are cross platform, i.e. can be used directly from macOS or Linux can be a deciding factor. Other than this, Delphi is used for way more than just developing TMS WEB Core web client applications, for example the development of a TMS XData or Embarcadero RAD server REST back-end. It is our hope actually that offering the Delphi RAD OO component based development for the Visual Studio Code community and showing the advantages it can bring, will attract these users also to Delphi!

What about the TMS FNC UI Controls that also work with TMS WEB Core?

TMS FNC Planner in a TMS WEB Core application in Visual Studio Code

Also here good news! TMS FNC Controls will also work fine from Visual Studio Code! There is also in TMS WEB Core for Visual Studio Code a mechanism for installing additional components. As such, you can also install TMS FNC controls in Visual Studio Code and benefit from all the power these controls bring! This makes the power of TMS FNC meanwhile staggering & mind-blowing. The FNC controls can be used in VCL Windows applications, FMX Android, macOS, iOS, Windows, Linux applications, LCL Windows, macOS & Linux applications, TMS WEB Core web applications for any HTML5 compliant browser from Delphi, Lazarus and Visual Studio Code.

Does TMS WEB Core also work with Visual Studio Online?

I know it gets boring, but this is another yes. Visual Studio Online is in beta right-now and promises to bring an IDE in the cloud. An IDE you can simply use from the browser. Anywhere, anytime, any machine with a browser can be used to develop, develop, develop … (I hear Steve Ballmer somewhere here).
So yes, we have tested TMS WEB Core with Visual Studio Online and also from the browser, it is possible to create web client applications for the browser. The circle is closed also in this area.

And what about the licensing?

We are strong believers in the KISS principle. So, to keep it simple, there will be just one TMS WEB Core license! Yes, you read that good. When you have a TMS WEB Core license, you decide in what IDE to use the framework or you can simultaneously use this in multiple IDEs. Delphi licensed TMS WEB Core users will be able to explore how things work in the Visual Studio Code IDE, on Windows or macOS or Linux or multiple operating systems. Visual Studio Code users might be tempted to try out TMS WEB Core with a Delphi Community or full edition and use the extra benefits Delphi brings, for example to build the back-end.

A TMS WEB Core Delphi sample project in Visual Studio Code on Linux

A TMS WEB Core Delphi sample project in Visual Studio Code on macOS

I’m blown away, I want it now!

We fully understand. This was/is the most mind-blowing development project in the 24 year history of TMS software. Never before we heard so much ‘wow’ sounds when our developers in our team were progressing step by step to build this magic. The audience in the TMS Training Days Düsseldorf and Be-Delphi conference in Belgium were also flabbergasted. Well, we are working extremely hard to bring a first beta in your hands. Let there be no misunderstanding, there is still more work & more polish needed before that milestone is reached. This is what our team now wants to fully focus on in the coming weeks. When we feel confident our baby will be safe in your hands, we will roll-out a beta soliciting your feedback. Our TMS ALL-ACCESS users will be the first to receive this beta. We will send out notifications when this is ready. Our aim is to bring a nice XMas present for you this year, but of course this is subject to change. The main criteria will be that the entire team is confident about the quality of the beta. At TMS, we don’t like the fetish of fixed dates for releases.


Our team already has ideas for further developments in several directions. So, sure, after a first release, we already have further exciting developments on our list. But foremost, we would love to hear from you what extra features, future directions you would like to see for this project. Contact us or leave a comment here!

Read More

Read More

10.3.3 Rio: Первые впечатления о новой версии RAD Studio

Полагаю, что все уже знают о выходе новейшей версии Embarcadero RAD Studio - 10.3.3 Rio и получили одно, два или даже больше электронных писем об этом в свой почтовый ящик. Официальное сообщение (10.3.3 Press Release) можно прочитать здесь: http...(read more)
Read More

Visual Components Library (VCL): The Best Choice for Windows Applications

Atanas Popov (General Manager of Embarcadero) and Marco Cantu (RAD Studio Product Manager at Embarcadero) have had a conversation about the role of VCL for Windows client development. This is an un-edited transcript of the recording of the chat. Atanas: Hi Marco, I wanted to take this opportunity to ask you a couple of questions about VCL. As the interest in upgrading to Windows 10 grows and companies consider modernization options, people are always asking, "Well, do I go VCL? Do I go FireMonkey? Do I go Web?" While we have a lot of information on VCL, it's either too technical or it is too high level. It appears that we can't get the right balance to communicate clearly why VCL is such a great choice. So given that you are one of the foremost experts on the subject, I thought that I can ask you a few questions on VCL. To start with, can you give us your definition of VCL? Marco: VCL is, as the name implies, a Visual Component Library. It's a class library representing both in-memory objects and visual objects that you can use on your application. It is both visual and component-based, meaning you have the ability to drag and drop components in a designer and immediately preview and get a feeling of how the application is going to look like and behave. I believe that early on, it borrowed some concepts from Visual Basic, which is one of the other early tools in this space. However, differently from other tools in that space, especially at the time, it was fully object oriented. So anything you do in the designer, like creating a button, you can achieve at run time. In fact, the designer is the run time, it uses the library itself. That was very unique and powerful. While it has been replicated by some other IDEs recently, few can achieve that, especially for Windows. It remains one of the key tenets of RAD Studio, this dual nature, very easy to use and very fast for developers to create the UI and also add logical components like a database table with a query and a SQL statement, then connect it to your data grid or visual component. So everything can be done very smoothly. When the application grows, you can move most of this to the application logic to have a nicer and more robust architecture. Atanas: We've seen some similar things develop in JavaScript. It is a space where there are a lot of drag and drop options, but it seems like a lot of them have much harder time connecting the design time process with actually deployment and keeping them in sync. But in terms of Windows development, what in your mind are the alternatives and how does VCL compare to them? Marco: VCL started as a wrapper on top of the Windows API, but it is very high-level of a wrapper. It is a thick layer. It adds a lot of concepts on top of the APIs, but still most of the VCL control have a Windows handle. So, they map closely to the API and the mapping is very strict. For example, Delphi is the only language that has a keyword message that lets you map to a Windows message. By comparison, other languages in the Microsoft space use more complex code to go around and do this mapping. For us, this is a language feature, which is really unique. The only library that gets similar to what we do is WinForms for C# and.NET. However, WinForms is much smaller in terms of library scope and has fewer components. It is also .NET, which means that every time you are using a component, there is a call from.NET, a marshaling call to the native and then back, while Delphi being native, everything is compiled, everything is a direct API call, therefore faster and smoother. The layer has more complex actions and the action manager concept abstracts the UI. In WinForms this is available through third-party add-ons, but not as a native feature. Unfortunately, WinForms development stopped quite some time ago while VCL continues to have full integration with not just the Windows API, but COM and now integration with WinRT. Because these are all platform layers, they are all native, all written in C++ ultimately, but we can interface directly with Delphi. The other alternative is Visual C++, but Visual C++ is really a thin layer on top of the API. There is very little productivity advantage and it's not visual. You don't drop components. You do that only for dialogue boxes, but it's not how visualization is generally understood. Yes, it's good, you can call an API as natively as Delphi, but the library is limited and you end up having to write way more code than you do on the Delphi side. Plus C++ is a difficult codebase to maintain and upgrade. Atanas: This sound pretty clear. What about some of the new tools that are out there that come from web or mobile. For example, Electron provides nice JavaScript wrappers to build native applications. What is your opinion on that approach when it comes to building Windows apps? Marco: I can understand the desire having a single language like JavaScript that you can use on mobile and desktop. However, what we are seeing is a new set of applications that are really, really memory hogs. They consume a lot of memory and are generally quite slow. I have Windows clients for some of my chat applications or social applications and all of these are really slow. If you're just browsing messages on a social network, it should not take a gigabyte of memory. That's illogical. It cannot take minutes to boot, and it's not the connection - it's the rendering; it's the processing. A lot of them are written with Electron. They encapsulate the application like a full web server, node JS as an engine, a full browser for the rendering. And the other thing, they don't look Windows in any way. And a Windows UI is Windows UI. We should respect the environment. We will never write an iOS application that does not look iOS. Why should we write a Windows application that looks completely extraneous to the platform, completely different from the platform? I understand the advantage of using a single language, but in terms of performance, quality, I am not sure that the efficiency is worth it. Another thing, the code is JavaScript, so reverse engineering and analyzing the code is more cumbersome than Delphi. Because you're relying on many more third-party components, you need to keep updating those components. You have dependencies, you have dependencies that have potential security holes, like a browser and a web server. So you need to keep continuously updating all of these modules in your system. More dependencies means less control, like recently we learned that Apple iOS has been rejecting application because the user under-commented APIs. Using a lot of open source, also presents risks. There are some advantages of course. JavaScript is a common language with many developers, but quality, performance, stability, platform integration, these are all weaknesses compared to building a native application with Delphi or C++ or another direct language. Atanas: I think Microsoft has done a really nice job with Windows 10, and if you look at just the look and feel on the platform, it is so modern and the applications are powerful and fast. So, for the same reason that people build native application for iOS or Android, I see no reason not doing this for Microsoft. You have a much bigger screen with a lot more UX options, so you really should take full advantage of the OS. Marco: And the other important thing to note is that, 10 years back, doing native felt you're at risk. Microsoft just kept saying, "Oh, eventually, there will be.NET only running on Windows." And so a lot of our customers were scared, saying, "Oh, what's happening here? Because in the future, I won't be able to run my application." That didn't happen. Five years ago there was another scare, "Oh, you need to move to Universal Windows Platform, because if it's not Universal Windows Platform (UWP), it's not going to run on Windows." All of our customers got worried. Then, we had the desktop bridge, and we were able to support the Universal Windows Platform seamlessly through Centennial. Your VCL application can be easily deployed to the Windows store. Today Microsoft has completely reversed the position. UWP doesn't really exist anymore, and the new platform component on Windows are native. So the new Edge control for embedding the Edge Chromium web browser is a native control. The new WinUI version 3 has a bunch of native controls. So Microsoft is kind of giving up on trying to push everybody on UWP and say, "Okay, go native," and then for protection and security, they are going to use MSIX, which is a technology that's very friendly to the native compiled application. So, that's great for us because it provides even more APIs we can embed, encapsulate and support from the Delphi and C++ VCL applications. Atanas: I do think that Microsoft with Surface strategy and other moves, have done well to energize the Windows platform in general. So they are more confident in that path, which is excellent for us, excellent for Microsoft. Any last comments related to building a Windows application today -- or any other advice for customers? Marco: There are few things that are important. First is start considering today's hardware and architecture and not yesterday's. Start to build applications that really have the Windows 10 UI, and not the Windows XP UI or something like that. Using styling is relevant. If you use styling, it is a little extra effort, but using styles allows you to have an application that feels native, and you have the flexibility of adapting to whatever is native like today or tomorrow or the day after tomorrow, without having to rewrite anything in your code. So the fact that the application can look Windows 7 or Windows 10 just by changing a flag, provides a lot of additional value because there's no rewrite. If you consider Microsoft, they're saying, "If you want to embrace the new modern UI, rewrite your UI from scratch." And honestly, it's difficult for a company that invested years in building the UI to rewrite. We say, "No, just apply a level of styles on top of UI. It will still become a very nice application. There is some work, it's not completely free, but it's a small percentage of your development effort. And we are focused on making sure that styles work perfectly on all scenarios. There's still some hiccups on 4K monitors, but that is one of the areas we are focused on fixing. For example, we now have support for having images in your application that have multiple DPIs, so you can have high-quality crisp image even on a 4K monitor. There aren't many other Windows UI libraries that offer this capability. In most other windows UI libraries, you're on your own in terms of supporting a high DPI monitor. There's no ready-to-use components. So it's important to start thinking about 4K monitors from the beginning, start thinking about styles, and start thinking about UI. "Okay, I shouldn't use a check box, I should use a modern component replacing it via a toggle because that's the modern look and feel and the modern style." The good news is that all of these things are parts of VCL, so you don't really need to do much extra effort rather than rethink your UI a bit, learn about these new components that we provide, and embrace them. Atanas: Very cool. Well, thank you, Marco. This is much appreciated. We need to do a lot more to communicate what VCL is all about. There are so many wonderful VCL case studies out there. However, our customers are busy, they don't always share those, so the more we explain, the more our customers will be confident in building new powerful apps incorporating these features. Marco: Sure. I want to say that Delphi and VCL are the only true visual development options dedicated to Windows today. And that commitment has been true for many years. You can take a 24 years old Delphi application, rebuild it and within a relatively limited effort make it a first class Windows 10 citizen. The other options, like Visual Basic (and maybe Visual FoxPro) have come and are gone. Your investment in VCL is still here today, and it's going to be there in the future.
Read More

InterBase 2020 Released

I just wrote a blog post on Embarcadero community site to announce the release of InterBase 2020: Main feature is the addition of tablespaces, which allow you to customize the mapping of tables and indexes in different files, possibly on different file systems. There is also support for macOS 64 and Android 64 as part of the embedded versions (IBLite and IBToGo). InterBase is a really unique and very poweful database engine, and one worth considering for mobile, desktop, and servers alike. For more info, see the InterBase product page at:
Read More

FireMonkeyでのマルチデバイスデザイン – CodeRage シリーズ

今週のCodeRage 2019では、FireMonkeyでのマルチデバイスデザインシリーズに関する素晴らしい内容を紹介しています! 今年、提供形式を変更した目的の1つは、45分の完全なビデオを作成する時間がとれない場合でも、より多くの方々に参加していただくことでした。(read more)
Read More

FireMonkey Beta for ImageEn, Imaging Library

We have now released a beta version of ImageEn/FireMonkey. At this time, only Windows targets are supported. Other platforms are planned.

It is a direct port of our VCL version, but does NOT include:

Any Dialogs
– ImageEn open/save dialogs
– Built-in image effects dialog (TImageEnProc.DoPreviews)
– Built-in image I/O properties dialog (TImageEnIO.DoPreviews)
– Layer Properties dialog
– Printing and Print Preview dialogs

Any Windows Features
– Windows shell components and features (such as video thumbnails)
– TIEFolderMView
– WIC file formats and features
– GDI+
– Rich formatting for text layers
– AVI and Meta-File support

– Image Acquisition (Twain, WIA, WPD)
– Video Acquisition (DirectShow, MMF)
– Support for plug-ins like ImageMagick and WpViewPDF
– Legacy components: TImageEnVect, THSVBox and TGradientBox

Naturally being a beta, it will have bugs and incompatibilities. Beta testers are expected to test and report issues.

The beta is open to anyone with an active ImageEn license (as it includes all ImageEn source code). For more information, visit:

Sample Compiled Demos

Complete Editor:
Image display and editing application

Thumbnail Viewer:
Using TImageEnMView to show thumbnails for images in a folder

All Layer Editing:
Usage of image, shape, text and line layers

Image Editor Actions Demo:
Complete image display and editing application built using only the TImageEnView Action set

Layer Actions Demo:
Complete image layer editing application built using only the TImageEnView Action set

Thumbnail Actions Demo:
Multiple image display and editing application built using only the TImageEnMView Action set

All Actions Demo:
Demo showing all ImageEn actions (230+) available to rapidly build applications

Brush Tool Demo:
Using the in-built Brush tool to paint onto an image

Clone Tool Demo:
Using the in-built Clone Brush tool to copy and erase content within an image

Flood Fill Tool:
Using the Fill tool to replace the color within an image with a new color or transparency

Transition Effects:
Use of transition effects to smooth the changing of images during a slideshow

Photosphere Viewer:
Interactive display of “Equirectangular” images (Google Android PhotoSphere 360° panoramic images)

Zoom Filter Comparison:
Display of all the available ZoomFilter effects for image smoothing

Magic Fill to Polygon:
Creates a polygon by performing a magic selection on an image (matching a color range)

Navigator Demo:
Use of TImageEnView.SetNavigator to show the currently viewable portion of the image

Cells and Grid Demo:
Divide an image into a grid and allow selection of individual cells More

Read More

Be-Delphi developer event 2019 in Belgium, Brussels

With great pleasure we announce a brand new edition of the Be-Delphi developer event.

You will not only meet & network with your fellow Delphi developers from the Benelux.

But Embarcadero’s Jim McKeeth – Chief Developer Advocate & Engineer and José Léon Serna – Creator of Delphi for PHP/HTML5 Builder and former Director of Engineering and Branch Manager at Embarcadero Technologies, will be present to!

José Léon Serna will introduce a brand-new and ground-breaking product from TMS software that will open the world for Delphi developers and vice versa!

For the first time with this Be-Delphi edition, we will have an optional geek night the evening before the event. All attendees of the Be-Delphi event are entitled to join us free for more fun on Wednesday-evening.
Full program for both days can be found here.


09h00 – 09h15: Welcome & keynote (Be-Delphi)
Filip Lagrou, organizer of Be-Delphi welcomes attendees and provides the latest agenda details and warms up the audience.

09h15 – 10h15: Legacy Delphi projects (Serge Pilko)
Serge Pilko and his team from Softacom has tons of experience moving forward legacy Delphi code to new and modern Delphi versions. Serge will share all tips, tricks, techniques, pitfalls to take in account when moving forward legacy Delphi projects to the latest versions taking advantage of Windows 10, unicode, cross-platform and the latest RTL & VCL features.

10h15 – 10h45: Coffee break

10h45 – 12h00: Targets for TMS WEB Core (Bruno Fierens)
The CTO of TMS software, Bruno Fierens, explains and shows how TMS WEB Core can be used to go to 3 targets: regular web applications, cross-platform installable mobile applications for iOS + Android and installable desktop applications for Windows + macOS + Linux and this all from the same code base with TMS Web Core.

12h00 – 13h00: Warm lunch

13h00 – 14h00: FireDAC (Jim McKeeth)
Explore with Jim McKeeth the ins and outs of FireDAC to get high performance and flexible access to almost every database on the planet.

14h00 – 15h00: TFrameStand & TFormStand (Andrea Magni)
Make multi-form handling in your FireMonkey applications easy and shine with the opensource TFrameStand and TFormStand developed by Andrea Magni himself.

15h00 – 15h30: Coffee break

15h30 – 16h30: Brand-new & Ground Breaking (José Léon)
José Léon will take the wraps of a brand-new and ground-breaking product for the first time in the Benelux that will open the world for Delphi developers and vice versa. Be there and be amazed!

16h30 – 17h30: FMX Linux (Jim McKeeth)
Since FMXLinux is included in Delphi Enterprise and Architect editions, it is now also possible to use the FireMonkey framework to create Linux client applications. Jim McKeeth shows and covers all details to get you productively create Linux client applications from Delphi.


The event will take place at the peaceful Hotel Chateau du Lac – Genval, Belgium.

Facilities for hotel rooms at the event are optionally available for attendees.
Book your hotel room at Chateau du Lac with a discount thanks to Be-Delphi via link below!

This is your chance to meet and share ideas with your fellow Delphi developers from the Benelux.
So don’t waste time and be one of the first to secure your place at the Be-Delphi event.

Read More

Read More

Embarcadero Conference 2019, Brazil

On October 22nd, 2019, there was another edition of Embarcadero Conference in São Paulo, Brazil.
Hundreds of Delphi enthusiasts come together every year to find out about the new developments!

Also this year over 500 attendees were present to expand their knowledge.

There were seven simultaneous sessions, all happening in the same auditorium. The attendees could choose which session they wanted to listen to, by selecting the audio channel in their headphones.

More information about the sessions can be found on the event site.

Wagner Landgraf, architect TMS Business tools, did also participate in this event. He presented the following session: “Anatomy NFC-e issuer in the cloud (REST API)”. A NFC-e and NFS-e emitter in the cloud was showed, built with Delphi, with information about its architecture, REST API description, and issuance from the client.

Wagner Landgraf about the content “in the cloud”

NFC-e is a legal digital document in Brazil, and when we issue such a document in the cloud, we have several advantages compared to the issuing of the same document in a local desktop or mobile application:

  • One single and centralized place to configure the issuing environment (installation of certificates, configuration of cryptography libraries, etc.)
  • Minimizes the risk of problems and support cost: you don’t have to configure hundreds of client environments
  • Much easier system update and maintenance: you also don’t need to manage all the clients.
  • You can issue NFC-e from any platform (from a desktop Windows application, a mobile application, or even from Raspberry PI, who knows?). All you need is internet connection and HTTP communication on that platform.
  • It’s easier to develop clients in other platforms. No need to be able to port and compile several 3rd party libraries needed for the document issuing, like ACBr, FastReport, FortesReport, cryptography dlls or tools, etc.


Marcos Moreira, Embarcadero MVP, was also present at the event and he presented a session about our new framework TMS WEB Core

Both the sessions received positive feedback, the attendees were interested and enthusiast.

We hope to bring even more good content for the next edition!

Read More

Read More