<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Will Strohl</title>
    <description>The latest articles on Forem by Will Strohl (@hismightiness).</description>
    <link>https://forem.com/hismightiness</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F480482%2F61fb3327-e6db-46bf-8da6-5cff49bb28cc.jpeg</url>
      <title>Forem: Will Strohl</title>
      <link>https://forem.com/hismightiness</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hismightiness"/>
    <language>en</language>
    <item>
      <title>DNN CMS: Client Website Restoration Script</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Mon, 11 Aug 2025 17:10:43 +0000</pubDate>
      <link>https://forem.com/hismightiness/dnn-cms-client-website-restoration-script-g76</link>
      <guid>https://forem.com/hismightiness/dnn-cms-client-website-restoration-script-g76</guid>
      <description>&lt;h1&gt;
  
  
  SQL Script to Prepare a Newly Restored DNN Site for Local Development
&lt;/h1&gt;

&lt;p&gt;When restoring a DNN site locally — whether for debugging, development, or testing — there are a few common pain points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The restored database still has &lt;strong&gt;old portal aliases&lt;/strong&gt;, so the site might not load with your local URL.
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;DefaultPortalAlias&lt;/strong&gt; setting points to the production domain.
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;SMTP settings&lt;/strong&gt; are still pointing to production mail servers (and may accidentally send emails).
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Schedule table&lt;/strong&gt; may still be tied to specific production servers.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This script solves those problems in one go.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Script Does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sets your new local &lt;strong&gt;PortalAlias&lt;/strong&gt; and makes it primary.
&lt;/li&gt;
&lt;li&gt;Updates the &lt;strong&gt;DefaultPortalAlias&lt;/strong&gt; in &lt;code&gt;PortalSettings&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Optionally changes &lt;strong&gt;SMTP&lt;/strong&gt; settings to use &lt;code&gt;localhost&lt;/code&gt; so no emails go out during development.
&lt;/li&gt;
&lt;li&gt;Clears &lt;code&gt;Schedule.Servers&lt;/code&gt; so scheduled jobs run locally.
&lt;/li&gt;
&lt;li&gt;Outputs relevant rows from &lt;code&gt;PortalAlias&lt;/code&gt;, &lt;code&gt;PortalSettings&lt;/code&gt;, &lt;code&gt;HostSettings&lt;/code&gt;, and &lt;code&gt;Schedule&lt;/code&gt; so you can verify changes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to Use
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Back up your database first&lt;/strong&gt; — this script makes direct updates.&lt;/li&gt;
&lt;li&gt;Edit the variables at the top:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;@PortalID&lt;/code&gt; – The ID of the portal/site you’re updating.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@PortalAlias&lt;/code&gt; – Your new local domain (e.g., &lt;code&gt;mysite.local&lt;/code&gt;).
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@IsForLocalDev&lt;/code&gt; – Set to &lt;code&gt;1&lt;/code&gt; for local installs (changes SMTP to localhost), &lt;code&gt;0&lt;/code&gt; for cloning between production servers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Run the script against your restored DNN database.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Script
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
sql
/*

    Prepares a newly restored local client site for running locally.

*/

DECLARE @PortalID INT               = 0;        -- the PortalID for the above domain name (IMPORTANT for DNN instances that have multiple sites hosted)
DECLARE @PortalAlias NVARCHAR(255)  = N'';      -- new domain name 
DECLARE @IsForLocalDev BIT          = 1;        -- 1 for installing locally, 0 for production-to-production, cloning, etc. 

BEGIN TRAN
    UPDATE [dbo].[PortalAlias] SET [IsPrimary] = 0 WHERE [PortalID] = @PortalID;

    IF NOT EXISTS(SELECT 1 FROM [dbo].[PortalAlias] WHERE [PortalID] = @PortalID AND [HttpAlias] = @PortalAlias)
    BEGIN
        INSERT INTO [dbo].[PortalAlias] ([PortalID],[HTTPAlias],[CreatedByUserID],[CreatedOnDate],[LastModifiedByUserID],[LastModifiedOnDate],[BrowserType],[IsPrimary])
            VALUES (@PortalID,@PortalAlias,-1,GETDATE(),-1,GETDATE(),N'Normal',1);
    END
    ELSE
    BEGIN
        UPDATE [dbo].[PortalAlias] SET [IsPrimary] = 1 WHERE [PortalID] = @PortalID AND [HTTPAlias] = @PortalAlias;
    END

    UPDATE [dbo].[PortalSettings] 
        SET [SettingValue] = @PortalAlias, 
            [LastModifiedByUserID] = -1, 
            [LastModifiedOnDate] = GETDATE() 
        WHERE [PortalID] = @PortalID AND [SettingName] = N'DefaultPortalAlias';

    IF NOT EXISTS (SELECT 1 FROM [dbo].[HostSettings] WHERE [SettingValue] = N'localhost') AND @IsForLocalDev = 1 
    BEGIN
        UPDATE [dbo].[HostSettings] SET [SettingValue] = 0,             [LastModifiedByUserID] = -1, [LastModifiedOnDate] = GETDATE() WHERE [SettingName] = N'SMTPAuthentication';
        UPDATE [dbo].[HostSettings] SET [SettingValue] = N'localhost',  [LastModifiedByUserID] = -1, [LastModifiedOnDate] = GETDATE() WHERE [SettingName] = N'SMTPServer';
        UPDATE [dbo].[HostSettings] SET [SettingValue] = N'N',          [LastModifiedByUserID] = -1, [LastModifiedOnDate] = GETDATE() WHERE [SettingName] = N'SMTPEnableSSL';
    END

    UPDATE [dbo].[Schedule] SET [Servers] = NULL WHERE NOT [Servers] IS NULL; 
COMMIT TRAN

SELECT pa.* FROM [dbo].[PortalAlias] pa WHERE pa.[PortalID] = @PortalID ORDER BY pa.[CreatedOnDate];

SELECT ps.* FROM [dbo].[PortalSettings] ps WHERE [PortalID] = @PortalID AND [SettingName] = N'DefaultPortalAlias';

SELECT hs.* FROM [dbo].[HostSettings] hs WHERE hs.[SettingName] LIKE N'%SMTP%' ORDER BY hs.[SettingName];

SELECT s.* FROM [dbo].[Schedule] s WHERE NOT s.[Servers] IS NULL; 

/*
    END OF SCRIPT
*/   
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>dnncms</category>
      <category>dotnetnuke</category>
      <category>aspnet</category>
      <category>sqlserver</category>
    </item>
    <item>
      <title>Upendo DNN User Manager v1.1.1 Tips the Scales for Larger Sites!</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Wed, 30 Aug 2023 17:51:44 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendo-dnn-user-manager-v111-tips-the-scales-for-larger-sites-2m2d</link>
      <guid>https://forem.com/hismightiness/upendo-dnn-user-manager-v111-tips-the-scales-for-larger-sites-2m2d</guid>
      <description>&lt;p&gt;Immediately upon releasing this module, it seems that some of you have already been pushing it's limits. We didn't expect that quite so quickly, so we needed to rush this release out the door. This release helps you support websites with larger numbers of end-users. This makes sense, too. Why would you need such a module, if you didn't have so many user accounts to manage. Well, we listened!  &lt;/p&gt;

&lt;h2&gt;
  
  
  Upendo DNN User Management Module 👥
