DotNetNuke

Blog
DotNetNuke
Friday, September 8, 2017PrintSubscribe
Announcing Cloud On Time Connector for DotNetNuke

Starting with release 8.6.6.0, apps created with any edition of Code On Time generator can be integrated with external DotNetNuke websites with the help of Cloud On Time Connector for DotNetNuke.

Cloud On Time Connector for DotNetNuke is a ready-to-deploy module that provides OAuth 2.0 endpoints for any number of external apps created with Code On Time. It also enables application data presentation/links within the portal pages. Utilize the power of Code On Time to rapidly build database applications integrated with DotNetNuke.

Users will also have the ability to “Login with DotNetNuke”, and use their existing DotNetNuke accounts in the Code On Time app.

The instructions below will use the Northwind sample and a fresh instance of DNN 9.0.2 hosted on Microsoft Azure.

Make sure to enable Content Management System for the database of your app. 

Installing Cloud On Time Connector for DotNetNuke module

The next step is to install the Cloud On Time Connector for DotNetNuke module into your DNN portal instance. Download the latest release of the module from the Releases page.

Using your preferred browser, navigate to your DNN portal and sign in with a SuperUser account.

Logging into DotNetNuke with a SuperUser  account.

In the sidebar, hover over the gear icon and press “Extensions”.

Opening extensions panel.

At the top of the Extensions panel, press “Install Extension”.

Installing a new extension.

Upload the zip file containing the Cloud On Time Connector for DotNetNuke module.

Uploading the extension.

Press “Next” to confirm the package information, and press “Next” again to confirm reviewing the release notes. Accept the license, and press “Next” one more time to begin installation.

Accepting the extension license.

Once installation is complete, the installation report will be displayed.

The package installed successfully.

The module is now installed in your DotNetNuke instance.  Note that the website will restart, which may cause some delay immediately after installation.

Configuring Authentication Endpoint

Cloud On Time Connector for DotNetNuke can integrate any number of external applications into your DotNetNuke portal. An endpoint page with an instance of the module will need to be created in the portal for each integrated application. The developer must configure the Code On Time app and the module instance on the portal page with matching parameters to enable communications over OAuth 2.0 protocol.

First, let’s create a publicly-accessible endpoint page.  Under the “Content” icon in the sidebar, select the “Pages” option.

Opening the Pages panel.

In the top right corner of the Pages panel, press “Add Page”.

Adding a new page.

Specify the following properties:

Property Value
Name end-point-app1
URL /end-point-app1
Display In Menu Off

The name and URL provided above are for demonstration purposes only. You can choose any name and URL that you like.

Under the Permissions tab, check the box to allow all users to view tab. This will enable both anonymous and authenticated users to access the page.

Allowing all users to view the tab.

Press “Add Page”. On the next screen, drag the page to the end of the page list.

Positiong the page in the menu.

The browser will then redirect to the page in edit mode. In the bottom-left corner, press the “Add Module” button.

Adding a module to the page.

From the Add Module screen, click on “Cloud On Time Connector”.

Adding the "Cloud On Time Connector" module.

Drag the floating module and drop on the first dashed placeholder in the end-point-app1 page.

Dropping the module into the first placeholder.

Mouse over the top right corner of the module instance on the page to reveal the control bar.  Mouse over the gear icon, and press “Settings” in the hover menu.

Opening the settings for the module.

Switch to the “Configuration” tab. Use the following settings:

Property Value Explanation
Mode Authentication Endpoint This module instance will serve to authenticate users and offer an endpoint for the Code On Time app.
Client ID app1 The unique identifier for your Code On Time app.
App URL [Your app URL] The location that your application is accessible from.
example: https://cotapp1.azurewebsites.net
Client Secret [randomly generated] A secret value used for server-to-server communications.
example: 4eba319ad0fe41c9b1f02ae69b7466f2
Allowed Tokens Portal:PortalName User:DisplayName A comma- or space-separated list of DNN tokens that will be passed to the app created with Code On Time at the time of user login. Optional.

When configuration is complete, press “Update” to save your changes. Now the module instance on the page end-point-app1 has been configured to accept authentication connections.

We will need to configure the app created with Code On Time to request authentication connections to the DotNetNuke portal.

Navigate to your app, login as admin, and switch to the Site Content page. Press the Plus icon to create a new record.

Adding a new Site Content record.

Select “Open Authentication Registration”, and press OK.

Creating a new Open Authentication Registration.

Configure the following:

Property Value
Authentication DotNetNuke
Client Id app1
Client Secret [randomly generated secret from the module settings]
Client Uri [Your DNN portal URL]/end-point-app1
Redirect Uri [Public URL of your app]/appservices/saas/dnn
Tokens Portal:PortalName User:DisplayName

Your configuration should look like the one below:

Open Authentication registration form has been filled out.

