Archive for April, 2010

OOTB Sharepoint – Software emancipation vs. the shackles of technical debt

April 30, 2010

Good friday reading regards the argument

Never use Sharepoint OOTB

vs.

SharePoint OOTB is totally worth it

Having reviewed the above and working in an organisation at the moment where OOTB is the current mantra (and in-house joke amongst the developers) I find myself fascinated by the questions/propositions of OOTB vs. Customisation and (at the moment) without a rock solid position on the matter.

Some things I do think though are:

– There is a conceptual divide.

  • Some devs are like –  ‘the software is mine and any customisation needs be done by me or via software that I create’. This school is quite open to more efficient methods like TDD, Unit testing, refactoring, agile etc. but the idea that they’re the ones in control stays at the forefront af the approach.
  • Other devs (I think like me) look at something like SharePoint and go ‘Awesome’ now I can have the customisations taken care of by users who know what they want (or think they do 😉 While we focus on building awesome infrastructure and tools to allow them to do it. The classic example is page design/layout. The amount of back and forth that can occur trying to get the design to be exactly what some designer/client wants it to be can easily drive me to drink (not a very long drive on a Friday night I’ll admit ;-); So the idea of giving that user tools they can understand and telling them ‘give me a yell when your done’ seems massively appealling. I like the idea of software dev as a ‘role’ versus software dev as a function. Software dev/Information system mgt. has to occur; but whether it’s an individuals whole job (like me) or 10% of everyones job (distributed design tasks) is a question/debate worth having as the world moves on and 90% of your train ride co-passengers spend 80% of their time update facebook pages.

That’s all I got for now but I’ll keep following the issue.

Advertisements

One two many hats leads to role-based confusion.

April 29, 2010

One question I continue to have with all this ‘role based’ stuff

  • Role-based dashboards.
  • Role-based reports.
  • Role-based search
  • Role-based security
  • Role-enabled jelly beans 😉

Is the idea of multiple roles!!!

It’s no real biggy I guess, but everyone seems to be deliberatly ignoring it (the idea of one person playing multiple ‘roles’) which makes me wonder …

People go all-goey for the idea of CEO-Search vs Developer-Search; but what do you do when the CEO is a developer as well.

The obvious point is having additional context for determining which role(s) someone is playing in a given moment of time, but I guess that is a cultural shift as much as it is a technical one.

Something to think about, I’m certainly not sure my mind has rested on the issue. 

Interesting tid-bits from last nights mossig meeting.

April 29, 2010
  1. There’s no real need to install office 64bit edition, doing so is only more likely to generate some sort of incompatibilty. The 64 bit edition was only generated to support people working with really big spreadsheets (like those dudes that run wall street).
  2. There’s a nifty little game for learning about new and old office 2010 features.
  3. SharePoint 2010 search is going to use more a conversational metaphor vs. ‘feeling lucky’ type results.
  4. Role based search is going to be a factor in searching.

The data source control failed to execute the insert command … a simpler explanation

April 29, 2010

It’s easy to see an error message like the one in the title and go running for the hills “FAILED TO EXECUTE” Aghhgh !!! All is ashes …

Or go through and check the things you changed one at a time.

I discovered that the data binding expression I only half understood and had modified to insert new fields (below).

FieldName=”Budgeted Units” __designer:bind=”{ddwrt:DataBind(‘i’,concat(‘ff52′,$Pos),’Value’,’ValueChanged’,’ID’,ddwrt:EscapeDelims(string(@ID)),’@Budgeted_x0020_Units‘)}”/>

Was drawing its references, not surprisingly from the ‘<DataFields> … <DataFields/> tag set.

Where you see ‘@Budgeted_x0020_Units‘ I had instead ‘@Budgeted Units’ I should have suspected that it wasn’t gonna be space friendly.

So take outs

  1. Stay paranoid and avoid spaces in your field names.
  2. Try a few simple investigations before freakin’ out and running for the Internet.

Woah XSLT is huge in SharePoint … Captain obvious strikes again.

April 29, 2010

Ok so I guess anyone who’s done a decent amount of SharePoint front end work is laughing at me right now (Yip i think i can still hear the giggling through the Inter-ether), but I’ll perservere none the less cause I think the only way you get along in this gig we all share is to admit when you don’t know and to ask a few questions when your peering into what could quite possibly be a bottemless abyss of technical bligle-bleh (new word just trying it out now.

So I started playing around with designer … (waits for laughter to cease). Previous to this I’d avoided the tool (mostly) cause I’d heard and experienced that most of the work you produce with it is hard to replicate/backup due to database (un)ghosting in SP and the fact that you have to work on a live sharepoint instance. Though mostly I imagine it could have been related to me loving my nice familiar VS 2008 tools and not wanting to take a walk in the dark scary forest.

And so we go on …

I updated a NewForm.aspx page using the designer to meet a requirement to add some new fields to the form. Things started to head down hill from there. I’d decided to work on a copy of the current page by saving it as a new file name ‘NewPage_mod01.aspx’ but despite this Designer some how made this new page the live page. This scared the bejezzus out of me as I quickly had live-users asking me why the page was broken (NOT GOOD) 😦

I found I could back track this behaviour by deleting the new pages, at which point SharePoint would go back to using the pre-existing page. I’m yet to find out what lever is making these changes but believe you me I’ll comment if I do find out. So far I’ve found a context menu associated with the SharePoint list that allows you to associate it with specific pages but when I make the changes to this dialogue no changes are reflected on the SharePoint farm 😦

Anyways … the context of all this is that to make the modified changes work I discovered you had to look deep into the question ‘what makes a form in sharepoint’

The answer (so far).

Content Type
PageForm (eg NewForm.aspx).

Inside the NewForm.aspx are things to explore like

  • ListFormWebPart
  • DataFormWebPart
  • ContentEditorWebPart

The DataFormWebPart is in turn broken down into.

  • DataSource (Items from a SPLIst for example)
  • Parameters (like they sound)
  • XSL (New it had to crop up eventually.

I guess the intersting thing I observed (and will continue to investigate) is that XSL/HTML will allow you to pretty much do anything you want to the SharePoint visual/logical layout/presentation. Of course I’m exagerating a little bit and this is likely to be limited by other aspects of the SharePoint architecture and my own technical boundaries, but still to find out how simple it is at its core is somewhat exhilirating.

Sorry for the long post, but I felt there was quite a bit of context for my endpoint.

CMIS – Proposed standard for services on content mangement systems … I think

April 28, 2010

This slideshow appears to have a cr*pload of information about a new standard called CMIS.

My takeouts:

  1. M$ and SharePoint 2010 will be CMIS friendly and may even support it directly.
  2. CMIS is interesting enough that folks over at codeplex have bothered to support it backwards into MOSS/WSS 2007
  3. Looks like the idea of being able to connect information repositories without having to totally refactor them is one that people are starting to latch onto.
  4. This would be a good knowledge blob to get out in front of if you were interested in playing in the Electronic Content Management (ECM) space, which I may well.

You mean people right ?

April 28, 2010

Skorks points out that refering to IT workers as ‘resources’ is quite dehumanising and a little bit insulting.

He suggests the next time someone talks about ‘resources’ at your organisation you should reply

“you mean people, right ?”

I’m totally gonna use that ..

I agree with his point, I think dehumanising everything makes folks feel better (like their organisations are some sort of well oiled money making machine).

The danger I perceive as at least two fold.

i)  Like Skork points out, people don’t like being refered to machine parts.
ii) People are, in fact, not machine parts. Expecting them to behave so is likely to lead to disappointment somewhere down the line.

WSPBuilder to GAC or not to GAC

April 23, 2010

WSPBuilder awesome project, if you deploy sharepoint projects and haven’t heard of it (what rock have you been hiding behind) absolutely 100% check it out.

That said little bit of behaviour that I didn’t get (it may well be documented) until I messed around with this a little with my good buddy Puja Dhanetwal from Vision Australia.

When you run WSPBuilder if any referenced dll’s are already in your machines GAC WSPBuilder won’t include them in the solution package. If they (the referenced assemblies) are NOT in the GAC then WSPBuilder WILL include them. For a short while (pre-experminatation) this behaviour mystified me, but now it seems pretty straight forward.

Short and sweet.

I’m converting a manual deployment SharePoint project to feature deployment at the mo. and WSPBuilder and SPSource are like my sword and shield in a battle against the maraudering hordes of unbelievers 😉

Tell your SharePoint Admin you were right about me … you were right

April 21, 2010

Just started reading this white paper by Jeremy Thake (note you’ll need to register or ping Jeremy to get a copy of the paper, free and pretty painless).

What I love about this paper, which provides guidance on how to build and deploy SharePoint apps in a robust manner is, at the very least, twofold.

i) It validates and provides additional rationale behind things that I would generally, if asked, report to be ‘best practice’ or a smart way to get things done. This is good because it gives me great ammo when I’m trying to back up my rationale against folks who don’t believe or wan’t to take short-cuts (mostly cause they don’t believe and in that case who could blame ’em).

