Blogger Template Design
I found a nice article on How to design your own custom blogger template? here
How to find the template name of SharePoint site?
When you look into any SharePoint site which was created by someone, first question you get is, Which template they used to create the site? It is very difficult to tell by looking at the site.
I used following approaches to find template names/ids
Approach 1: Save the site as a template
- Go to Site template Gallery and download the save the template to your desktop
- Rename the template extension from .stp to .cab.
- Extract .cab file contents. (I normally use WINRAR)
- open the manifest.xml file.
- Search for TemplateID and Configuration.
ID 0 = Global, Configuration 0 = Global Template
ID 1 = STS or SharePoint Team Site, Config 0 = Team Site
ID 1, Config 1 = Blank Site
ID 1, Config 2 = Document Workspace
ID 2 = MPS, or Meeting Place Sites, Config 0 = Basic Meeting Workspace
ID 2, Config 1 = Blank Meeting Workspace
ID 2, Config 2 = Decision Meeting Workspace
ID 2, Config 3 = Social Meeting Workspace
ID 2, Config 4 = Multipage Meeting Workspace
ID 3 = Centraladmin, config 0 - Central Admin Site
ID 4 = WIKI, Config 0 = Wiki site
ID 5, Config 0 = Blog
Any ID over 10000 is custom.
If ID is 75800 range, it might be additional Microsoft applications and templates. You can Check here.
Approach 2: Using custom ASPX page
http://blog.rafelo.com/2008/05/determining-site-template-used-on.html
Redirect a SharePoint Site/Page to another Site/Page using Content Editor Web Part
Redirecting the user from one site/page to another site/page is most common scenario.
You might have several reasons for this like Site Move from one location to another or Point Staging to Production etc..,
For whatever reason, you can achieve this functionality easily using Content Editor WebPart.
Copy and paste the following code into your Custom Editor WebPart
<script language=”JavaScript”>
alert(“The site has been moved to a new location and will automatically redirect to the location. Please update your bookmarks accordingly."”);
</script>
<meta http-equiv=”refresh” content=”0;url=http://[YOUR NEW LOCATION]”>
Once you save these changes, you are not able to modify any thing on this page since it is redirect to new location.
If in case you want to remove this webpart, the workaround is, you have to go through webpart maintenance page.
Copy the following code in Browser Address and make changes accordingly
http://[SERVERNAME]/_layouts/spcontnt.aspx?pageview=shared&url=[Your WebPart Page URL] (For Example: /FirmCalendar/pages/default.aspx)
Select the checkbox which you want to close, and click close button
To enable the closed WebParts follow these steps
1. Go To Site Actions –> Edit Page
2. Click on any Add WebParts
3. Click on “Advanced WebPart Gallery and Options”
4. Click on Closed Web Parts link
5. Drag and drop the Content Editor WebPart Where ever you want.
Hope this helps some one.
No more SSPs in SharePoint 2010
Yes there are no more Shared Service Providers (SSPs) in SharePoint 2010. This is One of the most interesting and powerful thing in SharePoint 2010. For users who are not familiar with SSPs in SharePoint 2007, you can read my previous post here.
What’s wrong with SSPs?
SSPs were vary handy in SharePoint 2007. They allowed us to share different services like profiles, audiences, search, Excel Services and BDC with different web applications. The problem is if we want to use same search service across multiple web applications but we want to have a totally different profile or BDC configuration. To achieve this functionality, the only option we have is to create a new SSP and duplicate the search service configuration/settings. In feature if we want to make any changes to search service, we have to do it in two places and It’s a hassle.
Some of the major problems with SSPs,
- SSPs are not built on Core services (WSS) and it built on SharePoint Server.
- SSPs are non extensible other than Microsoft SharePoint Team.
- SSPs are tied to a single farm. Technically Shared-farm SSPs are possible, but it tricky.
What’s the new approach?
In SharePoint 2010 Shared Service Provides(SSPs) are replaced by Service Applications. So what ever services existed in SSPs are still exist but have been unboxed and don’t have dependencies to each other. In the new version, there are over 20 service applications built using the service application framework. All of these service applications can run independently and each service has its own database (that’s why you see many databases in SQL Server compare to SharePoint 2007). If we want, we can also built our own service application (its is a very advance topic you can find a nice video here), it’s that much flexible.
Since each service run independently,the new service application framework removes the restriction, which says, “a web application could only be associated with a single SSP”. Now web applications can consume services on a individual basis and can use any combination of the available service applications.
If one of the service has high demand, we can easily scaled out across farms.
Summary
- Web application can be configured to only use a subset of deployed services.
- You can deploy multiple instances of the same service in a farm by giving the new service instances unique names.
- You can also share services across multiple web application.
SharePoint 2010 Features and Enhancements
Following is the high-level list of SharePoint 2010 features and enhancements. For detailed information you can check it here.
New in SharePoint 2010
- Language Integrated Query (LINQ)
- AJAX Support
- Ribbon navigation
- List Enhancements
- New Scale Limits
- XSLT Views for better customizations
- Cascade deletes/Updates
- Formula Validation for Column like Excel
- External Data List Type - allows to connect external data such as databases or web services.
- Business Connectivity Services (BCS) - New name for BDC and drastically enhanced.
- Silverlight integration
- Client side object Model
- Sandbox Solutions - deploy in a secure environment.
- Added More Services - Word,Visio, Performance Point and Access Services in addition to Excel and InfoPath Form Services.
- New enhancements to InfoPath Form Services
- Replace default list forms to InfoPath form
- New mobile form capabilities
- Well Integrated with Visual Studio 2010
- Browse SharePoint environment from server explorer to see lists, libraries, Content types, etc.,.
- Web Parts Visual elements
- improved Web Solution Package (WSP)
- Development on Windows 7
- Developer Dashboard
- Communities
- Enhanced Blogging and wikis
- Tagging and Rating
- Activity Feeds - Stay informed and track colleagues updates
- Social Bookmarking - can be internal or external web sites
- Enhanced My Sites
- Enhanced User Profiles
- Organization Browser
- Search
- Extensible Search web parts
- preview content with integrated FAST technologies
- Phonetics people search
- Outlook Address book style lookup
- FAST Search - need separate license
- Content Management
- Document Management
- Metadata views instead of hierarchical folder based navigation
- Location based metadata
- Document Routing to specific location
- unique document IDs instead of URL based location
- Taxonomy services
- Document Sets - Manage collection of different content (doc,ppt,xls) into a set
- Records Management
- Multi stage disposition
- In place records management
- location based file plans
- e-discovery
- Web Content Management
- New Enhanced UI
- XHTML Compliant
- Enhanced Page libraries
- Digital Asset Management
- Support most common digital assets like Video, Audio, Images
- Bit Rate Throttling with IIS - Just in time delivery of the content instead of deliver the entire video to the user at maximum speed.
- Remote BLOB (Binary Large OBject) storage
- Silverlight WebPart and Media Player
- Workflows
- Now Workflows are Customizable
- Allowed Site Workflows
- SharePoint Workspace (Previously known as Groove) - allow to work offline and sync the lists, libraries and forms
- Document Management
Microsoft’s SharePoint 2010 Migration Approaches
I found the following poster’s in Microsoft site on How to migrate from SharePoint 2007 to SharePoint 2010. It is very useful to understand the migration process and everyone who are working on SharePoint migration should see this.
Here is the list of links to Posters:
Upgrade Planning : Poster, TechNet article
Upgrade Approaches : Poster, TechNet Article, Comparison
Upgrade Services : Poster, TechNet Article
Test Your Upgrade Process : Poster, TechNet Article
Upgrading Parent and Child Farms: Poster, TechNet Article
C# Regular Expressions Quick Reference Sheet
Character | Description | Example |
\ | Marks the next character as either a special character or escapes a literal. | For example, "n" matches the character "n". "\n" matches a newline character. The sequence "\\" matches "\" and "\(" matches "(". Note: double quotes may be escaped by doubling them: "<a href=""...>" |
^ | Depending on whether the MultiLine option is set, matches the position before the first character in a line, or the first character in the string. | |
$ | Depending on whether the MultiLine option is set, matches the position after the last character in a line, or the last character in the string. | |
* | Matches the preceding character zero or more times. | For example, "zo*" matches either "z" or "zoo". |
+ | Matches the preceding character one or more times. | For example, "zo+" matches "zoo" but not "z". |
? | Matches the preceding character zero or one time. | For example, "a?ve?" matches the "ve" in "never". |
. | Matches any single character except a newline character. | |
(pattern) | Matches pattern and remembers the match. The matched substring can be retrieved from the resulting Matches collection, using Item [0]...[n]. To match parentheses characters ( ), use "\(" or "\)". | |
(?<name>pattern) | Matches pattern and gives the match a name. | |
(?:pattern) | A non-capturing group | |
(?=...) | A positive lookahead | |
(?!...) | A negative lookahead | |
(?<=...) | A positive lookbehind . | |
(?<!...) | A negative lookbehind . | |
x|y | Matches either x or y. | For example, "z|wood" matches "z" or "wood". "(z|w)oo" matches "zoo" or "wood". |
{n} | n is a non-negative integer. Matches exactly n times. For example, "o{2}" does not match the "o" in "Bob," but matches the first two o's in "foooood". | |
{n,} | n is a non-negative integer. Matches at least n times. | For example, "o{2,}" does not match the "o" in "Bob" and matches all the o's in "foooood." "o{1,}" is equivalent to "o+". "o{0,}" is equivalent to "o*". |
{n,m} | m and n are non-negative integers. Matches at least n and at most m times. | For example, "o{1,3}" matches the first three o's in "fooooood." "o{0,1}" is equivalent to "o?". |
[xyz] | A character set. Matches any one of the enclosed characters. | For example, "[abc]" matches the "a" in "plain". |
[^xyz] | A negative character set. Matches any character not enclosed. | For example, "[^abc]" matches the "p" in "plain". |
[a-z] | A range of characters. Matches any character in the specified range. | For example, "[a-z]" matches any lowercase alphabetic character in the range "a" through "z". |
[^m-z] | A negative range characters. Matches any character not in the specified range. | For example, "[m-z]" matches any character not in the range "m" through "z". |
\b | Matches a word boundary, that is, the position between a word and a space. | For example, "er\b" matches the "er" in "never" but not the "er" in "verb". |
\B | Matches a non-word boundary. | "ea*r\B" matches the "ear" in "never early". |
\d | Matches a digit character. Equivalent to [0-9]. | |
\D | Matches a non-digit character. Equivalent to [^0-9]. | |
\f | Matches a form-feed character. | |
\n | Matches a newline character. | |
\r | Matches a carriage return character. | |
\s | Matches any white space including space, tab, form-feed, etc. Equivalent to "[ \f\n\r\t\v]". | |
\S | Matches any nonwhite space character. Equivalent to "[^ \f\n\r\t\v]". | |
\t | Matches a tab character. | |
\v | Matches a vertical tab character. | |
\w | Matches any word character including underscore. Equivalent to "[A-Za-z0-9_]". | |
\W | Matches any non-word character. Equivalent to "[^A-Za-z0-9_]". | |
\num | Matches num, where num is a positive integer. A reference back to remembered matches. | For example, "(.)\1" matches two consecutive identical characters. |
\n | Matches n, where n is an octal escape value. Octal escape values must be 1, 2, or 3 digits long. | For example, "\11" and "\011" both match a tab character. "\0011" is the equivalent of "\001" & "1". Octal escape values must not exceed 256. If they do, only the first two digits comprise the expression. Allows ASCII codes to be used in regular expressions. |
\xn | Matches n, where n is a hexadecimal escape value. Hexadecimal escape values must be exactly two digits long. Allows ASCII codes to be used in regular expressions. | For example, "\x41" matches "A". "\x041" is equivalent to "\x04" & "1". |
\un | Matches a Unicode character expressed in hexadecimal notation with exactly four numeric digits. "\u0200" matches a space character. | |
\A | Matches the position before the first character in a string. Not affected by the MultiLine setting | |
\Z | Matches the position after the last character of a string. Not affected by the MultiLine setting. | |
\G | Specifies that the matches must be consecutive, without any intervening non-matching characters. |
JavaScript Frameworks/Libraries Side by Side Comparison
There is list of notable JavaScript Frameworks/libraries are available, but the question is which one appropriate to choose.
A nice article about Microsoft Windows Communication Foundation (WCF) Basics
Before you leave:
- Tell me whether you like this article or not? Rate this post accordingly by selecting the stars below.
- Any suggestion, question or comment? Please post it in the comments below.
Factory Method Pattern (Creational)
Singleton Pattern (Creational)
Understanding Design Patterns
Before explaining what design pattern is, we will look into why we need to learn design patterns. As a software or application developer, we do write a lot of code every day to deliver the software/application. Most of the people write the code in different ways; someone writes all logic into one single file and someone separates that code into multiple files.
What’s the Purpose of Shared Service Provider (SSP) in SharePoint (MOSS) 2007?
Most of you already know that SharePoint gives you the ability to crate and host multiple separate web applications,for example, intranet site, internet/Extranet, Team site, etc. In MOSS 2007, Microsoft comes with a new concept of Shared Services Providers(SSP). The idea behind this concept is to manage and share certain services centrally instead of each web application level. The best examples are Profiles and Search service. Using Profile service, you can import all of the user information from Active Directory once and then use that data within different web applications. In the same way you can also setup the search service one time and then share it across multiple web applications. It make prefect sense, right?
The major services that are handled by SSP are,
- Profiles
- Search
- Indexing
- My Sites
- Audiences
- Excel Services
- Business Data Catalog (BDC)
Another major advantage of SSPs is separation of roles. It is most common in medium to large server farms to have one group administrating the physical servers and another group maintain search/profiles. Since SSP is its own site collection, you can define a user access so that they can not access Central Administration site but they can access the SSP. Even in SSP you can limit then what they can access.
As a general rule, you use single SSP. But there are some scenarios you may want to create multiple SSPs. For example, you may need separate set of permissions and services for intranet site and extra net site. You have to be vary cautious about creating multiple SSPs.
Final Thoughts
Shared Service Providers (SSPs) are one of the great feature in MOSS 2007. Creations of SSPs should be part of your initial planning. In SSPs, You can grant permissions at a granular level or broad access.
I hope this was useful and you understand clearly what’s the purpose of SSPs?