From the blog

Discover The Success Behind The Most Popular Delphi Open-Source GitHub Project

We’re back with another TCoffee and Code Session. This weekly virtual meeting series was recently launched on Embarcadero Technologies YouTube Channel in response to the current global pandemic. The aim of the series is to gather some of the most prolific developers to discuss various topics related to the industry in an informal, non-scripted, coffee conversation way. In this video, Stephen Ball will be joined by Daniele Teti to share the success story behind the most popular Delphi Github project, the DelphiMVCFramework. The Success of DelphiMVCFramework In this video, Stephen Ball will have a one-on-one interview with Daniele Teti, the CEO and R&D Director of BitTimeProfessionals. Apart from being the CEO, Daniele is also best known for his successful Delphi open-source project on GitHub, the DelphiMVCFramework which is considered to be one of the most popular Delphi projects since 2017. Delphi MVC framework provides an easy-to-use scalable flexible RESTful, JSON-RPC, and ActiveRecord Frameworks for Delphi Developers. In this video, Teti will share the project’s humble origin and success. He will share why he has a chosen open source and how running an open-source project benefited him. We will also learn how this became one of the useful windows tools for developers. More About Managing Open-Source Projects With over 30 active contributors, and communities in multiple languages, Daniele Teti will share his insights on why and when Open source is useful. He will also share tips on how to monetize open source as well as the lessons he learned along the way. To learn more about this successful story behind the most popular Delphi open-source project, feel free to join this 1-hour-long webinar (virtual interview).

Read More

What You Need To Know About Testing, TDD, Quality, Source Metrics, And Code Coverage

A few months ago, TCoffee and Code managed to highlight everything about the Test-Driven Development. The webinar featured Stephen Ball and Jens Fudge as they discussed the importance of Test-driven development in programming, especially in Delphi.  We also get to know more about Unit testing and all its notable advantages in windows program development. Interestingly, in this new TCoffee and Code session, we will look deeper into this topic and learn more about different levels of testing, source metrics, and code coverage. What are the different levels of testing? Joining the panel for this webinar are some of the prolific developers and Embarcadero MVPs such as Ian Barker, Bob Swart, Dalija Prasnikar, and Alister Christie. The two-hour-long webinar will mostly focus on the four different levels of testing. Generally, there are four identified levels of testing including the Unit Test, Integration Test, System Test, and Acceptance Test. Each level of testing has its own purpose. Unit Testing, for instance, is the starting level that checks if software components are fulfilling their functionalities or not. Integration Testing, on the other hand, checks the data flow and integration between classes and other code components while system testing is performed on a complete system and checks the overall interaction of components. Lastly, Acceptance testing is done to check if the system meets the specifications and requirements. What are source code metrics and what does code coverage mean? All the aforementioned testing procedures were done using Delphi-focused testing tools such as DUnit, DUnitX, TestInsight, and more. Aside from the levels of testing and the test-driven development, this discussion will also highlight the use of Source metrics and code coverage in Delphi. The panel will discuss the use of various code quality tools like Audits & Metrics in Delphi, Method Toxicity Metrics, Peganza’s Pascal Expert and Pascal Analyzer, TM FixInsight, and more. Feel free to join this TCoffee and Code webinar session to learn more about the different levels of testing, source metrics, test-driven development, and code coverage.

Read More

The Importance Of Profiling, Optimization And Leak Detection

TCoffee and Code Session is a weekly virtual meeting where developers will discuss everything about the programming industry. This informal coffee conversation will gather some of the leading developers in the industry to address different topics and share their own thoughts and insights about them. In this video, Ian Barker was joined by his fellow Embarcadero MVPs Jim Mckeeth, and Alister Christie of Learn Delphi TV to talk about the importance of Code Profiling, Static Code Analysis, SQL Performance, and Memory Leak detection. What is the advantage of static program Analysis and code profiling? One of the first topics being highlighted in this live discussion is the importance of static program analysis and how this process can help programmers in optimizing compilers to produce efficient code. This is where programmers analyze the behavior of a computer program or software without actually running them. With the help of some popular windows tools for developers like Delphi Audits, Peganza’s Pascal Analyzer, Pascal Expert, and TMS FixInsight, the developers will not just optimize the program but also helps them detect errors ahead of time. They will also share some helpful code optimization tips. Here, we will also get to know more about certain Code Profilers that are used by developers to help identify performance problems without having to touch their code. Why is memory leak detection so important? We will also learn the importance of detecting memory leaks and how they can affect an entire server if it is left unfixed. The memory leak is a type of resource leak that occurs when a computer program incorrectly manages memory allocations in a way that memory, which is no longer needed, is not released. Here, we’ll get to know some of the popularly used tools to detect Memory Leaks including FastMM and Deleaker. The discussion will also briefly highlight managing SQL Performance and the use of SQL Server Profiler. To learn more, feel free to join this TCoffee and Code session below