ii) (This is my favourite) it shows me all the alternate things I might have been doing if I wasn’t doing the ‘best practice’. The context of any decision to do something is generally all the things you’re deciding not to do and the associated rationale behind not doing them. This, being a relative (couple of years) newbie to SharePoint app development is something I want to improve. It makes for a much more persuasive mgt. argument then “But it’s not best practice” to be able to say, “Well if we do that I anticipate the following unfortunate consequences that maybe we can/can’t live with.

In summary I’d recommend just about everyone to at least browse the index of this white paper to cross-check your view of SharePoint App. Life Cycle ‘Best Practice’.

For those of you wondering the subject line is a reference to Return of the Jedi when Vadar has his mask revealed and validates Luke’s assessment that there was good in him all along despite the dark/evil exterior.

Is this the difference between facebook and a twitter ?

April 18, 2010

OK, I’ll happily admit I’m one of those folks who still don’t really ‘get’ twitter. It just doesn’t really come naturally for me. I find myself self censoring (maybe a good thing), thinking do people really wan’t to know this ?

Anyways (ironically) here are my related thoughts. Heavily influenced by software development I’m sure.

Facebook is for state (what are you thinking, how are you ?)
Twitter is for behaviour (what are you doing right now, what have you just done?)

I’m aware not everyone uses it like this (nor should they have to). But for me I was thinking it might be a good divide.

This is a question that I’m very interested in so if you have any insights around this please leave a comment, and maybe you can help me resolve the idea.