Compare with and without ARC

The following table compares the features and capabilities of ARC and standard DotNetNuke Module development in the following categories:

  • Presentation Layer (UI)
  • Business Logic Layer (BLL)
  • Data Access Layer (DAL)

Also outlined are some of the other useful features of the ARC component that would otherwise need to be developed.

NOTE: #. All the unsupported features you see, shows that the developer must design and build these to interact with DotNetNuke.

Comparison Table

ARCDotNetNuke
Presentation Layer
Design and Build UI
UnsupportedUnsupported
Business Logic Layer
Information Class
UnsupportedUnsupported
Business Controller Class
SupportedUnsupported
Data Access Layer
Abstraction Layer
SupportedUnsupported
Physical Providers
SupportedUnsupported
Interfaces
Import / Export
Partially SupportedUnsupported

Legend
Feature Comment = Feature Comment. Roll over these images for additional information about the listed Feature.
Unsupported = Unsupported
Partially Supported = Partially Supported
Supported = Supported
Blank denotes 'N/A'.
Close Feature Comment

Extra ARC Features

With the ARC in your toolbox you are able to easily:
  • Switch between Data Providers.
  • Sort and Filter Lists(of T).
  • Serialize and Deserialize objects.
  • Load large sets of data in a flash due to the embedded IL data loader.
  • Run asynchronous calls on the Database.  Also receive completion events.

Basic use of the ARC will have you visual studio solution less cluttered.

ARC-ContactsSolution

Main Features

Foremost the ARC will standardise the way you build you DotNetNuke custom modules.

Presentation Layer

  • Design and Build UI 
    • User controls (ascx) Inherits the PortalModuleBase: provides values for Settings hash, ModuleID, security, TabID Binds the objects from the controller class to our controls. Utilizes DNN user controls This is your module (refer to DesktopModule) Create an admin control (for populating settings, and view control for viewing data)

Business Logic Layer

  • Information Class
    • ModuleInfo: Contains the properties for our object.
  • Business Controller Class
    • ModuleController: Contains wrapper methods for calling the abstraction layer to populate an list of objects (ModuleInfo).

Data Access Layer

  • Abstraction Layer 
    • Contains overridable methods for doing database operations Located within the module’s project, compiled into the same assembly as the module.
  • Physical Providers 
    • Each provider will contain unique logic for dealing with each physical database. Compiled into its own assembly for “plug and play” use. (For SQL) Contains methods corresponding to stored procedures.

Interfaces

  • Import / Export
    • Provided by IPortable: Allows the developer to provide a means of exporting data from within a module so it can be inserted into another instance of that module. Must generate an XML file that is used in the export and import process.