Monday, November 16, 2009

Enterprise Search User Group GRAND OPENING!

This is very exciting for me to announce the grand opening of the Enterprise Search User Group. This is NY based User group, but we are getting technology to record the meeting and make it available on-line.

Here is the “official” description of the group

The site is still work in progress, but we will get there :-)

Out first meeting is on December 9, 2009

Welcome time 5:30 PM.

It is important to register as building security is pretty strict and will not let people that are not on the list inside the building.

Register now!

Topic: How Microsoft and FAST are defining Next Generation Search

Microsoft made a big bet on enterprise search with its acquisition of FAST in 2008. The powerful FAST Enterprise Search Platform (ESP) is now the centerpiece of Microsoft’s enterprise search strategy and will be the foundation for search in future versions of Microsoft SharePoint, as well as stand-alone enterprise search offerings. In this session, you'll get a front seat view at how this game-changing search technology offers new opportunities to provide better search solutions to both your colleagues and your customers, emphasizing why you should care in the first place (hint – money and productivity). We'll also reveal Microsoft's product plans for search within the SharePoint 2010 platform and beyond, and discuss practical steps you can take in order to take advantage of Microsoft’s new strategy immediately today, whether you’re running MOSS, planning to upgrade to SP2010 or use FAST ESP stand alone. We’ll be sure to leave plenty of time to have an open discussion with user group participants to talk about your specific situation.

Speaker: Nathan Treloar, Principal Search Technology Evangelist in the Microsoft Enterprise Search Group

http://www.sharepointgroups.org/enterprisesearch/default.aspx

I will see you there :-)

Wednesday, November 11, 2009

SharePoint Shop Talk Tomorrow (11/12) from 12:30PM to 1:30 PM EDT

This is a repost form Paul Galvin’s blog.

The next SharePoint Shop Talk takes place tomorrow at 12:30 PM EDT.

This is a free event to anyone that has a telephone.  A panel of SharePoint pro’s take questions and do their best to provide useful guidance and advice.  We regularly hijack audience members and make them answer questions and try to have a good time.

Send your questions or topics to questions@sharepointshoptalk.com.

Register here: https://www.livemeeting.com/lrs/8000043750/Registration.aspx?pageName=sx9p9r6prwxp5mk9

Monday, November 9, 2009

Vertical Bar Graph in Data View Web Part (DVWP)

I recently had to work with the following scenario:

Clinical Trial site for weight loss study, on the site as part of the functionality patients had to track their weight loss weekly. As part of their weight loss dashboard it was a nice touch to add a simple bar graph that would visually help them to see their progress.

End result:

image

End By clicking on the link on the bottom “Enter New weight measurement” they would get to the following screen (See image bellow):

image

Entering new weight is pretty obvious, it is Data View Web Part (DVWP) with insert new item functionality. The bar graph is DVWP as well but XSLT was modified so that every row in a “Weight Tracker” list is presented as a column instead of conventional row style.

How does it work?

I have a simple list “Weight Tracker”

Columns:

  1. Title (renamed to Weight) – is used to hold weight value in pounds
  2. Date – Contains the date when the measurement took place.

In SharePoint Designer (SPD) I opened dashboard page and inserted DVWP that uses Weight Tracker list as source.

Selected my title and date columns to show up and sort by date.

Next I have modified the XSL to create a column for each row. I’ve searched on the internet for examples like this one, where you need to create column (in DVWP) for each row in the list and create row (in DVWP) for each column that you display in the DVWP. Unfortunately nothing came up beyond all the stuff that had been copied from Fab. 40 templates.

Here is the code, hope it will help someone.

BTW, it took a bit over 30 minutes to configure that bar graph.

<WebPartPages:DataFormWebPart runat="server" ShowWithSampleData="False" AllowRemove="True" AllowHide="True" SuppressWebPartChrome="False" PartImageLarge="" ViewContentTypeId="" ExportMode="All" Dir="Default" MissingAssembly="Cannot import this Web Part." ID="g_7dec9695_2438_4cbe_94e7_cb233f1c5352" IsIncludedFilter="" DetailLink="" AllowEdit="True" UseSQLDataSourcePaging="True" HelpMode="Modeless" IsIncluded="True" Description="" NoDefaultStyle="TRUE" FrameState="Normal" AllowConnect="True" ViewFlag="0" AllowZoneChange="True" AllowMinimize="True" Title="Weekly Weight Tracker (past 3 months)" PartOrder="1" PageSize="-1" FrameType="Default" HelpLink="" PartImageSmall="" ConnectionID="00000000-0000-0000-0000-000000000000" ExportControlledProperties="True" IsVisible="True" __MarkupType="vsattributemarkup" __WebPartId="{7DEC9695-2438-4CBE-94E7-CB233F1C5352}" __AllowXSLTEditing="true" WebPart="true" Height="" Width=""><ParameterBindings>
                   <ParameterBinding Name="ListID" Location="None" DefaultValue="{D399E205-25E8-4A13-A076-CBDF2B1CB76D}"/>
                   <ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
                   <ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
                   <ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
               </ParameterBindings>
<DataFields>@Title,Weight;@Date_x0020_Submitted,Date Submitted;@Date,Date;@Chart_x0020_Bar,Chart Bar;@ID,ID;@ContentType,Content Type;@Modified,Modified;@Created,Created;@Author,Created By;@Editor,Modified By;@_UIVersionString,Version;@Attachments,Attachments;@File_x0020_Type,File Type;@FileLeafRef,Name (for use in forms);@FileDirRef,Path;@FSObjType,Item Type;@_HasCopyDestinations,Has Copy Destinations;@_CopySource,Copy Source;@ContentTypeId,Content Type ID;@_ModerationStatus,Approval Status;@_UIVersion,UI Version;@Created_x0020_Date,Created;@FileRef,URL Path;</DataFields>
<DataSources>
<SharePoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="&lt;View&gt;&lt;Query&gt;&lt;Where&gt;&lt;Leq&gt;&lt;FieldRef Name=&quot;Date&quot;/&gt;&lt;Value Type=&quot;DateTime&quot;&gt;&lt;Today/&gt;&lt;/Value&gt;&lt;/Leq&gt;&lt;/Where&gt;&lt;/Query&gt;&lt;/View&gt;" UseInternalName="true" ID="dataformwebpart1"><SelectParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{D399E205-25E8-4A13-A076-CBDF2B1CB76D}"/></SelectParameters><UpdateParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{D399E205-25E8-4A13-A076-CBDF2B1CB76D}"/></UpdateParameters><InsertParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{D399E205-25E8-4A13-A076-CBDF2B1CB76D}"/></InsertParameters><DeleteParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{D399E205-25E8-4A13-A076-CBDF2B1CB76D}"/></DeleteParameters>
    </SharePoint:SPDataSource>
</DataSources>
<Xsl>
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal">
    <xsl:output method="html" indent="no"/>
    <xsl:decimal-format NaN=""/>
                            <xsl:param name="dvt_apos">&apos;</xsl:param>
    <xsl:param name="Today">CurrentDate</xsl:param>
                            <xsl:variable name="dvt_1_automode">0</xsl:variable>
                            <xsl:template match="/" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:SharePoint="Microsoft.SharePoint.WebControls">
                                            <xsl:call-template name="dvt_1"/>
    </xsl:template>
                            <xsl:template name="dvt_1">
                                            <xsl:variable name="dvt_StyleName">2ColCma</xsl:variable>
                                            <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" />
                                            <table align="center" border="0" class="ms-vb">
                            <xsl:call-template name="dvt_1.body">
                                            <xsl:with-param name="Rows" select="$Rows" />
                            </xsl:call-template>
                                                                    </table>
                            </xsl:template>
                            <xsl:template name="dvt_1.body">
                                            <xsl:param name="Rows" />
                                            <tr valign="bottom">
                                            <xsl:for-each select="$Rows">
                                                            <xsl:call-template name="dvt_1.rowview" />                                                    </xsl:for-each></tr>
                                            <tr>
                                            <xsl:for-each select="$Rows">
                                                            <xsl:call-template name="dvt_2.rowview" />
                                            </xsl:for-each>
                                            </tr>
                            </xsl:template>
                            <xsl:template name="dvt_1.rowview"> <!-- For Bar Graph row-->
        <td valign="bottom" align="center">
            <xsl:text disable-output-escaping="yes">&lt;table height=&quot;100%&quot; border=&quot;0&quot; valign=&quot;bottom&quot; width=&quot;20&quot;&gt;&lt;tr&gt; &lt;td&gt;</xsl:text> <xsl:value-of select="@Title" /><xsl:text disable-output-escaping="yes">&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;bottom&quot;&gt;&lt;div style=&quot;background:#FF9900;height:</xsl:text><xsl:value-of select="@Title" /><xsl:text disable-output-escaping="yes">px;width:20px;font-color:white;&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</xsl:text>
                            </td>
                            </xsl:template>
                            <xsl:template name="dvt_2.rowview"> <!-- For dates Row-->
        <td valign="bottom" align="left" width="20" bgcolor="#CCCCCC" class="ms-vb">
            <xsl:value-of select="ddwrt:FormatDate(string(@Date) ,1033 ,1)" />
                                            </td>
                                </xsl:template>

                </xsl:stylesheet></Xsl>
</WebPartPages:DataFormWebPart>

Enjoy :-)

Thursday, October 29, 2009

It is a flue season. Is you SharePoint farm “healthy”? SharePoint Health check

The best scenario when you can say “ I know my SharePoint Farm” is when you actually just set it up, not months after. Giving your environment a health check is a good idea, especially in environments that do not have on staff people 100% dedicated to SharePoint.

This week I was at a client to do exactly this, the “health check” of their farm. There were no complains about the performance or bugs, but because there was no SharePoint monitoring or maintenance set up they thought it would be a good idea to take advantage of our “Health Check” offer. The company also wanted us, based on the findings, to give them recommendations on how they can better use and utilize SharePoint features.

Here are some notes from the “Health Check”, and pointers on what to look for during the process if you decide to do it your self:

Infrastructure Architecture.

analysis and documentation of the existing physical structure of the farm can help to determine at a glance where possible performance issues might happen as well as points of failure.

Infrastructure architecture includes, but not limited to:

  1. Hardware configuration
  2. Topology setup for the farm
  3. Server roles.
  4. SharePoint Server and SQL server storage.
  5. Patching and Updates level on all servers
  6. Virtualization
  7. Event logs on all servers in the farm

Analysis of this will also greatly help in evaluation of the existing backup and D/R strategy as well.

Logical farm setup:

IIS setup on all WFEs

  • Application pools
  • Web applications
  • Hostheaders
  • logs location

SharePoint Architecture.

General farm settings

  • Incoming, Outgoing eMail settings
  • Quota Templates.
  • Web Applications and their content databases
    • Web Application Policies
    • Managed Paths
  • AntiVirus

Shared Service Provider

  • User Profiles
    • Schedule
    • Source
  • Search
    • Content sources
    • Rules
    • Schedules
    • errors log
    • Security settings on the content sources for the crawl account

Security

  • Administrative and Service Accounts
    • app pools
    • web apps
    • Search content access accounts
  • SQL
    • SQL Database accounts

Site Collections

As the result of the discovery process, besides the documentation of the existing environment along with all other findings, there should be a good recommendations document produced with information on how to and best practices.

For example: event viewer application log was full of Even ID 6432, 7076, 6398 which was indicative of necessity of the following patch http://support.microsoft.com/?id=946517, along with this we have provided the whole guide on application of patches and their verification process.

There were no incremental backups on the farm, instead there were nightly full, granular (Third Party) backups that sometimes would take more than 12 hours to finish up and would have to be interrupted. And no OS or file level back ups was happening as well :-(

There were app pools in the IIS that were not used, some app pools that were used should not have been created in the first place. SQL server and WFE all had farms admin account as local admin account, number of other “sharepoint” logins were created on the SQL side, but in reality were not used.

Part of the Findings and Recommendations also outlined some of the general performance monitoring for SharePoint server, including SharePoint and SQL specific performance counters and what to look for.

I’ll post some of the best practices and recommendations at some point, but now I’m back to 2010 content :-)

