From the blog

Everything You Need To Create Windows Apps With C++

When you want to create a new app for Windows 10 or a new version, Windows 11, the first decision you make is what type of app to build. No matter what your app idea is there is a great selection of Windows app development tools to choose from. Microsoft has focused it’s more recent efforts on the C# programming language and its own proprietary technologies of WPF, UWP, WinForms, and .NET MAUI. You can use Microsoft’s tools to create Windows applications but there are a couple of other options which give more independent functionality and with the added bonus of huge productivity gains. This article contains all the information you need to get started building apps in C++ for Microsoft Windows. I’ve started using Dev-C++ and had a lot of fun figuring out all the things I can do with console applications. I really enjoying building C++ Win32 desktop applications, sometimes called classic desktop apps. You can get the latest and updated version of Dev-C++ from the Embarcadero website. Embarcadero Dev-C++ is a new and improved fork of Bloodshed Dev-C++. This fork is sponsored by Embarcadero. Embarcadero Dev-C++ now has a modern UI and UX and some great new features too. Where can I find details on building Win32 desktop applications with The Dev-C++ IDE? Here is a brief article on building Win32 desktop applications using the Embarcadero Dev-C++ IDE. What are ‘Classic Desktop Windows Apps‘? Win32 desktop apps are the original app type for native Windows applications that require direct access to Windows and hardware. Because of this, Win32 native applications have the highest performance for GUI apps and easy direct access to system hardware. Using the Win32 API with C++ makes it possible to achieve the fastest app speeds and efficiency by taking more control of the target platform with ‘unmanaged’ code than is possible on a ‘managed’ runtime environment like .NET. Here are a few highlights of what the Win32 API offers to enable you to build high-performance applications: DirectX, Direct3D and DirectCompute Access to performance-oriented instruction sets like SSE and AVX through intrinsic functions Hardware level optimizations However, developing at such a level requires greater care and attention to get things right and it might take more development time. What is a faster and easier way to create GUI applications? While playing with C++ in the Dev-C++ IDE, I came across Embarcadero’s C++ Builder and then RAD Studio Delphi. Specifically, I started using Delphi with Visual Component Library which is often abbreviated to ‘the VCL’. The VCL is a set of visual components (ready-made blocks of code and functionality) for the rapid development of Windows applications in the Delphi language. The VCL includes dozens of ready to use visual components and a wide variety of non-visual components and utility classes for tasks such as: Windows 10/11 application building Database applications Client/Server applications Console applications and more With visual components such as the form, edit, button, panel components, designing and building graphical applications is much faster and more efficient than laboriously creating everything from scratch.  In terms of UI libraries, the VCL has always been considered the best wrapper on the native Windows API. Moreover, Delphi and the VCL offer a much better encapsulation of the COM layer on Windows. Additionally, Delphi offers a great and […]

Read More

The Best JavaScript Framework Alternative to Open Source

