What do you do if you want to be alerted for changes in a list? ![][1] Right. You set an alert. Or you can create a workflow with your SharePoint Designer. But there is a different way. With my "RH.ItemNotifier" Feature, you can configure alerts through the settings of a list. ![][2] Configure Users which need to be emailed for new items or changes to existing ones. ![][3] So why would you use this solution to create alerts?
Sometimes you need to hit all webs in your SharePoint farm. This is the code how you can achieve this task:
1: SPFarm farm = SPContext.Current.Site.WebApplication.Farm; <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"><span style="color:#606060"> 2:</span> SPWebService service = farm.Services.GetValue<SPWebService>(<span style="color:#006080">""</span>);</pre> <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"><span style="color:#606060"> 3:</span> </pre> <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"><span style="color:#606060"> 4:</span> <span style="color:#0000ff">foreach</span> (SPWebApplication webApplication <span style="color:#0000ff">in</span> service.WebApplications)</pre> <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"><span style="color:#606060"> 5:</span> <span style="color:#0000ff">foreach</span> (SPSite site <span style="color:#0000ff">in</span> webApplication.
Just a small update to my “WarmupSharePoint” tool, which loads all SharePoint websites initially, so the access to all sites is quicker. The difference to other warmup scripts is, that this one calls every site within the sitecollection!
You can now specify the “AllSites” parameter. With this parameter passed to the tool, it will iterate through all sitecollections of the webapplication. This is usefull for the MySite webapplication, or any other webapplication with lots of sitecollections.
l know it is not a smooth approach, but a working one. How do you get the default Url from an SPWeb? If you have the publishing feature activated, you can use PublishingWeb.DefaultPage property. But not for WSS.
1: internal static string GetDefaultWebUrl(string webUrl) <pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px"><span style="color:#606060"> 2:</span> {</pre> <pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px"><span style="color:#606060"> 3:</span> WebRequest request = WebRequest.Create(webUrl);</pre> <pre style="border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px"><span style="color:#606060"> 4:</span> request.
I am sure you all know the Best Practices: Using Disposable Windows SharePoint Services Objects Guide from Microsoft. If not, read it 🙂
Please be carefull what objects you dispose after you don’t need them anymore. If you dispose the SPContext.Current.Site object, you might get strange behaviours. e.g. you might not be able to save Webpart properties. Doing so, will generate an error:
Cannot save the property settings for this Web Part.
Did you ever wanted to create a Webpart for site navigation? Well, you can use the SPSiteMapProvider from SharePoint.
In your Webpart you could use this code to access the SPSiteMapProvider.
1: SPSiteMapProvider sitemapProvider = (SPSiteMapProvider)SiteMap.Providers["SPSiteMapProvider"]; <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"><span style="color:#606060"> 2:</span> SiteMapDataSource datasource = <span style="color:#0000ff">new</span> SiteMapDataSource();</pre> <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"><span style="color:#606060"> 3:</span> datasource.Provider = sitemapProvider;</pre> This Datasource can be the datasource for a regular ASP.
CodePlex has a project for SharePoint 2007 Features. Within this workplace there are features like:
Ajax Config Feature Content Type Hierarchy Feature Debug Config Feature Debugger Feature Features Source Code Log Viewer Feature Manage Configuration Modifications Manage Form Users Feature Manage Hierarchical Object Store Feature Manage Layouts Site Map Feature Minimal Master Minimal Publishing Site Placeholder Master Feature Presence Contact List Feature Print List Feature Task Alert Feature Task Mover Feature Theme Changer Feature Window Links Feature Especially the Ajax Config Feature is great.
As you probably know, you can store documents on e.g. a fileserver instead of your SQL content databases. To make it short, some key features:
Storing blobs not in your content database, but e.g. in a local folder, or a network share With the current version only the SPFarm is supported. Meaning ALL content will be stored externally After you have implemented an external storage provider, all new documents will be stored in this place.
Within the “SharePoint Serever TechCenter” a new page “SharePoint Products and Technologies Service Pack 1 Resource Center” started, which shows some interesting information about the SP1 for WSS and MOSS.
SharePoint Products and Technologies Service Pack 1 Resource Center
Since everybody tells you this…
Description of Windows SharePoint Services 3.0 Service Pack 1 and of Windows SharePoint Services Language Pack 3.0 Service Pack 1 Description of the 2007 Microsoft Office Servers Service Pack 1