&lt;/h2&gt;

&lt;p&gt;This module allows you to delegate the user management responsibilities to other people on the website, and outside of the Administrators role. That's right, without a module like this, someone must be allowed to edit nearly everything on the site, just to manage users for you.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Release Notes: 01.01.01 🔮 
&lt;/h2&gt;

&lt;p&gt;And here... we... go! 🤡 &lt;/p&gt;

&lt;h3&gt;
  
  
  Updated to Scale for Tens of Thousands of User Accounts
&lt;/h3&gt;

&lt;p&gt;We we released this, we didn't think you would be so excited to throw it into larger production sites right away, so this update was something we were putting off. Well, apparently, we underestimated your confidence in us. So, we updated this right away. &lt;/p&gt;

&lt;h3&gt;
  
  
  Removed the Last Pesky Upendo Logo 🖼️
&lt;/h3&gt;

&lt;p&gt;I swear, I didn't expect to see the Upendo Ventures logo all over the front-end UI of this module. One of the developers on our team did that, and it was kind of flattering. I removed most of them, but kept missing one. As of today, the last logo is gone.  &lt;/p&gt;

&lt;p&gt;If you were waiting for that update, this release is for you! 😎 &lt;/p&gt;

&lt;h2&gt;
  
  
  Video Summary 📸
&lt;/h2&gt;

&lt;p&gt;Unfortunately, these updates don't really merit a new video this time. However, if you wish to see a specific DNN video that we can make, &lt;a href="https://upendoventures.com/Contact-Us"&gt;don't hesitate to ask&lt;/a&gt;!  &lt;/p&gt;

&lt;h2&gt;
  
  
  Downloads &amp;amp; Links 💾
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager#readme"&gt;Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager/wiki"&gt;Project Documentation&lt;/a&gt; (&lt;em&gt;nothing there yet&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager/releases/latest"&gt;Project Downloads&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In Closing 🙏🏽
&lt;/h2&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the very first Day of DotNetNuke conference to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? &lt;strong&gt;Click the link below&lt;/strong&gt; and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this &lt;strong&gt;DNN Adventure&lt;/strong&gt; with Will – &lt;strong&gt;Sponsor Now&lt;/strong&gt; &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This blog article is &lt;a href="https://dnncommunity.org/blogs/Post/16710/Upendo-DNN-User-Manager-v1-1-1-Tips-the-Scales-for-Larger-Sites"&gt;cross-posted from the Official DNN website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>usermanagement</category>
      <category>administration</category>
      <category>security</category>
    </item>
    <item>
      <title>UpendoDNN Generator 1.11 Lays the Foundation for a Major Upcoming Feature</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Wed, 30 Aug 2023 16:49:03 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendodnn-generator-111-lays-the-foundation-for-a-major-upcoming-feature-3pj7</link>
      <guid>https://forem.com/hismightiness/upendodnn-generator-111-lays-the-foundation-for-a-major-upcoming-feature-3pj7</guid>
      <description>&lt;p&gt;Today's release of the UpendoDNN Generator brings with it a lot of optimization and technical debt cleanup. I spent a lot of time looking through the recent updates and wanted to clean up a handful of things. Some of them were minor things, but many were a bit more "involved" than that.  &lt;/p&gt;

&lt;h2&gt;
  
  
  What is the UpendoDNN Generator?
&lt;/h2&gt;

&lt;p&gt;Simply put, the UpendoDNN Generator is a command-line tool that empowers anyone wishing to build a DNN extension. It gets a new developer started with their DNN development in minutes. Literally, minutes!  &lt;/p&gt;

&lt;p&gt;You don't have to go through any weird, convoluted learning curves, or jump through odd hoops. It utilizes many tools that developers may already have installed. Further, it leverages the techniques that this kind of developer may find very comfortable in their daily workflows.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Install &amp;gt; Run the Command &amp;gt; Open Visual Studio and Code&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  UpendoDNN Generator 1.11 Updates 🔮
&lt;/h2&gt;

&lt;p&gt;Many of these updates will not seem immediately relevant or useful for you, but they are - at least in the longer-term. Plus, this release lays the foundation for a ground-breaking feature we're hoping to release very soon. (More on that in the next release or two...)  &lt;/p&gt;

&lt;p&gt;First, these updates help to stabilize and streamline the ability for ourselves and others to help contribute to the project. We wanted to make things easier for all of us. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The more you want someone to do something, the easier you want to make it for them to do."&lt;br&gt;&lt;br&gt;
- &lt;em&gt;Someone Smarter than I am&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Standardized Token Variables 🪧
&lt;/h3&gt;

&lt;p&gt;I'm not sure what we should be calling them, but the variables that are used to populate the various project template we refer to as token variables, or tokens in shorthand. I realize that they're not "tokens" in the traditional sense, but they're used the same way in this use case. So, token variable sounds good. It makes sense.  &lt;/p&gt;

&lt;p&gt;Anyhow, we had no consistency across the various DNN extension projects. I took the time yesterday to review all of the token variables we were using. Cataloged them. Figured out the overlaps, and then went in and changed them all.  &lt;/p&gt;

&lt;p&gt;If that sounds scary, it REALLY is! Whenever one of the projects would test successfully on first run, it blew my mind. That's how high risk such a change is in a project like this one. 🤯 &lt;/p&gt;

&lt;p&gt;The result is now anyone that's looking at and/or contributing to this project will have a much easier time working with it. (But it also opens the door for an upcoming feature.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Centralized the Versioning of Dependencies 🥞
&lt;/h3&gt;

&lt;p&gt;Before today, if we wanted to change the version of DNN or Hotcakes that the various DNN extensions were going to build against, it was a major chore. We'd have to visit dozens of files to make updates, and then testing would undoubtedly reveal that we missed at least a few instances, if we were lucky.  &lt;/p&gt;

&lt;p&gt;For the same reasons as above, I've fixed this issue. Now, new releases that raise the DNN version will be super simple. Not only for us, mind you - but also for you! In a future release, you'll be able to change this value in your own environments to make it super-simple for you too!  &lt;/p&gt;

&lt;h3&gt;
  
  
  Re-Organized Menu Items 🗃️
&lt;/h3&gt;

&lt;p&gt;We iterated on this a lot recently, and it became immediately clear that we needed to organize the various options that were being displayed to you after running the generator. I've organized the various menus for modules and other extensions to make them easier to find. I expect more updates to come this way in the near future as well.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Other Bug Fixes &amp;amp; Maintenance Updates 🛠️
&lt;/h3&gt;

&lt;p&gt;I spent a lot of time painstakingly reviewing many of the areas that are common for developers to overlook when contributing to and/or using these project templates. In doing so, I also went ahead and fixed the following: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Made the target MSBuild version consistent across DNN extension projects. &lt;/li&gt;
&lt;li&gt;  Made the metadata section of DNN manifests far more consistent (more work needs to be done).  &lt;/li&gt;
&lt;li&gt;  Removed the persona bar token variables from all of the other projects. &lt;/li&gt;
&lt;li&gt;  Updated the &lt;code&gt;.gitignore&lt;/code&gt; to not attempt to commit artifacts coming from Visual Studio Code, Visual Studio, and &lt;a href="https://github.com/UpendoVentures/generator-upendodnn/wiki/How-to-Debug-Upendo-DNN-Generator"&gt;debugging upendodnn generator&lt;/a&gt;.  &lt;/li&gt;
&lt;li&gt;  Removed some files that never should have been committed.  &lt;/li&gt;
&lt;li&gt;  Improved the README further for easier reading.  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's not mention the documentation wiki that keeps getting updated. 😎🤙🏽&lt;/p&gt;