Every organization has different tools to support internal processes. As companies scale, IT teams are faced with the growing complexity of user requirements, which often go beyond the capacity of consumer software. IT executives everywhere are turning their attention to custom solutions to better accommodate their organizations’ needs.  In this article, we’ll dive into the key areas for choosing a development framework for your enterprise applications. You’ll learn about the common challenges with open-source software and what makes Sencha Ext JS the best alternative solution. What to consider when developing enterprise software  Regardless of the usage areas, the foundation of every high-performing enterprise software boils down to the development framework. If you’re in charge of developing a new application, chances are you’re considering open-source frameworks like React or Angular.  Now, open-source packages come with a whole different set of challenges: Security risks: Enterprise applications process sensitive data, so you’d want control over the system accessibility and user permissions. If you rely on open-source projects developed by a broader community, there may be little control over the source contributions.  Maintenance effort: Enterprise software has unique requirements. Unfortunately, many open-source frameworks are not enterprise-ready for your particular use due to the nature of third-party code. You’ll also need to compromise the standard support your IT team requires. Ease-of-use for user adoption: Lack of UX expertise or bandwidth makes it difficult to deliver the optimum user experience unless your team has reusable UI components for every project. Considering the factors mentioned above, you should handle open-source frameworks with care, especially for mission-critical environments.  An ideal development framework should also offer: Version control or IDE-like experience with a native debugger Robust and granular access control functionalities Option for being self-hosted  Why choose a proprietary framework? The easier you can build and deploy apps, the more efficiently you’ll be able to address constant feature requirements from your users. And that’s just one among several advantages of closed-source frameworks. Enterprise-grade security  Security is probably the main driver for closed-source adoption among enterprises. Having controlled and authorized access to the source code is critical for enterprise software. Dedicated support and training resources You don’t have to worry about spending hours searching through docs or community forums to find answers to your problems. Using a commercial framework, you’ll get professional support from the vendor. The available documentation and user guides also directly cater to your use cases. High code quality Open-source frameworks don’t necessarily have the same level of attention to quality as their commercial counterparts. Proprietary options give you complete customizability to design software for very specific needs so your team can save time on development while ensuring the usability of the code immediately upon installation. On top of these benefits, you’ll be provided with a standard license agreement, which comes with indemnification and warranty. This means fewer headaches over open-source licensing terms and compliance issues. Ext JS: A powerful JavaScript framework for custom software development Ext JS is a JavaScript framework that offers a component library for building rich client, cross-platform web applications. It is especially suited to handle enterprise applications with large volumes of data. With Ext JS, you’ll have access to over 140 prebuilt UI components, including form builder, calendar, tables, charts, and more. Plus you’ll have the ability to visualize and analyze data […]

Read More

The Power Of The Future Is Rooted In The Past

First programming languages were written in the 1950s, long before our modern day ide software was even a twinkle in the eye of the most forward-thinking minds. Those early languages were very close to the hardware. Instructions were extremely unsophisticated and were almost one-to-one conversions of a circuit’s purpose: load value, multiply value, subtract value. In fact, multiplication was achieved by simply adding a value multiple times so “4 multiplied by 3” was really “load 4, add 4 to that, add 4 to the result, print the result“. In essence, the programming language was a series of grunts used to communicate those absolute essentials to the computer to get the work done. Was it a language? Of sorts, yes, but only really a step away from a traveler stranded in a foreign country gesticulating wildly with hand signals at a bar tender in order to get the drink they want. It was a struggle. It was arduous and error prone even though the hardware limitations meant the actual quantity of instructions which could be fed to the hardware were tiny by today’s standards. Programmers were speaking the language of the computer to make the computer’s life easier. We grunted, they understood. It was magical. What is a high-level computer language? Margaret Hamilton with the code she and her MIT team produced for the Apollo project. Source: WikiMedia Commons This onerous and laborious level of communication endured for a few years. Even by the time of the first moon landings the instructions were still designed to make the job easy for the computer with little or no deference to the ease of human comprehension. The capacity for the computer’s instruction store – where it put actual “what should I do” had massively increased but you still had to be something akin to a superhuman to write code which worked reliably. No wonder that time spawned so many comparisons of programmers to wizards and warlocks! Of course, the time came when a push towards making programming languages more human friendly arrived. Algol, Fortran, COBOL and C all broken new ground in abstracting those LOAD, STORE, SHIFT LEFT and ROTR computer-edible instructions into something more palatable for human programmers to consume. The shift from wizards and warlocks towards more regular humanity had begun. What happened to computer programming in the 1980’s? The 1980s were a huge boom time. That early abstraction of computer instructions in the “high level” languages such as BASIC and COBOL had gone a long way to making programming more accessible. The advent of the semiconductor and advances in miniaturization brought about programmable calculators, the first digital watches and, eventually the first personal computers which freed computing from the enormous room-sized behemoths of the ’60s and ’70s to a box which could be plugged into an ordinary power supply and would fit on the average office desk. Now, in theory at least, everyone could have a computer. Computing was personal. Why did the personal computer spawn a new era in computer languages? The invention of ‘personal’ computing meant that suddenly the possibility of writing and using computer programs could spread to ‘normal’ people. It was no longer constrained to the environs of huge corporations with development staff who were university-trained at great expense. The ordinary individual could write code for the personal […]

Read More

A Beginner’s Guide To Using A JS Grid