Read More

Why You Need To Modernize Your Data Access Components Now

The modern digital age is very, very dependent on the performance and integrity of good software. Robust software enables us to put our feet back and let all kinds of elaborate digital applications do most of our tasks. For example, without good software, we would still be standing in long lines instead of overseeing critical financial transactions from the comfort of our homes.  However, creating such dependable and robust software is no easy task. It demands detailed requirement analysis, proper technical planning, and ensuring optimized implementations. Additionally, such software is built on smaller components and has layers of complexity. Therefore such software and its components have to stand the test of time and be safely upgradeable if users are to safely trust them. One of the most important fundamental parts of desktop software applications that often become obsolete and affect the whole application is the data access component. It leads to various user problems and can be tricky to solve. Its high chances of occurrence make application builders like windows application development give you easy options to modernize your components. This article takes a closer look at data access components, their importance for an application, and why you should seriously consider modernizing them urgently.  What are data access components and how do they work? Most applications are significantly data-intensive and need to either consistently store data or fetch and access stored data. Additionally, applications are also modifying the data stored as well, depending on the use cases. An application looks up to its data access components and expects it to provide the appropriate methods for such purposes. Microsoft Data Access Components are built on an architecture composed of different layers. Each layer is tasked with handling inputs and relaying relevant responses to the appropriate parts of the data access components. The different layers are described below: Programming Interface Layer: This layer comprises methods that help developers control the data access components and their functionalities. The methods directly connect to the next layer and have their implementations encapsulated.  Database Access Layer: This layer comprises drivers and methods that control the retrieval to and from the primary database. It also has various data source connectors involved for consistent data flow. Database Layer: This is the final database layer where the whole of data is stored. While there may be different databases depending on the vendor, they all follow the Open Database Connectivity protocols. All of the layers are available to the developer as the MDAC API and they can use the API methods directly in their applications.  The most popular form of data access component is Microsoft’s Data Access Components (MDAC). MDAC was released back in 1996, and since then, has undergone many upgrades that improved security and performance flaws. The most recent Microsoft data access components are available for its SQL Server product. Oracle also offers data access components for applications like Delphi to connect to Oracle-based data storage applications. How can data access components be useful? As the name suggests, data access components have the critical responsibility of connecting your application to its data sources. While some applications only need to connect to one source at the back-end, some simultaneously take in data from multiple sources. Data access components are expected to quickly handle large volumes of data and connect […]

Read More

How To Make Windows Apps Without Learning The Windows SDK

The beginning of the 21st century ushered in the start of the digital revolution. These were the years when the consumer technology industry saw a boom. While computers had existed for a few decades prior, this was the time when we were introduced to the concept of personal computers. These machines brought the power of processors and hardware to us for our everyday use, and one of their essential components was their operating system. Microsoft’s Windows was among the earliest operating systems that made it possible for the general public to use computers to carry out various tasks using a graphical point-and-click user interface, avoiding the perceived complexities of remembering text-based commands. It has consistently been the most popular operating system globally. You can judge its popularity from the fact that almost all new laptops and desktops come preloaded with it, and any new desktop application hoping for broad public appeal has to cater to Windows users. Apple’s Mac devices are popular too, of course, and Linux is a creditable third place, but market penetration of the Windows operating system still continues to dwarf them. Being the most preferred operating system on the planet, it is hardly surprising that having experience making applications for Windows as a developer is an almost mandatory skill. While it’s possible to create your Windows applications solely using the raw Microsoft SDK, rapid application development platforms like Delphi can potentially reduce the time and effort taken by a significant margin. Furthermore, such an alternative doesn’t have to mean compromising the quality of the application. This article goes over the Windows SDK, what it provides, and discusses other popular methods for developing robust Windows applications with Windows App Development Tools. What makes a successful Windows application? No matter what development platform you choose, it is crucial that you understand what your Windows application needs to perform and deliver the best. Due to Windows’ popularity, there are many applications available which target a specific purpose or use-case, but not all of them receive the same recognition. How can you help make your application the best of its bunch? Some of the main characteristics of chart-busting Windows applications that have a large and dedicated user base are as follows: Regular Update Cycle: Whatever your application may do, it is vital to keep it updated with newer features and upgrades. As Windows keeps updating every few years, your application needs to stay consistent with each update. Clean & Responsive UI: This may be one of the most crucial elements of a successful Windows application. To make your application’s UI a user favorite it needs to visually enhance the user’s comprehension of the program’s functionality and be as intuitive as possible. Least Interference With Windows’ Workings: Windows keeps an eye on all its applications and happenings through different security protocols like its firewall and established conventions on where and how to store or retrieve data . You need to ensure that your application adheres to conventions on storage and runtime behavior so that it behaves as expected and cooperates with the operating system to facilitate secure operation and data handling. By adhering to best practices you also help ensure you application doesn’t impinge on the performance and operation of other apps and functionality. Optimized Inner Workings: Your application needs to […]

Read More

20 Ways To Supercharge Your Apps With APIs

Learn more about 20 useful ways to boost your development on Windows when creating API-based apps. What is a RESTful API and why should I learn more about it? REST is a type of software architecture that was designed to ensure interoperability between different Internet computer systems. Basically the idea is that services that comply with REST architecture can more easily communicate with one another. REST does not enforce any rule regarding how it should be implemented at lower level, it just put high level design guidelines and leave you to think of your own implementation. What we do have is the definition of architectural constraints which make any web service – a true RESTful API. The goal of REST is to increase performance, scalability, simplicity, modifiability, visibility, portability, and reliability. This is achieved through following REST principles such as a client–server architecture, statelessness, cacheability, use of a layered system, support for code on demand, and using a uniform interface. The focus is to make sure that the REST architectural style emphasises the scalability of interactions between components, uniform interfaces, independent deployment of components, and the creation of a layered architecture to facilitate caching components to reduce user-perceived latency, enforce security, and encapsulate legacy systems. What is an API? According to Wikipedia, “An application programming interface is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification”. Imagine you arrive at the mall and you would like to order a burger. The kitchen is the part of the “system” that will prepare your order. What is missing is a link to communicate your order to the kitchen and deliver your food back as fast as possible. That’s where the person taking the order comes in, here representing by the API . The person taking the orders is the messenger – or API – that takes your request or order and tells the kitchen – the system – what to do. The person taking the order can only accept orders for items listed in the menu, and the menu in this case is the document or standard that describes what and how you can make your requests; Both you and the person making the orders know very well the menu structure and contents, meaning both server and client can communicate. Then the person takes your order, deliver it to the kitchen that prepares and send the response back to you; in this case, it is the food! Is there a real-life client-server API example? Yes, lets take a more is a real-life client-server API example. Lets say you want to build your our web, desktop or mobile application to search and present information about commercial flights. Just like the restaurant, you have a variety of options to choose from, including different airline companies, cities and airports, departure and return dates, as well as other variables. In order search and present this information, your application should interact with the airline’s servers to access their database. The airline companies would never allow you to directly access their databases and instead they provide a secure and structured gateway for you […]

Read More

You Need To Code Sign Now, Plus: Explore Microsoft Azure

TCoffee and Code is a weekly informal virtual meeting series on YouTube by Embarcadero Technologies. This virtual conversation series will gather different developers and programmers to discuss topics related to the industry. In this new session, Ian Barker will be joined by his fellow Embarcadero MVPs Holger Flick, Wagner Landgraf, and Jim Mckeeth as they discuss the importance of Code signing and explore Microsoft Azure Cloud. Why Is Code Signing So Important? One of the highlights of this TCoffee and Code session is the importance of code signing and how beneficial this process is for all software developers. Code Signing is generally the process of digitally signing codes (executables and scripts) to guarantee that the code of a program or software download has not been corrupted and tampered with. The conversation will discuss its implications and requirements and how code signing can help both publishers and customers. We will also learn how this process becomes an essential part of windows 10 apps development. Exploring Microsoft Azure Cloud The team also explore Azure Cloud by Microsoft and they discuss the pros and cons of using this cloud computing service. They also provide side-by-side comparisons between other cloud computing platforms like Amazon Web Services (AWS). In addition to that, they discuss other related topics including the storage of keys to Cloud’s secret repositories and more. Holger Flick also provides us with a brief tour of the TMS FNS Cloud pack and will explain some of its controls. To top it all, the video will also give us a sneak peek of the new RAD Studio 11 as well as the upcoming TCoffee and Code sessions that you should not miss. Feel free to watch the video below to learn more.    

Read More

The Story Of How Delphi Became A Real Game Changer For This Financial Software

In this new TCoffee and Code session, we a fact-packed conversation on how stock market trading drastically evolved over the years and how Delphi became a game-changer for real-time financial software development. In this video, hosts Ian Barker and Jim Mckeeth are joined by a long-time Delphi developer Jim Ferguson who professionally developed a Real-time Stock Market Software in 1992 with Turbo Pascal 6. Here, he shares all his experiences on how he managed to embrace the rapidly evolving technology especially in the field of windows program development, and how Delphi helped him overcome these challenges. How did Delphi change the game for Jim Ferguson? Jim Ferguson takes us down to memory lane as he shares his experiences on developing real-time stock market software. Here, he shares his humble beginnings and the challenges he faced in gathering stock market data during a time when the Internet was not yet a thing. The interview introduces us to the stock market industry and Jim walks us through the differences in the process at the time and the cost of collecting real-time stock market data compared to today. From radio signals to the earliest days of the Internet, we will see how Jim managed to embrace the evolution while he shares how Delphi (Pascal) made a huge impact on his very own Real-time Stock Market Software. How did the Transition to automated trading take place and what part did the Delphi Compiler play in that? From manual trading, we learn how Jim Ferguson and his team adapted their engine to automated trading. Jim also shares with us how he managed the risks of dealing with high-profile clients and traders in a fast-moving environment, the importance of unit testing, and his use of Delphi language to pull market data in real-time. To learn more about Jim’s Stock Market software development and how to make the most out of Delphi’s compiler, feel free to watch the interview below.

Read More

What You Need To Know About Databases, Data Access, and Object Relational Mapping in Delphi

TCoffee and Code is back with another interesting set of topics. As described by Ian Barker in this video, “TCoffee and Code is more than just a virtual meeting but more of a group learning experience for everyone involved“. Joining host Ian Barker in this two-hour-long session are his fellow Embarcadero MVPs Holger Flick, and Wagner Landgraf as well as Jim McKeeth to share everything we need to know about databases, data access, and object-relational mapping (ORM). What are the best practices for using databases and database access for Delphi? The session starts with a brief introduction to databases and also highlights the notable differences between RDBMS (Relational Database Management System) and NoSQL (a distributed database) as well as prominent samples of these aforementioned databases. Interestingly, we will also get to know more about different database access for Delphi and windows apps studio including the native ones such as FireDAC, dbExpress, ADO, and InterBase Express. The panel will also discuss third-party Delphi database access such as UniDAC, TMS RemoteDB, and many more. What is ORM and how can we use ORM in Delphi? Finally, we will also learn more about Object Relational Mapping (ORM) in Delphi particularly the use of TMS Aurelius and the application of its basic features. Discover why TMS Aurelius is described as a state-of-the-art ORM for Delphi, the notable advantages of this framework as well as its limitations. The session will also share with us some details about the REST Client Library and will give us an overview of the RAD Server Architecture and how to create a cross-platform ecosystem with FireMonkey. The video will also introduce us to the HeidiSQL tool and how it works well with MySQL and other relational databases. Feel free to watch this TCoffee and Code session below to learn more.

Read More

What You Need To Know About REST Servers, Load Balancers And Reverse Proxies

In this new TCoffee and Code Session, host Ian Barker was joined by his fellow Embarcadero MVPs Holger Flick, Wagner Landgraf, and Jim McKeeth to discuss a mouthful of topics from dealing with REST Servers to managing Multi-tiered applications and API designs. Joining Ian Barker in this virtual coffee meeting are his fellow Embarcadero MVPs Holger Flick, Gerhard Stoltz, and Wagner Landgraf to help us better understand everything about REST Servers, Multi-tiered Applications, Load Balancers, Reverse Proxies, and even Augmented Realities. What do you need to know about REST servers? The discussion will highlight a wide range of important topics and the panel will introduce us first to the things we need to know about REST Servers. Generally, REST or Representational State Transfer is a software architectural style that is created to provide guides or standards for web design and windows app development. Those web APIs that comply with REST constraints are informally known as RESTful systems. A RESTful web service is implemented using HTTP and the principles of REST. The panel will also discuss the use of Delphi’s DataSnap Technology that provides the ability to create Client-Server applications that communicate through the Internet, the local network, or the localhost. Both Delphi and C++ offer all the basic and advanced capabilities to consume any published Rest services. What is the difference between a load balancer and a reverse proxy? In connection with the client-server computing architecture, the panel will also guide us through the differences between the use of Load balancers and Reverse Proxy. While both Load Balancer and Reverse Proxy act as intermediaries in the communication between the clients and servers they still differ in functions and deployments. The team will also guide us about the notable advantages of using the NGINX Reverse Proxy Manager. The session will also highlight multi-tiered applications and API designs and will share with us a handful of tips and tricks of dealing with them. In addition to that, the panel will also briefly discuss the fascinating AR or Augmented Reality on Android phones. To learn more about these topics, feel free to watch the webinar below.

Read More