It all started three+ years back a point of time when I was nurtured enough to find the information I wanted through Internet search, be it technical or general some way or the other I land up in a blog. Specifically that time SharePoint 2007 was in beta and there was very limited information over internet on the subject, As I saw most of the blog from the SharePoint Product team I was in a perception that blogs are meant to them, Later which I came to know about Blogspot which allows you to have your personal blog, I started one, but as there were so much to learn in SharePoint and have to spent all of my time in R & D to get the things working for my First ever Web CMS site based on SharePoint 2007, which was almost ready when the SharePoint RTM came out. I didn’t find time to update my blog. Another thing I hate about blog is the Editor I didn’t like the editor provided by the Blogspot as it is so small and was not able to type the content with ease. I didn’t know about the tools (Word 2007 / Live writer ) that will help you to do that with ease. Later I got inspired with WordPress for the rich set of tool it provide and the full screen functionality, which is when I started this.I was kind of used to update the blog at least twice a month.
As I started more blogging, I saw some pain points.Wordpress is pretty good at what they do and one limitation I was so concerned with the WordPress/Blogspot is that I don’t have more control on the template and the layout.I wanted to have more control on the website layout. I wanted to have more space for my content and it should be presentable to the user who is reading it. Soon I decided to have a blog for my own. I wanted it to be flexible enough I ran through couple of options, upgrade my WordPress account, but it wont allow me to change the layout even If I upgrade, also WordPress is running on PHP, I wanted my blog to running in something from Microsoft stack, ASP.NET. I was impressed by the theme used by Reza but then it was based on PHP WordPress. I finally know what my blog should look like but I didn’t know how to search for that template. Later I came across Tim site and it was running on ASP.NET. I mailed him and got the information that he uses Subtext Project as the blog engine. I then found that the theme used by Reza was inove from WordPress. Last weekend I spent whole time to get the theme applied in the Subtext. Next item was to chose a good provider and buy a host name. Lot of options, I was looking at everydns for getting a host name for free and net4 to host my site, but everydns didn’t work for some reason and net4 site is itself slow, It didn’t look good. Finally I got all under ZnetIndia, customer support is so cool and got complete thing wired with in 1 Hour. I had to setup the subtext with IIS 7 as you need to configure the App Pool to run in the Integrated Classic more else you will end up in httpModule issue.
And after all this here is what it looks like. Thanks for reading it through so far and I would like to have a comment if you have one on my blog. I will be happy to share this site theme, if you want just leave me a comment. Also I have planned to concentrate only on SharePoint SharePoint SharePoint and bit of .NET & ASP.NET.
Microsoft has announced the technical Preview for the SharePoint 2010.It is a limited invitation only. But we can have a Sneak Peek of what will be available in the SharePoint 2010.
Watch the videos in the site, to give you some velocity here is the pictures and highlights from the sneak peek.
- New Ribbon based UI
- Support for Silverlight Web parts
- Rich Theming (Allows you to change the Skin of the SharePoint site to similar to the Office Client)
- Revamped Central Admin Design.
- Visual Upgrade (Option to upgrade the 2007 site to 2010 without any UI changes) to change the UI to 2010 it’s a flip of the Switch.
- Cool tools included in the Visual Studio 2010.(Visual Webpart designer, BCS Designer, Complete integrated option for developing Solutions)
- LINQ Support.(Implementation of LINQ in SharePoint)
- Developer Dashboard ( new dashboard for the developer that will help to view the Page loads, SP Request for the page, Web Part events stack etc)
- Business Connectivity Services (Yes BDC has been renamed and now it supports Read & write as well)
- External List (This is similar to List but the data are fetched from BCS)
Yesterday I attended a Microsoft webcast on how they have implemented the IT Web (Microsoft’s Intranet) which was in SharePoint. I have captured few points that highlighted tips on the SharePoint Platform and the Data Storage (To List or not to List). Please find the Screen clip of the Presentation. One another nice thing is they have used Content Query Web Part also they have customized it and named it as Content Query Web Part Override I didn’t get the location for it.[May be I will update link once I get it] basically it had couple missing pieces in the out of the box CQWP, like add the view fields in the Toolpart etc,editing the CAML query etc.
First a little background. We all know that SharePoint by default comes with the some pre-defined permission levels. Represented by class RoleDefinitions in Object model. You can browse through the following URL http://Sitename/_layouts/role.aspx and find the set of permission level your site has.
In addition to the above permission level you have an option of creating a new Permission Level (RoleDefinition) as per your needs. This doesn’t stop there; we have an option to restrict the permissions that can be used in the Web Application. Well what it means is, Say for Example if you don’t want any user (ANY USER yes I mean it Site Collection Administrator as well) of site to delete or Manage Web, but wait how can I prevent Site Collection Administrator from deleting the site, s/he is a big guy he got all power to do all s/he wants in a Site Collection. That’s true but there is another real big guy Farm Administrator. If he decides not to allow Site Delete for a Web Application he can do so by just un-checking the to Manage Web Site permission in the User Permissions for Web Application page http://Central AdminSite/_admin/vsmask.aspx. With this background we can see what gets interesting.
Say you have a Code in your application that check to see if the user has Contributor right in a web, as below
Code Block # 1
using (SPSite oSite = new SPSite(http://xxx))
using (SPWeb oWeb = oSite.RootWeb)
Above code will work fine until our real big guy Farm Administrator comes in, now he decides to revoke the Delete Permission from the Web Application. Now above code will start to break, it will keep returning false as the Contributor Role definition was built with the Delete Permission with it, and as it has been removed by the Farm Administrator, your EffectivePermission will not match the RoleDefinition of Contributor. Below statement will not be true.
Code Block # 2
Okay how do I fix it, just go to your permission Level page, edit the Contribute permission level do nothing, just save it. Now the absence of the delete permission has been informed to RoleDefinition
Contribute and your code will start working.
But still I got more interesting information for you; in SPBasePermission enum out of 33 Permission we have a value called SPBasePermissions.UseClientIntegration, Which launch client applications. Without this permission, users will have to work on documents locally and upload their changes. Like any permission you can disable this at the User Permissions for Web Application page of central admin. But there is another place where you can disable this as well, yes that is at the Authentication Provider page. Select authentication provider and end of the page say no to Enable Client Integration? Well that was simple change but to find it we had real tough time. When you say no to Enable Client Integration?
What happens is that SPBasePermissions.UseClientIntegration will be removed from the permission but it will not get reflected in the UI both at the User Permissions for Web Application page and at the Permission Level page. With this state you will always get the Code Block # 1 executed to false. Because your EffectivePermission doesn’t include the SPBasePermissions.UseClientIntegration. So you need to manually remove this option from the RoleDefintion to make the code work.
Should I call it a bug, when it is really not there why should UI show that ????
This is new addition to the multi part post on upcoming .Net 4.0. Recently Microsoft has released the Beta 1 of .Net 4.0 and the Visual Studio 2010, you can get full update on this and how to download & install from this Video by Brian Keller.
This post we will look in to one of the new option of Visual Studio 2010 for ASP.NET 4.0. We were using the code snippets in the visual studio for some time now, and with this release of the Visual Studio 2010 it has been expanded to the ASP.NET 4.0 and HTML as well. Earlier version it was limited to the C# and other languages only.
The working of snippet is no different than the C# & other language codes, all the pre defined ASP.NET snippets are placed in the folder location C:\Program Files\Microsoft Visual Studio 10.0\Web\Snippets\HTML\1033\ASP.NET
and the HTML snippets reside in the folder C:\Program Files\Microsoft Visual Studio 10.0\Web\Snippets\HTML\1033\HTML . Below I have defined a snippet for GridView, once you defined the snippet, use the Tools-> Code Snippet Manager of Visual Studio and Import the Snippet and it will be available for the immediate use.
Snippet for the Grid View
Once Import just type in the Shortcut text for the snippet and hit Tab Tab. You snippet will be inserted to the code as below and you can change the Parameters that are defined in the snippet, in my case I have defined the parameter for ID and DataSourceID attribute.
Well you should have seen this message if you have a custom multiline column added to the SharePoint document library and try to add a text that is more than 255 Characters. And there is no way around to solve this issue in the SharePoint UI/ at least I didn’t find one so far.
Today I was trying to create a custom list template, and found an attribute called UnlimitedLengthInDocumentLibrary. This is the attribute that will solve your issue. And in case if you don’t want to create a custom List Template to solve this issue , there is a easier way around this.
Hope this helps!!!!
One of the cool feature (list here) we always wanted is ability to provide optional parameters, default values for the methods. Microsoft has addressed this in C# 4.0 and definitely it will make to RTM as well. As there are many articles out in the web regarding this I will not reiterate it but give you a base understanding on this and let you to read the article for core understanding.
Following things are valid in C# 4.0
public Int32 DoAdd(Int32 iNumberOne,Int32 iNumberTwo=0,Int32 iNumberThree=0)
return iNumberOne + iNumberTwo+iNumberThree;
//value is passed to the First parameter
//value is passed to the first & second Parameter
//Value is pased to the first,second & third parameter
//value is passed to the first and third parameter
//this is where we can see one of the use of NamedParameters
//calling this method this DoAdd(1,2) will men completly different
//in this sence. Hence the Named Paramert helps here
DoAdd(1, iNumberThree: 2);
//When you use the Named Parameter order of the Parameter doent
DoAdd(iNumberThree: 2, iNumberOne: 2);
Points to Remember:
- Optional Parameter should be declared just simply placing the default value with a = operator
- Optional Parameter must appear after all required parameters.
- ref or out parameter cannot have a default value.
- Named parameters gives us the more code readability
- Helps in the optional parameter methods
- Named parameters gives us the more code readability
Helps in the optional parameter methods
Order of parameter, helps us to change the order of the Parameters while calling method and still have the ablity to map which value goes to which argument
public Int32 DoMath(Int32 iNumberOne,Boolean SqureTheNumber)
return iNumberOne * iNumberOne;
return iNumberOne + 1;
//This doent give much information about the call
//This is more clear
- Named & Optional Parameter, C# 4.0 Part 2
- Named and Optional Arguments in C# 4.0
- Be careful with optional parameters in C# 4.0
- Named and Optional Arguments in C# 4.0