Press the checkmark icon to save the new record. Your app is now configured for authentication connections with DotNetNuke portal.

To test the connection, log out of your app.

Logging out of the app.

Once logged out, your app will show the login form. Notice that a new action “LOGIN WITH DOTNETNUKE” is now available.

Login with DotNetNuke is now visible on the login form.

Push the new action, and you will be navigated to your DotNetNuke portal. If you are not signed into your portal, the login page will be displayed.

Redirected to the DNN login page.

After user has logged in, the login page will redirect to the authentication endpoint. If there are no issues with the configuration, the portal and app will communicate over OAuth2.0 protocol. A user account will be created in the app membership database with the DotNetNuke username, email, roles, picture, and random password. If tokens were requested in the configuration of the app, then the values will be captured by the application.

The DotNetNuke user has been signed in.

If the Account Manager is enabled in the application, subsequent logins will not authenticate with DotNetNuke portal again until the user logs out. You can add “Auto Login: true” parameter to the sys/saas/dnn entry in the SiteContent table to automatically redirect unauthenticated users to DotNetNuke.

If you have developed multiple applications, then create additional authentication endpoint pages following the instructions above for each app. Note that your apps can be deployed anywhere and do not need to physically reside on the same server as the DotNetNuke portal.

Data Presentation in DNN Portal

The Cloud On Time Connector for DotNetNuke module also allows displaying data from your application directly in the portal pages.

Navigate to your DotNetNuke portal with the configured application endpoint as a SuperUser account.

Hover over the Content icon on the sidebar, and press “Pages”.

Opening the Pages panel.

In the top right corner of the Pages panel, press “Add Page”.

Adding a new page to the DNN portal.

Specify the following properties:

Property Value
Name Products
URL /products

Switch to the Permissions tab, and check the box to allow registered users to view tab.

Allowing registered users to access the tab.

Press “Add Page”. On the next screen, drag to place the new page after the Home page.

Positioning the Products page.

You will be navigated to the new Products page. In the bottom left corner, press “Add Module”.

Adding a module to the page.

Select the “Cloud On Time Connector” module from the list.

Adding the Cloud On Time Connector module.

Drag the floating module and drop on the first dashed area in the page.

Dropping the module onto the page.

Hover over the gear icon above the module, and press “Settings”.

Opening the settings for the module.

Switch to the Configuration tab. If the authentication endpoint has already been configured, then the Mode property of this module instance will be set to “Data Presentation”. Enter the following:

Property Value
Mode Data Presentation
App App1 ([your URL])
Page URL ~/pages/products
Height 600px
Show Navigation false

Press “Update” to save your changes. Proceed to refresh the page. The module will now display a grid of products.

A grid of products is now displayed within the DotNetNuke portal

Accessing User Tokens

If tokens were configured for both sys/saas/dnn entry and the authentication endpoint of DotNetNuke portal, then the values can be used in the implementation of business rules in the application. For example, token “User:DisplayName” can be accessed by the following sample code:

SQL:

set @Result_ShowAlert = 'Hello ' + @Profile_User_DisplayName

C#:

Result.ShowAlert("Hello " + Convert.ToString(GetProperty("Profile_User_DisplayName")));

Visual Basic:

Result.ShowAlert("Hello " & Convert.ToString(GetProperty("Profile_User_DisplayName")))
Sunday, February 5, 2017PrintSubscribe
DotNetNuke Factory and DotNetNuke SaaS

DotNetNuke (DNN) is a popular content management system build with Microsoft ASP.NET technology with the loyal following. Developers love the ease of customization and native support for Microsoft Development Tools. Nevertheless it is difficult to build complex user interface when large number of data entry screens is required. Code On Time application generator provides DotNetNuke Factory project designed to produce native DNN module with complex data entry screens created directly from your database.

Applications for DNN created with Code On Time have a Classical (Desktop) user interface and cannot run outside of the portal on their own. Over the past years we have developed a new powerful user interface called Touch UI. This user interface relies on the pages with special structure to enable execution on both mobile and desktop devices. It is impossible to plug such pages into the DNN portal without disrupting its core functionality.

Our product used to offer SharePoint Factory project designed to create native web parts for this portal in the fashion very similar to DotNetNuke Factory. In fact, some core capabilities were shared between the two. Microsoft has greatly changed SharePoint portal starting with SharePoint 2013. It became impossible to incorporate custom web parts directly in the pages of this portal. Instead, developers have to create dedicated applications, which run in a completely isolated environment frequently on a different physical server. The output of the custom code is displayed in an <iframe> element allocated on the SharePoint page for the purpose of integration. The custom code must use OAuth protocol for authentication if access to the host site data such as current user is required.

