Posts Tagged ‘DotNetNuke Integration’

Release: Cross-Portal Symbolic Link Folder Provider

Monday, December 5th, 2011

I am pleased to announce a beta release of my cross-portal symbolic link folder provider.  It may be downloaded via CodePlex on its project homepage.  As is all of my DotNetNuke work, this project is fully open-source and available under a liberal BSD license.

The DotNetNuke content management system is designed with multi-tenancy in mind, and allows an arbitrary number of websites (“portals”) to be created therein. These portals may be configured at the root of a given domain (e.g., “http://dotnetnuke.com”) or as a child portal below the root of a portal hierarchy (e.g., “http://dotnetnuke.com/mychildportal”). Historically these child portals have had no structural link to their parent counterpart, other than sharing a similar base URI.

This provider is designed to expose the file system in a parent portal to all child portals via specially-formed symbolic links. This allows administrators of child portals to access and utilize these files in a natural manner via existing dialogs and other DotNetNuke services. It creates an implicit linking between these two portal entities, and in configurations where there is significant overlap in data usage between parent in child portal (for example, when a child portal represents a single department within a larger corporate environment) allows for greatly simplified administration. (more…)

Preview: DotNetNuke Control Panel Module Grouping

Tuesday, October 20th, 2009

After lingering in limbo for some time, I am pleased to be able to provide some screenshots of my upcoming DotNetNuke Module Container project.  This project is expected to be released into beta sometime in mid-November, though I may circulate to a few interested parties before any public release.

The project is designed to address a common usability concern with the default DotNetNuke control panel, which is perhaps best illustrated pictorially:

A Scary DotNetNuke Menu with Many, Many Options

A Scary DotNetNuke Menu with Many, Many Options

As users of the framework have surely noted, the list of modules available to an administrator is lengthy and highly-confounding.  While experience mitigates this difficulty, it remains a significant challenge for new administrators to understand which module to select from this imposing list.

This project attempts to group this set of modules into manageable containers where each module is grouped by function (e.g. administrative modules, e-commerce modules).  By way of example, a clean DotNetNuke 5.1.4 install with ALL core modules installed (and grouped into logical containers) would be reduced to a very understandable list:

A compact, minimized DotNetNuke control panel module list with groups by function.

A compact, minimized DotNetNuke control panel module list with groups by function. Note that the image above continues to utilize the default DotNetNuke control panel; the containers do not require any adjustment to that component.

After a container is selected and instantiated, a user is prompted to select from one of the modules contained therein:

Interactive selection of a module within a grouping after selecting the group from the control panel.

Interactive selection of a module within a grouping after selecting the group from the control panel.

The selection process utilizes jQuery, minimizes the number of post-backs, and (in my opinion) greatly increases overall usability.

This module is expected to be released sometime in mid-to-late November for public consumption.  A limited beta may be made available prior to this date, subject to interest.

Your feedback is appreciated.  Does the lengthy DotNetNuke module list bother you?  Would you (or your administrators) find a solution of the type outlined above useful?  Please leave a comment and share your thoughts.

B

(more…)

Released: DotNetNuke Entity Framework Model Adapter

Tuesday, September 8th, 2009

The Entity Framework ObjectContext allows for development using a model automatically generated by a Visual Studio designer. However, when deployed within DotNetNuke, these attributes do not pick up the database owner and object qualifier required for correct inter-operation.  Because of this, large-scale deployment of modules using the Entity Framework is infeasible, and modules using the technology are unfortunately limited to internal applications.

To remedy this issue, I have developed an adapter that converts the Entity Framework model generated by the designer into a DotNetNuke-compatible model that uses both the object qualifier and database owner specified by an end-installation.  This adapter is based off of the more generalized model adaptation framework that I recently released.

My goals for any satisfactory solution were as follows:

  • Run-time adjustment of an Entity Framework EDMX model to conform to any given DotNetNuke installation, including:
    • Connection-based adaptation (e.g. use of a runtime-specified connection string)
  • Run-time adjustment of model schema to effectuate:
    • Adjusting data-level table and stored procedure prefixes to match the DotNetNuke installation ObjectQualifier
    • Adjusting the owner of database objects to match the DotNetNuke installation DatabaseOwner
  • Continued use of the Visual Studio Model designer
  • No tedious changes in the compiler-generated code
  • Continued use of an assembly-embedded EDMX model (and thereby no additional or external schema deployment files)

This solution extends the Entity Framework runtime model adapter to operate within a DotNetNuke extension, allowing a developer to design against an unqualified, dbo-owned DotNetNuke instance and be assured that it will deploy (and operate) correctly on any configuration that an end user might have deployed. Adaptation is largely inexpensive, and since the models are cached by type, performance is not significantly affected.

Click here to access the project site for additional details and downloads.  Though the content herein is protected under the license below, be sure to consult the project license (New BSD) for integration-related details.

As always, feedback is greatly appreciated.

B

Screenshots: DotNetNuke and Magento Integration Experiment

Monday, August 31st, 2009

Over the last few months, I have been doing some initial architectural research regarding the integration of DotNetNuke with arbitrary external e-commerce systems.  Note that this research is highly embryonic, largely experimental, and highly likely to not reach any sort of production-ready fruition.  Its purpose is to inspire discussion, not demonstrate code.  Caveat lector!

As one of my goals is reasonable provider-independence (via adaptation), this is not about realizing any particular vendor (despite the fact that I address one specific such vendor herein).  That said, I have been asked by several parties to share a bit more about where this stands; it is with this in mind that I present an initial update.

(more…)

Whitepaper: DotNetNuke Multi-Factor Authentication

Friday, August 28th, 2009

I am pleased to make available a whitepaper detailing the high-level motivation and approach involved in the creation of the recently-released DotNetNuke Multi-Factor Authentication Provider, along with a discussion of the unique characteristics of a DotNetNuke installation that render the approaches of other vendors (e.g. RSA SecurID) incomplete or unsatisfactory. Additionally, each out-of-the-box factor is described in general detail in a format that is digestible by an audience of varying technical sophistication.

This paper is intended for all audiences who might have an interest in overall DotNetNuke installation security, and is designed to assist management in identifying an appropriate level of authentication-related risk.

Beta Release: DotNetNuke Amazon S3 Folder Integration Providers

Monday, June 22nd, 2009

I am pleased to announce a beta release of my Amazon S3 integration authorization and data providers.  It may be downloaded via CodePlex on its project homepage.  As is all of my DotNetNuke work, this project is fully open-source and available under a liberal BSD license.

The DotNetNuke web application framework offers multiple file persistence options out-of-the-box, including file-system storage (both unsecured and secured by ACL), along with ACL-secured database storage. When creating a link to a resource, the DotNetNuke UI provides a convenient list of these files, and also allows direct input of arbitrary URI.

However, there exists no ready method by which an administrator might link to a known set of files persisted external to the installation. While direct URI input might be used here, it requires knowledge of these data, and does not allow for enumeration and management of the external objects themselves.

This project attempts to bridge that gap by integrating resources persisted on the Amazon S3 into the DotNetNuke framework. Resources stored there are enumerable via the File Manager and selectable via the URL control. Throughout the core framework, these external resources are treated identically to database-secured resources, including observance of Amazon S3 ACL, automatic synchronization, and (reasonably friendly) 301 Redirects to the Amazon S3 when accessed via LinkClick.aspx.

This is effectuated via customization of two providers: authorization and data. The authorization provider integrates Amazon S3 ACLs for external resources, and the data provider allows enumeration of and details about the external resources themselves.

(more…)