IIS7 WCF .SVC 404

This is a tip for myself:

For the weird reasons I could not understand – if your IIS7/Vista doesn’t have a handler for .svc all of a sudden – you can re-register them using the following registration.

I’m still not sure why this suddenly stopped working :-(

 

"C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r -y

SharePoint - On the verge of launching a new release of a SharePoint site

On the verge of launching a new release of a public SharePoint website and I came across this list (from shanselman’s twitter actually).

15 Essential Checks Before Launching Your Website

Here’s how we fared:

  1. Favicon checked and done!
  2. Titles and Meta data checked!  Actually SharePoint comes with quite a bit of baggage, but we started with a clean masterpage so this is not too bad.
  3. Cross-Browser Checkschecked!  IE6, 7, 8, FireFox, Chrome, Safari + iPhone.  RichHTML editing is limited to IE for now – but there’s a release soon afterwards to upgrade to Telerik’s RadEditor Lite.
  4. Proofreadnot enough :-(
  5. Linkschecked - using both SharePoint’s internal reports and SSW Link Auditor – hopefully the content editors don’t put in bad links from now til launch…
  6. Functionality Checkchecked!  My biggest fears are that in the sprint until launch, if we accidentally break an existing feature that was working previously, so far my fears have been unfounded.
  7. Graceful Degradationnot checked…  I think I’m going to feel guilty for saying this one, but I just don’t think it’s relevant to check for JavaScript now.  Especially on a SharePoint site.
  8. Validationno - it’s SharePoint.  This is going to be a tough one to tick off.
  9. RSS Linkchecked – may be.  One of the features of this release, unless we have to cut it.
  10. Analyticschecked – both the SharePoint reports, as well as Google Analytics that was used for the old site
  11. Sitemapchecked – SharePoint does this naturally
  12. Defensive Designchecked.  SharePoint allows for 404 to be customized
  13. Optimizenot enough.  We’re utilizing quite a few performance tricks we have up our sleeves, but ultimately there’s just not the level of control in SharePoint vs. say a custom ASP.NET application
  14. Back Upchecked
  15. Print Style Sheetneed to check again.  This was working previously but we’ve had some work done on the site in the last two releases and I’m a bit worried about our good ol’ print css.

 

So we scored 10/15.  Ticked off most of the easy ones.  Have quite a few really tough ones left.  Wish us luck!

SharePoint – thoughts on MSDN “Configuring and Deploying Anonymous Publishing Sites for SharePoint Server 2007”

Andrew Connell’s white paper on Configuring and Deploying Anonymous Publishing Sites for SharePoint Server 2007 just went up on MSDN.

The following are my thoughts in detail.  For the most part – I agree with the views presented in the white paper, and I believe the white paper covered at a glance many of the crucial aspects of anonymous publishing.

Some of these points I wanted to further elaborate and explain some of my own experiences and/or approaches that I’ve found to work better.

 

Limiting the Page Payload

Fiddler is great.  FireFox’s FireBug also serves a similar purpose.  You want to try to reduce the number of files that are sent across.  Reducing CSS, core.js, core.css will go a long way to reduce the page payload.

I’ve found HttpModule to be far better at stripping core.js, core.css and much of the unused form hidden fields from the output.  Need a lot of testing though.

In addition – check out YSlow FireFox add-in.  Which discusses issues such as E-Tags not being set properly in IIS – you might as well turn it off and let browsers determine file base on modified date / size.

Managing the Name ActiveX Control

This is related to my earlier blog SharePoint – Name ActiveX Control error.  I discussed the circumstances on why this ActiveX control is appearing, what does it do, and why does it only give you grief when running in the Internet Zone on IE.

While the Mossman Way works – I prefer using a HttpModule.

Anyway – I thought if Person Name Smart Tag and Presence Settings is switched off via Central Administration this would have gone away (mentioned later in the white paper).  UPDATE - tested this doesn't work - while the setting is off it still asks for the Active-X

Taking Advantage of Custom CAS Policies for Custom Code

Use CAS policies so you can keep to WSS_Minimal.

Many of our assemblies are deployed in the GAC which runs in full trust.  The reason we put them in the GAC is more a decision related to solution package deployment, and not from a security point of view.

Configuring a SharePoint Site Collection or Site

Blocking Users from Seeing All Pages in a SharePoint Publishing Site

ViewFormPagesLockdown is absolutely necessary.  I’m so glad it’s mentioned in this white paper.

Enabling and Configuring Caching

page output caching and object caching are mentioned – both are very useful.  Page Output caching for the anonymous profile is necessary to achieve high performance from a public site.  Remember to switch on the comment so you can catch caching issues from your staging and production servers.

blob caching is not mentioned – I’m not sure the reasons, but I’ve found it to be useful but I have seen the blob cache rendering and cropping only half of the CSS file that I have.  Is that a SharePoint bug?  Hard to say.  I found some blog articles that asked the same questions – blob caching is one of those supposedly-low-risk-high-gain performance configurations that you can do, but I ended up with only use blob caching with sufficient testing.

Configuring a SharePoint Web Application

Disabling User Presence Information

Just echoing this – I think this should stop the ActiveX presence “name.dll” appearing on IE when you stop this.

UPDATE - tested this doesn't work - while the setting is off it still asks for the Active-X

Disabling the Blog API

Disabling Incoming E-Mail

Separating Content Between Authoring and Production Environments

I noticed I stopped commenting much towards the end of the article.  It was good to see publishing content deployment being discussed at the end - great article.

SharePoint – IE8 standards mode causes trouble in SharePoint

Running SharePoint on IE8 – JavaScript errors when using the rich text editor.

‘null’ is null or not an object – in form.js

clip_image002

 

The debugger shows that the SharePoint javascript code was trying to call:

document.getElementById("ctl00_PlaceHolderMain_EditModePanel3_ctl04_ctl00_RichHtmlField_displayContent_LTR")

The id of that element is actually: ctl00_PlaceHolderMain_EditModePanel3_ctl04_ctl00_RichHtmlField_displayContent_ltr

In IE7’s incorrect JavaScript behavior – it finds the element and returns it.

In IE8’s correct JavaScript behavior – it doesn’t find the element and returns null.  -> Error!

---

IE8 will attempt to use IE7 compatibility mode when accessing intranet sites.  It will use IE8 standards mode when accessing public internet sites.

This means that when accessing your SharePoint site via the extranet URL – http://sharepoint.company.com/ you will get this error, but accessing it internally – http://sharepoint/ will be OK.

----

Ways to fix this (easy to hard):


  1. Custom Header in web.config (site-wide)
    http://msdn.microsoft.com/en-us/library/cc817572.aspx
  2. Meta tag in master page (specify per masterpage)
    http://msdn.microsoft.com/en-us/library/cc817574.aspx 
  3. Use Telerik’s RadEditor Lite – free alternative
    http://www.telerik.com/products/aspnet-ajax/sharepoint.aspx
  4. Wait for MS SharePoint hotfix
    UPDATE: waiting for MOSS service pack 2 - which contains IE8 support
  5. UPDATE: tell your editors to run SharePoint in compatibility mode

So you want to be a SharePoint architect

Someone asked what is a SharePoint architect:

http://stackoverflow.com/questions/654318/what-knowledge-should-a-software-architect-have-about-sharepoint/

Here’re my thoughts collected and reposted (and most likely incomplete):

 

Skills such as list, documents, workflow, permissions... are a bit too basic and are requirement for a SharePoint DEVELOPER.

I'd argue that perhaps site (and site structure) is an area that would fall under the architect's plate.

There are more areas that a SharePoint architect can help with:

  • Capacity planning - running multiple servers in a farm. Scalability and other magic words.

  • Knowing the capabilities and business scenarios of using SharePoint - this is a very common one.
    The manager asks: what can SharePoint do for me? The developer asks: well, what do you want it to do. The manager then asks: well, I don't know what it can do for me so how do I know what do I want it to do?

  • Closely related to SharePoint capabilities are the various licensing costs related to each component.

  • As well as familiarity with development and customization costs. Take the same project time that would have taken in ASP.NET, then multiply it by a large coefficient, and then add an additional constant.

  • And closely related to what-can-it-do, and how-much-does-it-cost, is the all important question of Return-Of-Investment. All hail supreme ROI!

  • SharePoint deployment can be a massive issue and a lot of pain.

  • SharePoint upgrade from v2 (MOSS 2003) to v3 (MOSS 2007). We should be seeing a new version of SharePoint in 2010(?). Well soon after the next version of Office goes out the door. So past upgrade experiences may be useful.

  • Knowledge of 3rd party webparts. I believe a SharePoint architect should be able to give you at least 5 webparts that they've tried from CodePlex and tell you what they think about them. These are free and easy to grab and play at your own leisure.

  • Some knowledge of commercial webparts. Because they are still cheaper than writing your own.

  • Have at least 5 SharePoint blogs that they follow religiously (know the community). If not having their own SharePoint blog (give back to the community).

  • If they are on StackOverflow they must try to answer SharePoint questions (such as this one).

  • Attend local SharePoint usergroups. I think communities are a huge deal. Especially what you'd learn from talking with people directly and learning what they are doing with their SharePoint installation. You may just surprise yourself.

  • Experiences with SharePoint Integration - this comes in two equally important flavours - both from SharePoint accessing existing systems (business catalogs, webparts, etc), as well as other systems accessing SharePoint content via webservice or API.

  • In addition, SharePoint works with (or works well) with Office, OCS, reporting services, performance point, project server.

  • SharePoint hosting arrangements - Microsoft SharePoint online services can be a popular and cheaper option to start using SharePoint. It can be hosted inhouse, or with a 3rd party company. Knowing the options is always useful.

  • Must have read SharePoint code using reflector (and preferably still having hair).

I think it takes at least a couple of years to be a SharePoint architect (your mileage may differ). Your .NET architects need to want-to-be a SharePoint architect, otherwise I agree with other's summaries before me - find someone who already is a SharePoint architect.