It has been a year since I undertook moving my SLO development to the DotNetNuke (DNN) platform. I now have a working SLODNN version. The port took a long time as DNN works substantially different from a standalone server-side application. Of note:
– All pages are coded as custom user controls. DNN renders through only a couple of aspx pages that dynamically load ascx controls as needed.
– My complex SLO data layer was replaced by simple DAL2 coding.
– BLL layer classes replaced by controller classes associated with the DAL2 classes
– Users and permissions implemented by DNN (replacing my coding)
– Separated Cap specific code into a separate module
I’m now back to where I was a year ago but with additional benefits of DNN:
– SLO updates easily handled through DNN module interface
– Using existing free DNN modules for Forum, Blog, Wiki
– Robust user/permission system
Next up is:
– a year of using SLODNN live with our labs to catch coding bugs
– integrating a high-end file management component into SLO
– adding data of science labs from BC post secondary schools
I’m also thinking of using GitHub or Bitbucket to distribute SLO and using the “software as a service” model for other SLODNN implementations
These are my notes
(found first time through they should be followed very closely)
Resources for setting up DNN7 with module development
- copy DNN Community Edition files to C:/websites/dnndev.me (dir used by template)
- set folder security permissions
- add IIS AppPool\DefaultAppPool with modify rights
- add Network Service with modify rights
(not clear this is needed unless on a network)
- IIS Manager: ensure Application Pools, DefaultAppPool is running .NET Framework v4.0
- IIS Manager add website
- Site name: dnndev.me
- Application pool: DefaultAppPool (check that .Net4) (could also be dnndev.me)
- Host name: www.dnndev.me
- Physical path: C:/websites/dnndev.me
- IIS Manager add bindings dnndev.me and dnndev
(this is in addition to www.dnndev.me)
- Web Browser: www.dnndev.me with bring up site install (lengthy delay while app compiles)
- Do use username Host as a SuperUser Account
- Add second SuperUser Account (under Host)
- Add user account and give it admin rights (under Admin\User Accounts)
- add or change main page logo pic to identify this installation
Visual Studio prep for building DNN module XXX
- Install templates
- Run VS as admin
- VS\File\New Project
- select Templates\Visual Basic\DotNetNuke: “DotNetNuke 7 VB.Net DAL2 Compiled Module”
- Name: XXX
- Location: C:\websites\dnndev.me\DesktopModules\
- if available “Create new solution”
- uncheck “Create directory for solution”
- uncheck “Add to source control”
- XXX\Properties settings
- Compile: Option strict off
- Build project under Debug and again under Release
(should compile without errors, one warning)
- XXX\Properties settings
- Compile: Option strict on
- Application Assembly Information:
change * in Assembly version and File version to 00
- Correct code strict errors
- IIS Manager: Sites\dnndev.me\View Virtual Directories
- remove any XXX virtual directories (could be none there)
- Web Browser open site, login as host, add new page, install/add XXX module
- VS desktop link with Shortcut properties
- Target: “C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe”
- Start in: “C:\websites\dnndev.me\DesktopModules\XXX”
- Advanced Run as administrator
Module Coding Notes
- 00.00.01.sqldataprovider and UnInstall.sqldataprovider
hold code to sql tables install and uninstall
- Item.vb: data class represents table row
- ItemController.vb: BBL to data class with CRUD functions
- XXX\XXX.dnn is what DNN uses to install the module
- Template references DotNetNuke.dll & DotNetNuke.WebUtility.dll found in C:\websites\dnndev.me\bin
- I had some errors in View.ascx and Edit.ascx in not finding DotNetNuke.Common and others
- resolved by ensuring Imports DotNetNuke and removing DotNetNuke prefix
- I had database connection error. Resolved in IIS Manager, site advanced settings Application Pool needed to be set to DefaultAppPool
- Visual Studio sometimes creates a virtual directory which will through SQL for a loop showing up as DNN throwing an error. Fix is removing any virtual directories in IIS Manager: Sites\dnndev.me\View Virtual Directories
- Several times I accidentally blew away my developed module code and had to rely on some backup. This can easily happen by reinstalling DNN or removing the module in DNN as the development module is under the website directory.
I was searching for component options to integrate into SLO (wiki, blog, forum) when I realized I could build SLO to integrate into an existing framework with those components. This led to searching web content management systems which led to the DotNetNuke (DNN) platform. I am now pursuing rebuilding SLO as DNN modules.
DNN Software www.dnnsoftware.com/
– Oversees DotNetNuke including free open source community edition and commercial Evoq versions. Many extensions (modules) are hosted at www.dnnsoftware.com/forge. Community support videos, tutorials, wiki, forums are also freely available. There are substantial number of broken links which appear to be from DNN Software taking over (but materials of broken links can be found through searches).
– Contains the open source development (also mirrored at DNN Software)
I am now targeting the latest DotNetNuke release version 7 which requires DotNet4.
Also used is Win7 with IIS7, SQL Server Express 2008 (along with SQL Server Management Studio) and programing under Visual Studio 2012.
My current web hosting service (Pacific Online) does not support DotNet4, has no experience with DotNetNuke and seems expensive (~$40/month). With considerable searches, I’ve narrowed options for moving to
– Arvixe www.arvixe.com/ ~$5/month (discount coupons online, try “Clue30”)
Frontpage is not supported (old tech no longer part of Windows), found I could use FTP. With Expression Web, prefix with FTP:// (such as FTP://sitename.com) would work.
FileZilla https://filezilla-project.org/ worked really well (and fast) for moving sites.
– Power DNN us.powerdnn.com/ $20/month, high end cloud service
Notes on setting up the DNN local web
- Ensure installed is IIS7, SQL Server Express 2008, DotNet4, Visual Studio 2012
- Download/Copy all files from current install version of DNN7 to a new directory under inetpub\wwwroot
- setting up website In IIS Manager
- under Application Pools, check that DefaultAppPool is running under DotNet4
- point Default Web Site/Basic Settings/Physical path to DNN7 directory
- convert directory to an application
- edit permissions (security) of web directory to add
- Network Service and add modify rights
- IIS AppPool\DefaultAppPool and add modify rights
- add a binding xxx.DNNDev.me (allows development for different sites eg xxx=slo)
- nb. doing this after DNN is configured requires Portal Alias table update
- Alternate approach to adding DNN website
- from IIS Manager Sites, Add Web Site
- Site name: DNNDev
- Application pool: DefaultAppPool
- Physical Path: to DNN7 directory
- Binding Host: xxx.DNNDev.me
- allows development for different sites (xxx=slo)
- nb. doing this after DNN is configured requires Portal Alias table update
- add binding http port 80 with no host name will make it the default site
- Note other default site needs to be stopped
- Add loop back to dnnDev.me
- run notepad as administrator
- open the file C:\Windows\System32\drivers\etc\hosts (nb. set filter to *.*)
- add the line: 127.0.0.1 dnnDev.me
- also include: 127.0.0.1 localhost
- save file
- dns flush (so computer recognizes change)
- – open Command Prompt window
- – IPConfig /flushdns
I thought it would be useful to state my vision of SLO.
I’ve been pursuing collaboration software to bolt onto SLO (rather than building from scratch). My software constraints are to run under asp.net 3.5 with MSSQL, not be costly and have source available for customization. Also integration with SLO authentication (single sign-on using .net membership)
Currently the most promising forum software is
YAF YetAnotherForum http://yetanotherforum.net/ http://yafnet.codeplex.com/
YAF is open source with an active development community. Software is surprisingly complex but well written (in C#).
Also on the short list are
Instant Forum http://www.instantasp.co.uk/products/instantforum/
seems to be the best option.
Also a possibility is the very popular
but it runs under PhP with MySQL. Some developers have gotten it to run under .net/SQL
There is no wiki software currently stands out. Most popular is
but open development has halted on ScrewTurn with now limited docs. Also I found data tables are not prefixed which may indicate not the best coding.
So I’m now thinking of custom coding wiki into SLO using info of
Dot Wiki http://wiki.hectorcorrea.com/
The SLO web grading component is now being actively used with the Capilano Physics labs. It completed the fall 2012 semester maintaining lab grades with final lab grade reports to the course instructors. Features include sessions, custom bonus/penalty, grade groups, secure site access.
I’ve now been working on the SLO resources component, used to host information (such as links, files and web pages). Resources will host institution/department information as well as lab specific information such as lab manual, scripts and supporting resources.
My initial thought of using Office 365 for holding information related to SLO Dev has been super-seeded by the idea of holding everything within the main SLO site using custom coding. This is a rather large undertaking but, if successful, will in the long run be much more versatile. All information I’ve been cumulating of BC colleges/university Physics labs will ultimately be accessible through the main SLO site.
Currently all interfaces to SLO web are through admin rights. Instructor access is intended to be coded this summer, after which the site could be used be other institutions.
I’m also now putting up my SLO overview and the general SLO structure. I intent to update these periodically to match what is being done behind the scene.
I have begun a two-year, half-time leave (sabbatical) to pursue web use with 1st year Physics labs. I also believe this really extends, in large part, to all science labs. Major components of my pursuits include:
– gathering information on how other university and colleges conduct their Physics labs
– building a website supporting 1st year Physics labs
– opening dialogs with lab people involved in first year labs
It is with great hesitancy I begin this blog to follow my progress and cumulate information of Science Labs Online (SLO). Words do not come easy for me (I feel like English is my second language, I have no first 🙂 ). I hope what I learn will be of value to others.
In addition to this WordPress blog, Office 365 with SharePoint is used as the main repository of information related to SLO Dev. It is a high-end service with access limited to authenticated users. It has facilities for 50 guest IDs. We (Physics at Capilano University) also use the SharePoint secure shared storage for our Physics labs.
SLO software work targets web server-side development using ASP.net with SQL server. In general, all Microsoft tools and technologies are being used in hope for easier integration. Under construction is a web-based lab management system.