Friday, November 14, 2008

Wishlist SharePoint Office 14

Should have
01. Preview for blog and list item editing...without sending email alerts to subscribers.

02. More Custom Action Menu's with security trimming.

03. Hiding Left Navigation , Top Navigation options.

04. Rule based option for 'Alert Me' to be able to recieve alert.

05. Alert Template selection option under 'List Settings'.

06. Easy way to make changed to 'Web.Config'. Some sort of merge mechanism.

07. Custom Folder structure support in FEATURES folder.

08. Easier way to add new file type without editing DOCICON.xml

09. Easier way to add new Alert templates without editing AlertTemplates.xml

10. Custom Folder structure support in Solution Management.

11. Ability to collect input while Activating Feature, kinda like in workflow with initiation data.

12. New Field types ( With privacy options ) http://www.infoq.com/articles/Dressel-Gogolowicz-wss-security

13. Way to execute Timer Job every few hours ( every 4 hrs )

14. Feature Stapling option of existing sites ( may be by specifying an attribute )

15. Select All / Remove All for the lookup field control

16. Workflow for site collection / site level , currently for list/library only

Missing

1. Ability to create publishing / webpart pages - within subfolders.

Some Ideas
1. User personalizable themes ( Delegate Control )

2. Meta Data Injector ( Delegate Control )

3. Request Access List with Accept Reject Option

Friday, November 7, 2008

Hiding/Showing items depending upon list meta-data

Scenario:
You want to toggle visibility of the list items depending upon particular audience.
i.e Group A should be able to see some documents/items if one of the meta-data field says A.

Solution:
List Audience Targeting

Steps:
1. Create various different Audience in Share Service Provider with rules using MetaData.
2. Go to the List > 'Advanced Settings'
3. Click on 'Audience Targeting'
4. Select 'Enable Audience Targeting'
5. You will get an extra column for each item 'Targeted Audience'
6. Specify the created audience and this will toggle the document/item visibility.

Note:
Audience is not Security as user can still reach to the item if he know the Url.

Article:
Code Guru

Wednesday, November 5, 2008

What are Control Adapters ?

Control adapters are simply a way of providing different renderings for controls without actually modifying the controls themselves. Because control adapters are designed to provide alternate renderings for different clients, you specify control adapter mappings in a .browser file, which is where associations between User Agent strings and browser capabilities are defined.

The control adapter class itself must inherit from the System.Web.UI.Adapters.ControlAdapter, which is an abstract base class that looks much like the Control base class, with events for Init, Load, PreRender, and Unload, as well as a virtual Render method.

Resources

ASP.Net
http://weblogs.asp.net/scottgu/pages/ASP.NET-2.0-Tips_2C00_-Tricks_2C00_-Recipes-and-Gotchas.aspx

http://www.asp.net

SilverLight
http://weblogs.asp.net/scottgu/pages/silverlight-posts.aspx

Silverlight Official Home

Power Shell

Form Based Authentication for SharePoint

Scenario:
You want to configure Form Based Authentication ( FBA ) for the a group of users.

Solution:
Again , SharePoint is nothing but ASP.Net application, so the process is almost the same for SharePoint. Also SharePoint comes with its own Login.aspx page Out-Of-Box , so no need to design one.

Article:
http://msdn.microsoft.com/en-us/library/bb975136.aspx ( 3 Part series )

http://www.simple-talk.com/dotnet/windows-forms/configuring-forms-authentication-in-sharepoint-2007/

http://www.codeplex.com/fba

http://blogs.msdn.com/harsh/archive/2007/01/10/forms-based-authentication-in-moss.aspx


Products:

Changing port for Central Administration Web Application

Scenario:
You want to change the port number for the Web Application hosting Central Administration

Solution:
Use STSADM utility.

Code:

Stsadm –o setadminport –port 5555
Article:
http://technet.microsoft.com/en-us/library/cc262249.aspx

Tuesday, November 4, 2008

Backup site collection using Powershell

Scenario:
You want to backup site collection.

Solution:
You can use Powershell script as an option

Code:

###########################################################
# Script to add function to properly backup site collections
#
# SYNTAX:
# Backup-SPSite
# -url <Site Collection URL>
# -path <path to backup file>
# -lock <"noadditions", "noaccess", "readonly"> #state for backup
# -AdditionalCommands [additional commands for Backup]
# Restore-SPSite
# -url <site collection restore url>
# -path <path to backup file>
# -force
#
# EXAMPLE:
# backup-spsite -url "http://localhost" -path "C:\zbackuptest.bak" -AdditionalCommands "-overwrite"
###########################################################

function global:Backup-SPSite($url,$path,$lock="noaccess",$additionalcommands){
$stsadm = "$env:programfiles\Common Files\Microsoft Shared\Web Server Extensions\12\BIN\STSADM.EXE"

#Check Required Vars
If($url -eq "" -or $url -eq $null ){ Write-Host -ForegroundColor "Red" "URL is required"; return; }
If(!($lock -like "none" -or $lock -like "noadditions" -or $lock -like "noaccess" -or $lock -like "readonly" )){ Write-Host -ForegroundColor "Red" "Lock must be 'none', 'readonly', 'noaccess', or 'noadditions'"; return; }
#Setup Variable Defaults

#LOCK SITE
Write-Progress -Activity "Backup SPSite" -PercentComplete 25 -Status "Locking Site"
$oldlockstate = [xml](&stsadm -o getsitelock -url $url)
$void = &stsadm -o setsitelock -url $url -lock $lock

#BACKUP
Write-Progress -Activity "Backup SPSite" -PercentComplete 50 -Status "Backing up Site ($url)"
$sTemp = &stsadm -o Backup -url $url -filename $path $AdditionalCommands
if(!($sTemp -like "*Operation completed successfully*")){ Write-Host -ForegroundColor "red" -BackgroundColor "white" "Backup of site '$url' Failed! `n $stemp"}

#RESET LOCK STATE
Write-Progress -Activity "Backup SPSite" -PercentComplete 75 -Status "Resetting Site Lock"
$void = &stsadm -o setsitelock -url $url -lock ($oldlockstate.SiteLock.Lock.ToString())
Write-Progress -Activity "Backup SPSite" -PercentComplete 100 -Status "Complete"
}
Article: