Archive

Author Archive

Hiding Disabled Users in Active Directory Groups on the SLK Assignment Properties Page

May 29th, 2009 RichardWillis No comments

I’ve just finished updating SLK for a UK school who had problems with learners disabled in Active Directory showing when they were assigning work through SLK. Firstly, I must say that this is a solution for a particular problem that they had and isn’t really a general purpose solution. If a learner is disabled, you should really be displaying them so you can assign then work. They may only be disabled temporarily, e.g. as puishment for computer misuse, but will still need to do the work when they are re-enabled.

The situation this school was in, is that they are running the Sims Learning Gateway (SLG). Part of how that works is that there is a component to create AD users and class groups based on the data in Sims. However, the users created by SLG are then ‘consolidated’ with the ‘real’ AD users, so these can then use the Sims web parts. As part of the consolidation process, the SLG users are disabled and the real users are added to the class groups, however the disabled SLG users are not removed from the AD groups.

Now the school were using these AD groups to assign SLK Learner permisssion to in order to assign work. So when the teachers came to assign work and selected their class group, each pupil was represented twice in the list which was a bit confusing.

The solution was to update the SLK code so that there is now a setting to hide disabled users. This will mean that when SLK goes to get the list of all Learners on a site it will ignore users in Active Directory groups who are disabled.

To get this set up you will first of all need to download and upgrade to the version with the setting in on the 1.3.2 build page . Then set the setting by:

  1. Go to the Configure SharePoint Learning Kit page in SharePoint Central Administration.
  2. Make sure that the correct site collection is selected and then click ‘Click here to download the current SLK Settings file’ near the bottom of the page.
  3. This will open up the SlkSettings.xml file in a new browser window. Save this to disk.
  4. Open the saved file in a text editor e.g. notepad (do not use Word or similar)
  5. Add the attribute HideDisabledUsers=”true” to the file as indicated in the screen-shot

6.  Then upload the modified SlkSettings.xml file by adding it the page to “New SlkSettings  file:” and clicking OK.

This will work for schools using Sims Learning Gateway with the same issues, but I wouldn’t necessarily recommend it for anyone else. My personal preference is to give the individual users the appropriate permissions on the class sites rather than using groups. Groups will always cause issues when it comes to rollover and I just think it’s cleaner and more intuitive to have the direct permissions. I would also have removed the disabled users from the groups. Of course I’ve got the toolset to do all of this easily.

Categories: SLG, SLK, Sims Tags:

Getting SPControls.DateTimeControl to display the local date format

May 29th, 2009 RichardWillis No comments

One of the minor problems with SLK was that on the Assignment Properties page the Start and Due dates were always being shown in US format, no matter what the regional setting were. There was a really simple fix, you just need to set the LocaleId of the DateTimeControl and then it will display the date in the regional format of the site.

                spDateTimeStart.LocaleId = SPWeb.Locale.LCID;
                spDateTimeDue.LocaleId = SPWeb.Locale.LCID;

A version with this fix in is now available on the 1.3.2 build page.

Categories: Development, SLK Tags:

Learning Gateway User Group Logo

May 29th, 2009 RichardWillis No comments


The logo for the Learning Gateway User Group was designed by Sam Dolan of Pink Petrol. I just want to say that he’s done a great job on this and the SharePint one. I’m sure he’d be available to work on your site as well if you like what he does.

Categories: Microsoft Learning Gateway Tags:

Learning Gateway User Group Set Up

May 29th, 2009 RichardWillis No comments


Alex Pearce has worked hard to get a Learning Gateway User Group up and running and it’s now live at http://www.learninggateway.net/. It’s all about the use of SharePoint in education, not just the CodePlex Microsoft Learning Gateway. So if you’re in education and using SharePoint, get yourself over there and register, and we can build a vibrant community and help everyone improve their gateway.

How do I see this in relation to the SLK & LG discussion forums?

I think that they compliment each other. I would see the CodePlex forums for more technical issues, mainly around problems with the typical user being the SharePoint administrator. Then the Learning Gateway User Group would be more about best practises, getting other application integrated and how to use it, with the typical user being more along the line of a VLE manager or user.

Categories: Microsoft Learning Gateway Tags:

How is e-Learning Content sent to the user in SLK

May 28th, 2009 RichardWillis No comments

When an e-Learning package is accessed for the first time, SLK will cache the package on the web front end file system. Caching consists of unpacking the zip file and storing it on the file system. Subsequent requests will use the cached package, as long as they are not outside the cache expiration period. This will speed up subsequent showings of the package. Large packages are going to have a delay the first time someone accesses them after a cache expiration as they are unpacked.

Once the package is read from the cache then SLK will read the manifest to determine the navigation of the content and generate the table of contents for the frameset. Once this is generated the frameset is shown to the user who can then use the table of contents to navigate around the content depending on the sequencing rules of the package.

How the content is then sent to the user depends on how the content has been written. Typically each navigation node will be a separate item in the zip file, which will be downloaded when the user navigates to it. This will lead to a slight delay every time the user navigates between activities, the length of which will depend on the size of that activity and the network connection between the browser and SharePoint – just like any other web content being downloaded. I can also imagine that there are some packages which initially download all the content of all the activities. This will lead to longer start up times again depending on the size of the content, but quicker navigation within the package.

Cache Settings

The default cache settings are to use a cache on the individual SharePoint server and to keep it for 3 days. After this it will be removed. In a server farm this means that each web front-end server will maintain it’s own cache, leading to several initial requests as the load balancing passes requests to different servers. The cache location can be set in the SlkSettings file allowing the farm servers to share a cache. This should allow more hits on the cache and hence less unpacking.

Cache settings are set in the SlkSettings file and hence are on a per site collection basis, allowing you to have different settings for different site collections. The 2 settings are PackageCacheExpirationMinutes and PackageCacheLocation.

Categories: SLK Tags:

Alternative SharePint

April 3rd, 2009 RichardWillis No comments

If you can’t make the official SharePint on Wednesday, then we’re having an unofficial one on Tuesday. Same time, 7 pm ish, same place The Old Star (66, Broadway, Westminster, London, SW1H 0DB). I’ll be there and so should the guys from Twynham school.

Feel free to come along even if you’re not at the conference.

Just turn up or you can get me on twitter (RPWillis).

Also posted on Edugeek and CodePlex.

I’ll be going to the one on Wednesday as well.

Categories: Uncategorized Tags:

First thoughts on Course Manager code

March 30th, 2009 RichardWillis 4 comments

Now I’ve updated Course Manager to reference SLK 1.3.1, had a dig around the code and fixed some issues reported by the community it’s time to discuss my first thoughts on it.

Firstly this is about the Course Manger source code and not its functionality. Andrew Woodward has done a great review of that on his blog.

First thing to realize is that Course Manager is basically 3 web parts:

  1. Course Manager Pages : 2 links to pages with the other web parts on
  2. Plan & Assign : Where you create the courses and assign them to students
  3. Monitor & Assess : Where you grade the assignments

To implement these Course Manager consists of 5 dlls. Yes that’s right, 5 dlls for 3 web parts, 1 of which is just 2 html links with no business logic in it. Looking closer the 5 dlls are

  1. Axelerate.DataAccessApplicationBlock.dll
  2. Axelerate.BusinessLayerFrameWork.dll
  3. Axelerate.BusinessLayerUITools.dll
  4. Axelerate.SharedBusinessLogic.dll
  5. Axelerate.SlkCourseManagerLogicalLayer.dll

Looking at the code only the last one, SlkCourseManagerLogicalLayer actually contains any SLK/Course Manager functionality, the rest are all plumbing. In fact the first 2 projects are written in VB.net while the rest are in C#. It’s fairly obvious that the first 4 components are are supposed to be a generic framework, which has been used to build the course manager and contains a lot of code which isn’t used by Course Manager – more on this later. Digging deeper on the framework and googling Axelerate leads to aXelerate Solutions, who Microsoft must have commissioned to create the Course Manager. My guess is, and it is a guess as the Course Manager code is way before my time as project co-ordinator, is that aXelerate created Course Manager the way they create all their applications, using their custom framework. Whether or not they realized that they were going to have to release the framework code as open source is another matter. I suspect not as that sort of thing tends to be considered a commercial advantage and secret. Fact is Course Manager is unusable without it, and couldn’t be considered open source without it. Trawling around I have found out that the framework has itself been released as open source at http://www.codeplex.com/AxelerateLibraries with a press release (dated 15 Oct 2007 but released 30 Oct 2008) and an overview.

Now the point of a good framework is that it should enable you to add more functionality easily and maintain it. I’m actually finding that it’s getting in the way and causing more work. For example I’ve spent several hours figuring out why Course Manager just wasn’t working and giving the informative error “No data found”. I eventually tracked it down to mismatched versions of AzMan. The first problem with that is that the error handling was atrocious, it threw away the original error and just displayed a generic error, which it displays if any of the data access had failed. There was no way of finding out what the problem was without modifying the code to not catch the error, this is not maintainable is anything but a development environment. Secondly, as far as I can make out AzMan is not even used in the Course Manager web parts. AzMan is a role-based access control framework from Microsoft which uses an MMC snap-in to manage security. Course Manager just relies on the SharePoint security model, so the AzMan access checking, which is embedded all through the code is superfluous. However, the fact that Course Manager breaks without the correct version is really annoyying. The worst part is that the installation routine checks for the correct version of SLK and .Net, before letting you install, and those checks were broken so no one could install. Please, either check for all requirements, or none, not just a couple that you feel like checking for, It’s either a fully robust installation, or a requirement for the installer to manually check for everything first.

I’m not convinced that anyone apart from the authors of the framework is going to be able to add easily any functionality to Course Manager using the framework, or maintain what is there. Why couldn’t they have used a mature, robust, full featured framework like NHibernate is beyond me. Granted NHibernate doesn’t handle the UI stuff, but thousands of successful projects use it rather than just one.

Finally the two biggest problems of the framework are:

  1. Many, many warning on building the projects. There should be 0.
  2. There are many places where all exceptions are caught and ignored. This is fundamentally wrong.

Categories: SLK Tags:

European Best Practices SharePoint Conference

March 25th, 2009 RichardWillis No comments

I’ve finally got round to booking this. It’s on 6-8 April in London and looks like it will be a great conference. Don’t miss Andrew and Alex’s lunchtime session on Wednesday about SharePoint in Education. Find out more on their web site.

If anyone else is going it would be great to meet up. If anyone is interested we could try to find some space for an SLK discussion group. Let me know if you are interested in either of those and I’ll see what we can arrange.

Categories: SharePoint Tags:

Running IIS application pool as a domain user

March 25th, 2009 RichardWillis 1 comment

Just finished setting up an IIS application pool to run as a domain user. There’s a number of hurdles you have to jump over before it will work.

  1. In local policies, set the account to “Act as part of the operating system”. Administrative Tools | Local Security Settings | Local Policies | User Rights Assignments | Act as part of the operating system
  2. In local policies, set the account to log on as a service.
  3. Give the account Modify permissions on the folders asp.net uses to create it’s temporary files.
Categories: Development Tags:

Twitter

March 21st, 2009 RichardWillis No comments

Finally signed up to Twitter to see what it’s all about. User name is RPWillis.

Categories: Uncategorized Tags: