For work, I’m using a Windows 2008 Server virtual machine for doing all my SharePoint and .Net development on. As it has got all of the cool stuff I’m working on, it is also the machine that I use to demo what I can do to clients. Recently I’ve had a bit of a serge in the number of clients wanting to see Nintex Workflow 2007 (NFW2007) for SharePoint.
One of the cool features of NWF2007 is the whole Lazy Approval system, whereby users don’t have to go into SharePoint to approve to decline requests, they can just reply to the notification email with “approved”, “declined”, “ok”, “yes”, “no” or any other recognised word as the first line of the email. In or to demonstrate this I need to setup and email system on my local machine. The SMTP (sending) side of things is easy as it is built in to Windows 2008. However, POP3 is a bit of a problem. Previous version of IIS had a simple POP3 service but that has been dropped in IIS7. The Microsoft way would be to install Exchange Server but that is a little too heavyweight for what I am trying to acheive. Luckily a company called Visendo provides a free solution to plug the gap. So now I can demo Nintex notification features.
Another feature I also wanted to demonstrate was setting up Active Directory accounts and then using those new accounts. Nintex has got actions that allow you to interact with Active Directory but to then do anything usefull with the account required modifying xml config files and restarting the Visendo service. But Nintex can call web services, so I’ve created a web service that has an AddAccount and DeleteAccount methods to update the Visendo configuration and restart the service.
I’ve made the source code for this web service freely available should anyone else want to have this sort of functionality: VisendoSMTPService. The code is written against .Net 3.5 and is provided “as is” with no sort of warranty and is most definitely NOT recommended for live systems. The code is released under a BSD License.
For several years now I’ve been trying to find a way of keeping on top of everything that I need to get done. To be honest, I didn’t think I had a problem until I read David Allens book “Getting Things Done” (GTD). It was whilst reading that book that I realised that I spend most of my time worry about what I need to get done and what I might be forgetting to do and not enough time actually doing things.
I’ve had several attempts at trying to follow the GTD methodology but so far they have all failed and I’ve reverted to just relying on the good ole grey matter to remember what I have got to do. I’ve tried using software to help me – iGTD, Midnight Inbox, OmniFocus, Outlook, iCal, Google Calendar – but the problem with a lot of these is that they are either platform specific (I need my laptop with me) or are calendar based (a lot of what I need to remember is not date specific).
Other attempts have been centered around a notebook that I try to remember to take with me. This has inevitably resulted in my failing to remember to take my notebook with me and therefore forgetting to update it what I have it to hand again.
I am now embarking on another attempt to follow the GTD methodology. This time I’m resting my faith on a relatively new entry into the GTD software arena: TheHitList form a compay called Potion Factory. A couple of nice features that I’m hoping are going to make this easier for me to get along with are:
- iCal syncing (I have all my calendars synced – iCal, Google, Entourage, iPhone)
- Repeating tasks (cleaning fish tank, mothly invoicing, etc.)
- Timer (hopefully no more getting distracted!)
- Future iPhone support (I may forget my notepad but I NEVER forget my iPhone!)
As great as this software is shaping up there is one striking feature that I think this app – and all other GTD apps – really needs. Task Locations! So I’ll go out to run some errands, get home and realised there was some else I could have got done because I was in the area but didn’t because I didn;t think of it whilst I was there – if I had a map on my iPhone of tasks in my current location I could get more done in less time.
I’m not sure of how the iPhone app UI is going to look for TheHitList but I came up with a (very) rough Photoshop version of what the desktop app might look like.
This example is showing the Today list selected and the map with the number of tasks for today on their locations. If you had general list selected it might show the tasks for today in red with tasks in the future fading through to grey for tasks without a specific date. With this type of functionality you’d be easily able to see if you’re going to a location for a specific task whether or not there were other things in the area you could do at the same time.
I’ve been developing with SharePoint for about 9 month now, and by developing I don’t mean airy-fairy SharePoint Designer drag-and-drop, I mean proper getting your hands dirty in code because SharePoint doesn’t have an *cough* out of the box *cough* feature that does what you want.
Mostly, deployment is done in two stages, firstly to a UAT box and then to a Live box. Obviously the most efficient way to do this is to bundle your features into a solution which can easily be deployed onto any number of machines. But, it does mean you have to make sure you’ve got everything right. Untangling mistakes in your code can be a right royal pain in the arse.
By the time you’ve developed your solution, tested it out, deployed it to UAT and tested it again you should be fairly confident that when you come to deploy it on the Live server things should go pretty smoothly. And, touch wood, to date things have gone smoothly.
But I still can’t get over that rush of adrenaline that comes with clicking “Activate Feature” after deploying the solution on Live. In the second or two whilst the page waits to reload my mind runs through all the possible things that could go wrong and how long it would take me to unpick the changes my code might have got half way though. Then the page finally loads…..
….. “Feature Activated”, phew! Time for a lie down to clam my nerves.
Last year I was working with a client to develop some ISV add-ins for Microsoft Dynamics CRM. Recently I was alerted to the fact that one of them – a seperate aspx page that loads in an iFrame on the account details panel – wasn’t printing correctly.
It displayed correctly in the normal view form, appeared correctly on the print preview form but when actually printed it was collapsed down to one or two pixels high.
After doing a bit of research, I found this post by Vince Bullinger, in which he gets around the problem by, as far as I can tell, modifying a core CRM css file. Whilst this will work, it should be noted that any modification to core CRM files is not supported and will almost certainly break or be lost by updates and hotfixes.
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="Summary.aspx.cs" Inherits="CRMWeb.SummaryStatus.Summary" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<form id="form1" runat="server">
<!-- content goes here -->
var dh = document.getElementById("pageWrapper").offsetHeight;
document.parentWindow.frameElement.height = dh;
document.parentWindow.frameElement.style.display = "block";
document.parentWindow.frameElement.style.height = dh + "px";
It probably doesn’t require the iFrame height and the iFrames style.height both being set but I decided to take a belts and braces approach.
In addition to ensuring the iFrame content is printed, I am also planning on implementing the code on Vince Bullingers page for loading a specific css stylesheet for printing.
When I first started developing with SharePoint in June last year the last thing that was on my mind was Enterprise Search. I had considered it the sort of technology that you just plug in a magic box and it just did all the work for you.
Recently, however, I have been involved in developing a customised search solution using Microsoft Office SharePoint Server (MOSS) to allow a client to search client and non-client related documentation within their organisation. What I rapidly discovered is that enterprise search is not a plug-and-play affair. A lot of thought needs to go into the meta data that is used to define the taxonomy of the data (in this documents) and also how users are going to interact with search and how to make sure they get the information they need.
I have also recently been on a training course at FAST Search,which was acquired by Microsoft in April 2008. The course was both an introduction to the structure of FAST ESP and also an in-depth look into customising the internal, both feeding content into the indexing engine of FAST ESP and building a rich user experience for getting content from the FATS ESP search engine.
The two activities have really awaken me to how powerfull enterprise search can be in empowering users to find information which previously they either may not have know how to access or, more likely, simply hadn’t known existed. Whilst I was learning about FAST Search, it was generally anticipated that it would be included with the next generation of MOSS. Today that was confirmed at FASTForward ’09 when Microsoft announced its roadmap for enterprise search which has two initial streams, firstly FAST Search for Internet Business which is mainly aimed at internet retail businesses – like you’d use to find products on Amazon. The second, and more interesting for me, stream is FAST Search for SharePoint, which will integrate FAST Search more closely with SharePoint and would be used for the type of internal information discovery that I have been working on recently.
Mark Harrisson also noted on his blog that Microsoft is going to be offering ESP for SharePoint immediately which is
a special offering that allows customers to purchase high-end search capabilities today, with a defined licensing path to FAST Search for SharePoint when it becomes available.
I haven’t been able to find out more information about ESP for SharePoint, but it certainly looks like it could be an interesting product to get hold of. I the mean time I’m keen to continue working with MOSS Enterprise Search and have just the right project lined up to flex my new found love of search on.
I’ve finally upgraded VMWare Fusion on my Mac to the latest release candidate for version 2. I had been holding out for the final version but I got tired of waiting.
The main reason for upgrading was that I’m using VMWare Fusion for running Windows 2008 Server on MacOS as my work development machine. The downside of using VMWare Fusion 1.x is that whilst 2008 server will run very happily, it doesn’t have support for audio.
Normally this wouldn’t both me as I normally watch BBC iPlayer, YouTube, etc. under MacOS. However, I’ve been doing some SharePoint research and watching a lot of SharePoint related screencasts and it has been really awkward flicking between watching a screencast on one virtual desktop and trying out code on another – I didn’t want to use Unity because I like my development desktop to be free from clutter and my MacOS desktop is very cluttered.
I also wanted to try VMWare Fusion 2 as it says on the tin that it is much more resource efficient. When you’re running MacOS native and two or three VMs, you need to start thinking about what effect that is going to have on performance. I’ve been tweaking CPU and memory settings on the VMs to the n’th degree but my system still drags when starting and stopping VMs… maybe a new MacBook Pro will be required
One of the things I’m working on is Event Receivers in SharePoint but I’ve found registering the event receivers to be a bit on the annoying side. Yes you can do it with the feature.xml Receivers section and there is the great El Blanco Event Receivers Manager.
I personally prefer desktop GUI applications and so, based on code by Liron, I’ve created my own desktop Event Receiver Manager. It allows you to select site & list, browse for an assembly so it can give you the full assembly name and a list of classes inside, and a list of receivers you can attach to.
The current version only allows adding new event receivers. Before adding a new receiver it will check to make sure the same receiver doesn’t already exist.
Future plans for it include listing existing receivers to allow users to delete them but as I don’t need to do that myself yet I haven’t implemented it.
Download a copy of EventReceiverManager.
Part of my job with Contract5 I have to do development on the Windows Sharepoint Services platform. In order to facilitate this I setup a VMWare virtual machine with Windows 2008 Server, Sharepoint and Visual Studio 2008.
However, I made the bad error of deciding to change the computer name once all of the above was installed. Unfortunately I didn’t realise that the computer name was so deeply rooted in the Sharepoint installation. I also tried reverting the computer name back to it’s original value but this didn’t seem to make much difference, if anything it made the situation worse.
No amount of removing Sharepoint and re-installing it made any difference as the original settings still seemed to be there. Eventually I gave in and completely rebuilt the VM.
I have since discovered that my problems were all due to the four Sharepoint databases that got installed the first time round which are not removed when Sharepoint is un-installed. I have found a this knowledge base article on removing the Sharepoint databases: http://support.microsoft.com/kb/920277
Evernote has opened up invitations slightly. Previously anyone wanting a beta account had to request an invitation from Evernote. Now, Evernote has given every user 5 invitations to give away.I’ve decided to give away 3 of my invitations to anyone that wants. Just leave a comment on this post and I’ll get back to you with an invitation. I’ll be keeping 2 invitations back in case any of my close friends haven’t yet got in on the Evernote goodness.
UPDATE: I’ve got 5 more invitations to give away. Leave a comment and I’ll send one to you.
Technorati Tags: Evernote,beta,inviation,give-away
Evernote has just released an Mac OS X version of the interface to the Evernote application. I haven’t had a chance to test it yet as I work in a Windows only office but I shall be testing it as soon as I get home.
This must be news hot off the press as they haven’t posted any information about it on their blog yet!