Every veteran web developer once started from a place of rudimentary skills. You get more proficient at web development only when you devote time and effort to the craft and learn new technologies. The advent of the internet has brought plenty of resources at your disposal for you to utilize for a smoother learning experience. Therefore, you shouldn’t shy away from trying out things one at a time and growing further. While the learning process looks different for every beginner developer, one common aspect is their mistakes. Such mistakes are great teachers that give a lifelong lesson for better professional growth. However, it would be more beneficial if beginner developers could learn from each other’s mistakes and save themselves from wasting time on repeating them. When it comes to a JS grid, the scenario is very similar. There are many libraries and tools for you to explore and learn. However, you can benefit from a resource that provides you with a roadmap about data grid libraries and how you can start using them. You could learn about some viral libraries like Sencha Ext JS that some major enterprises use for building robust data grids. This article will focus on what aspects make data grid libraries stand out and what you should know as a beginner trying out data grids. What Tool Can Help Build A Robust JS Grid? Building a JS data grid means working with two different technologies that are neatly integrated into each other. One is JavaScript, one of the fundamental languages of the web that controls the functionalities and back-end logic of websites. The other is data technologies that handle, process, and chart up the data into a grid for you and others to use.  Since both of these are radically different, you need a tool that integrates both of them sufficiently. The best way is to utilize a JS grid library within your codebase and use its methods for building data grids. While you could look into other options, such as using the front-end framework or using HTML to build grids, using a dedicated grid library has much more advantages. However, you’ll need to ensure some vital fundamental aspects in your chosen JS grid library since there are so many options out there. Some of them are briefly described below: Robust Data Features: The JS grid library should have all the essential data operations you and others can use. Standard operations like pivoting, filtering, managing rows and columns, and aggregation are a must. Strong Visual Aesthetic: It won’t be helpful if all power of the grid library is behind the screen and the rendered grid is unusable. Therefore, it must have a user-friendly UI for a better user experience. Thorough Documentation: Every developer needs help occasionally, and the tools they use should provide that. The JS grid library should supply documentation and examples for a better development experience.  Easy-to-use Interface: While the grid library should come packed with features and a fantastic UI, it shouldn’t have to translate to a challenging development experience. The library’s methods and interfaces should be a breeze for developers to work and create powerful data grids with. You can trust it with your data grids after you have ensured that your preferred data grid library will deliver in all the above […]

Read More

Looking back at 2021, an inspiration for what 2022 can be

The daily chore easily makes one forget the milestones reached and the goals ahead.  As such, it is good, with the start of the New Year, to look back of what has been achieved in the past year and set the goals for the new year. First of all, let me wish you a great new year 2022! I made a habit of wishing friends & relatives “to maximize the number of happy days in the new year“. Good health, success, good relationships, interesting work, achievements, luck, new experiences all contribute to happiness. So, when you can maximize the number of happy days in 2022, it is very likely you’ll be blessed with a mix of these things! At the same time, only in utopia, every day will be filled with happiness, so it also helps being prepared for some less successful days. 2021 Looking back at our milestones & achievements in 2021 actually positively surprised me. Even when we often get the impression that on a daily basis, we sometimes spend a lot of time fighting all kinds of little or big technical issues and have the impression we only move forward in baby steps, when looking at it in the scope of a full year, it appears a lot has been done. A summary Release of TMS Web Academy In the beginning of 2021, we launched our new platform TMS Web Academy, which is an online platform for bringing webinars to you where you can learn everything about our products. Since its launch, we already organized about 20 webinars that were free to attend. If you missed these, the replays are here. Of course, we continue along this path with new webinars for 2022 we’ll shortly present. TMS Web Academy proved to be a welcomed replacement for live events we could not hold due to covid-19 as well as a way to reach more developers world-wide. Launch of TMS Miletus  Miletus is our technology that enables you to create cross-platform desktop applications created with a single code-base and using web technology. Not only did we achieve to bring application generation for Windows, Linux and macOS from just your Delphi IDE running on Windows, we added to that also the Raspberry Pi OS target and we also added support in TMS WEB Core for Visual Studio Code. With Visual Studio Code, you can generate these types of applications directly from your favorite Windows, macOS or Linux machine.  Launch of TMS FNC WX Pack A completely new product saw the light in 2022, the TMS FNC WX Pack. TMS FNC WX Pack offers functionality that is hard to find or not existing for Delphi developers based on existing and proven web technology libraries. This includes so far a WYSIWYG HTML editor, an OCR tool, QR & barcode generation & detection, JSON data formatter,… and more is coming for 2022. High DPI to TMS FNC UI Pack With the release of Delphi 11 running in high DPI on Windows, it was critical to also bring full high DPI support in TMS FNC UI Pack. TMS FNC UI Pack is our universal (cross-platform/cross-framework) UI control bundle for VCL/FMX/LCL and TMS WEB Core. Our FNC UI controls were already looking crisp in FireMonkey apps, but now they also do in VCL high DPI […]

