February, 2010

  • Jie Li's GeekWorld

    Behind the Mobile View in SharePoint 2010

    • 0 Comments

    Mobile view in SharePoint 2010 has been greatly enhanced from SharePoint Server 2007. Now Excel, Word and PowerPoint files can be viewed in mobile browsers directly. But, there’re so many different mobile browsers (even it may be the same browser, considering the experience on different phone models, the capability maybe vary), and new devices are coming out every month, what kind of supportability will SharePoint 2010 provide?

    To answer this question, let’s go over how the mobile view is created by SharePoint. It is quite similar to 2007, but a few enhancements do help with the experience.

    When user try to browse SharePoint 2010 site from his/her phone, the mobile browser submits a HTTP GET request to the website. In this request, a User Agent string is attached so the website can identify the browser and even the phone model. SharePoint analyzes this UA string, if it is a phone or mobile device, SharePoint will redirect the browser automatically to the mobile view and render the view based on the capability of the browser/phone type. A browser definition file is needed in this process to let SharePoint know what this browser can do.

    Take one of my SharePoint 2010 farm as an example.

    The browser definition file of a SharePoint Web Application which listening port 80 by default locates at

    C:\inetpub\wwwroot\wss\VirtualDirectories\80\App_Browsers\compat.browser

    In this file, you can find a very big list of different browsers and phone models. The schema of this file can be found in .Net Framework reference: Browser Definition File Schema (browsers Element)

    My phone is AT&T HTC Fuze, it is also called HTC Touch Pro, or T7272. IE6 Mobile is the default browser. Here’s the section for it:

    <!-- IE Mobile 6 plus browser -->
      <!-- note: some IE Mobile 6 devices call itself as IEMobile 7+ -->
      <!-- sample UA "HTC_Touch_Pro_T7272 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)" -->
      <!-- sample UA "SAMSUNG-SGH-i908/1.0 Release/03.07 Browser/IE6 Profile/MIDP-2.0 Configuration/CLDC-1.1 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)" -->
      <browser id="IEMobile6Plus" parentID="Mozilla">
          <identification>
              <userAgent match="Windows CE" />
              <userAgent match="IEMobile (?'version'((?'major'([6-9])+)(?'minor'\.\d*)))" />
          </identification>
          <capabilities>
              <capability name="browser"                              value="IE Mobile" />
              <capability name="canInitiateVoiceCall"                 value="true" />
              <capability name="isMobileDevice"                       value="true" />
              <capability name="javascript"                           value="true" />
              <capability name="optimumPageWeight"                    value="1500" />
              <capability name="tables"                               value="true" />
              <capability name="version"                              value="${version}" />
          </capabilities>
      </browser>

    As a SharePoint Administrator, you can add more browsers definitions into the file. These definitions can also be updated by SharePoint updates.

    Here’s the render difference example between a decent big touch screen phone and a Nokia 3120 (a 6 years old typical non-touch screen S40 phone). Please note this is not a real one – I changed my browser’s user agent to let SharePoint believe it’s a Nokia 3120.

    (Left – modern touch screen mobile browser experience; Right – Nokia 3120 )

    Home page – despite the styles difference, the text content on the page is not displayed directly on 3120. It can be accessed through button 1 – Show text only.

    snap0076snap0072

     

    Excel Mobile Viewer commands – it shows more rows and columns to fit into the modern phone screen.

    snap0074snap0075

    Don’t forget to check out Mobile administration section on TechNet!

     

    Jie.

  • Jie Li's GeekWorld

    Crawl Lotus Domino with Lotus Notes Connector in SharePoint Server 2010

    • 12 Comments

    The Lotus Notes Protocol Handler has been changed to Lotus Notes Connector in SharePoint 2010 products. The good thing is, now Lotus Notes Connector has its own Service and Service Application. It is working on x64 platform, supporting Lotus Domino 5.5~8.5. And the UI as been improved a lot. So here’re the steps to configure Lotus Notes search in SharePoint Server 2010. It also applies to Search Server 2010.

    Prepare Lotus Notes Client

    I’m assuming the reader has basic Lotus Notes administrator knowledge. If not, don’t worry – follow the instructions in Notes Setup and TechNet article and you may still succeed.

    This guide is done with Lotus Domino and Notes 8.5. The steps with earlier versions are the same.

    Make sure Lotus Notes Client has been installed on the SharePoint box you want to use as an indexer.

    Suggestion: use C:\Lotus\Notes as installation directory so you won’t miss it. The installer in Notes 8.5 32bit has some issues with “(x86)” and messed up my program files directory on x64 OS.

    snap0033[3]

    If you need to make mappings file from this machine, Domino Designer is also needed. Domino Administrator can be an option.

    snap0034[3]

    After installation, double click Notes icon to launch it and go through connection setup. make sure it can connect to the Domino Server you want to crawl.

    snap0035[3]

    Setup Lotus Notes Connector on SharePoint Server

    1. In Farm Configuration Wizard, make sure Lotus Notes Connector is selected and click Next. This will create the service and applications.

    snap0028

    2. In System Settings, click Manage services on server.

    snap0030[3]

    3. Click Start on Lotus Notes Connector

    snap0031[3]

    4. So now it tells you there’re couple of steps you need to follow before provisioning the service. Don’t click Provision now, step 5-10 are required.

    snap0032[3]

    5. Download Lotus Notes C++ API 3.0 (not 3.0i) from IBM. The link may change as IBM updates their website quite often and breaks outside links. Make sure to download the one for Windows.

    snap0042[3]

    6. Get lcppn30.dll from the package and copy it to x:\program files\microsoft office servers\14.0\bin and x:\lotus\notes (your notes installation directory).

    7. Go to x:\program files\microsoft office servers\14.0\bin\1033 (1033 is LCID for US English.  The folder name may be different for other languages. For example, zh-cn is 2052), run NotesSetup.exe. Make sure the account to run NotesSetup.exe is the same with the one you use to start the Lotus Notes Connector Service.

    snap0040[3]

    8. Okay, this is the same one in 2007. Put in your Lotus Notes path like the following. Password is the one of the account you want to use for crawl.  If you want to have security trimming with search result, click next. Otherwise you can check Ignore Lotus Notes security while building an index option, skip step 9 and finish setup.

    snap0044[3]

    9. Fill in server name, account mappings db name, view name and column title in the dialogue. For how to create this mapping file, you can refer to http://technet.microsoft.com/en-us/library/cc261820.aspx. The same file with 2007 still works in 2010.

    snap0064

    10. Finishing setup. If everything is working, you should see the configuration succeeded message box.

    snap0047[3]

    snap0048[3]

    11. Go back to the browser window in step 4 and click Provision. This will start Lotus Notes Connector service.

    snap0049[3]

    Setup and crawl Lotus Notes Content Source in SharePoint Server 2010

    1. In Service Applications, click Search Service Application.

    snap0029[3]

    2. Create a Lotus Notes Content Source. The difference with 2007 is you don’t need to manually select every server name and each database name with a dropdown list any more. just copy and paste the Lotus Notes database addresses and it’s done.

    snap0050[3]

    For example, I created a document library in the root directory of Domino Server. The name is Document.nsf. There’s a doc inside, talking about Halo 3 ODST. So in the address line I put down notes://domino85/document.nsf.

    snap0052[3]

    The document in the lib – Mass Effect 2 is the one I’m playing the second round right now but this is just a demoSmile<- horrible smiley btw.

    snap0051[3]

    4. Kick off a full crawl to see the result!

    snap0053[5]

    snap0054[3]

    Refine Lotus Notes search result with Metadata Property Mappings

    When you do a search after the crawl, you may see a strange ID in the title of the result. This is the same behavior with 2007 – the crawler doesn’t know which field should be used as the title, so it chooses the uid of the notes document. This can be changed through Metadata Property Mappings, which used to be called managed property.

    snap0055[3]

    1. In Search Service Application, click Metadata Property Mappings from the left bar. Then click Categories.

    snap0056

    2. Click Notes in the categories. This UI is much better than 2007!

    snap0057

    3. Since this is a document library, the title should be “Subject” Notes field. So click the drop down of “Subject(Text)”.

    snap0058

    4. You can add mappings to the managed property: Title.

    snap0059[3]

    snap0065

    5. Don’t forget to click on the Title link after you mapped it with Subject(Text).

    snap0066

    6. Move up Subject(Text) in the order to make sure it is the first to be picked up and mapped to the Title. If you skip this step, the doc id will be picked up instead.

    snap0062

    7. A full crawl to make sure everything is updated.

    8. Done!

    snap0063

    Jie.

  • Jie Li's GeekWorld

    PDF iFilter Test, with SharePoint 2010

    • 8 Comments

    [update Adobe PDF iFilter result] 

    Recently Foxit updated their PDF iFilter 2.0. An interesting improvement is “optimized for multi-core processor”. It claims that you can get 3 times better performance compared with its own version 1.0. Let’s see how my test result goes.

    Machine:

    Dell 2950 (I bought this two years ago)

    2 x quad core Intel Xeon E5410 @ 2.33GHz, 8GB Memory, 3 x 10000 rpm HD RAID 5

    File set:

    22,559 PDF Files in 84 folders, 15.7 GB total, from People’s Daily Archive

    Content Source:

    File Share, on the same machine, to avoid network latency and bottlenecks

    Software Platform

    Windows Server 2008 R2

    SQL Server 2008 R2 Nov CTP

    SharePoint Server 2010 Beta

    Foxit PDF iFilter 2.0 x64

    TET PDF iFIlter 3.0 x64

    Adobe PDF iFilter 9.0 x64

    After each crawl, reset index, restart osearch14 service.

    Test Result – update Adobe PDF iFilter result

    Vendor

    Crawl Time(h:m:s)

    Crawl Time(s)

    File Per Second

    Success(including warning)

    Error

    Foxit 0:13:00 780 29.02 22637 0
    TET 1:17:44 4664 5.07 22637 0
    Adobe 8:29:43 30583 0.74 22637 0

    Amazing! The full crawl was done in just 13 minutes. If you still remember the last test I did, Foxit version 1.0 got 10.73 files per second on SharePoint 2007 x64 with the same hardware spec.

    Adobe PDF iFilter is single threaded. Only one CPU core was working during the full indexing process.

    Here’re the screenshots of the CPU usage…

    Vendor

    Screenshots

    Comment

    Foxit snap0012 Foxit PDF iFilter 2 is able to use multiple cores. Most of the time CPU usage is at around 90%.
    TET snap0013 TET PDF iFilter 3 is also able to use multiple cores. CPU usage is 100% all the time.
    Adobe snap0015 Adobe PDF iFilter 9 is single threaded. It can only use one core of the machine.

    Nice job, Foxit!

    Jie.

Page 1 of 1 (3 items)