Starting with release 8.5.12.0 we are retiring SharePoint Factory project and make it possible to integrate any Web Site Factory or Web App Factory project in Software-as-a-Service mode into SharePoint Online (http://sharepoint.com), SharePoint 2013, and above. A free web part from Microsoft Office Store (https://store.office.com/en-us/app.aspx?assetid=WA104380704) makes it easy to integrate Code On Time apps in SharePoint sites (http://codeontime.com/learn/sharepoint/add-in/configuration).

We will bring Touch UI and SaaS integration technology to DotNetNuke users in release 8.5.13.0.

Developers will create either Web Site Factory or Web App Factory project on top of their database. The database will have its own security system to maintain users and roles. The following will be performed when application is ready for integration:

    1. Application will be deployed to either dedicated server or on the machine where DNN portal is running.

    2. Developer will generate a secret key stored in the application database.

    3. Developer will install a Data Connector for Cloud On Time module into the portal and have it configured on portal page.
        1. The module will be placed on the page of the portal.

        2. The secret key generated in step #2 will be specified in the module properties.

        3. URL of the application page or its root address must be specified.

        4. Optional DNN tokens can be listed in the Data Connector configuration.

      1. Data Connector will communicate with the the application instance when the page is rendered by the portal on the server:
          1. Connector will make a server-to-server request to the application passing the encrypted secret key, name of the user, roles, and  optional values of DNN tokens.

          2. Application will confirm the secret key, process tokens, and return login token to the Data Connector.

          3. If the portal user does not exist in the application database, then the user with the same name and random password is created.

          4. User roles in the application database are synchronized with the portal roles.

          5. Data Connector will render an <iframe> element in the output of the page with the login token in the URL pointing to application page.

        1. The page with the <iframe> will be rendered by the web browser on the client device.

        2. Application will perform single-sign-on for the current user with the help of the login token in the URL of the <iframe>.

          Universal Business Applications created with Code On Time and Cloud On Time will work both on their own and also in SaaS mode within DotNetNuke, Microsoft SharePoint Online, and Google G-Suite. If a hosted UBA is accessed directly, then the hosting environment will perform user authentication, which makes possible using apps on mobile devices outside of the host environment.

          Code On Time will continue to ship with DotNetNuke Factory. If developers have existing projects of this type, then they may choose to continue creating native DNN Factory apps with Classical user interface.

          Wednesday, January 11, 2017PrintSubscribe
          Announcing COT v9

          We are pleased to announce that the new year brings about an all-new version of Code On Time, called COT v9. This product will come in three flavors: Code On Time, Cloud On Time, and Cloud On Time Private Edition.

          The new version brings a unified development environment directly into your application. Users with development privileges will be able to activate the Project Designer from within the live app. The Project Explorer will be displayed alongside application pages and will synchronize itself with the currently visible content. Changes to the project will be reflected instantly in the presentation. The Project Designer communicates with the backend, implemented differently for every flavor of COT v9.

          The “Code On Time” flavor of v9 will interact directly with the application generator that you are familiar with. The app generator will run in a batch mode in response to developer actions. Application code will be created, generated, and modified in the exact same fashion you are used to. Visual Studio IDE will be launched when you need to see a C#/Visual Basic business rule, or would like to see the source code of the project. The source code is stored on your computer. You can use your own version control system. You can work with any supported database engine. You will install COT v9 on your computer. The price for Code On Time edition of v9 will remain the same as the current shipping version of the product. Licenses will continue to be perpetual. Active customers will receive “Code On Time” flavor of v9 as a regular product update.

          The “Cloud On Time” flavor of v9 will interact with a hosted version of the application generator. Applications and data are stored in the Microsoft Azure Cloud. A built-in Database Designer will be used to create database tables and views within the live app. Developers will be offered a choice of SQL, JavaScript, and Email business rules. “Cloud On Time” does not require installation, and works on any web-enabled device. A monthly subscription fee is based on the number of developers and the number of records in the database. A free trial will be available.

          The “Cloud On Time Private Edition” flavor of v9 will interact with a hosted version of the application generator installed on the customer premises. This product is targeted towards privacy-conscious customers with a need for rapid application development. It will be possible to create business rules with C# or Visual Basic to extend applications. The product will be sold with a perpetual license with 6, 12, or 24 months of updates.

          Applications created with COT v9 support code-free integration with Google Apps and popular content management systems, such as SharePoint or DotNetNuke.

          Rapidly build universal business apps on any device, and in any environment.

          Modal login form with three external login options.

          Split view displayed on Suppliers page created with Code On Time.

          Context panel with new material icons in application using Touch UI.

          Image headers and form action bar in Categories form.

          Modal page sliding when opening additional pages.

          Modal page with mini sidebar.

          Pricing for “Cloud On Time” and “Cloud On Time Private Edition” will be announced soon.

          We are estimating that COT v9 will become available in March-April of 2017.

          We know that many of you awaiting anxiously for the next product update. Release 8.5.12.0 is expected to arrive very soon, and brings many features of COT v9 into your hands. Please stay tuned.