Read More

Introduction to Python GUI Development with Delphi for Python (VCL & FMX)

Part 1 starts shortly at 9 AM CST, and Part 2 on using Delphi FMX for Python to target Android is in two weeks on January 26th at 9 AM CST. Learn how Embarcadero’s newly released free Python modules bring the power and flexibility of Delphi’s GUI frameworks to Python. VCL and FireMonkey (FMX) are mature GUI libraries. VCL is focused on native Windows development, while FireMonkey brings a powerful flexible GUI framework to Windows, Linux, macOS, and even Android. This webinar will introduce you to these new free Python modules and how you can use them to build graphical users interfaces with Python. Part 2 will show you how to target Android GUI applications with Python! Come back here for links, slides, and the replay.

Read More

The Anatomy Of A Great JavaScript Grid Library

The pressure a modern web developer faces daily requires them to develop effective decision-making skills and always be on their toes. In the Rapid pace of modern software development, you cannot afford to take any wrong decisions or slow down. With the stakes this high, you have to make quick decisions about the frameworks you will work with and your chosen tools. Therefore you should always try selecting the right toolset before work starts.  For example, many beginner developers often make the mistake of going ahead with any library they see after searching the internet. Not many go through the documentation and Research into its developer community when deciding whether it’s a good option or not. When it especially comes to searching for the correct JavaScript data handling library, you should take some time to understand what a solid choice should look like.  When you start searching, you will realize there are many options on the market for libraries that work with data within JavaScript. However, not all of them would be advantageous. Some could potentially hurt your project’s performance and become a liability later on. To avoid such a scenario, you should consider an industry-leading option like Sencha ExtJS, which major tech companies trust worldwide.  This article will help you understand what the suitable JavaScript grid library would look like and how you can avoid making the wrong choice by keeping the aspects in mind. What Should The Right Javascript Grid Library Look Like? What are the Powerful Data Handling Abilities? The first and foremost characteristic you should extensively test when looking for a suitable JavaScript grid library is how well it handles data. The back-end performance of the library is an essential factor, and we cannot afford to pick an option that is unable to bear the brunt of massive datasets or complex operations. Therefore, you should look for a library that can promise significant data processing skills and delivers at that front. Sencha ExtJS has a sprawling library of data-focused capabilities that you can use to construct your data grids. There are powerful implementations of standard operations like pivoting, aggregation, grouping, sorting, filtering, and editing. You can also edit, drag-and-drop, and reorder rows as you please without hurting the application’s performance. Does it Support Extensive Customization? Since data is used in many different ways these days, it is a guarantee that no two data-intensive applications would be the same. Therefore, data technologies focus on being flexible and offering a diverse set of features that are useful in all different use cases. Your chosen grid library should also provide you with options to customize the back-end functionality and the front-end rendering. With Sencha ExtJS, you get a thoroughly customizable data grid library. You can edit how your rows and columns look and function. Additionally, the data binding options are flexible so that you can accept data requests from various sources like AJAX, JSON, or RESTful methods. You can also add more personalized functionalities by incorporating specific widgets. Are there Solid Integration Options With Frameworks? If your chosen JavaScript grid library intends to work smoothly in your web project, it will need to integrate smoothly with the other technologies. The whole web application will only be able to deliver the utmost performance when all the frameworks and libraries work […]

Read More

Why We Love Windows Development (And You Should, Too!)

