Archives
-
JavaScript Seralizer enables Clemens summer project
A bit more than a week ago my colleague Anders NorĂ¥s published an article on a JavaScript XmlSerializer that he has been working on for quite a while. The article got quite an amount of attention after Dare Osabanjo referenced Anders on the MSDN feed. Internally we've been discussing the applicability of Anders solution.
-
MSCRM XSD for Custom attributes - DRAFT
This XSD is a draft and is not yet tested.
-
Doing simple adjustments to the Sharepoint Portal Area pages
Working your way through the Sharepoint css classes is not fun. I just spent several hours trying to accomplish the following:
-
Customizing Sharepoint Portal Server CSS
Tracking down correct css classes and overriding the right attributes can be very cumbersome. These CSS elements shows how to customize the main elements in the portal.
-
Displaying Sharepoint elements' Css Class and Id
This useful script can be pasted into the body element of any Sharepoint aspx page through FrontPage and will display an elements css class when hovering over it with the mouse.
-
More on MSCRM Row size limitations..
Michaeljon addresses the problem, but the message is pretty much "wait for the next release". We're leaning towards Option 3 in my previous post and possibly getting rid of those japanese yomi fields on the Contact entity that are sucking up 750 spaces of nvarchar (1500 bytes!).
-
Accessing Custom Site Templates through the Sharepoint API
Using custom site templates in Sharepoint is a really powerful feature. You can customize your WSS site through frontpage or the web UI and save the site as a template. By default the template is stored in the top-level site template gallery of the site you customized.
-
Register sites in Sharepoint Site Directory programmatically
As part of my ongoing quest to autogenerate sites I need to register created sites in the site directory in code. The following would apply for any generated WSS site or other, potentially external, source.
-
Register site in Sharepoint programatically
/// <summary> /// Eventhandler that invokes the RegisterInSiteDirectory method. Will only run on the SPS server /// with SPS admin as current identity. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, System.EventArgs e) { Hashtable itemData = new Hashtable(); itemData.Add("CustomCategory", "SomeData"); this.RegisterInSiteDirectory("SiteDirectory", "Sites", "Generated Site Name", "Some Description", "http://sps2003base:8080/sites/genepool", itemData); } /// <summary> /// Registers a site in a given site directory and enlists site for search in the same manner as /// the Sharepoint Site Directory Area UI /// </summary> /// <param name="siteDirectoryAreaName">Name of the Site Directory area.</param> /// <param name="siteDirectoryName">Name of the Site Directory List.</param> /// <param name="title">Site Title to be used in the list and search entry.</param> /// <param name="description">Site Description to be used in the list and search entry.</param> /// <param name="siteUrl">Site Description to be used in the list and for crawling.</param> /// <param name="itemData">Custom site metadata used in the list and included in portal content search.</param> public void RegisterInSiteDirectory(string siteDirectoryAreaName, string siteDirectoryName, string title, string description, string siteUrl, Hashtable itemData) { SPSite portalSite = new SPSite("http://sps2003base:8080"); SPWeb siteDirectoryArea = portalSite.AllWebs[siteDirectoryAreaName]; SPList siteDirectoryList = siteDirectoryArea.Lists[siteDirectoryName]; // Create new item in the list SPListItem item = siteDirectoryList.Items.Add(); // Set default and required values item["SiteTitle"] = title; item["SiteURL"] = siteUrl; item["Description"] = description; // Add custom metadata foreach(DictionaryEntry entry in itemData) { item[entry.Key.ToString()] = entry.Value; } item.Update(); // Register the site for search Uri siteUri = new Uri("http://sps2003base:8080"); TopologyManager tm = new TopologyManager(); PortalSite site = tm.PortalSites[siteUri]; PortalContext portalContext = PortalApplication.GetContext(site); AreaManager.SuggestDeepCrawl( portalContext, title, description, siteUrl, "" /* LargeIconUrl */, "" /* SmallIconUrl */, "$$$default$$$" /* Index Catalog */, "$$$default$$$" /* Index Scope */); }
-
OWA + Sharepoint = true
Well, I've been writing about this previously, but I felt an need to describe my simplistic final solution for a couple of customers.
-
MS CRM Row Size Limit on Customizations
Oh grief!