&lt;h3&gt;
  
  
  Video Summary 📸
&lt;/h3&gt;

&lt;p&gt;I thought about creating a video summary like I've been doing, but these updates are not very sexy on the big screen. Even though they are laying an incredibly strong foundation for the upcoming feature I've been teasing...  &lt;/p&gt;

&lt;p&gt;Next time!  &lt;/p&gt;

&lt;h2&gt;
  
  
  Download &amp;amp; View the Project 🤙🏽 
&lt;/h2&gt;

&lt;p&gt;If you want to help build or suggest features for the UpendoDNN Generator extension, please feel free to visit the project using the links below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/generator-upendodnn#readme"&gt;GitHub Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.npmjs.com/package/generator-upendodnn"&gt;npm Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In Closing 🙏🏽
&lt;/h2&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the very first Day of DotNetNuke conference to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? &lt;strong&gt;Click the link below&lt;/strong&gt; and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this &lt;strong&gt;DNN Adventure&lt;/strong&gt; with Will – &lt;strong&gt;Sponsor Now&lt;/strong&gt; &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This blog article is &lt;a href="https://dnncommunity.org/blogs/Post/16709/UpendoDNN-Generator-1-11-Lays-the-Foundation-for-a-Major-Upcoming-Feature"&gt;cross-posted from the Official DNN website blog&lt;/a&gt;.  &lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>devtool</category>
      <category>scaffold</category>
      <category>yeoman</category>
    </item>
    <item>
      <title>Upendo DNN User Manager 1.1 Release Summary</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Fri, 25 Aug 2023 22:54:56 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendo-dnn-user-manager-11-release-summary-2k2g</link>
      <guid>https://forem.com/hismightiness/upendo-dnn-user-manager-11-release-summary-2k2g</guid>
      <description>&lt;p&gt;It hasn't been that long since we first announced the release of the brand new user management module for DNN, the Upendo DNN User Manager. We're already releasing a third release. This one mainly has some enhancements to the user creation and editing views.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Upendo DNN User Management Module
&lt;/h2&gt;

&lt;p&gt;This module allows you to delegate the user management responsibilities to other people on the website, and outside of the Administrators role. That's right, without a module like this, someone must be allowed to edit nearly everything on the site, just to manage users for you.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Release Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Removed Password Fields When Editing a User
&lt;/h3&gt;

&lt;p&gt;First, it never made sense to me to allow someone to change the password of another person and still KNOW that password. If it's not immediately obvious why that irks me, it's really because of how insecure such an activity would be.  &lt;/p&gt;

&lt;p&gt;I don't want anyone knowing my password. Do you want them to know YOURS?  &lt;/p&gt;

&lt;p&gt;We replaced the password fields with a single button that allows you to send a password reset link to the user account. Now, you'll need to know their email password first, before you can know their DNN password! 😎 &lt;/p&gt;

&lt;h3&gt;
  
  
  Improved Usability of Password Validation
&lt;/h3&gt;

&lt;p&gt;What? I know I just said we removed the password fields...  &lt;/p&gt;

&lt;p&gt;When you're creating a new user account manually, there are many more use cases to consider. So, it actually makes sense to keep the passwords here. However, the initial releases still had some quirky usability issues with validating the passwords. We've fixed that.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Video Summary 
&lt;/h2&gt;

&lt;p&gt;Just in case you want to hear me tell you what you just read, I thought of that for you! 🤣 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=zQZS1xXrZks"&gt;Video Demo: Upendo DNN User Manager 1.1&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  Downloads &amp;amp; Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager#readme"&gt;Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager/wiki"&gt;Project Documentation&lt;/a&gt; (&lt;em&gt;nothing there yet&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager/releases/latest"&gt;Project Downloads&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In Closing 🙏🏽
&lt;/h2&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the very first Day of DotNetNuke conference to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? &lt;strong&gt;Click the link below&lt;/strong&gt; and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this &lt;strong&gt;DNN Adventure&lt;/strong&gt; with Will – &lt;strong&gt;Sponsor Now&lt;/strong&gt; &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>usermanagement</category>
      <category>administration</category>
      <category>plugins</category>
    </item>
    <item>
      <title>UpendoDNN Generator 1.10 Saves You a TON of Time Versioning</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Mon, 21 Aug 2023 23:07:52 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendodnn-generator-110-saves-you-a-ton-of-time-versioning-14gf</link>
      <guid>https://forem.com/hismightiness/upendodnn-generator-110-saves-you-a-ton-of-time-versioning-14gf</guid>
      <description>&lt;p&gt;This release of the UpendoDNN Generator includes a very specific feature that I wanted to include in the previous release, but timing didn't work out for us. However, today is a different day. As of version 1.10 of the generator, you now only have to make a single version number update, and all other places will be updated for you! &lt;/p&gt;

&lt;h2&gt;
  
  
  What is the UpendoDNN Generator?
&lt;/h2&gt;

&lt;p&gt;Simply put, the UpendoDNN Generator is a command-line tool that empowers anyone wishing to build a DNN extension. It gets a new developer started with their DNN development in minutes. Literally, minutes!  &lt;/p&gt;

&lt;p&gt;You don't have to go through any weird, convoluted learning curves, or jump through odd hoops. It utilizes many tools that developers may already have installed. Further, it leverages the techniques that this kind of developer may find very comfortable in their daily workflows.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Install &amp;gt; Run the Command &amp;gt; Open Visual Studio and Code&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  UpendoDNN Generator 1.10 Updates 🔮
&lt;/h2&gt;

&lt;p&gt;There are two specific enhancements that I want to let you know about. &lt;/p&gt;

&lt;h3&gt;
  
  
  Automatic Version Number Update 🔢
&lt;/h3&gt;

&lt;p&gt;Normally, when you're ready to push out the next version of the DNN extension, you have several version number updates to make - at least if you want to be thorough. If you're not thorough, all kinds of weird things could crop up over time.  &lt;/p&gt;

&lt;p&gt;Those version number updates include: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Primary Manifest File:  

&lt;ul&gt;
&lt;li&gt;  Package version number  &lt;/li&gt;
&lt;li&gt;  Uninstall SQL script (if you have one)&lt;/li&gt;
&lt;li&gt;  Upgrade version list (if you want to ensure you trigger IPortable)&lt;/li&gt;
&lt;li&gt;  DLL version number to match the module version number &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;  AssemblyInfo.cs: The DLL version number&lt;/li&gt;
&lt;li&gt;  Symbols Manifest File:  

&lt;ul&gt;
&lt;li&gt;  Package version number &lt;/li&gt;
&lt;li&gt;  Dependency version number&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this version, all you need to do is update the version number in the primary manifest file where the package version number is. Do this just before you build in release mode, and you'll have all of this updated for you. 🤯 &lt;/p&gt;

&lt;p&gt;Oh man... If you use this tool already, this is going to save you a TON of time! &lt;/p&gt;

&lt;h3&gt;
  
  
  Added Hotcakes Commerce Viewsets 🛒 
&lt;/h3&gt;

&lt;p&gt;The viewset project for &lt;a href="https://mmmcommerce.com"&gt;Hotcakes Commerce&lt;/a&gt; was the only remaining template that we hadn't yet added to support all of the &lt;a href="https://mmmcommerce.com"&gt;Hotcakes Commerce&lt;/a&gt; extension points. This version makes good on that promise.  &lt;/p&gt;

&lt;p&gt;Now, you can use a single tool and solution to build your DNN+HCC websites... All the while, building, packaging, and installing everything all the same way! &lt;/p&gt;

&lt;p&gt;What? Did you just think, "Huh??"  &lt;/p&gt;

&lt;p&gt;Oh yeah, we repurposed the DNN installation engine to have a way to build, package, install, and version all of your &lt;a href="https://mmmcommerce.com"&gt;Hotcakes Commerce&lt;/a&gt; extensions. You're welcome! 😉 &lt;/p&gt;

&lt;p&gt;Go ahead and give it a try. It's pretty cool!  &lt;/p&gt;

&lt;h3&gt;
  
  
  See it in Action! 📸 
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://youtu.be/GGyDvJkSEzk"&gt;YouTube: Demonstration Video&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Download &amp;amp; View the Project 🤙🏽 
&lt;/h2&gt;

&lt;p&gt;If you want to help build or suggest features for the UpendoDNN Generator extension, please feel free to visit the project using the links below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/generator-upendodnn#readme"&gt;GitHub Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.npmjs.com/package/generator-upendodnn"&gt;npm Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In Closing 🙏🏽
&lt;/h2&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the very first Day of DotNetNuke conference to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? &lt;strong&gt;Click the link below&lt;/strong&gt; and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this &lt;strong&gt;DNN Adventure&lt;/strong&gt; with Will – &lt;strong&gt;Sponsor Now&lt;/strong&gt; &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This blog article is &lt;a href="https://dnncommunity.org/blogs/Post/16641/UpendoDNN-Generator-1-10-Saves-You-a-TON-of-Time-Versioning"&gt;cross-posted from the Official DNN website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>cms</category>
      <category>aspnet</category>
      <category>apps</category>
    </item>
    <item>
      <title>User &amp; Role Management Module for DNN by Upendo Ventures</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Wed, 16 Aug 2023 17:44:52 +0000</pubDate>
      <link>https://forem.com/hismightiness/user-role-management-module-for-dnn-by-upendo-ventures-abd</link>
      <guid>https://forem.com/hismightiness/user-role-management-module-for-dnn-by-upendo-ventures-abd</guid>
      <description>&lt;p&gt;I can't express to you how excited I am to announce this module being released - not over a blog. Our latest module to be released is a user management module for DNN that doesn't have Telerik built in. A client needs to upgrade, and this is the last remaining remnant of Telerik in their. No other modules could meet their needs, so here we are!  &lt;/p&gt;

&lt;h2&gt;
  
  
  Upendo DNN User Management Module
&lt;/h2&gt;

&lt;p&gt;This module allows you to delegate the user management responsibilities to other people on the website, and outside of the Administrators role. That's right, without a module like this, someone must be allowed to edit nearly everything on the site, just to manage users for you.  &lt;/p&gt;

&lt;p&gt;Imagine a training program with tons of users, or an extranet where HR is doing the user management. This could be a nightmare for some website owners.  &lt;/p&gt;

&lt;p&gt;Depending on the level of the user that's currently logged in and allowed to use the module, they can perform any of the following actions:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Create, manage, and delete user accounts &lt;/li&gt;
&lt;li&gt;  Create, manage, and delete roles  &lt;/li&gt;
&lt;li&gt;  Promote users to Administrator (&lt;em&gt;admins and above only&lt;/em&gt;)  &lt;/li&gt;
&lt;li&gt;  Promote users to Superuser (&lt;em&gt;superusers only&lt;/em&gt;)  &lt;/li&gt;
&lt;li&gt;  Search, filter, and paging for larger user bases  &lt;/li&gt;
&lt;li&gt;  Permanently delete soft-deleted user accounts &lt;/li&gt;
&lt;li&gt;  Delete all unauthorized user accounts &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm sure I'm missing a few more features, but this is an initial release. We already have a bunch of Issues in GitHub for various updates we have in mind. Feel free to add your own as well.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Video Summary
&lt;/h3&gt;

&lt;p&gt;Of course I have a video ready for you! Let's see this module in action...&lt;/p&gt;

&lt;p&gt;Demo Video:  &lt;a href="https://www.youtube.com/watch?v=6XPcKKgOQ0g"&gt;view on YouTube (6:06)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Downloads &amp;amp; Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager#readme"&gt;Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager/wiki"&gt;Project Documentation&lt;/a&gt; (&lt;em&gt;nothing there yet&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-UserManager/releases/latest"&gt;Project Downloads&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In Closing 🙏🏽 
&lt;/h2&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the Day of DotNetNuke to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? Click that button and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this DNN Adventure with Will – Sponsor Now &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>security</category>
      <category>administration</category>
      <category>usersroles</category>
    </item>
    <item>
      <title>Upendo Prompt Helps You Demo &amp; Test in Your DNN Websites!</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Tue, 15 Aug 2023 20:55:22 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendo-prompt-helps-you-demo-test-in-your-dnn-websites-2hpo</link>
      <guid>https://forem.com/hismightiness/upendo-prompt-helps-you-demo-test-in-your-dnn-websites-2hpo</guid>
      <description>&lt;p&gt;For a long time now, I've been meaning to put this update into Upendo Prompt. I need to create users all of the time for various types of demos and other kinds of show-and-tell moments. Isn't it a bit of a time waste and embarrassing/annoying to have to come up with user accounts on the fly? Worse, if people are watching it live too. This update will save you a TON of time!  &lt;/p&gt;

&lt;h3&gt;
  
  
  What is Upendo DNN Prompt? 💻
&lt;/h3&gt;

&lt;p&gt;If you didn't already know, DNN has a built-in command line tool available to administrators and superuser, called &lt;a href="https://docs.dnncommunity.org/content/features/tools-utilities/prompt/index.html#what-is-prompt"&gt;Prompt&lt;/a&gt;. This feature makes it super-easy to do many common administrative tasks, such as page and user management - all using a few commands. It's quite powerful. Not only for the reasons I just introduced, but it's yet another extension point for DNN.  &lt;/p&gt;

&lt;p&gt;Anyone can build and install commands on their DNN website!  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Our goal for some of the commands is to mature them to the point of contributing them back to the core of DNN. To do that, we'll need your feedback, of course. However, we're also waiting until we get closer to DNN 11. The APIs for building prompts are a bit challenging for a first-timer, still.&lt;/em&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Upendo Prompt 1.6 Updates 🔮
&lt;/h2&gt;

&lt;p&gt;In this release, we didn't focus on any bugs, but rather, focused on a single feature that brought with it two shiny new commands for your enjoyment. They are &lt;code&gt;set-demousers&lt;/code&gt; and &lt;code&gt;delete-demousers&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;When using the &lt;code&gt;set-demousers&lt;/code&gt; command, it will attempt to create a handful of user accounts for you to use on the website. Just type the command and press . You'll see the results straight away. If you've already run this command or a user account of the same name already exists, it will let you know and perform the necessary logic to skip it.  &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;delete-demousers&lt;/code&gt; command is there simply to clean up the demo work you've just done. When run, this command will soft- and permanently-delete the user accounts matching those matching the usernames created by the previous prompt command.  &lt;/p&gt;