I can say, with confidence, that desktop apps are not dead, in fact they are very much alive and thriving. Web apps are on the rise and it’s a common trope to say that web applications can replace windows app development. But they couldn’t do that. In some cases, Web apps are suitable as the primary way for users to consume your product ideas and output. But mostly, web apps are an adjunct to a more complete experience offered by full-on desktop applications. This is especially true in the business-to-business market. The majority of enterprises are still using native desktop applications especially for the line-of-business sphere like process control, specialized accounting and those apps which integrate with IoT devices. What happens when The Cloud is polluted by the fog of war? Useful web applications like productivity web apps proliferate but they do not have broad accessibility over native desktop applications and suffer from the need to be hosted by an outside organization which can pose problems of data ownership, guardianship and compliance. For example, if you are a German company and your human resources information is held in a cloud hosted in a nameless data center how can you ensure – in fact guarantee – that you comply with the eye-watering complexities of European and German laws? If that data center relocates to a new geographic territory, one which is cheaper for the cloud provider but is physically located in a region which is geopolitically at odds with your own wishes or legal obligations? If you are a US based company it may be illegal for you to hold data in a broad range of countries. Europeans may be legally prevented from using data stores outside of the European Bloc. The Cloud is really “someone else’s computer”. As a business owner – and even as an individual – you need to make sure that the “someone else” is some else you trust, and, more importantly, you are allowed to trust. What if the cloud…vanishes? If The Cloud breaks down and vanishes. Who gets the blame? The cloud provider files for bankruptcy, for example, and as long as they were not negligent, they get to walk away from those obligations. Meanwhile you are left with a compliance headache at best and a total los of business viability at worst with no ability to recoup. But even assuming that scenario doesn’t play out. What happens if your cloud app can’t access the internet? The outages at Amazon data centers took out the key functionality of substantial parts of the internet. A huge spotlight of doom was shone on the fragility of many companies’ solutions the questions being asked “was this a wise idea after all?” So, the problem is offline access to the functionality. Many web applications are building desktop versions of their products, because of the problem of offline access. Besides, web applications need persistent internet access, and this is another concern on security. That’s why big companies still feel the need to safely build native desktop applications. Are desktop applications the solution to the fragility of online-only web apps? It’s nearly impossible to deny that the desktop is probably one of the most important developments in productivity in the history of computing. Both desktop and web applications have their pros […]

Read More

Fast Track to Ext JS Learning Path Is Now Available On-Demand for Free

Are you an aspiring Ext JS developer just getting started with the framework? Or are you looking for the right resource to upskill your team? We’ve got exciting news for you about Fast Track to Ext JS! One of our most popular Ext JS training courses is now available on-demand for free. This means you’ll get access to quality learning materials and learn from Sencha Ext JS experts at your own pace. It’s completely free! Fast Track to Ext JS: Building Desktop & Mobile Apps with Modern Toolkit In this course, you’ll learn the fundamentals of the Ext JS development framework, including: Application Architecture Views; View Controllers; View Models Sending and Receiving Data Data-aware Components And many more It’s also extremely hands-on with labs for development works that connect to live data feed. So you can learn how to build the application from scratch. To start learning, you’ll need: A computer A course folder to hold your work Google Chrome Sencha Cmd Sencha Ext JS A source code editor or IDE If you haven’t already, get your 30-day trial of Sencha Ext JS for free. This course is also designed to help you make the most of your evaluation period. What’ll you be coding A music application that shows iTunes music video thumbnails for the top music videos. And users can play the preview video in a popup window. Music Video Application By completing the Fast Track to Ext JS course, you’ll be equipped with the essential skills to develop a full-featured application using the Modern toolkit for both the desktop and mobile user interfaces​. Get Started Now About the instructor Max Rahder World-class expert in Ext JS and Sencha Test Expert in technologies and architectures, and other front-end libraries, such as Ionic, Angular, and React. Max’s recent projects include: ExtJS app version upgrades (from 3.x and 4.x to 6.x) ExtJS app feature enhancements Mentored numerous clients on architecture and design Wrote all courseware for Sencha, Inc.: ExtJS, ExtReact, and Sencha Test Wrote Ionic courseware Converted a large ExtJS app to Ionic/Angular Given scores of corporate training and mentoring classes on web technologies Wrote the Java curriculum used by the State of Wisconsin and UW System

Read More