If you upgrade from version prior to v2019, please be reminded there are some features which are not fully compatible with old versions, make sure you read the follows first. When you open an old project in v2021, ASP.NET Maker will try to convert the changes for you. However, the conversion cannot be 100% and you'll need to do some updates yourself. Please read the following carefully, review your code, update and test it before deploying the new scripts to your production server.
ASP.NET Core in .NET 5
Require ASP.NET Core in .NET 5.0 or newer. All previous versions are not supported.
Target framework moniker (TFM) is net5.0.
If you still use Microsoft Access, you need to change to ODBC. (.NET Core app does not support OLE DB.)
Since v2020, the System.Net.Mail namespace is replaced by the MailKit to support sending email via SMTP/SSL. If you have server event codes that uses System.Net.Mail to send email, you need to change your codes to MailKit. Refer MailKit for coding examples.
Since v2018, the EW_ and ew_ prefixes in code are removed, e.g. EW_PROJECT_NAME becomes PROJECT_NAME and ew_ExecuteScalar() becomes ExecuteScalar(). Also, the c prefix for class names are also removed, e.g. cListActions becomes ListActions.
No more Page_* methods (except for server events) e.g. Page_Run() becomes Run().
Since v2021, all method names are in PascalCase. Therefore, server events like the Row_Rendered server event (which is actually a method of the table class) will be generated as RowRendered.
Class names and object names are also declared in PascalCase and CamelCase respectively, for example, class name and object name of the "order details" table will become OrderDetails and orderDetails. Class name of the List page of the "order details" table is changed to OrderDetailsList.
Normally server events are called and table/page objects are created internally by the web application, so these changes should not affect your code in your projects unless you have server events that call these methods or create instances of the table/page classes explicitly.
If you have a lot of server event code that use the old table object names (e.g. order_details), you can enable the Advanced Setting Generate compatible table object name so you can use old code for the time being and migrate your code gradually. However, make sure you migrate your code as early as possible, the old names are deprecated and will be removed in future version.
Method name are changed to the more common camel case, e.g. ew_Ajax() becomes ew.ajax(). If your client side code calls any old ASP.NET Maker functions, you must update them.
If you use ew.ajax() with API actions using HTTP GET and the route requires parameters (e.g. the "view" action), you need to update your code to specify the URL, see examples under Lookup Table.
AdminLTE 3 now supports some layout options (top navigation, boxed, fixed, fixed navbar, fixed footer). ASP.NET Maker template is based on the fixed layout, if you want to use other layout options, you can change the advanced setting Layout Class and then implement your own adjustments, if necessary. Note that setting the layout class to layout-top-nav alone does not mean horizontal menu, only menu items selected as navbar item in the Menu Editor will be shown. If you want horizontal menu, you can set all menu items as navbar items by right-clicking the column header and choose Select all.
Font Awesome 5 Free included in AdminLTE 3 is used. Update your icon class names in Menu Editor and server/client events, if used. If you still use v4 class names, you must read Upgrading from Version 4 and update your code. The advanced setting Use Font Awesome v4 shims has been removed, you cannot use old version 4 icon names, aliases, and syntax any more.
If you edit a locale file when a project is opened, the changes are saved in the project file instead of being saved to the locale file so that the changes can be carried to the newer versions of ASP.NET Maker.
HTML Element IDs and CSS Class Names
Since v2019, ASP.NET Maker scripts support caching the lookup table (if reasonably small) and it is enabled by default. The caching is done on server side so the page may be loaded slightly slower if you have many lookup fields in the table. You may however disable and fine tune this feature by the two new advanced settings, Use lookup cache and Lookup cache count (see Advanced Settings).
As always there are many new phrases in new major version, make sure you update your non-English language files, otherwise some phrases will be missing in Multi-Language projects.
Importing ASP.NET Report Maker Project
Since v2020, ASP.NET Maker has integrated most features from ASP.NET Report Maker and can import reports from ASP.NET Report Maker project, our objective is to enable users to migrate reports to ASP.NET Maker and work on one single project from now on. That said, since v2020 ASP.NET Maker uses open source MIT licensed Chart.js which does not support all chart types previously supported by ASP.NET Report Maker. Since ASP.NET Core 5 is used, v2021 is not compatibile with any versions of ASP.NET Report Maker, you should import reports from old ASP.NET Report Maker project.
Control File, Template Tags and Extensions
Since v2020, the template engine has been greatly simplified, now it is much easier to make extensions than before. However, this also means the syntax has been changed. If you customize template or make extensions, read Control File, Template Tags, and Extensions first and then update your customizations.
Since v2019, the horizontal Menu extension (for registered users) had retired. However, there is a new option Navbar Item for menu items which allow you to put some (or all) menu items at the top navbar, see Menu Editor. You can show all menu items in the navbar on the top of the page, just right click the header of the Navbar Item column in Menu Editor and click Select All. In such case, the vertical menu will be hidden automatically. For mobile mode, the vertical menu is always used as mobile menu.