&lt;p&gt;Pretty cool, huh? Let's see it in action!  &lt;/p&gt;

&lt;h3&gt;
  
  
  Video Demonstration 📸
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=CRlNoNUrG_U"&gt;Watch on YouTube (5:41)&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  Download &amp;amp; Project Links 🤓
&lt;/h2&gt;

&lt;p&gt;Are you ready to use these cool new prompt commands? All you need to do is follow your desired link(s) below.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-Prompt#readme"&gt;Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-Prompt/wiki"&gt;Project Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-Prompt/releases/latest"&gt;Download (install &amp;amp; upgrade)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In Closing 🙏🏽 
&lt;/h2&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the Day of DotNetNuke to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? Click that button and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this DNN Adventure with Will – Sponsor Now &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>cms</category>
      <category>commandline</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Upendo DNN Simple Authentication Provider Released</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Mon, 14 Aug 2023 21:51:07 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendo-dnn-simple-authentication-provider-released-1iha</link>
      <guid>https://forem.com/hismightiness/upendo-dnn-simple-authentication-provider-released-1iha</guid>
      <description>&lt;p&gt;Whoa... If you're keeping up with &lt;a href="https://dnncommunity.org/blogs"&gt;the official DNN blog&lt;/a&gt;, this marks 3 different project releases for us in less than a week! This time, we're announcing a brand new extension that allows you to enable the ability for your website end-users to authenticate themselves using a far more modern means, than the aging username &amp;amp; password method.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Upendo Simple DNN Authentication Provider
&lt;/h2&gt;

&lt;p&gt;We've been working on this one for a bit. When you install this extension and enable it as your authentication provider, it follows the following steps for your end-users:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; They arrive on the login page and see this new login form. &lt;/li&gt;
&lt;li&gt; They enter their username (email or username, based on the site configuration, no matter), then press the "Send Code" link.  &lt;/li&gt;
&lt;li&gt; A formatted email is sent to the email address associated with the user account.  &lt;/li&gt;
&lt;li&gt; There is a randomized code in that email that needs to be copied and then pasted into the code field in the login form.  &lt;/li&gt;
&lt;li&gt; Once properly verified, they're logged in.  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it! The security of the username and password storage has been at least partially alleviated in this case.  &lt;/p&gt;

&lt;p&gt;That's right... Now, you can lean on the likes of software behemoths like Microsoft, Google, and others for their security standards in allowing these folks to create and maintain their user credentials.  &lt;/p&gt;

&lt;p&gt;It's quick and easy for your end users to access the website now. And since you've removed the password requirement, it's technically a multi-factor authentication method by default. 🤯 &lt;/p&gt;

&lt;h3&gt;
  
  
  A Few Notes on Security 🔏 
&lt;/h3&gt;

&lt;p&gt;When an authentication code is generated, it's stored in a local table, but the value of the code (and other details) are encrypted (AES) at rest. If someone has the ability to read the database, they can't figure out the codes.  &lt;/p&gt;

&lt;p&gt;If someone tries to authenticate using the wrong code a few times, they're locked out of the login for a full hour.  &lt;/p&gt;

&lt;p&gt;Oh, and if the username or code is incorrect, there aren't any obvious details to help bad actors to guess if a username is correct.  &lt;/p&gt;

&lt;h3&gt;
  
  
  What's Next? 
&lt;/h3&gt;

&lt;p&gt;This is an initial release, with minimal features. We definitely want to do things like add the ability for you to fine-tune the randomized code that's sent to your end-users. This way, you can customize this through configuration.  &lt;/p&gt;

&lt;p&gt;We are also maybe thinking of adding configuration options for the number of tries before end-users are locked out, and for how long.  &lt;/p&gt;

&lt;p&gt;We definitely want to better expose the email template for editing right in the settings view itself.  &lt;/p&gt;

&lt;p&gt;Ooooo! What about a customer service dashboard to help you manage the user states as they've logged in? I don't know. &lt;/p&gt;

&lt;p&gt;Any future updates are up to all of you... Create some issues in GitHub to let us know what you want to see next!  &lt;/p&gt;

&lt;h3&gt;
  
  
  Video Summary 📷 
&lt;/h3&gt;

&lt;p&gt;What's that?  You want to watch it in action?  Well, you're in luck!  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEMO VIDEO:&lt;/strong&gt;  &lt;a href="https://www.youtube.com/watch?v=qkq8JsRQAFA"&gt;https://www.youtube.com/watch?v=qkq8JsRQAFA&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Download &amp;amp; Links
&lt;/h3&gt;

&lt;p&gt;Are you ready to get started already? Awesome! Here are a few links to help you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-DNN-Simple-Auth-Provider#readme"&gt;Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-DNN-Simple-Auth-Provider/wiki"&gt;Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-DNN-Simple-Auth-Provider/releases/latest"&gt;Download&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  In Closing 🙏🏽 
&lt;/h2&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the Day of DotNetNuke to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? Click that button and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this DNN Adventure with Will – Sponsor Now &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This blog article is &lt;a href="https://dnncommunity.org/blogs/Post/16563/Upendo-DNN-Simple-Authentication-Provider-Released"&gt;cross-posted from the official DNN website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>authentication</category>
      <category>mfa</category>
      <category>security</category>
    </item>
    <item>
      <title>UpendoDNN Generator 1.9.2 for DNN Extension Development</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Sun, 13 Aug 2023 02:48:35 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendodnn-generator-192-for-dnn-extension-development-4l9</link>
      <guid>https://forem.com/hismightiness/upendodnn-generator-192-for-dnn-extension-development-4l9</guid>
      <description>&lt;p&gt;Wow... I can't believe that it will be 5 years ago this upcoming February when I originally released this project. This is the ONLY extension development tool that helps anyone build nearly anything for DNN. First, I can't believe it's been such a long time. But, looking back, it's been a really fun journey.  &lt;/p&gt;

&lt;h3&gt;
  
  
  What is the UpendoDNN Generator?
&lt;/h3&gt;

&lt;p&gt;Simply put, the UpendoDNN Generator is a command-line tool that empowers anyone wishing to build a DNN extension. It gets a new developer started with their DNN development in minutes. Literally, minutes!  &lt;/p&gt;

&lt;p&gt;You don't have to go through any weird, convoluted learning curves, or jump through odd hoops. It utilizes many tools that developers may already have installed. Further, it leverages the techniques that this kind of developer may find very comfortable in their daily workflows.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Install &amp;gt; Run the Command &amp;gt; Open Visual Studio and Code&lt;/em&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Wait, what happened to version 1.9.0???&lt;/em&gt; 
&lt;/h3&gt;

&lt;p&gt;Nice catch! I can't believe how observant you are! 🤓 &lt;/p&gt;

&lt;p&gt;It was only released a few days ago, and we haven't had a chance to announce it properly. So it seems in better taste to summarize both releases into a single announcement.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Upendo DNN Generator 1.9.0 &amp;amp; 1.9.1 &amp;amp; 1.9.2 Updates
&lt;/h2&gt;

&lt;p&gt;This release is one that I've been trying to get us to for quite some time now. Many things get in the way, including paying projects. 😬 &lt;/p&gt;

