Code On Time release 8.9.44.0 includes the embedded Npgsql Data Provider that allows rapid development of the offline-capable apps with the built-in RESTful API enhanced with hypermedia directly from the PostgreSQL database..
Release Installation Instructions
Attention: If you are seeing this post in the Install prompt displayed in your browser after launching Code On Time, then you are running the release 8.9.43.0 or older. The App Studio will not be able to install the release 8.9.44.0 due its larger size. Click the Cancel button in the install prompt, close Code On Time and have it uninstalled using the “add or remove programs” of Windows. Download the release 8.9.44.0 at https://codeontime.com/download and have it installed manually. The new App Studio will handle the installation of the future product updates without issues.
Postgres Data Provider
With the integration of the Npgsql Data Provider 8.0.3.0 into the code generation library, Code On Time users can effortlessly build applications from the Postgres database without the need for additional software. These powerful low-code tools enable developers to rapidly create applications from data models derived from the Postgres database schema. The resulting apps are offline-capable and can be deployed to a cloud or on-premises server. Equipped with a hypermedia-enabled true RESTful API, these apps can seamlessly integrate with existing SSO or use the embedded user and role management system. As you develop your application, the RESTful API evolves alongside, making it the backbone of your custom client app built with your preferred technology. With Code On Time, the creation of administrative screens becomes effortless, guaranteeing a user experience that is seamless and intuitive. The quality of the UI in the produced apps is exceptional, potentially leading to cost and time savings due to the out-of-the-box functionality provided.
Npgsql Data Provider is a .NET library that allows developers to interact with PostgreSQL databases. It is an open-source project that is actively maintained and supported by the community. Npgsql Data Provider is a powerful tool that can be used to build a variety of applications, including web applications, desktop applications, and mobile applications.
Here are some of the key features of Npgsql Data Provider:
- High performance: Npgsql Data Provider is one of the fastest .NET data providers for PostgreSQL. It uses asynchronous I/O and efficient caching to minimize latency and maximize throughput.
- Comprehensive support for PostgreSQL features: Npgsql Data Provider supports all of the major features of PostgreSQL, including stored procedures, triggers, and user-defined types. It also supports the latest versions of PostgreSQL, including PostgreSQL 16.
- Easy to use: Npgsql Data Provider is easy to use and integrate into your applications. It provides a simple and intuitive API that is similar to the .NET Framework's built-in data providers.
- Open source: Npgsql Data Provider is an open-source project that is available under the MIT license. This means that you can use it for free in both commercial and non-commercial applications.
If you are looking for a reliable and high-performance .NET data provider for PostgreSQL, then Npgsql Data Provider is a great option when coupled with Code On Time app builder.
Miscellaneous
The following features and enhancements are included in this release:
- (Touch UI) The column dropdown menu in Grid displays the date values formatted as smart dates (when enabled) or have the values formatted as "d", which eliminates the time component from the date. The column menu displays the distinct dates only, which makes the "time" unnecessary. The "smart dates" make it easier to find dates since the values are represented as "Today", "Yesterday", "Last Monday", etc. The applied filter shows the absolute date.
- (Touch UI) Fine-tuned the CSS for the see-all button in the summary views.
- (Framework) Filter parameters that do not have the corresponding field in the data controller view are ignored when the SQL filter is constructed for a SELECT statement. This addresses the exception raised in the standard membership manager when selecting a user of a role.
- (Framework) The database-specific validation is performed when the command configuration is completed at runtime. The Guid parameter values are converted to a ByteArray if the command is executed by ODP (Oracle Data Provider). The datetime parameters are changed to DbType.DateTime2 to remove the timezone sensitivity when the command is executed by Npgsql (PostgreSQL Data Provider).
- (Oracle) The standard membership tables are enhanced with indexes on user_name and email columns.
- (App Gen) The generator will create the SiteContent model of the Postgres and Oracle apps in the ~/app/controllers or ~/[Namespace]/controllers folder.
- (CMS) The CreatedDate and ModifiedDate columns are updated with the Local time. The ApplicationServices.ReadSiteContent() method uses the Local time when searching for the files with a given criteria that were modified prior to the date specified in the last argument. This ensures the natural timestamps in development and production modes. The RESTful App also works consistently across Microsoft SQL Server, Oracle, and Postgres when performing the garbage collection of the expired OAuth resources in the CMS..
- (App Gen) The "Inserting" command is added to the data controller that has a "uuid" primary key field when the model is derived from Npgsql (Postgres). The command is set to "select gen_random_uuid()" expression.
- (Postgres) Developers can add the built-in membership and CMS to the Postgres database when configuring a database connection for the project.
- (Model Builder) IBM DB2 iSeries columns are derived from the original entity. Previously the properties of another column with the same name may have been used when putting together a model.
- (Model Builder) Enhanced model construction for Postgres databases. The tsvector and Array data types are configured to disable filtering and sorting.
- (Framework) If the unknown field is specified in the filter then it will be referenced as null without "quotes".