New Features in ASP.NET 4.0

ASP.NET 4.0 is bringing few exciting features that any ASP.NET developer can be interested to explore. So check out the new features of ASP.NET 4.0 by following the links shown below:

http://www.asp.net/learn/whitepapers/aspnet40/[^]

Download the whitepaper at:
http://download.microsoft.com/download/D/E/D/DEDB44F1-230D-456C-A4FC-D20914D38990/ASP.NET4.0_and_Visual_Studio_2010_Web_Development_Beta_1_Overview.doc[^]

Sharepoint development improvements in Visual Studio 2010

Coding in Sharepoint is not so easy as developers get very minimum support from Visual Studio. For example, if a developer has to make a Web part then he or she has to go to Visual Studio and write down plenty of codes for creating a single control. Manytimes we also use SmartPart right. Hopefully, Microsoft Visual Studio 2010 will offer various features that will make Sharepoint developers' life much more comfortable. I am quickly listing and briefing all those:

  • Web Part Designer: Developer will get designer support for creating web parts. It will work quite similar like the Smart Part but in a better way.
  • Debugging: Debugging Sharepoint applications will be done by "F5". Yeppi, it will be same like any other program in Visual Studio.
  • Sharepoint Server Explorer: All Sharepoint items like lists, document libraries, features and templates will be viewable with in Visual Studio and developers can change and manipulate it directly. Isn't it good guys?
  • WSP Import and Creation: There will be no need to create WSPs manually. Those will be created automatically.
  • Workflow Integration: A new ASP.NET Workflow Initiation Form for the Workflow project will be available with the designer support.
  • Packaging Editor: Package Explorer will be integrated which will support packaging and structuring various Features and WSPs.

    For more information on this, you can visit the following link :
    TechEd EMEA 2008 Keynote, Including SharePoint Tools for VS
  • Microsoft SharePoint 2010 is coming

    Microsoft recently announced that they are going to remove office word from the next version of SharePoint Server. As part of the Exchange Server 2010's public beta realease (and 14 waves of products), they have also announced about the next version of SharePoint Server and they are calling it as Microsoft Sharepoint 2010. What about the MOSS word? It sounds interesting as they think that office word may confuse users. It's not a big issue but definetely we all are waiting for the next version of this product. Technical preview will be relased in the third quarter of 2009 and we can expect the final version on somewhere around first half of 2010. Following links can be useful in this context:

    http://blogs.msdn.com/sharepoint/archive/2009/04/14/microsoft-sharepoint-14-is-now-microsoft-sharepoint-2010.aspx

    http://www.microsoft.com/presspass/features/2009/Apr09/04-15Office2010.mspx

    ReportBuilder's RSAccessDenied error in SharePoint Integrated Mode

    We have an environment where we are wirking with SSRS as SharePoint Integrated Mode. While accessing SSRS Reports thorugh Sharepoint site, we had a requirement that the reports have to be opened using ReportBuilder to make some slight changes and deploy quickly without any dependancies. Well, opening a report using report builder is not an issue but whenever user is trying to run the report from report builder, it is showing the following error:





    Believe it or not, I spent almost 3-4 hours to find the issue. I thought it might be a user right related issue so I went to IIS and then try to implement the integrated windows authentication and other stuffs which I found by googling over the internet. But the issue was something completely different from what I was thinking.
    I went to SharePoint Central Administration -> Set Server Defaults (Under Reporting Services Section). I noticed that the Enable Ad hoc Report Execution option was unchecked. This was the culprit. By checking this option, finally report builder started running the report. But the surprising thing was that by following the error message it was very hard to determine about what exactly went wrong. Dias Alegré.

    Handling the error : "The form cannot be displayed because session state is not available."

    While developing Sharepoint Workflows, if you may recieve the following error:

    "The form cannot be displayed because session state is not available."

    To solve this issue, just go to the web.config file of your Sharepoint site and add the following lines under the httpModules section within angular brackets:

    add type="System.Web.SessionState.SessionStateModule" name="Session"

    If this line is already there as commented then uncomment it and you will not recieve this error again.

    10 Powerful features for Sharepoint

    Windows Sharepoint Services 3.0 and Microsoft Office Sharepoint Server 2007 provide very powerful and wide range of feature riched applicationd which can be very useful for Social Networking and daily computing in any bussiness environment. In this post, I am going to list down 10 very powerful features freely available at codeplex:

    Podcasting Kit for SharePoint (PKS): Podcasting Kit for Sharepoint (PKS) helps to save time and money for an organization to deliver the next generation knowledgement management solution using social media. Any podcast enabled device along with the general web users can access this highly user interactive sharepoint feature. It is built with Silverlight 2.0 and Microsoft Expression Encoder 2.0 to provide the podcasting solution. To view more and to download the February 2009 beta edition, just go to http://pks.codeplex.com/.

    Community Kit for SharePoint(CKS): Community Kit for Sharepoint (CKS) is a bouquet of rich features which make existing features in Sharepoint like blogs, wikis far more powerful and there are also some new stuffs. It offers following features:
    Enhanced Blog Edition
    Enhanced Wiki Edition
    Enhanced Discussion Board Edition
    Corporate Intranet Edition
    Internet/Extranet Edition
    User Group Edition (1.0)
    School Edition
    Home Owners Association Edition
    Wedding Edition
    External Collaboration Toolkit for SharePoint (Community Edition)

    Some features may not be useful for a bussiness environment but most of them can be really helpful. Please go to http://cks.codeplex.com/ for more details.

    ChartPart for Sharepoint: Have you ever tried to generate charts from Sharepoint lists? If you didn't or you were stuck in middle then you should use the ChartPart for Sharepoint. It is nothing but a pluggable Sharepoint web part which supports multiple graph types, custom colors, palletes and fonts with localization support (seven languages currently). Please go to http://chartpart.codeplex.com/ for more details.

    Sharepoint KnowledgeBase: It is a Sharepoint web aprt which provides knowledgebase syatem for WSS 3.0 and MOSS 2007. It helps users to maintain questions, answers, categories, ratings, feedbacks, comments and moderation. For more details visit http://spkb.codeplex.com/.

    Google Maps Web Part for Sharepoint: Google Maps Web part for Sharepoint can be very useful when you want to display points and locations on your Sharepoint sites and get directions from those. Google Map API key is required to use this web part. Please go through the following link http://googlemapswebpart.codeplex.com/.

    Sharepoint Poll Web Part: It is a web part which allows the site users to create a poll in the site collection. It is more easier to be used than the Survey List. Link for more details is http://spuserpoll.codeplex.com/.

    Sharepoint Ad-Rotator: A very simple but useful web part to display rotating images and advertisements for your organization. Just go to http://spadrotator.codeplex.com/ for more information.

    ChatterBox for Sharepoint: A tiny little ChatterBox web part can add group chatting functionality to your Sharepoint sites. There is no user to user chatting facility but still can be useful. For more details visit http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=CKS&ReleaseId=4234.

    MOSS Faceted Search: It is a set of web parts which makes Sharepoint search much more interactive. It groups, refines, displays, updates search results by Sharepoint API implemented facets. Want to see more, just go to http://facetedsearch.codeplex.com/.

    SmartPart: Writing a SharePoint web part without designer support and code intelligence is a developer's nightmare. Thanks to SmartPart and Jan Tielens, lot of development time can be solved by simply using this feature. Just use a Web User Control in which you will get the full designer and intellisense support and deploy it to the web site's user controls folder. But you also have to make sure that the Smart Part feature is also installed on the specific Sharepoint site. I am not going to detail about this cool feature, just go to http://smartpart.codeplex.com/ for more details.

    Programmatically Playing With SSRS Subscriptions

    SQL Server Reporting Services offers programmatically handling various report subscriptions. You can read the specific subscriptions and change those in code-behind as required. I assume that you are already aware about the subscription mechanism in reporting services. For some of you who are not aware about this, I would like to write that subscription in reporting services is nothing but a automated service (sql server job) defined and set by you to deliver reports at specific time or in specific events. You also define in which format the report will be presented to the user. Now whatever subscription properties you have set, everything will be stored in the ReportServer database. Schedule, Subscriptions and ReportSchedule tables contain alll those informations.

    Now create a Windows or Web Application. Add a Web Reference towords
    ReportingService2006. If SSRS is isntalled on your system then you can easily find the ReportService2006.asmx in the following url:

    http://servername/_vti_bin/ReportServer/ReportService2006.asmx

    If report server is not installed on your system then you can find this web service in any remote report server using the above mentioned url (server name has to be replaced).

    Create an object of the ReportingService2006 web service. Declare the following variables in order to get the retrieved subscription properties:

    ActiveState active = null;
    ParameterValueOrFieldReference[] extensionParams = null;
    ExtensionSettings extSettings = null;
    ParameterValue[] values; a

    string desc = string.Empty;
    string eventType = string.Empty;
    string matchData = string.Empty;


    Call the GetSubscriptionProperties method of ReportingService2006 web service by passing the Subscription ID of the Subscription which needs to be changed:

    ReportingService2006 rs = new ReportingService2006();
    rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
    rs.GetSubscriptionProperties(txtSubscriptionID.Text.Trim(), out extSettings, out desc, out active, out status, out eventType, out matchData, out values);

    Different parameter details for this method are as follows:
    Subscription ID : It is the unique id of the subscription which needs to be modified.
    Extension Settings: It is the report deilvery extension and its configurable settings. It is an output parameter.
    Description: It contains some meaningful description which will be displayed to the user. It is an output parameter.
    ActiveState: It returns the ActiveState of the specified subscription. It is an output parameter. Status: It is the status of the Subscription and an output parameter.
    EventType: It returns the type of event that triggers the subscription. It is an output parameter.
    MatchData: It returns xml data specific to the report execution and deilvery scheduling process. It is an output parameter.
    ParameterValue[]: It is the collection of different report parameters for the report. It is also an output parameter.

    To get all extension settings returned from the web service, you can use the following code:

    ParameterValueOrFieldReference[] extensionParams = extSettings.ParameterValues;
    foreach (ParameterValueOrFieldReference
    extensionParam in extensionParams)
    {
    if (((ParameterValue)extensionParam).Name.Equals("TO"))
    {
    txt_TO.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("CC"))
    {
    txt_CC.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("BCC"))
    {
    txt_BCC.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("ReplyTo"))
    {
    txt_ReplyTo.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("Subject"))
    {
    txt_Sub.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("Comment"))
    {
    txt_Comment.Text = ((ParameterValue)extensionParam).Value;
    }
    if (((ParameterValue)extensionParam).Name.Equals("Priority"))
    {
    txt_Priority.Text = ((ParameterValue)extensionParam).Value;
    }
    }

    As I wrote earlier, matchdata parameter returns xml string which needs to be parsed first in order to change or modify it. You can always fire a select statement in the Subscription table on the ReportServer database to see how matchdata column looks like. But the pre-requisite is that you have to create a report subscription first. Understand the xml definition of the match data with different schedule durations and the parse and bind it to the different control as per your requirement.

    After binding all informations retrieved from ReportingService2006, its your turn to change the data as per the requirement. Now to save the subscription, please note that you need to again create a xml string that contains the modified report scheduling defenition. Finally call the
    SetSubscriptionProperties method of the ReportingService2006 web service.


    rs.SetSubscriptionProperties(subscriptionID, extSettings, desc, eventType, xmlScheduling, values);

    It will update the Subscription definiton in the ReportServer database. It is very important to be noted that the matchdata which is generated dynamically should be consistent with the exact defenition. There are five types of schedule durations which are Once, Hourly, Daily, Hourly, Weekly and Monthly. For each different schedule durations, the xml schema are less or more differents. So its my suggestion to you to not to use SetSubscriptionProperties method to change the subscription with out understanding the matchdata format for different schedule durations. Otherwise, report subscription may be corrupted for improper matchdata.

    Following link may be useful during your implementation:

    http://technet.microsoft.com/en-us/library/reportservice2006.reportingservice2006_members.aspx


    All the best.

    IIS Manager Showing Blank Screen










    I was shocked by one problem that I experienced while developing a SharePoint application. I was trying to open IIS Manager but it was showing me a blank screen. Even if I was trying to connect to localhost, it was denying.


    After being disturbed for a while, I came to know that OWSTimer.exe wants to access IIS ADSI (Active Directory Service Interface). OWSTime.exe has multiple threads and those are trying to access the IIS at the same time. That is why IIS Server Manager suddenly goes blank. OWSTimer.exe is a Windows Sharepoint Services timer process which is responsible to execute defined tasks in specific time interval in background. I restarted the OWSTimer.exe service and believe me it worked like a magic. Restarting IIS also forces all running threads to release their access. So that also would have solved my problem. By the way, this may be a small issue but when I experienced it, felt quite surprised.