Here is a talk by Edward A. Lee on making concurrency mainstream at Microsoft Research. In this talk he questions the basic principles underlying the threads and proposes some fundamental changes, in the way we approach threads. He also says "people were writing concurrent programs in the UNIX world in seventies but it was at process level. Threads are considered as domain of operating system experts, Threads were what the device driver guys have to worry about. It was not until early nineties threads are exposed to programmers as a programming model. Threads will end soon and we will start to view Threads as a big historical mistake and they should never have been exposed to programmers as programming model and will be replaced with the next thing"
Its good to see Microsoft making such good videos accessible to everyone.
0

Add a comment

  1. For 2013 Videos

    Developer - http://msdn.microsoft.com/en-us/office/apps/fp123626.aspx

    TechNet - http://technet.microsoft.com/en-us/sharepoint/fp123606.aspx

    Update: Microsoft has released all the videos from 2012 SharePoint conference on Channel9. Great set of SharePoint 2013 videos - available @ http://channel9.msdn.com/Events/SharePoint-Conference/2012

    For SharePoint 2010 Videos

    IT Pro Trainings

    Developer Trainings
    1

    View comments


  2. Scenario : Need to use SharePoint 2010 Out Of Box(OOB) Search.asmx to perform People Search from SharePoint profile data. Implement filters in search including phonetic search, refinements and use specific relevance model.

    This is supposed to be relatively straight forward. You can consume the search services from any SiteCollection URL. For Ex: https://MyWebApp.com/sites/MySiteCollection/_vti_bin/search.asmx. You can prefix _vti_bin/search.asmx at any level (webapp/sitecollection/subsite) to consume the OOB web service. This is same as consuming any other OOB service in SharePoint.

    You would use either Query or QueryEx methods based on whether you want your output in XML format or as a DataSet. In my scenario the data is required in an XML format. The Query method accepts a string input, which is an XML structure for SharePoint Query. For more details refer to Search Service on MSDN 

    The Wrong Way, which works:

    <?xml version="1.0" encoding="utf-8" ?>
    <QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000">
      <Query domain="QDomain">
        <SupportedFormats>
          <Format>urn:Microsoft.Search.Response.Document.Document</Format>
        </SupportedFormats>
        <Context>
          <QueryText language="en-US" type="MSSQLFT">SELECT  AccountName, Title, FirstName, 
          LastName,JobTitle, PreferredName, Manager, MobilePhone, WorkPhone, Department, 
          Function, Division, OrgDirect, OrgsManaged, Assistant, company, Country, region, 
          City, State, locationsitename, WorkEmail, Path, PictureURL, workassignment, 
          EmployeeType, Prefix, Pager, fax, PostalAddress1, PostalAddress2, PostalCode 
          FROM SCOPE() 
          WHERE ("DAV:contentclass" = 'urn:content-class:SPSPeople')   
          AND CONTAINS ('"John*"') AND ("Country" = 'USA')  
          AND ("peoplefinder" = 'display') ORDER BY "LASTNAME" ASC, "FIRSTNAME" ASC  </QueryText>
        </Context>
        <Range>
          <StartAt>1</StartAt>
          <Count>30</Count>
        </Range>
      </Query>
    </QueryPacket>

    The above query almost works at least in the above scenario. We are doing an all fields search for John and filtering the country by USA and getting the first 30 results of the result set. We can add more AND conditions in the QueryText if we need more filters.

    However the problem comes when we want to include Phonetic Search Results or would need to apply a specific relevance model. As per the syntax on MSDN, its a straight forward like adding <EnablePhonetic>true</EnablePhonetic> after the Range attribute. However it doesn't work with the above approach. Any additional attributes like Stemming, Relevance Model will not work with the above structure.

    The Right Way:
      
    Below is the right way of consuming the Search.asmx for people search results. The difference is you apply a language attribute to the QueryText and provide the list of each of the properties you need.

    <?xml version="1.0" encoding="utf-8"?>
    <QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000">
      <Query domain="QDomain">
        <SupportedFormats>
          <Format>urn:Microsoft.Search.Response.Document.Document</Format>
        </SupportedFormats>
        <Context>
          <QueryText language="en-US" type="STRING">  John AND COUNTRY:"USA" AND  peoplefinder:"display" Scope:"People"</QueryText>
        </Context>
        <Properties>
          <Property name = 'AccountName'/>
          <Property name = 'Title'/>
          <Property name = 'FirstName'/>
          <Property name = 'LastName'/>
          <Property name = 'JobTitle'/>
          <Property name = 'PreferredName'/>
          <Property name = 'Manager'/>
          <Property name = 'MobilePhone'/>
          <Property name = 'WorkPhone'/>
          <Property name = 'Department'/>
          <Property name = 'Function'/>
          <Property name = 'Division'/>
          <Property name = 'OrgDirect'/>
          <Property name = 'OrgsManaged'/>
          <Property name = 'Assistant'/>
          <Property name = 'Company'/>
          <Property name = 'Country'/>
          <Property name = 'Region'/>
          <Property name = 'City'/>
          <Property name = 'State'/>
          <Property name = 'locationsitename'/>
          <Property name = 'WorkEmail'/>
          <Property name = 'Path'/>
          <Property name = 'PictureURL'/>
          <Property name = 'workassignment'/>
          <Property name = 'EmployeeType'/>
          <Property name = 'Prefix'/>
          <Property name = 'Pager'/>
          <Property name = 'fax'/>
          <Property name = 'PostalAddress1'/>
          <Property name = 'PostalAddress2'/>
          <Property name = 'Postalcode'/>
        </Properties>
        <Range>
          <StartAt>1</StartAt>
          <Count>30</Count>
        </Range>
        <EnableStemming>true</EnableStemming>
        <TrimDuplicates>true</TrimDuplicates>
        <IgnoreAllNoiseQuery>true</IgnoreAllNoiseQuery>
        <IncludeRelevanceResults>true</IncludeRelevanceResults>
        <IncludeSpecialTermResults>true</IncludeSpecialTermResults>
        <IncludeHighConfidenceResults>true</IncludeHighConfidenceResults>
        <EnablePhonetic>true</EnablePhonetic>
        <RelevanceModel>D9BFB1A1-9036-4627-83B2-BBD9983AC8A1</RelevanceModel>
      </Query>
    </QueryPacket>

       The above XML Query works perfectly fine for all the filters including the RelevanceModel and Include/Exclude Phonetic results. 

    2

    View comments

  3. Scenario: Consume the SharePoint out of box webservice (People.asmx) to mimic PeoplePicker functionality in ASP.NET website
    ASP.NET Environment: Windows Server 2008 with IIS 7.0
    MOSS Environment: Windows 2003 SP2 with IIS 6.0
    Details: Both ASP.NET and MOSS environments are part of the same domain. ASP.NET web application runs under a service account in IIS which is part of domain
    Issue: Trying to access SharePoint web service from asp.net gives an error "The Request Failed with HTTP Status 401: Unauthorized".
    Tried running browser under the context of domain user and accessed the people.asmx url. It works fine and WSDL is visible
    Tried Impersonation but it made no difference
    Tried giving permissions to the domain user on the site collection - didn't work
    Solution: Give permissions to the domain user on the web application.
    Central Admin -->Application Management --> Application Security -->Policy for webapplication --> Select the web application --> Add User
    Add the domain user to the users list and give him required permissions on the web application. That fixed the issue
    8

    View comments

  4. I was trying to setup Geneva Framework Beta 2 on a Windows7 RC machine to tryout few samples from Identity developer training kit. Geneva framework was successfully installed. However when I tried to install code snippets and certificates on my IIS 7.5 for working with samples it was throwing the following error.

    “‘httpcfg.exe’ is not recognized as an internal or external command”.

    The error was slightly misleading as httpcfg.exe is something related to IIS 6.0. A little investigation in the batch file revealed the error. The SetupCertificates command file inside the setup\scripts folder is having the problem. In the command file it is validating if the system IsVista and using netsh if not using httpcfg.exe to install the certificates. There is no validation for Windows7. This is causing the error.

    Once you update the command file to use netsh for installing certificates on to the IIS, it certificates installed successfully and was able to run the samples.

    0

    Add a comment

  5. Recently I have been working on some POCs on Geneva Framework. I have been using a windows 2008 server standard edition as my development machine. I am having a Visual Studio Team System 2008 with Service Pack1 on top which I have installed Geneva Framework Beta 2. I was trying out some examples from Identity Developer Training Kit which were working fine.

    However there were some issues with test projects in my Visual Studio and I have re-installed my VSTS. After re-installation when I right click on my Geneva claims based application, I am unable to find the “Modify STS Reference” Option. I have tried uninstalling and re-installing Geneva Framework multiple times but with no luck. I got stuck on this. One of my friends suggested to check in visual studio folder if the uninstall is deleting all the foot-prints its creating. I have checked in the visual studio folder at the following location

    “C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates”

    No templates were present after Uninstall. However after little more investigation I found out that the issue is not with ProjectTemplates but with ProjectTemplatesCacheDir. The Claims aware templates were cached at the following location and uninstall of Geneva Framework is not removing the foot-prints.

    C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesCache\Web\CSharp\1033

    I have uninstalled Geneva Framework Beta2 and manually deleted the project templates of claims aware applications in the above path and reinstalled the Geneva Framework. That brought back my “Modify STS Reference” option.

    1

    View comments

  6. Problem: Whenever I create a new workflow project and try to compile it, its always failing and unable to compile. The configuration of my system is as follows:

    Windows 2008 Server Operating System on my Desktop, Visual Studio 2008 with SP1 Installed. I have also installed windows Azure components on top of Visual Studio.

    Though the issue is on Windows 2008 server, I believe similar issue would exist for Windows Vista too. Whenever I try to Compile a windows workflow project in Visual Studio 2008 its failing with following error.

    The "CompileWorkflowTask" task failed unexpectedly.
    System.NotSupportedException: The given path's format is not supported.
    at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath)
    at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath)
    at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
    at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath)
    at System.IO.Path.GetFullPath(String path)
    at System.CodeDom.Compiler.TempFileCollection.EnsureTempNameCreated()
    at System.CodeDom.Compiler.TempFileCollection.AddExtension(String fileExtension, Boolean keepFile)
    at System.CodeDom.Compiler.TempFileCollection.AddExtension(String fileExtension)
    at System.Workflow.ComponentModel.Compiler.CompileWorkflowTask.Execute()
    at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)

    I have googled sometime trying to find a fix for the issue, though the issue does exist with Vista, most of the issues have to do with permissions. That didn’t fix my error. Doing some research on the project file by opening it in a notepad has provided me with an Interesting resolution for this problem. The following is the solution that worked for me, and I am still not sure what the root cause of the problem is.

    Resolution : Open your project file in notepad find the <Import> section at the end of the file, There will be 2 Import statements typically in the following order

    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
    <Import Project="$(MSBuildExtensionsPath)\Microsoft\Windows Workflow Foundation\v3.5\Workflow.Targets" />

    Change the order of the Import settings for the project type to the following order

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\Windows Workflow Foundation\v3.5\Workflow.Targets" />
    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />

    Save and Close the Project file. Reload the project the file, if its already open in your Visual Studio. Now try to compile and run the project. It worked for me. The issue is same for both new projects created on the same machine or existing projects copied on the machine.

    Hope this helps.

    Note : This is my first blog post from Windows Live Writer. The experience is very user-friendly and I am liking it.

    8

    View comments

  7. Microsoft has published good Introductory training resources to Excel services on office online for free. The following are the list of courses published. Click on each of the links to access courses.

    Excel Services I: The Basics - An overview of the value proposition of Excel Services as well as the basics for publishing and sharing workbooks using Excel Services.

    Excel Services II: Requirements, Recommendations, and Permissions - Delves deeper into the proper configuration settings you need to be aware of to get up and running smoothly.

    Excel Services III: Control What People See - Starts to go beyond the basics and into an explanation of how to specify exactly which parts of a workbook should/shouldn't be rendered by Excel Services.

    Excel Services IV: Allow User Input - Discusses how to specify cells as parameters that can be changed when viewed via Excel Service


    0

    Add a comment

  8. Good list of Debugging Resources compiled here
    0

    Add a comment

  9. Chart Advisor is a plug-in to Excel which looks in to your data and displays appropriate charts for the data.
    From Chart Advisor home page "This add-in uses an advanced rules engine to scan your data and, based on predefined rules, displays charts according to score. Top scoring charts are available for you to preview, tweak, and insert into your Excel worksheet"

    0

    Add a comment

  10. From Saurabh KV's Blog

    Value
    Site DefinitionOrigin
    STS#0Team SiteWSS
    STS#1Blank SiteWSS
    STS#2Document WorkspaceWSS
    MPS#0Basic Meeting WorkspaceWSS
    MPS#1Blank Meeting WorkspaceWSS
    MPS#2Decision Meeting WorkspaceWSS
    MPS#3Social Meeting WorkspaceWSS
    MPS#4Multipage Meeting WorkspaceWSS
    WIKI#0WikiWSS
    BLOG#0Blog WSS
    BAS#0Business Activity Services Team SiteMOSS
    SPS#0SharePoint Portal Server SiteMOSS
    SPSPERS#0SharePoint Portal Server Personal SpaceMOSS
    SPSMSITE#0SharePoint Portal Server My SiteMOSS
    SPSTOC#0Contents area TemplateMOSS
    SPSTOPIC#0Topic area templateMOSS
    SPSNEWS#0News area templateMOSS
    SPSNHOME#0News Home area templateMOSS
    SPSSITES#0Site Directory area templateMOSS
    SPSBWEB#0SharePoint Portal Server BucketWeb TemplateMOSS
    SPSCOMMU#0Community area templateMOSS
    _GLOBAL_#1sitetemplate <- Can’t use this one! Just so you know it exists.MOSS

    0

    Add a comment

About Me
About Me
My Photo
Hyderabad, Andhra Pradesh, India
I am a Software Engineer working on Microsoft Technologies all my career. Has worked on different versions of .NET and SharePoint Server 2007. This blog will primarily contain interesting technical stuff for developers working on Microsoft Technologies. You can reach me at dspkiran@gmail.com
Labels
Blog Archive
Loading