&lt;p&gt;But, at last! Here we are at a milestone release.  &lt;/p&gt;

&lt;p&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/p&gt;

&lt;h3&gt;
  
  
  Enhancements ✨ 
&lt;/h3&gt;

&lt;p&gt;The enhancements we're announcing right now will help you and your team build DNN extensions even faster than before. They're geared directly to the developer that's going to build more than one module. It's directly aimed at the teams that need to work together. It's acting nicely for your DevOps admins so they don't have to jump through source control hoops.  &lt;/p&gt;

&lt;p&gt;We're almost to my original goal of making as many DNN stakeholders happy as I can, all at the same time...  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video Summary of this Blog Article&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=8lFv3dpgE-c"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sJwvYAaR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4s2s9fsx6wbt5ye5cuh3.png" alt="Video Summary of this Blog Article" width="800" height="421"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Solution File AutoMAGICally Gets Updated! 🥳🪄 
&lt;/h3&gt;

&lt;p&gt;Heck yeah! Let's get a happy dance in on that one... Gone are the days of having to click around a bit whenever you want to add another project to your solution. With this release, you'll just go back to Visual Studio, and your new DNN project will be there waiting for you! &lt;/p&gt;

&lt;h3&gt;
  
  
  Added Support for Visual Studio 2022 🤦🏽‍♂️ 
&lt;/h3&gt;

&lt;p&gt;Well, this update was a bit embarrassing. I had no idea we didn't have support for Visual Studio 2022, because I've been working on computers that have multiple instances of Visual Studio running. So, I never ran into the dreaded "YIKES!" error message.  &lt;/p&gt;

&lt;p&gt;This release ensures that if you get a new computer today and try to begin development after only having installed Visual Studio 2022 (and their build tools), you'll be fine. Nothing will be in your way now. Whew!  &lt;/p&gt;

&lt;h3&gt;
  
  
  Updated to DNN 09.08.00 ⚙️ 
&lt;/h3&gt;

&lt;p&gt;Honestly, I really want to update this to 09.12.00 right now, because it would make the project look better. However, supporting developers on older versions of DNN is kind of necessary. A large chunk of the DNN ecosystem isn't able to upgrade as quickly as the rest.  &lt;/p&gt;

&lt;p&gt;I'm guessing this development platform will continue to lag several versions behind for these reasons. At least we're no longer on 09.04.00! 😁&lt;/p&gt;

&lt;h3&gt;
  
  
  Updated to Hotcakes Commerce 3.6 🛒 
&lt;/h3&gt;

&lt;p&gt;In this case, e-commerce websites tend to have much more to lose than a typical brochure-ware kind of website. In the latter, not much would happen. A hacked brochure-ware website will suffer some downtime and a reputation hit, but that's mostly it.  &lt;/p&gt;

&lt;p&gt;If an e-commerce website is hacked, there could be long-lasting side effects for many years to come. Not only for the website owners but also for any individuals whose data may have been saved while using it. Think about financial and personal data.  &lt;/p&gt;

&lt;p&gt;For these reasons, we're keeping Hotcakes Commerce updated with the most current release. This will continue to be the case.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AEt0G40v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ob7z9bjh2qjus56itue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AEt0G40v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ob7z9bjh2qjus56itue.png" alt="Jerry Maguire: Help me, help you! via Giphy" width="540" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Authentication Provider Template Usability Update 🔏 
&lt;/h3&gt;

&lt;p&gt;At first glance, this may look and feel like a bug statement to you. It sure does to me. It kind of dances on both sides of that line, I think.  &lt;/p&gt;

&lt;p&gt;Anyhow, this update was a very simple label change with one of the prompts you answer before the generator creates the project.  &lt;/p&gt;

&lt;p&gt;Previously, it generically gave "DNN" as an example name for the name of the provider. This was a silly mistake. Of course, people will see that and instantly think something like, "Oh, that's a good name for it. It's a DNN website, after all."  &lt;/p&gt;

&lt;p&gt;While that definitely seems logical, it will result in this person never being able to successfully build the authentication provider. The default one that's already installed has this name already. 😉 &lt;/p&gt;

&lt;h3&gt;
  
  
  Numerous Bug Fixes 🛠️ 
&lt;/h3&gt;

&lt;p&gt;We also fixed a number of things. I'll just summarize them for you quickly.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Resolved issue with adding &lt;code&gt;Authentication Provider&lt;/code&gt;, &lt;code&gt;Scheduled Job&lt;/code&gt;, and &lt;code&gt;Skin Object&lt;/code&gt; projects to the solution file.&lt;/li&gt;
&lt;li&gt;  Resolved first-run issues with the &lt;code&gt;Angular&lt;/code&gt; module template.  &lt;/li&gt;
&lt;li&gt;  Resolved first-run issues with the &lt;code&gt;VueJS&lt;/code&gt; module template.  &lt;/li&gt;
&lt;li&gt;  Resolved first-run issues with the &lt;code&gt;React (jsx)&lt;/code&gt; module template. &lt;/li&gt;
&lt;li&gt;  Resolved first-run issues with the &lt;code&gt;React (tsx)&lt;/code&gt; module template.&lt;/li&gt;
&lt;li&gt;  Fixed debug build paths for all &lt;code&gt;Hotcakes Commerce&lt;/code&gt; project types.  &lt;/li&gt;
&lt;li&gt;  Resolved a bug in the &lt;code&gt;VueJS&lt;/code&gt; module template that made it non-functional on inner pages.  &lt;/li&gt;
&lt;li&gt;  Corrected version dependencies for all Hotcakes Commerce projects.&lt;/li&gt;
&lt;li&gt;  Fixed the &lt;code&gt;managedPackage&lt;/code&gt; value in Hotcakes Commerce manifest files. &lt;/li&gt;
&lt;li&gt;  Resolved minor typos in the generator scripts. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whew! That was a lot!  &lt;/p&gt;

&lt;h2&gt;
  
  
  Download &amp;amp; View the Project 🤙🏽 
&lt;/h2&gt;

&lt;p&gt;If you want to help build or suggest features for the UpendoDNN Generator extension, please feel free to visit the project using the links below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/generator-upendodnn#readme"&gt;GitHub Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.npmjs.com/package/generator-upendodnn"&gt;npm Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  In Closing
&lt;/h3&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the Day of DotNetNuke to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures"&gt;GitHub Sponsors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? Click that button and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures"&gt;Join this DNN Adventure with Will – Sponsor Now &amp;amp; Let's Innovate Together!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dnncommunity.org/blogs/Post/16558/UpendoDNN-Generator-1-9-2-for-DNN-Extension-Development"&gt;This blog article is cross-posted from the official DNN website&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>devtools</category>
      <category>scaffold</category>
      <category>programming</category>
    </item>
    <item>
      <title>Upendo DNN Prompt 1.5 Released!</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Fri, 11 Aug 2023 19:21:37 +0000</pubDate>
      <link>https://forem.com/hismightiness/upendo-dnn-prompt-15-released-17pk</link>
      <guid>https://forem.com/hismightiness/upendo-dnn-prompt-15-released-17pk</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp66tqi64bo2dudy6hdpz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp66tqi64bo2dudy6hdpz.jpg" alt="Upendo DNN Prompt 1.5 Released"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We originally released the Upendo DNN Prompt just less than two years ago. Holy moly, I thought I was going to look it up and find a much longer span of time! I've personally used this SO many times for projects, I guess it seems like much longer. Upgrades alone are faster. This release brings a couple of fun updates, and it sets the stage for some other updates we can't wait to work on later.  &lt;/p&gt;

&lt;h3&gt;
  
  
  What is Upendo DNN Prompt? 
&lt;/h3&gt;

&lt;p&gt;If you didn't already know, DNN has a built-in command line tool available to administrators and superuser, called &lt;a href="https://docs.dnncommunity.org/content/features/tools-utilities/prompt/index.html#what-is-prompt" rel="noopener noreferrer"&gt;Prompt&lt;/a&gt;. This feature makes it super-easy to do many common administrative tasks, such as page and user management - all using a few commands. It's quite powerful. Not only for the reasons I just introduced, but it's yet another extension point for DNN.  &lt;/p&gt;

&lt;p&gt;Anyone can build and install commands on their DNN website!  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Our goal for some of the commands is to mature them to the point of contributing them back to the core of DNN. To do that, we'll need your feedback, of course. However, we're also waiting until we get closer to DNN 11. The APIs for building prompts are a bit challenging for a first-timer, still.&lt;/em&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Raised Minimum DNN Platform Version
&lt;/h4&gt;

&lt;p&gt;Until this release, the generator was building against &lt;strong&gt;DNN Platform 09.04.00&lt;/strong&gt;. Raising the minimum version of DNN for a development tool is a tricky thing. We're trying to not be too aggressive with it, because DNN websites maintained/built by teams, typically can't upgrade as quickly as smaller sites that are maintained by fewer people.  &lt;/p&gt;

&lt;p&gt;This of course means that as a developer, you're able to have access to bug fixes, performance updates, and more. But it also means that you have access to newer and improved APIs. Depending on when you started your project, you're missing out on cool things, like &lt;a href="https://docs.dnncommunity.org/content/features/extensibility/event-system/index.html" rel="noopener noreferrer"&gt;the Event System&lt;/a&gt;!&lt;/p&gt;

&lt;h4&gt;
  
  
  Added &lt;code&gt;set-captcha&lt;/code&gt; Command
&lt;/h4&gt;

&lt;p&gt;We've added a new command, &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-Prompt/wiki/set-captcha" rel="noopener noreferrer"&gt;set-captcha&lt;/a&gt;, that helps a non-technical DNN website owner to toggle the built-in CAPTCHA setting that's used to show/hide the CAPTCHA when people attempt to log in.  &lt;/p&gt;

&lt;p&gt;This feature used to have a setting in the UI, but it's no longer there. To be fair, this is probably because the built-in CAPTCHA isn't as secure as any third-party CAPTCHA. However, it's been historically impossible to find someone to donate the time to update/fix it.  &lt;/p&gt;

&lt;p&gt;Though, there's still apparently &lt;a href="https://dnncommunity.org/forums/Getting-Started/new-to-dnn/add-captcha-to-login-page/" rel="noopener noreferrer"&gt;some value to using it&lt;/a&gt; for some people.  &lt;/p&gt;

&lt;p&gt;Still, it's a built-in and free way to have a little peace of mind.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Personally, we tend to use custom or third-party extensions to replace the default login for this and other reasons. It's a shame that this first-time experience isn't better. Maybe you can help the community with that, dear reader? ;)&lt;/em&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a toggle-based command. Meaning, if you execute the command, it just reverses the dual-tier state. If CAPTCHA is already enabled, it's disabled. If it's disabled already, then it'll become enabled.  &lt;/p&gt;

&lt;p&gt;YOUTUBE VIDEO DEMO:  &lt;a href="https://www.youtube.com/watch?v=YdR1oFIaZwA" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=YdR1oFIaZwA&lt;/a&gt;   &lt;/p&gt;

&lt;h3&gt;
  
  
  Upendo DNN Prompt Road Map
&lt;/h3&gt;

&lt;p&gt;We have a very exciting update coming in the next release. For the purpose of not ruining the surprise, we haven't published this into GitHub yet. You'll have to bribe me to find out! {Hahaha!}  &lt;/p&gt;

&lt;h3&gt;
  
  
  Download &amp;amp; View The Project
&lt;/h3&gt;

&lt;p&gt;If you want to help build or suggest features for the Upendo DNN Prompt extension, please feel free to visit the project using the links below.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-Prompt#readme" rel="noopener noreferrer"&gt;Project Homepage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-Prompt/wiki/set-captcha" rel="noopener noreferrer"&gt;Documentation: &lt;code&gt;set-captcha&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-Prompt/releases/tag/01.05.00" rel="noopener noreferrer"&gt;Download 1.5.0&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  In Closing
&lt;/h3&gt;

&lt;p&gt;Hey DNN fans! Ever dreamed of supercharging the DNN world? &lt;/p&gt;

&lt;p&gt;&lt;a href="http://upendoventures.com/How/People/Will-Strohl" rel="noopener noreferrer"&gt;Will Strohl&lt;/a&gt; here, and I'm on a mission to make DNN CMS more awesome than ever – but I need YOUR help! 🚀&lt;/p&gt;

&lt;p&gt;From firing up the Day of DotNetNuke to dancing across the DNNConnections stage in Vegas, I've been living and breathing DNN. And guess what? I've got a treasure trove of new ideas and I'm ready to spill the beans, all thanks to your support on &lt;a href="https://github.com/sponsors/UpendoVentures" rel="noopener noreferrer"&gt;GitHub Sponsors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, do you wanna be a part of this exciting DNN adventure? &lt;/p&gt;

&lt;p&gt;Your sponsorship is not just a tap on the 'support' button; it's a &lt;strong&gt;high-five&lt;/strong&gt;, a &lt;strong&gt;fist bump&lt;/strong&gt;, a &lt;em&gt;join-in-the-fun&lt;/em&gt; kind of &lt;strong&gt;partnership&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Together, we'll build, laugh, learn, and maybe even invent a new DNN dance move or two!&lt;/p&gt;

&lt;p&gt;Ready to rock the DNN CMS world with me? Click that button and let's make some DNN magic happen! 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/UpendoVentures" rel="noopener noreferrer"&gt;Join this DNN Adventure with Will – Sponsor Now &amp;amp; Let's Innovate Together!&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;This blog article is &lt;a href="https://dnncommunity.org/blogs/Post/16554/Upendo-DNN-Prompt-1-5-Released" rel="noopener noreferrer"&gt;cross-posted from the official DNN website&lt;/a&gt;.  &lt;/p&gt;

</description>
      <category>captcha</category>
      <category>cms</category>
      <category>administration</category>
      <category>dnncms</category>
    </item>
    <item>
      <title>DNN Community: How has DNN Improved Your Life Over the Years?</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Thu, 09 Feb 2023 19:45:28 +0000</pubDate>
      <link>https://forem.com/hismightiness/dnn-community-how-has-dnn-improved-your-life-over-the-years-3hlf</link>
      <guid>https://forem.com/hismightiness/dnn-community-how-has-dnn-improved-your-life-over-the-years-3hlf</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TTeqjAiY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lyu034anr8d2zus1yhio.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TTeqjAiY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lyu034anr8d2zus1yhio.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;While a lot of people were doing all of their holiday parties, shopping, and other activities, &lt;a href="https://dnncommunity.org"&gt;DNN&lt;/a&gt; itself had a little secret...  It turned 20 years young!  You read that correctly.  DNN was released more than 20 years ago, on Christmas Eve of 2022.  Since then, DNN has helped millions of developers, business owners, marketers, designers, and others build incredible websites and website applications of all sizes, in all industries.  &lt;/p&gt;