Enjoy.

Technorati Tags:

Document management Sharepoint 2010

 Document center

Document libraries now allow end-users to select multiple document, upload documents with drag and drop option. Tag documents with tag such as "I like it" which will make them easily available on MySite, this way you can always refer to them later. At the same time users can be more specific about tagging by means of tagging with taxonomy and view suggestions for taxonomy.

  • Documents rating provides social tagging of the documents with comments provided by end-users.
  • Hierarchical Taxonomy can be shared not just across site collections but across entire Farm.

Documents are now identified by their respective document IDs. With custom setup for ID mapping, ex: you can specify that document IDs in a library can be mapped to "HR_Policies_2009_XXXXX. At the same time if needed existing documents IDs can be reset to specific ID schema.

Reach client application for editing documents (most popular office formats) directly from the browser, perfect in scenarios when users access environment form kiosk computers or from the road.

Records Management features.

Documents can be declared as records from within the doc libraries. Compliance details can be viewed from the document edit drop down menu. Granularity of the complience goes down to the folder level.

·"send to" menu option can be set up to send documents to multiple records management centers, not just 1 as it is in 2007. You can also "Send To" by means of Move the document, copy the document, or move it and leave a link to it so it is still accessible from within the document's original library.

Retention policies can be set up:

  • per content type
  • per libraries and folders

Folders are being looked at as means of security and retention policies granularity. Nested folders can either inherit policies from parent or have their own.

Retention policy consists of retention stages. There can be multiple stages set up for policy, stages that can fire off after specified period of time, ex: after 90 days move document somewhere, then after a year another stage might delete the document.

Taxonomy

Managed metadata

  • auto complete from managed term set
  • managed term sets are taxonomy
  • taxonomy is geared towards foxonomy
  • terms sets can be managed by individuals or by owners of the part of the taxonomy
  • Central taxonomy
  • Create your own taxonomies
  • Taxonomy structure tree view
  • Taxonomy store (centralized service)
  • Taxonomy term store
  • Multi language support for taxonomies

Modifications that can be done by end users to the taxonomy, depending or rights.

  • copy term sets (taxonomy branch)
  • move branch or term
  • deprecate term
  • merge terms
  • reuse term sets
  • specify owners and security for term sets that will control governance for taxonomy
  • specify terms that are available for tagging or make them just grouping categories for term sets.

Document sets

Folder like structure for grouping multiple documents together with advanced capabilities, almost like folder with special meaning

  • Provision multiple content type docs in one doc set
  • Add Web Parts on the landing page of the doc set, ex: description or instructions, or even dashboard
  • Automate repetitive content creation – EX: response to RFP
  • Allows consistency and process insight
  • Foundation for document assembly

Content Types

  • Content types Syndication
  • Sharing across site collections and across forms
  • Content type hub site- central management location for CTs

 

Content organizer

Automatic routing of documents appropriate place in SharePoint. This is true Document management System feature, end users don’t even have to be aware of SharePoint and think which document library this document should go into. now they just work in word or office and SharePoint moves documents that were submitted by users to appropriate place, based on:

  • Rules for content rerouting
  • Metadata
  • Content Types
  • Property based conditions
  • Can apply multiple rules

Enjoy

Sunday, October 25, 2009

SharePoint Saturday Phylli, November 7th

This is another SharePoint Saturday even in the area.

This time it is put together by Dave Mann.

Join SharePoint architects, administrators, developers, and other professionals who work with SharePoint for a special 'SharePoint 2010 Themed Saturday' on November 7th, 2009.  The day will be filled with educational and informative SharePoint 2007 and 2010 sessions and provide you with an excellent opportunity to network with Microsoft MVPs and other SharePoint professionals in Philly area. SharePoint Saturday is FREE and is open to the public. 

REGISTRATION IS NOW CLOSED.  But you can get added to Event’s waiting list.

I’ll be there speaking on Search for SharePoint 2010, come and learn about new Microsoft Enterprise search offering built on FAST ESP technology.

See ya there :-)

 

Tuesday, October 20, 2009

SharePoint 2010 overview for IT Pros

Great session at SPC 2009 by Simon Skaria,  Lead of Customer Advisory team, Microsoft.

In short, this session was oriented around 3 main topics:

  1. Flexible deployments
  2. IT Pro productivity

From the flexibility of deployments stand point, Skaria was highlighting the following features of SharePoint 2010, such as:

Installation:

Installations of the Sharepoint is simplified by server preparation feature such as, one click prerequisites install. this alone is a great time saver, isn’t it? it also provides Progress Reports. this is not available in the Sharepoint 2007. this report notifies you of the progress and steps that are happening during the installation and upgrade. you don’t have to stare at the Config Wizard for hours without knowing where you in the process.

Predictable upgrade:

  • Pre upgrade checker.

Checks for best practices, configuration and farm setup settings.

  • Visual Upgrade

Allows to preview upgraded site in the new UI before flipping the switch

  • Resumeable upgrade

Provides an ability to resume upgrades that were previously aborted without the necessity or rerunning the upgrade from the very beginning.

  • Parallel DB Upgrades

These feature provides support for read only upgrade, meaning that while the upgrade is running, your farm is still available to end users but in read only mode. Unlike previous version upgrade, this feature provides availability of services during the upgrade it's self.

 

From the IT Pro productivity stand point….

LEARN POWERSHELL! Powershell, as the name implies is powerful scripting language that will make your IT Pro life easier.  It does not mean that stsadm is going away, it’s not, but ….

Consider the following, 500 OOTB commands are available in 2010… and you can extend these to suit your needs and your deployments

  • Logging, monitoring, and alerts.
      • Unified logging

Gathers info from all kinds of counters from servers in the farm, including SQL.

Logging info is pushed to open schema SQL DB, use it the way you want.

  • OOTB reports
      • Rich Web analytics

Beyond just troubleshooting, rich web analytics provide detailed usage reports, reports on slowest pages load where you can trace the root of the performance degradation with details on these pages through the developer dashboard.

  1. Developer Dashboards

Developer dashboards provide call stack, operations, queries, web part events offsets information(analysis of load time for each individual webpart)

Integrated Health analyzer

This provides the info that SP best practices analysis tool provides with SP 2009… and some more :-). This built in tool analyses security, storage, orphaned items in content DBs, etc.

Business continuity management

  • High availability servicing
  • No down time on servicing SharePoint
  • Lights out recovery
  • Fail over is managed by the SharePoint

 

Scalable Infrastructure

  • hosting
          • Supports multi tenancy
          • SP online standard
          • SP online dedicated
  • On premises deployments
  • Services “a la carte”

Lists are highly scalable!

Support for blob storage

Large document libraries

  • Support for more than 1 million documents in one library.
  • Performance on large lists and document libraries - is a promise with sub-second response time
  • OOT library view comes with the flexible navigation, filtering and refining views by metadata, taxonomy, other defined filters on the fly
  • Automatic routing of documents to a drop off library with rules on automatic creation of folders
          • Content organizer rules, that allow to create manageable IA
  • Easy configuration of library navigators
  • Automatic column indexing for lists (where IT pros do not have to worry about the technical side of the set up of lists) instead they can just concentrate on the end user experience

Security and governance

  • support for automation of password changes management
  • Addition of servers in the farm can be secured by pass phrase
  • 7.3 APIs for permissions reporting
  • APIs are very rich to provide great starting point for custom reports on security and governance

Information governance

  • ediscovery – records management
  • search for documents that are subject for records center, preview search results, and without moving them in to records center apply a “hold” on them. The docs are remaining in their original location but become records.

Application governance

  • Control over consumption of resources and ability to terminate processes that are running over the limit

IT governance

  • block and track sharepoint processes – very useful for sandbox solutions
  • AD recognizes Sharepoint machines within environment
  • Enabling automatic password change from the Sharepoint
  • Apply AD group policy to prohibit implementation of SharePoint servers other than SPs existing in your Farm.

Enjoy :-)