If you already have SQL Server 2008 installed, DO NOT install SharePoint 2010 as a single server (standalone) version. It will create additional instance of SQL Server Express, which is obviously not what you want. This also brings some additional problems (based on this). Select a full installation. If you don't have domain and using local accounts - you need to read this blog.
Monday, November 23, 2009
Thursday, November 19, 2009
SharePoint 2010 Beta Installation
Office 2010 x64 with Office 2003/2007 side by side
I am still using Office 2003 to be able to work with some legacy applications. While installing Beta Office 2010 x64 I got an error that I can't use 2003 and 2007 side by side with 2010 x64 - and I have to use x86 instead.
Just uninstall all 2003/2007 office apps, install 2010 x64 and than install office 2003/2007 without any problems.
Tuesday, October 13, 2009
Invalid Canary for view file
After we installed Infrastructure Updates we started to experience some problems with InfoPath Forms - getting "There has been an error while loading the form. A required resource could not be downloaded. To try to resume the download, refresh the page.", when using some of the alternative URLs.
SharePoint logs was showing me "WARNING: Invalid Canary for view file"
Based on the info from the Microsoft, there is an known problem with the Alternate Access Mapping in Infrastructure Updates. The next cumulative update is supposed to fix this issue. Will update this post as soon as I get it installed and verified.
Update: After installing SP2 issue was fixed.
InfoPath property promotion (field association) problem
Monday, August 24, 2009
InfoPath 2007 Bug - Form Does not Submit
Encountered weird InfoPath bug. Had an Approval Workflow with the InfoPath 2007 Web Form (MOSS). User had problems submitting the Form, click on the submit button was doing nothing. Reopening the Form was enough to submit. I watched how user worked with the Form, and noticed that the user was double clicking on the email link, which was causing the form to load twice (in two IE tabs). Changing this habit to clicking only once - solved the problem completely.
I have no idea why double loading the form was preventing it from submitting, but that's what it was.
Friday, May 29, 2009
SSRS Column Width Auto Size
While fixing the problem described in my previous post I saw lots of people trying to set auto width for the columns. Without any luck though... I have found a way:
- Change Expression to be something like =”<DIV>” & Replace(Fields!YourField.Value," "," ") & “</DIV>”
- Change placeholder properties – General tab – Markup type – HTML-Interpret HTML tags as styles. (Placeholder properties can be accessed by right clicking on Expression (Field) inside of the cell, not on cell itself).
That was too easy :)
PS. Works for SSRS 2008, never tested on 2005.
PPS. Keep in mind - this works ONLY in web browser. Export to PDF and even printing will still use predesigned column width. There might be a workaround too - but I don't really need it, so I will leave it to you guys.
Please comment if you find any additional notes.
Wednesday, May 27, 2009
SSRS Column Width Long Text Problem
Recently I got a weird problem building some reports with SSRS 2008. The column width started to automatically resize based on content, while all columns width are fixed in SSRS by design. The cause of this was long words and long URLs in these fields, which were not able to wrap. Looks like HTML table was adjusting the column size accordingly. (By the way, it was still showing Ok in preview, but was changing the size of columns in published version.) Spent quite a time trying to figure out what to do with that, cause I need those column widths to be static. Here is the solution:
While this problem is caused by native HTML functionality, we can use HTML to fix it.
- Change Expression to be something like =”<DIV style=’width:1.2in’>” & Fields!YourField.Value & “</DIV>” where width is the desired static width of this column.
- Change placeholder properties – General tab – Markup type – HTML-Interpret HTML tags as styles. (Placeholder properties can be accessed by right clicking on Expression (Field) inside of the cell, not on cell itself).
PS. I am also sure that you can use the same approach to create columns with adjustable or auto width, it just needs some tweaking. Update: Here it is.
Monday, April 13, 2009
JavaScript in SharePoint 2007 / MOSS Data View XSL
This sound obvious, but looks like lots of people do not know this. YES, you can use JavaScript in XSL. And YES, you can use JavaScript in SharePoint Data View XSL. And it is fairly easy. Here is a small sample.
Let’s say we want to know how old each item we view in Data View is. As the version of XSL used in SharePoint is “1.0”, we don’t really have a wide scope of date functions. Actually we do have only “FormatDate” function, and even this one comes from a special (ddwrt) Microsoft namespace.
Anyhow, instead of working with XSL, trying to create some crazy Template to handle this task, we can simply use JavaScript.
I assume here that you worked with SharePoint Designer 2007 and Data Views before.
You’ll have to add a JavaScript function first. You can add/link it to the page, page layout or master page, does not matter. I will use slightly modified script from “The JavaScript Source”.
<script type="text/javascript"> var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); function countup(dat) { var dt = new Date(Date.parse(dat)); var yr =dt.getYear(); var m =dt.getMonth(); var d =dt.getDate(); var today=new Date(); var todayy=today.getYear(); if ((navigator.appName=="Microsoft Internet Explorer") && (todayy<2000)) todayy="19"+todayy; if (navigator.appName == "Netscape") todayy=1900 + todayy; var todaym=today.getMonth(); var todayd=today.getDate(); var todaystring=montharray[todaym]+" "+todayd+", "+todayy; var paststring=montharray[m]+" "+d+", "+yr; var difference=(Math.round((Date.parse(todaystring)-Date.parse(paststring))/(24*60*60*1000))*1); document.write(difference + " day(s)"); } </script>
Now we need to call this JavaScript function from Data View. Just click into one of the respectful cells in your Data View, and switch to Code View. You’ll see something like this:
<td class="ms-vb"> <xsl:value-of select="ddwrt:FormatDate(string(@Modified), 1033, 5)" /> </td>
Now we’ll edit it, adding the JavaScript Call:
<td class="ms-vb"> <script language="javascript">countup("<xsl:value-of select="ddwrt:FormatDate(string(@Modified),1033,1)" />");</script> </td>
Vuala!
PS: I did not add any screen shots here assuming that it is fairly easy, but if you need some, just leave some comments.
SharePoint 2007 / MOSS URL Zones are limited
Ever wondered if there is any way to add additional zone to the list of URL Zones in SharePoint Central Administration? Sorry guys, no way. It is actually a predefined enumeration defined in Microsoft.SharePoint.dll
public enum SPUrlZone { Default, Intranet, Internet, Custom, Extranet }
Sunday, April 12, 2009
SharePoint 2007 / MOSS Page Refers Old Layout
Recently I was working a lot with SharePoint 2007 / MOSS Publishing Pages and Layouts. I noticed a weird behavior when I was moving some of the pages from dev environment to production. Sometimes the link to page layout is getting stuck and still pointing to an old (dev) environment. It was not obvious to find a way to fix it…
First I tried just exporting those pages to my local disk and editing it in notepad and putting it back. This approach did work, but was a little bit too manual…
After some head scratching I finally found a Page Settings page. When your page editing toolbar is visible (you clicked on “Site Actions” ->“Edit Page”), you can click on Page dropdown and select “Page Settings and Schedule”. On that page you can control Page Title and Description, Publishing Schedule, Page Layout, Audience Targeting and Page Contact. Alternatively you can just browse to it http://your-sharepoint-site/_layouts/PageSettings.aspx?Page=<Page ID>.
I had a few situations when it was still not working, and I was getting an error trying to change layout settings. You can always edit it in notepad in that case, as I described earlier.
Wednesday, April 8, 2009
Thicket “_files” folder and SharePoint 2007 (MOSS)
I got into this one when I was asked to put some Microsoft Publisher generated files into SharePoint 2007 site. Basically I got “index.html” file and “index_files” folder with some images and html files inside. I did put the index file into the root, then created the Document Library named “index_files”. Also I uploaded all the files into it without any problems using “Open in Windows Explorer” functionality. Everything actually started to work well. Then I was surprised that I don’t see this document library in SharePoint Designer. When I opened it from the browser – it was empty. But it was still showing all the files when opened with Windows Explorer. When I tried to change document library settings to work with content types, the whole settings page started to throw error.
I did some research and it looks like SharePoint 2007 has some native support of so called “thicket” folder (“_files” folder). SharePoint does not allow creating such a folder when you don’t have a corresponding (parent) file. When you try to create such folder using SharePoint Designer, it appends its name with an underscore at the end. SharePoint web interface hides content of such folder, while keeping those files accessible from Windows Explorer or when you browse/refer it directly.
My advise – try to avoid thickets in SharePoint. Those are hard to manage there.
Tuesday, March 24, 2009
"SharePoint designer encountered an error generating the task form" error caused by using IP address instead of machine name
Tuesday, March 10, 2009
Creating and customizing SharePoint 2007/MOSS Central Administration Application Pages
A brief introduction
Review out-of-the-box pages.
Page | Inherits | Based |
---|---|---|
Operations | ||
Operations.aspx | Microsoft.SharePoint.ApplicationPages.OperationsLandingPage | GlobalAdminPageBase |
FarmServers.aspx | Microsoft.SharePoint.ApplicationPages.FarmServersPage | OperationsPage : GlobalAdminPageBase |
Server.aspx | Microsoft.SharePoint.ApplicationPages.ServerPage | OperationsPage : GlobalAdminPageBase |
GlobalEmailConfig.aspx | Microsoft.SharePoint.ApplicationPages.GlobalEmailConfigPage | OperationsPage : GlobalAdminPageBase |
IncomingEmail.aspx | Microsoft.SharePoint.ApplicationPages.IncomingEmailPage | OperationsPage : GlobalAdminPageBase |
FarmCredentialManagement.aspx | Microsoft.SharePoint.ApplicationPages.FarmCredentialManagementPage | OperationsPage : GlobalAdminPageBase |
irmadmin.aspx | Microsoft.SharePoint.ApplicationPages.IrmGlobalSettings | OperationsPage : GlobalAdminPageBase |
avadmin.aspx | Microsoft.SharePoint.ApplicationPages.AntiVirusConfigPage | OperationsPage : GlobalAdminPageBase |
BlockedFileType.aspx | Microsoft.SharePoint.ApplicationPages.BlockedFileTypePage | OperationsPage : GlobalAdminPageBase |
policyfeatures.aspx | Microsoft.Office.RecordsManagement.InformationPolicy. ApplicationPages.PolicyFeatures (Microsoft.Office.Policy.AdminPages.dll) | GlobalAdminPageBase |
managesso.aspx | Microsoft.SharePoint.Portal.SingleSignonAdministration.ManageSSOPage (Microsoft.SharePoint.Portal.dll) | SSOAdminBase : OfficeServerPageBase |
metrics.aspx | Microsoft.SharePoint.ApplicationPages.MetricsPage | OperationsPage : GlobalAdminPageBase |
LogUsage.aspx | Microsoft.SharePoint.ApplicationPages.LogUsagePage | OperationsPage : GlobalAdminPageBase |
policyRptConfig.aspx | Microsoft.Office.RecordsManagement.Reporting. ApplicationPages.PolicyRptConfig (Microsoft.Office.Policy.AdminPages.dll) | GlobalAdminPageBase |
CMSMigration.aspx | Microsoft.SharePoint.Publishing.Internal.CodeBehind.ManageMigrationProfile (Microsoft.Sharepoint.Publishing.dll) | Microsoft.SharePoint.WebControls. UnsecuredLayoutsPageBase |
SkuUpgrade.aspx | Microsoft.SharePoint.Portal.ServerAdmin.SkuUpgradePage(Microsoft.SharePoint.Portal.dll) | CentralAdminPageBase |
EnableFeatures.aspx | Microsoft.SharePoint.Portal.ServerAdmin.FeaturePushdownPage (Microsoft.SharePoint.Portal.dll) | CentralAdminPageBase |
Conversion.aspx | Microsoft.Office.Server.Internal.UI.ConversionPage | CentralAdminPageBase |
ServiceRunningJobs.aspx | Microsoft.SharePoint.ApplicationPages.TimerJobsPage | OperationsPage : GlobalAdminPageBase |
ServiceJobDefinitions.aspx | Microsoft.SharePoint.ApplicationPages.TimerJobsPage | OperationsPage : GlobalAdminPageBase |
sitedirectorysettings.aspx | Microsoft.SharePoint.Portal.ServerAdmin.SiteDirectorySettings (Microsoft.SharePoint.Portal.dll) | CentralAdminPageBase |
linkscheckerjobsettings.aspx | Microsoft.SharePoint.Portal.SiteAdmin.LinksCheckerJobSettings (Microsoft.SharePoint.Portal.dll) | CentralAdminPageBase |
AlternateUrlCollections.aspx | Microsoft.SharePoint.ApplicationPages.AlternateUrlCollectionsPage | GlobalAdminPageBase |
ManageFarmFeatures.aspx | Microsoft.SharePoint.ApplicationPages.ManageFarmFeaturesPage | ApplicationsManagementPage : GlobalAdminPageBase |
QuiesceFarm.aspx | Microsoft.Office.Server.Internal.UI.QuiesceFarmPage | CentralAdminPageBase |
Solutions.aspx | Microsoft.SharePoint.ApplicationPages.OperationsPage | GlobalAdminPageBase |
backup.aspx | Microsoft.SharePoint.ApplicationPages.BackupPage | BackupAdminPageBase : OperationsPage : GlobalAdminPageBase |
backuphistory.aspx | Microsoft.SharePoint.ApplicationPages.BackupHistoryPage | BackupAdminPageBase : OperationsPage : GlobalAdminPageBase |
restorestep1.aspx | Microsoft.SharePoint.ApplicationPages.RestoreStep1Page | BackupAdminPageBase : OperationsPage : GlobalAdminPageBase |
Restorestep3.aspx | Microsoft.SharePoint.ApplicationPages.RestoreStep3Page | BackupAdminPageBase : OperationsPage : GlobalAdminPageBase |
backupstatus.aspx | Microsoft.SharePoint.ApplicationPages.BackupStatusPage | BackupAdminPageBase : OperationsPage : GlobalAdminPageBase |
defaultcontentdb.aspx | Microsoft.SharePoint.ApplicationPages.DefaultContentDatabasePage | OperationsPage : GlobalAdminPageBase |
DspSettings.aspx | Microsoft.SharePoint.ApplicationPages.DspSettings | OperationsPage : GlobalAdminPageBase |
Deployment.aspx | Microsoft.SharePoint.Publishing.Internal.CodeBehind. DeployManagePathsAndJobsPage (Microsoft.Sharepoint.Publishing.dll) | BasePublishingPage : LayoutsPageBase : UnsecuredLayoutsPageBase |
DeploymentSettings.aspx | Microsoft.SharePoint.Publishing.Internal.CodeBehind.DeploySettingsPage (Microsoft.Sharepoint.Publishing.dll) | BasePublishingPage : LayoutsPageBase : UnsecuredLayoutsPageBase |
DeploymentStatus.aspx | Microsoft.SharePoint.Publishing.Internal. CodeBehind.DeploymentObjectStatusPage (Microsoft.Sharepoint.Publishing.dll) | BasePublishingPage : LayoutsPageBase : UnsecuredLayoutsPageBase |
Application Management | ||
applications.aspx | Microsoft.SharePoint.ApplicationPages.ApplicationsPage | GlobalAdminPageBase |
extendvsoption.aspx | Microsoft.SharePoint.ApplicationPages.ExtendVsOptionPage | GlobalAdminPageBase |
unextendvs.aspx | Microsoft.SharePoint.ApplicationPages.UnextendVirtualServerPage | ApplicationsManagementPage : GlobalAdminPageBase |
deletewebapplication.aspx | Microsoft.SharePoint.ApplicationPages.DeleteWebApplicationPage | ApplicationsManagementPage : GlobalAdminPageBase |
scprefix.aspx | Microsoft.SharePoint.ApplicationPages.SscPrefixPage | ApplicationsManagementPage : GlobalAdminPageBase |
vsemail.aspx | Microsoft.SharePoint.ApplicationPages.VSEmailConfigPage | ApplicationsManagementPage : GlobalAdminPageBase |
vsgeneralsettings.aspx | Microsoft.SharePoint.ApplicationPages.VirtualServerGeneralSettingsPage | ApplicationsManagementPage : GlobalAdminPageBase |
cntdbadm.aspx | Microsoft.SharePoint.ApplicationPages.ContentDBManagmentPage | ApplicationsManagementPage : GlobalAdminPageBase |
ManageWebAppFeatures.aspx | Microsoft.SharePoint.ApplicationPages.ManageWebAppFeaturesPage | ApplicationsManagementPage : GlobalAdminPageBase |
WebApplications.aspx | Microsoft.SharePoint.ApplicationPages.ListWebApplicationsPage | SelectWebApplicationPage : SelectPage : GlobalAdminPageBase |
managessp.aspx | Microsoft.Office.Server.Internal.UI.ManageSspPage | CentralAdminPageBase |
manageinterfarmservices.aspx | Microsoft.Office.Server.Internal.UI.ManageInterFarmServicesPage | CentralAdminPageBase |
checkfarmservices.aspx | Microsoft.Office.Server.Internal.UI.CheckFarmServicesPage | CentralAdminPageBase |
SessionStateAdmin.aspx | Microsoft.Office.Server.Internal.UI.SessionStateAdminPage | CentralAdminPageBase |
SPSecuritySettings.aspx | Microsoft.SharePoint.ApplicationPages.WebPartPageSettingsPage | ApplicationsManagementPage : GlobalAdminPageBase |
configssc.aspx | Microsoft.SharePoint.ApplicationPages.ConfigSscPage | ApplicationsManagementPage : GlobalAdminPageBase |
vsmask.aspx | Microsoft.SharePoint.ApplicationPages.VirtualServerMaskPage | ApplicationsManagementPage : GlobalAdminPageBase |
policy.aspx | Microsoft.SharePoint.ApplicationPages.PolicyPage | ApplicationsManagementPage : GlobalAdminPageBase |
AuthenticationProviders.aspx | Microsoft.SharePoint.ApplicationPages.GlobalAdminPageBase | |
managesearchservice.aspx | Microsoft.SharePoint.Portal.Search.Admin.Pages.ManageSearchService (Microsoft.SharePoint.Portal.dll) | SearchCentralAdminPageBase : CentralAdminPageBase |
workflowadmin.aspx | Microsoft.SharePoint.ApplicationPages.WorkflowAdminPage | ApplicationsManagementPage : GlobalAdminPageBase |
createsite.aspx | Microsoft.SharePoint.ApplicationPages.CreateSitePage | ApplicationsManagementPage : GlobalAdminPageBase |
delsite.aspx | Microsoft.SharePoint.ApplicationPages.DeleteSitePage | ApplicationsManagementPage : GlobalAdminPageBase |
DeleteSiteConfig.aspx | Microsoft.SharePoint.ApplicationPages.DeleteSiteConfig | ApplicationsManagementPage : GlobalAdminPageBase |
ManageQuotaTemplate.aspx | Microsoft.SharePoint.ApplicationPages.ManageQuotaTemplatePage | ApplicationsManagementPage : GlobalAdminPageBase |
SiteQuota.aspx | Microsoft.SharePoint.ApplicationPages.SiteQuotaPage | ApplicationsManagementPage : GlobalAdminPageBase |
owners.aspx | Microsoft.SharePoint.ApplicationPages.OwnersPage | ApplicationsManagementPage : GlobalAdminPageBase |
SiteCollections.aspx | Microsoft.SharePoint.ApplicationPages.ListSitesPage | SelectSitePage : SelectPage : GlobalAdminPageBase |
OfficialFileAdmin.aspx | Microsoft.SharePoint.ApplicationPages.OfficialFileAdminPage | ApplicationsManagementPage : GlobalAdminPageBase |
HtmlTransAdmin.aspx | Microsoft.SharePoint.ApplicationPages.HtmlTransAdminPage | ApplicationsManagementPage : GlobalAdminPageBase |
DocTransAdmin.aspx | Microsoft.SharePoint.ApplicationPages.DocTransAdminPage | ApplicationsManagementPage : GlobalAdminPageBase |
ManageFormTemplates.aspx | Microsoft.Office.InfoPath.Server. ApplicationPages.ManageFormTemplatesPage (Microsoft.Office.InfoPath.Server.Pages.dll) | GridViewPageBase : AdminPageBase |
ipfsConfig.aspx | Microsoft.Office.InfoPath.Server. ApplicationPages.FormServerConfigPage (Microsoft.Office.InfoPath.Server.dll) | AdminPageBase |
UploadFormTemplate.aspx | Microsoft.Office.InfoPath.Server. ApplicationPages.UploadFormTemplatePage (Microsoft.Office.InfoPath.Server.dll) | AdminPageBase |
ManageDataConnectionFiles.aspx | Microsoft.Office.InfoPath.Server. ApplicationPages.ManageDataConnectionFilesPage (Microsoft.Office.InfoPath.Server.Pages.dll) | GridViewPageBase : AdminPageBase |
ManageFormsServiceProxy.aspx | Microsoft.Office.InfoPath.Server. ApplicationPages.ManageFormsServiceProxyPage (Microsoft.Office.InfoPath.Server.Pages.dll) | AdminPageBase |
Shared Services Administration | ||
managessp.aspx | Microsoft.Office.Server.Internal.UI.ManageSspPage | CentralAdminPageBase |
Building minimal SharePoint Central Administration Application Page.
In order to be consistent with current pages we want to inherit the new:
• Operations Section page – from Microsoft.SharePoint.ApplicationPages.OperationsPage;
• Application Management page – from Microsoft.SharePoint.ApplicationPages.ApplicationsManagementPage;
Both OperationsPage and ApplicationsManagementPage classes overrides just one PageToRedirectOnCancel property from GlobalAdminPageBase.
Let’s build our first blank Central Admin Applications Management page:
Here is the code:
using System; using System.Web; namespace Sharepointalist.Samples.CentralAdmin { public class ApplicationManagementSamplePage : Microsoft.SharePoint.ApplicationPages.ApplicationsManagementPage { } }Here is the web page:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ApplicationManagementSamplePage.aspx.cs" Inherits="Sharepointalist.Samples.CentralAdmin.ApplicationManagementSamplePage, Sharepointalist.Samples.CentralAdmin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5f18faed9b7b4caf" MasterPageFile="~/_admin/admin.master"%> <asp:Content ID="Content1" contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server"> </asp:Content> <asp:Content ID="Content2" contentplaceholderid="PlaceHolderPageTitle" runat="server"> </asp:Content> <asp:Content ID="Content3" contentplaceholderid="PlaceHolderPageTitleInTitleArea" runat="server"> </asp:Content> <asp:content ID="Content4" contentplaceholderid="PlaceHolderPageDescription" runat="server"> </asp:content> <asp:content ID="Content5" contentplaceholderid="PlaceHolderMain" runat="server"> </asp:content>
Deployment.
- Add breadcrumbs. Please check following Jan Tielens blog posts: Adding Breadcrumb Navigation to Application Pages in SharePoint Central Administration and Adding Breadcrumb Navigation to SharePoint Application Pages, the Easy Way
- Do not deploy your pages right into ADMIN folder. Create a subfolder.
In many cases we want to add a new link to our new page on the MOSS Central Administration Site. We can use Element Manifest file with CustomAction defined for that. Please refer to Custom Action Definitions and Default Custom Action Locations and IDs on MSDN for detailed info.
In short, we need to choose Location(Page) and select/create a Group for our link.
Possible Locations and Groups:
- Operations Page - Microsoft.SharePoint.Administration.Operations.
- Backup and Restore - BackupRestore;
- Data Configuration - DataConfiguration;
- Global Configuration - GlobalConfiguration;
- Logging and Reporting - LoggingAndReporting;
- Security Configuration - Security;
- Topology and Services - Topology;
- Upgrade and Migration - Upgrade;
- Content Deployment - ContentDeployment;
- Application Management Page - Microsoft.SharePoint.Administration.ApplicationManagement.
- Application Security - ApplicationSecurity;
- External Service Connections - ExternalService;
- SharePoint Site Management - SiteManagement;
- SharePoint Web Application Management - WebApplicationConfiguration;
- Workflow Management - WorkflowManagement;
- Search - SearchGroup;
- InfoPath Forms Services - IPFSApplicationConfiguration;
- Office SharePoint Server Shared Services - OfficeServerCoreServices;
- Application Created Page - Microsoft.SharePoint.Administration.ApplicationCreated.
- Links - Links;
- Shared Services Administration Page - Office.Server.ServiceProvider.Administration.
- User Profiles and My Sites - UAP;
- Search - Search;
- Excel Services Settings - ExcelServer;
- Audiences - AUD;
- Office SharePoint Usage Reporting - PortalAnalytics;
- Business Data Catalog - BDC;
Here is a sample Elements.xml
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomActionGroup Id="Sharepointalist.Samples.CentralAdmin.ApplicationManagementGroup" Location="Microsoft.SharePoint.Administration.ApplicationManagement" Title="Sharepointalist" Sequence="10" /> <CustomAction Id="Sharepointalist.Samples.CentralAdmin.ApplicationManagementSamplePage" GroupId="Sharepointalist.Samples.CentralAdmin.ApplicationManagementGroup" Title="Application Management Sample Page" Sequence="1" Location="Microsoft.SharePoint.Administration.ApplicationManagement"> <UrlAction Url="/_admin/Sharepointalist/Samples/ApplicationManagementSamplePage.aspx"/> </CustomAction> </Elements>
Here is a sample Feature.xml
<?xml version="1.0" encoding="utf-8" ?> <Feature Id="90AC28E1-F64B-42bb-AB51-C65590ED5CD4" Title="Sharepointalist Sample Central Administration Feature" Description="Sample Central Administration Feature. Please visit my web page at http://www.sharepointalist.com/" Version="1.0.0.0" Creator="http://www.sharepointalist.com/" ActivateOnDefault="True" Scope="Farm" xmlns="http://schemas.microsoft.com/sharepoint/" ReceiverAssembly="Sharepointalist.Samples.CentralAdmin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5f18faed9b7b4caf" ReceiverClass="Sharepointalist.Samples.CentralAdmin.FeatureHandler"> <Properties> <Property Key="GloballyAvailable" Value="true" /> </Properties> <ElementManifests> <ElementManifest Location="Elements.xml"/> </ElementManifests> </Feature>