&lt;p&gt;It is so cool (and a bit crazy) to me that DNN has done so much for so many people and businesses.  With that spirit and gratefulness in mind, as yet another way to give back to the community, we decided to produce a handful of videos for you all to enjoy.  &lt;/p&gt;

&lt;h2&gt;
  
  
  How has DNN Improved Your Life Over the Years?
&lt;/h2&gt;

&lt;p&gt;We sent an invitation out to several community members, asking a single question, "How has DNN improved your life over the years?"&lt;br&gt;&lt;br&gt;
The videos we received were awesome.  You'll not only find them on YouTube and in the DNN community video library, but we put them all here for you to enjoy all in one place.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long Version&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/TKNkApdRsww"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short Version&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/sQMXoIRBruc"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;p&gt;Here are the full versions of each individual video.  If you know any of these community members, we encourage you to reach out to them and speak to them about their DNN community experiences.  Maybe there's something you can do with them to help the community grow in some way.  (That's always good for all of us. #abundance)  &lt;/p&gt;

&lt;h3&gt;
  
  
  Cassidi Peterson
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/bLuEAAJMFj8"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;h3&gt;
  
  
  Cathy Lee
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/KrKMYLnqzaI"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;h3&gt;
  
  
  Clint Patterson
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ovCp68d4hn0"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;h3&gt;
  
  
  Will Strohl
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/UfWyXJ_QgaE"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;h3&gt;
  
  
  Don Gingold
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/H_g-ItjeoG8"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;h3&gt;
  
  
  Jeremy Farrance
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/9de38UbpH5E"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;h3&gt;
  
  
  Aderson Oliveira
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/VWqBJPUPZ9E"&gt;
&lt;/iframe&gt;
  &lt;/p&gt;

&lt;p&gt;We hope these videos bring a little bit of joy to your day!  :) &lt;/p&gt;

&lt;p&gt;This blog post is &lt;a href="https://dnncommunity.org/blogs/Post/14312/DNN-Community-How-has-DNN-Improved-Your-Life-Over-the-Years"&gt;cross-posted&lt;/a&gt; from the official DNN Community website. &lt;/p&gt;

</description>
      <category>dnncms</category>
      <category>cms</category>
      <category>aspnet</category>
      <category>opensource</category>
    </item>
    <item>
      <title>OpenContent Templates for Mandeeps Porto Theme</title>
      <dc:creator>Will Strohl</dc:creator>
      <pubDate>Thu, 09 Feb 2023 17:52:34 +0000</pubDate>
      <link>https://forem.com/hismightiness/opencontent-templates-for-mandeeps-porto-theme-c61</link>
      <guid>https://forem.com/hismightiness/opencontent-templates-for-mandeeps-porto-theme-c61</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbeti2l0i57cm957ghopo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbeti2l0i57cm957ghopo.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Happy &lt;a href="https://dnnsummit.org" rel="noopener noreferrer"&gt;DNN Summit&lt;/a&gt; day, everyone! We hope you're having an awesome time at the DNN Summit conference today and tomorrow. Our team is split among still working, but a handful are there with you. This year, in celebration of our epic DNN CMS 20th anniversary and the conference itself, we wanted to something special for all of you. So, we've spent a ton of time working on some open-source stuff, starting with this project...  &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Mandeeps Porto?
&lt;/h2&gt;

&lt;p&gt;Simply put, Porto is one of the most popular commercial options for a theme in the DNN store. It consistently ranks as one of the top-selling themes. We've even used it a number of times. This theme is quite large, as some of you might expect, because it's targeted at small businesses and non-technical people that really just need to have all of the options.  &lt;/p&gt;

&lt;p&gt;So, Porto is - in a way - also a development platform to some degree, like DNN itself. Only, you'll be developing content and layout with Porto. Mandeep and this team at Mandeeps.com have done a great job with this theme.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://porto.mandeeps.com/" rel="noopener noreferrer"&gt;Learn more about Mandeeps and Porto&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is OpenContent?
&lt;/h2&gt;

&lt;p&gt;OpenContent is one of a handful of good options for you to use when deploying complex content, application-bound content templates, and other structured content use cases. In short, it helps technical and non-technical people to build out compelling and engaging content that anyone can manage.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://opencontent.readme.io/" rel="noopener noreferrer"&gt;Learn more about OpenContent&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  OpenContent Templates for Porto
&lt;/h1&gt;

&lt;p&gt;Now that we all know what Porto and OpenContent are, we are beyond excited to announce that we've been working on an open-source repo that's full of strcutured content templates for anyone to use with both solutions. Yep!  &lt;/p&gt;

&lt;p&gt;This means, that for no extra cost, you can have and use all of those awesome shortcodes in the theme without dealing with the HTML module and without having to figure them out.  &lt;/p&gt;

&lt;p&gt;All you need to do to use the templates for your own OpenContent instances is to update the module settings to include these templates.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0eysdzg3bhklnuu96tj7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0eysdzg3bhklnuu96tj7.png" alt="Image description" width="685" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, the module already comes with a large number of templates for you to use.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ru2a9ptkwbka0n5qd4k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ru2a9ptkwbka0n5qd4k.png" alt="Image description" width="682" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let's add these new ones... &lt;/p&gt;

&lt;p&gt;When you're in the module's Global Settings, just add the value below (including the comma).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;,UpendoVentures/OpenContentTemplates&lt;/code&gt;  &lt;/p&gt;

&lt;p&gt;Once you save this setting, you'll now be able to choose from any one of the nearly 50 additional templates to help you and your team build out an amazing website experience on your own DNN-based websites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ci91ub8d71pp1j7ccoq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ci91ub8d71pp1j7ccoq.png" alt="Image description" width="665" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From here, you can use the templates as-is, or use them as starting points for your own content projects.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/UpendoVentures/OpenContentTemplates" rel="noopener noreferrer"&gt;View the OpenContentTemplates project&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Who says commercial and open-source can't exist together? 😁  &lt;/p&gt;

&lt;p&gt;By the way, we've also been working hard on updates for new release for the projects below: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/UpendoVentures/Upendo-Dnn-PageManager" rel="noopener noreferrer"&gt;Upendo DNN Page Manager&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mmmcommerce.com/" rel="noopener noreferrer"&gt;Hotcakes Commerce&lt;/a&gt; (4.8 launching in &amp;lt; 2 weeks)
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/UpendoVentures/generator-upendodnn" rel="noopener noreferrer"&gt;Upendo DNN Generator&lt;/a&gt; (to build any kind of extension)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We hope you enjoy this birthday gift to the community... Happy DNN-ing!  &lt;/p&gt;

&lt;p&gt;This blog post is &lt;a href="https://dnncommunity.org/blogs/Post/14297/OpenContent-Templates-for-Mandeeps-Porto-Theme" rel="noopener noreferrer"&gt;cross-posted&lt;/a&gt; from the &lt;a href="https://dnncommunity.org" rel="noopener noreferrer"&gt;Official DNN Community website&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
  </channel>
</rss>
