For information about our next new version visit Upcoming Version.
YetaWF 4.0.0 Released
September 4, 2018
Installing YetaWF (Git Repository) Upgrading YetaWF
- Removed all use of Razor for Views and Display/EditorTemplates reducing page load time by 15% on average. Razor is now only used for main pages, i.e., pages defined by skins. A skin typically only defines 6 pages.
- Eliminates some overhead in ASP.NET internal round-trips for templates and child actions.
- Eliminates the dual-coding of views and templates for MVC 5 and MVC 6 due to missing async/await support in MVC 5 rendering.
- Avoids any "warm-up" time spent compiling Razor pages (views, templates), meaning a site is immediately available. (This is a huge win!)
- Site restart has been reduced to (typically) around 5-10 seconds maximum for an average site, making a restart much less painful.
- All HTML rendering of former templates (now Components), modules, pages is performed by a YetaWF package so all rendering can be replaced/changed by providing a new rendering package. The default rendering package (YetaWF_ComponentsHTML) which uses jQuery, jQuery-UI, Kendo UI can be replaced with any component framework (yes, it's not exactly trivial, but there is a well-defined interface and requirements).
- Localization has been reworked (and some bug fixes).
- Localization files now use JSON instead of XML.
- Localization files are now grouped by language and package in the new Localization folder (can be used as Git submodules).
- Import/Export and backups of packages and package data now use JSON data. This means that any backups, exported zip files, prior to 4.0.0 cannot be used with 4.0.0. The only supported way to convert to 4.0.0 is by upgrading an existing site. Backup files cannot be used.
- This fixed a long standing problem with transferring pages/modules between sites, which didn't copy role/user authorizations correctly.
- New TimeOfDay template.
- New DayTimeRange template.
- New WeekDays template.
- Authentication now supports forcing a new user password during login.
- X-Frame-Options can be set using a site wide default and for each individual page, to allow/disallow site pages from being used in IFrames (by any site).
- Many bug fixes.
YetaWF 3.0.0 Released
May 21, 2018
- YetaWF for ASP.NET 5 MVC 6 is now built using netcoreapp2.0 instead of net462/net472.
- YetaWF for ASP.NET 4 MVC 5 is now built using net472.
- All async DataProviders (SQL & File) along with all code throughout reworked to support async.
- YetaWF for ASP.NET 4 MVC 5 doesn't support async child actions, async rendering and async action filters, due to MVC 5 limitations.
- YetaWF for ASP.NET 5 MVC 6 fully supports async in all child actions, rendering code and action filters.
- Http handlers now fully async.
- NLog support for logging. Includes a custom target logging to SQL table, viewable, searchable with YetaWF's logging browse module.
- Full support for web garden and web farms.
- Module/page editing is fully supported.
- Certain site wide settings require a full restart of all instances (typically Site Settings affecting caching).
- YetaWF version upgrades, new site creation/deletion and authorization role additions/deletions are only supported in single instance mode (no web farm/garden).
- YetaWF stress testing shows excellent web garden performance with more than 1.5 Million full page requests per day (on one server with marginal hardware and 4 Application Pool worker processes at less than 50% overall CPU usage). Single Page Application page updates (as performed by default by YetaWF) are still higher. A web farm on separate servers would be significantly better, although this hasn't been tested (no need, no money, send servers :-)
However, web garden support is somewhat pointless (except for availability) as YetaWF with 1 worker process will run at nearly the same speed processing the same number of requests as a web garden (compared to 4 worker processes), thanks to YetaWF's extensive use of async throughout. A web farm is the way to scale if this should be necessary.
- New Caching module supporting
- distributed caching using
- SQL Server
- distributed (shared) file system
- Updated Dashboard module supporting
web farm/web garden status display (postponed)
- audit trail of any changes to site data, such as pages, modules, etc.
- display of pending restart requirements based on significant site changes (typically Site Settings affecting distributed caching)
inspection of distributed cache and locks (postponed)
inspection of distributed file system (postponed)
- New Page Panel to create overview pages for easier user selection of pages, with icons and links.
- User megamenu and overview page
- Admin megamenu and overview page
- Configuration settings overview page
- Dashboard overview page
- Page Export/Import through Control Panel to easily copy pages including modules to other sites.
- Bootstrap 4.x - While version upgrades are normally not specifically called out, this upgrade is a major new version that breaks a lot of things. Most of the breaking changes are covered by YetaWF, but some custom CSS and Text module data may need to be updated.
YetaWF 2.8.0 Released
YetaWF 2.8.0 Released in February, 2018
- Built-in support for "Blue-Green Deployment" using IIS, with instant switchover and just inbound rules (meaning, no restrictions for gzip responses).
- New site is deployed next to currently running site, is preloaded and tested, before instant switchover using a proxy in IIS (use of a load balancer for this purpose is also possible).
- Existing sessions are preserved.
- "Single Page App" is not disrupted and will simply result in a page reload when a new Url is visited.
- Ajax requests are served by the new site for a seamless switchover.
- Site visitors will see no disruption.
- Support for plug-in replacable data providers for all datasets. File and SQL data providers are included.
- New DefaultSkin skin with support for all Bootstrap themes offered by Bootswatch, including much cleanup work for skins so there is no assumption as to background/foreground colors. Implementing a brand new skin is now super simple. You can implement a Bootstrap, Kendo UI and jQuery UI theme or just select one of the predefined themes and customize.
- Consolidated site selector and login selector into Control Panel, reducing UI and Css complexity.
- New PartialFormCss property for skins and modules to add a Css class to partial forms. This is typically used with Bootstrap skins to add the "well" Css class to partial forms.
YetaWF 2.7.0 Released
YetaWF 2.7.0 Released on November 25, 2017
- The location of all Css files (<link href= > tags) can now be defined through Site Settings, either at the top or at the bottom of pages. This way we don't have to take sides in the debate which location is better. Placing them at the top of pages minimizes the "Flash of Unformatted Content" effect.
- A separate cookie-less domain can be defined to serve just static files (css, js, png, etc.) to improve site performance. See Admin > Site Settings > CDN tab.
- New TawkTo package implementing live chat with a Tawk.to account (basic accounts are free).
- Simplified CDN setup (only static files are served using a CDN).
- Simplified Bootstrap Carousel editing.
- New grid action dropdown menu (instead of icons). User selectable in User > Settings. New sites default to dropdown menus.
- Support for new (replaced) Microsoft Translator Text API.
- New Panels package: Panel module with support for navigation between multiple modules added to the Panel module using tabs or accordion.
YetaWF 2.6.1 Released
YetaWF 2.6.1 Released on August 15, 2017
- Support for ASP.NET Core 2.0 (Release).
YetaWF 2.6.0 Released
YetaWF 2.6.0 Released on August 13, 2017
- New CurrencyISO4217 template supporting Currency selection and display. ISO 4217 currency codes are typically used by credit card payment processors/gateways.
- New ExtraHead, ExtraBodyTop and ExtraBodyBottom site and page properties to define HTML to be added to <HEAD> and <BODY> tags. This is used to add 3rd party support, such as Google Tag Manager.
- Build pipeline (gulp, ts, tslint, sass, minify,...) replacing the somewhat archaic MSBUILD parts.
- JSX support (without React, as it is not used by YetaWF) to simplify HTML/DOM manipulation.
- Dropped MakeSite (used to install a new site) - While it was really easy to set up a new site, it would have required a major overhaul to support installing all the new parts, like nodejs, bower, etc. Because testing and supporting multiple install paths was quite time-consuming, we decided to use installs from the Git repository only (which also lines up with our internal requirements). We will bring MakeSite back down the road again, for binary installs only (i.e., installs without source code) for non-developers who just want to set up a new YetaWF site.
YetaWF 2.5.2 Released
YetaWF 2.5.2 Released on July 20, 2017
- This release is now also available for ASP.NET Core MVC 2.0 (Preview 2) - Make sure to check all requirements.
- Module actions can now also be displayed in the module title area (Module Settings, Skin).
- Syntax highlighter support for Highlight.Js (highlightjs.org).
- New Admin configuration page to configure syntax highlighter - All syntax highlighting support has been removed from the Core package and is now only in the existing YetaWF.SyntaxHighlighter package.
- Profiling uncovered some authorization and SQL issues - fixing these shaved off 20-100ms per Http request. You can never do enough profiling...
- New serializer/deserializer for smaller data objects, typically used for caching. Saves ~15% run-time for a cached page request.
YetaWF 2.5.1 Released
YetaWF 2.5.1 Released on July 3, 2017
- Every YetaWF site is a Single Page Site: Popups can optionally participate in Unified Page Sets making them much more responsive as only the necessary module contents are rendered. SEO and Analytics for popups are fully supported (just like pages - Unified Page Sets)
- Removed the restricition so direct module links (/!Mod/...) can also participate in Unified Page Sets. These are sometimes used in grids, when no page has been designed for the detail view.
- Skin definitions (skin.txt) now include additional information that was previously added in *.cshtml files.
- New CountyISO3166 template to select a country (dropdown list). ISO 3166 1 support for country names (including 2 and 3 letter ids and 3 digit numbers, as these are often used by payment gateways like Paypal, Payflow, Squareup, etc.).
- The UserProfile module now takes advantage of ISO 3166 1 country names to determine the address format. This removes the prior assumption of the module that the default site country is the US. The default site country is now configurable in Site Settings.
- New UserId (YetaWF_Identity_UserId) template to select a user from the list of site users (as a dropdown list and a grid (Ajax), supporting sites with thousands of users).
YetaWF 2.5.1 is not currently available for ASP.NET Core (only) as we wait for netstandard2.0 support.
YetaWF 2.5.0 Released
YetaWF 2.5.0 Released on June 22, 2017
- Every YetaWF Site is a Single Page Site:
New "Unified Page Sets", which combine multiple separately created pages into one single page. This can be used to create a "Single Page Site". For large sites, page content in designated panes is replaced by new content via Ajax calls to the server to render modules. Only modules within designated panes participate in unified pages, so data transmission is minimized. Or for smaller sites, a unified page set can show all content at the same time using smooth scrolling when another Url is clicked, or can switch between content so visually pages still appear as individual pages, yet are loaded all as one page.
There can be multiple sets of unified pages, within the same site, for logically related content.
This makes it super simple to create a Single Page Site, even with very large number of pages, by creating/testing individual pages which can then be rendered as a single page. Absolutely no coding required.
- New ScrollToTop skin module to display a quick link to return to the top of a page when scrolling. Can be referenced by site, page or module.
- New standard module views, eliminating many existing module views for smaller footprint, better startup time.
- Blog: Auto-generated Google News site map (https://support.google.com/news/publisher/answer/75717?hl=en) based on all published blog entries.
- Error handling "polish": Add page status code when a module throws an internal error or error. Handle direct GET when internal error or error is thrown by redirecting to an error page (usually only needed for file downloads).
- Strings weren't stored as NVarChar in SQL tables. While things worked, that wasn't good (see VarChar or NVarChar Is Never The Question). All data is automatically updated when upgrading to 2.5.0 without any data loss.
- ASP.NET 4: Move all Web.config <appSettings> into new Appsettings.json file in Data folder. This aligns it with ASP.NET Core.
- ASP.NET Core: Move Appsettings.json to Data folder.
- Eliminate MIME type configuration from Web.config/Appsettings.json and move to its own file. Now third-party packages can extend the MIME types with their own keywords (extending ImageUse, FlashUse, PackageUse, etc.).
- Eliminate LanguageSection from web.config/appsettings.json and move to its own file. Also eliminated Add/Edit options for languages (Admin > Languages) as these would be rarely used. Instead, the json file is edited.
- Expand YetaWF Solution and YetaWF Solution2 repositories (GitHub) so YetaWF can be installed by cloning the repository (see https://yetawf.com/Documentation/YetaWF/Topic/g_installing_git) - The MakeSite utility will continue to be the preferred installation tool.
YetaWF 2.0.2 Released
YetaWF 2.0.2 Released on April 28, 2017 (ahead of schedule to address numerous issues as ASP.NET Core MVC dev depot was updated to 2.0 prerelease)
- Search Module: Completely reworked mechanism to extract search terms from pages and dynamic Urls. Additional page summary displayed in search results. Misc. additional enhancements. This fixes an issue where blog entries weren't fully covered with search terms.
- Page load enhancement: Configurable max-age for response headers for static files.
- Site Edit/Display mode is no longer stored per session - It is now much easier to have multiple windows/tabs open and mix edit/display mode.
- UserProfile Module: allows users to enter full contact information.
- Alignment of Logging and Visitor Activity (both now record session id).
- Client-side validation fixed (ASP.NET Core failed to validate client side - Server side validation and validation on MVC5/ASP.NET4 was unaffected).
- Addressed many client-side validation issues. Some minor server-side validation issues addressed. It does not appear that either allowed invalid data server-side, but could result in confusing (or missing) warning indicators for invalid fields or defer to server-side validation (without client-side validation).
- New Basic Templates test page to test all built-in templates.
YetaWF 2.0.1 Released
YetaWF 2.0.1 Released on April 6, 2017
- Stackable log providers (in addition to default log provider).
- Initial site startup feedback page (to provide information as to what is happening as first time site initialization can take a long time).
- Optionally define mandatory two-step authentication setup for defined roles. This could be used to enforce two-step authentication for all users, and/or admins, superusers, etc.
- Log (SQL/File) for Scheduler activity.
- Built-in site map, user configurable via site and page settings, with scheduler task that rebuilds/updates the site map at regular intervals.
- Last-Modified added to http headers for all static page requests.
- Click tracking for static files and external links in Visitor Activity (by adding yTrack CSS class to <a> tag).
YetaWF 2.0.0 Released (Beta)
YetaWF 2.0.0 Released on March 22, 2017
- Support for both ASP.NET Core MVC and ASP.NET 4 MVC 5 with full 99.4% source code compatibility for modules and packages.
- Blog package: New Summary module (for a recent posts summary) and misc. fixes.
- Dashboard package: misc. additions/changes to support ASP.NET Core - Status display now shows ASP.NET version.
- Misc. updated third-party packages.
- Support for Visual Studio 2013 has been dropped. Supported versions are Visual Studio 2015 and Visual Studio 2017. YetaWF for ASP.NET Core is supported with Visual Studio 2017 only.
YetaWF 1.1.1 Released
YetaWF 1.1.1 Released on January 24, 2017
Between 1.0.9 and 1.1.1 we have focused on performance quite a bit and 1.1.1 shows up to 75% faster page load time for regular pages, compared to YetaWF version 1.0.0. Static pages, introduced in this version, take this even further as they approximate the speed of static html pages, while preserving the administrator's ability to simply change a page. Once saved, the static page is recreated.
- Static pages - Create a static site or mix static and dynamic pages throughout the site. Any page can become a static page for super-fast download (as long as its content is in fact static). This is ideal for a home page and other pages that rarely change. If you make a change to a page, it is automatically regenerated. Static pages have access to all available YetaWF features.
- Schedule item to automatically remove old log records (SQL only).
- Expanded email sending support with ability to provide text and html contents as strings.
- Search Module, order results by relevance, simplified SQL query, fix for multiple AND search terms.
- Performance enhancement - reduce impact of main menu (and menus in general) - eliminate need to deserialize - eliminates 25% of code path per page.
- Performance enhancement - keep same SQL connection for duration of a data provider.
- New DisposableTracker module to view objects that are allocated and implement IDisposable - used for development to find leaks.
- Misc. fixes (whitespace filter, favicon W3C violation, canonical urls).
- Misc. third-party package upgrades.
- The class AreaRegistration which must be implemented for each package has changed (AreaRegistration.cs in each package). This must be changed for custom modules only.
YetaWF 1.1.0 Released
YetaWF 1.1.0 Released on November 12, 2016
- Performance tuning related to module rendering.
- Login using Facebook, Google, Microsoft, Twitter accounts (while included in earlier releases, this was not working - Not a good example of step-wise refinement, going from broken to fixed), see User Login / Authentication.
- Misc. minor fixes.
YetaWF 1.0.9 Released
YetaWF 1.0.9 Released on October 24, 2016
- Visual Studio 15 support (AKA Visual Studio 2016 or 2017, mainly affecting Install/Upgrade). Support for Visual Studio 2013 will be dropped once VS 15 is released.
- MakeSite now installs Microsoft Visual C++ 2012 Redistributable Package - used for NSASS.
- MakeSite Utility updated to deploy a YetaWF site to Azure and server deploy documentation updates. While already possible and fairly straightforward, this utility creates a copy of a YetaWF site while honoring symlinks (which VS Deploy doesn't do), excluding SQL DBs, which can be deployed to Azure using FTP.
- New module to display active Http Modules - used to determine which can be removed for performance tuning.
- Module definition caching for improved page load time.
- Web.config performance tuning.
- Misc. minor fixes.
YetaWF 1.0.8 Released
YetaWF 1.0.8 Released on October 10, 2016
- Alert module to display site wide accouncements (we could have used this for Hurricane Matthew).
- Modules supporting https://disqus.com/ for page comments. (Quote: "Disqus offers the best add-on tools for site owners to power discussions, increase engagement, and earn revenue."). While this is part of the Blog package, it can be used independently of the Blog modules, on any page.
- With optional Single Sign On using the YetaWF site's authentication.
- Optional Gravatars with Single Sign On.
- Bootstrap Carousel Module offering interactive carousel configuration including images and captions (no HTML knowledge required).
- Switch to case-insensitive Urls for all pages. This may impact users who have have pages with identical Urls (ignoring case) - these must be renamed.
- Improved Module Selection template.
- Meta data can now use variable substitution.
- New simple sample bootstrap skin - ported BusinessCasual skin (https://startbootstrap.com/template-categories/all/)
- Template actions are now supported for module settings (ModuleDefinition-derived classes).
- MakeSite/UpgradeSite utilities always run from website to insure latest version is used (required as new YetaWF versions may require new features in these utilities).
- Misc. minor fixes.
- Documented all templates and how to create custom templates (https://yetawf.com/Documentation/YetaWF/Topic/g_dev_templates).
YetaWF 1.0.7 Released
YetaWF 1.0.7 Released on September 22, 2016
- Telerik's Kendo UI Core 2016.3.914 was recalled by YetaWF because of unusable DropDownLists, Date and DateTime pickers on Android (see https://github.com/telerik/kendo-ui-core/issues/2197). We released 1.0.7 to work around this issue.
- New Scroller DevTests test page.
- Many minor bug fixes.
YetaWF 1.0.6 Released
YetaWF 1.0.6 Released on September 21, 2016
- Support import/export of source packages and binary packages, making it easy to give/sell packages. Strip license information/verification code from source code.
- Improved whitespace compression (HTML output).
- Use of Kendo DropDownList throughout ("DropDownList" and all related templates), except mobile devices.
- Use of Kendo MaskedTextBox throughout ("Text" and all related templates).
- Use of Kendo NumericTextBox throughout ("IntValue" and all related templates).
- Rewrite of localization (better caching, less memory use).
- Automated translation of localization resources (using Google Translate or Microsoft Translator) to assist translation of packages to other languages - Translations are not perfect but provide a good head start.
- Rename of "GoogleAnalytics" to a more general "Analytics" as it can be used with other providers also (for example Clicky).
- Many fixes for rendering on small devices.
- The initially installed site now has a sample IFrame module. Past versions included the IFrame test page, without the IFrame module.
- Many minor bug fixes.
YetaWF 1.0.5 Released
August 23, 2016
- Authorization model change - Modules can no longer inherit authorization from the containing page (SameAsPage property) as this was too confusing and could lead to security issues (see Authorization).
- Admin>Modules and Admin>Pages show User and Anonymous User visibility.
- Skin supported display of module/page ownership (whether a user or anonymous user can "see" the module/page) with additional User Setting.
- Fix rendering of page/module authorization in property pages.
- Blog Categories module property page didn't show the Categories dropdown correctly.
- Two-step authentication built into Core - requires add-on packages for SMS, Email or Google Authenticator two-step verification.
- Header/Footer attributes were not honored in tabbed property pages.
- Site restart now correctly updates all symlinks (switched to junctions).
- New 3rd party addon versions.
YetaWF 1.0.4 Released
August 14, 2016
- Google Analytics support (site wide and per page)
- Meta tags (site wide and per page)
- Control Panel offers W3C Validation link for current page
- New RecaptchaV2 (Google) replacing Recaptcha
- Icon caching (performance enhancement)
- IFrame module used to include page contents
- SMS API to send SMS/emails with 3rd party providers Twilio, Nexmo (preparing for two step authentication (not included in 1.0.3))
- Modules can now define Bootstrap container/row settings (when used with suitable Bootstrap skins)
- W3C compliance fixes
- MakeSite and UpgradeSite now correctly start Visual Studio if a path name with spaces is used (doh!)
- SiteTemplates are now packaged with the package that installs them
- Module Skin edit has been fixed
- Various 3rd party package upgrades
Rejected in final testing due to an issue with CKEditor
YetaWF 1.0.2 Released
July 28, 2016
- Main menu adds MegaMenu features (display a module as a submenu).
- Fixed menu editing (no more dups).
- Add new site (additional site) fixed so it works with IIS, not just IIS Express.
- Automatic package upgrades (with logging) during site restart (development system only)
- Finalized UpgradeSite utility
- New BccForgottenPassword property in User Login Settings so admin receives email copies for forgotten passwords.
- New 3rd party packages (jquery-ui 1.12 and others)
- Prepared for jquery 3.x, but not active because Kendo UI Core package not ready for jQuery 3.x
.\Website\Sites Folder Security Issue
July 1, 2016 - We discovered a security issue, due to a missing file in the initial release. While it's nearly impossible to guess the name of a critical file name, because all paths use some form of Guid, it's still a security issue. Directory browsing is never available.
1.0.2 will add a web.config file at .\Website\Sites to protect all files within the folder.
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
YetaWF 1.0.1 Released
June 30, 2016 - We released YetaWF 1.0.1
YetaWF Documentation (work in progress)