Sunday, December 16, 2012

Pandora on Xbox 360

  • You want to stream Pandora internet radio from your Xbox 360
  • Pandora has not yet released an Xbox 360 app
  • Download the internet explorer app and browse to
  • I highly recommend using Xbox glass to navigate and fill out your Pandora account information

Monday, December 3, 2012

Microsoft Surface / Window RT missing Bluetooth DUN support

  • No Bluetooth DUN (Dial Up Networking)
    • BthModem is not supported by the Microsoft Bluetooth Stack
    • This means standard Bluetooth Dial Up Networking is not available
    • If you have a mobile phone, you must use a USB or WiFi tether unless PDAnet, FoxFI,, or similar partner develops a custom driver specifically for these devices

Cloud Hosted Dev, Test, Training, and Demo environments

This article is in progress.  The purpose is to identify and compare preconfigured cloud hosted virtualized development, testing, training, and demonstration hosting providers.

  1. Preconfigured Servers (ex: Preloaded SharePoint Server)
    1. Licenses Included
    2. BYOL (Bring your own licenses)
  2. Automatic suspend and resume
  3. Clone VMs
  4. Snapshots
  5. VM Sharing (transfer your VM to a team member's account)
  6. Export VM (for use locally)
  7. Public IP or URL
  8. VPN Tunnel
  9. Scalability
Pricing Considerations
  1. Simultaneous users
  2. Processing or Usage time
  3. CPUs
  4. Bandwidth
  5. Per VM
  6. Disk usage
  7. RAM
  8. Public IP or URL
Hosting Providers
  • CloudShare
    • ProPlus (8GB RAM, 300GB Disk for $60/month)
      • Features: 1.1, 2, 3, 4, 5, 6?, 7*
        • 6?: More difficult to request this since the licenses are included
        • 7*: Public URL redirector.  Unreliable in my experience.  May not work if the machine was auto-suspended.
      • Performance: Lackluster.  Takes 5 to 10 seconds to load some standard pages.  Can be time consuming to wait for servers to resume from suspend (3-4 times per day).  Limited CPU allocation.
  • Skytap
    • Features: 1.2*, 2, 3, 4, 5, 6, 7, 8, 9
    • 1.2*: These templates are not provisioned as well as CloudShare.  Recommend bringing your own VM as well as licenses.
    • Performance: Untested.

Other Articles:

Thursday, November 29, 2012

SharePoint Folders and Document Set Best Practices

The general consensus is to move away from folders and instead convert the taxonomy to metadata fields or convert to sites and libraries.  This is typically hardest to do when migrating from a file system into SharePoint.  If you do decide to do this, make sure to disable folder creation at the library level.  This won't stop explorer view from creating folders, but does remove it in-browser.

Users typically want to use folders for navigation.  This is usually due to a lack of proper site structure, navigation, views, search, and metadata.  Grouping within a view can be used to simulate folder based navigation and help with user adoption.

There are plenty of articles on how folders are bad, so I'll just list the main justifications for using them and possible workarounds.  If you must use folders, consider using document sets instead (see document set features below)

If you do want to use folders it should be for one of the following concrete reasons:
  • Different security but the files should appear in the same views
    • If they don't need to be viewed together, move them to new libraries
    • Even if they do, consider a third party library rollup / library collection web part instead
      • This would allow you to view multiple libraries in one view
  • Explorer view usage (if explorer view is the primary mechanism for working with files)
    • This is not recommended except in bulk document management scenarios
    • Note that explorer view works with doc sets and separate libraries as well and these should be preferred over folders
  • Document Set feature usage 
    • Doc sets are library root level folders with advanced features
    • They cannot be nested - This is a good thing
    • Features:
      • Custom page for viewing/managing the grouped documents
      • Versioning multiple files in a group
      • Configure metadata for a group of documents simultaneously
      • Running a workflow against a group of documents
      • Preload several documents as a single group
  • Email enabled libraries
  • Too many groupings to manage
    • Consider a keyword taxonomy field, lookup, choice with add item enabled, or single line of text metadata field instead

Friday, November 23, 2012

Windows 8 - Android Bluetooth Tether

  • You are tethering an Android phone using the free FoxFi or PDANet Bluetooth dial up modem
  • You have already installed the software on your computer and on your phone.
  • The simple Bluetooth connect button is not available from the Bluetooth device screen as it was in Windows 7
  • You must connect as a Dial up connection and specify "*99#" as the phone number
    • First start the FoxFi or PDANet Bluetooth app from your phone
    • Go to your Networks settings (Mouse: Bottom right corner+up/settings/internet access/dial-up-connection)
    • Enter in *99# in the phone number, ensure your phone is selected as the device, and select connect
(Idea From:

Monday, November 5, 2012

MS SharePoint Conference 2012

Entry Sponsored by:
Everest Solutions Group
Business Strategy, Application Development, Mobile, and Portal/Web Design!

I'll be attending the SharePoint Conference 2012.  Sunday the 11th through Thursday the 15th.  If you plan to be there and would like to meet up, please reply here, on Facebook, or on LinkedIn.  I'll be staying at the Vdara (City Center) Sunday night and the rest at the Aria (City Center). 
Note: I used Priceline Express deal for Strip Vicinity: South.  Buy Sunday separately since the other nights are much cheaper.

Itinerary (Updated with session notes)
  • Sunday Night
    • 3:20 - Arrive
    • 6:00 - Registration
  • Monday
    • 8:00 - Breakfast
    • 8:30 – Keynote (SharePoint 2013 New Features)
      • Social Features
        • @ and # tagging
        • inline video
      • ECM Features
        • Drag/Drop in browser
        • Preview pane
        • Integrated social conversations
      • Yammer
        • Button integrated into list/library Ribbon
        • Enterprise graph (Open Graph)
          • Conversations about the item
        • Mobile Device
        • Included with Office 365
        • Free version and a discounted paid version available
        • Nationwide case study (Spot)
        • ??? Not sure how this deviates from the standard SharePoint 2013 social
      • Search, Web Publishing, Web Content Management - Richard Riley
        • Search
          • Fast Included
          • Previous results intellisense in search box
          • Results block
            • ??? – Is this different than Keywords/Synonyms???
        • Web Publishing
          • Dreamweaver (other editor) support
            • Snippit editor in browser
            • Copy the webpart code as a snippit directly into the HTML
          • Content search webpart (Amazon product like display using a SharePoint Query)
        • eDiscovery
          • In-Place holds
            • Includes query features
        • Outlook integration
          • SharePoint Inbox, Documents, People, and Events folders in Outlook
      • Infrastructure/Foundation
        • Cloud (MS geo-redundant Datacenters are the Best)
        • 40% more efficient bandwith
        • 4x image compression
        • 50% reduction in server-side latency
        • Version history only stores changes now (used to store copies)
        • Upgrade path
          • Backward compatible UI mode (Visual Upgrade for 2013)
          • Health check (Upgrade validation)
      • Development
        • oAuth security to Office 365
        • Deployment into the cloud
          • Seamless deployment to Azure and Office 365
        • Cloud app model – reseller opportunities
    • 11:00 – What’s new for developers in Office 2013 and SharePoint 2013 (Keenan Newton, Cyrielle Simeone)
      • Office HTML and JavaScript apps utilizing web services can be embedded in Excel (and other Office apps)
        • 1 app for Word, Excel, Access, etc.
      • Mail apps
        • Outlook/Exchange
        • Deployed via exchange rules
        • ??? - Does this work with Office 365 Exchange
      • MS Access 2013 apps in SharePoint
        • Can now use SQL server back-end within SharePoint
      • Office and SharePoint Store
      • “Napa” Office 365 Development Tools
        • Javascript and Asp.Net  web based (Azure) coding interface
        • Option to open in Visual Studio
      • Visual Studio 2012
        • Remote SharePoint debugging and coding on Windows 7/8
    • 12:15 – Lunch
    • 2:00 – What’s new with Enterprise Content Management in SharePoint 2013 (Tejas Mehta, Jim Masson)
      • Hash tags – integrated with managed metadata
      • Profile – docs I’m following, suggested docs
      • Missing notes here
    • 3:45 – Enterprise Social 101 (Jared Spataro, Adam Pisoni, Pavan Tapadia, James Patterson, Jessica Halper, Lauren Antonoff)
      • Yammer is going away.  There will be 1 product (SharePoint).  This explains why they demoed the 2013 social features, but only pieces of the Yammer offering during the keynote.
      • Use Yammer for 2010 now and there will be an upgrade path to 2013
      • My take: MS basically bought Yammer for the staff and customer base
    • 6:00 – LoungeSPC  - House of Blues
    • 7:00 - Dinner
  • Tuesday
    • 8:30 – Breakfast
    • 9:00 – Overview of ECM for teams with Site Mailboxes (Adam Harmetz, Alfons Staerk)
      • Can drop personal emails into this mailbox for team
      • Site Mailbox Document Library folders
        • Can forward a link of the document from the team mailbox
          • Doesn’t use Document ID feature.  Uses a static link
        • Inbound email only.
        • Doesn’t display columns within Outlook
        • Same functionality as WebDav, browser drag/drop
        • Uses the default content type
        • OWA interface will not include (you must go to the SharePoint site)
        • SharePoint search will not include the emails, Outlook search will not include the documents
        • Exchange stores site mailbox content – no duplicate data storage
        • SharePoint manages lifecycle policy for the site mailbox
      • eDiscovery support
      • Site Closure and Deletion
        • Policies to close and delete sites automatically based on site created date
      • Add the mailbox via a SharePoint App
      • Exchange 2013 must be configured to support SharePoint 2013
        • If upgrading, you will need to migrate user mailboxes to Exchange 2013
        • Users would need Outlook 2013 to view the site mailboxes in the client
        • No hybrid Exchange support
    • 10:30 – Developing apps for SharePoint 2013 with Visual Studio 2012 (Mike Morton, Sean Laberee)
      • New Options
        • Full Page
        • App Parts (hosted web parts)
        • UI command extensions (UI custom actions)
      • Remote Development
      • Build a dev site using the dev site template or else use
      • Office enabled app for SharePoint
        • Office app embedded in a SharePoint document library default template
      • “Appetize” an existing web app
        • Demoed taking a standard MVC 4 web application,
      • oAuth via ACS (STS)
      • High-Trust apps (In-house hosted apps)
        • Use OAuth via Certificates
        • Each web app has to have a certificate
        • Internal use apps (no app store integration)
        • Open SOAP endpoints for app event and remote event receiver via your firewall
          • Utilize service bus (white-paper coming)
        • Remote event receivers with real-time debugging within Visual Studio
        • Intelli-trace (step back during debugging)
    • 11:45 – Lunch
    • 1:45 – People Search and Extensibility in SharePoint 2013 (Mikael Svenson, Sana Khan)
      • User Profiles
        • Now can relate an external source (via BCS) to a user’s profile to import related propertie
        • External Content Types now configured in Visual Studio instead of SharePoint designer
      • User context for customizing enterprise search
        • Prioritized by
          • Organizational structure distance
          • Who y0u follow
          • Sites you follow
        • Search Content Enrichment
    • 3:15 - Claims Based Authentication – Migrating to the new SharePoint 2013 Identity Model (Israel Vega, Nathan Miller)
      • Pushing claims (Classic is depreciated but supported)
      • Flow
        • Migrate web applications
          • Update to use Claims
          • Update web application policy
      • Classic to Classic (Depreciated)
        • Use PowerShell
        • Warning in health rule
        • No Office Web Apps (preview) in classic mode
      • Classic to Windows Claims (OOTB Content and user migration)
        • Clean up: "Last Modified By” is not populated by default
        • Custom code utilizing “WindowsPrinciple” in code will no longer work when switching to claims.  Change to “UserPrinciple”
        • See slides for PowerShell code to migrate users
        • Create the Portal SuperUser and SuperReader accounts (PowerShell code provided in slide deck)
        • Impersonation and other information on IWF and C2WTS
      • Custom Claims migration
      • Windows Claims to SAML (Federated)
      • SAML to SAML (Federated)
        • Inventory the claims the encodings
        • Sync the claims encodings
        • Migrate the trusted provider
        • Migrate/update the provider realms if needed
        • Migrate content DB’s
        • Add web policies
        • Test, test, test
    • 7:00 - Attendee Party –(Bon Jovi)
  • Wednesday
    • 8:30 – Breakfast
    • 9:00 – SharePoint 2013 Upgrade Deep Dive (Sean Livingston)
      • Upgrade site collections via PowerShell commands or individually per site collection (with or without an evaluation site)
        • Can queue up multiple site collections for synchronous processing
      • Self-service site collection upgrade option
      • Evaluation site collections
        • Size quota option
        • Expiration: Default is 30 days
          • No expiration extensions in the UI, requires PowerShell
        • Entered in the Site Map
        • Linked to from original site
          • Only 1 eval site per original
        • Eval site creation is scheduled as a timer job
      • Solutions
        • Install-SpSolution CompatibilityLevel
          • blank – Will install based on codebase tags (likely 14 only)
          • 14, 15 – Both as same codebase
          • 14 – 2010 only
          • 15 – 2013 only
        • Does not support partially trusted code solutions
          • Bin directory requires full trust install
      • Claims
        • Existing 2010 claims providers should work fine
          • Make sure provider names match
        • Claims Auth is now recommended
      • Farm Services
        • 2010 content farm can consume 2013 farm services
    • 10:30 - Advanded Dashboard Creation using Excel, Excel Services, PerformancPoint and Apps for Office (Kevin Donovan)
      • Stack
        • SQl Server – SSRS, SSAS
        • Excel – PowerView, PowerPivot, Excel Services
        • SharePoint – PerformancePoint
      • Office 365
        • No PerformancePoint services
        • No data refresh
        • MS is working on implementing
      • Excel
        • Pivot Table
        • Recommended Charts
          • Data slicing (timeline)
        • Apps for Office
      • Excel Services
        • Field List/ Field Well
        • EffectiveUsername
          • Allows delegated credentials via a username property Analysis Services queries using this user instead of process identity
          • Less need to use Unattended Service Account
        • Automatic Target App Creation
        • BI Server
          • Excel services must be configured to use SSAS server(s) for processing
        • NOV2
        • Named object view
      • SQL
        • Import to SSAS from PowerPivot using SSDT (SQL Server Data Tools / New BIDS)
      • PerformancePoint
        • Themes
        • BICenter (Dashboard Designer in the ribbon)
        • Filter Enhancements
        • Filter Search
        • EffectiveUsername
        • CustomTargetApplications
          • Share target applications between Excel Services and PerformancePoint
        • Server-side Migration
        • Dashboard Designer Authentication
    • 11:45 - Lunch
    • 1:45 - Client Side Rendering in SharePoint Server 2013 (Kirk Evans)
      • No notes
    • 3:15 – Security Trimming for Search in SharePoint 2013 (Morgan Larsson – Senior PM, Sveinar Rasmussen – Principal SDE)
      • No notes
    • 7:00 - Cirque: Ka at MGM Grand (Category D)
  • Thursday
    • 8:30 – Breakfast
    • 10:30 – Deep Dive on Managing Enterprise Content Types At Scale (Chris Bortlik, Scott Jamison)
      • General Content Type overview
      • General Column overview
      • Column Usage Report (2010 and 2013)
        • Will distribute after the conference
      • Content Type Syndication Hub
        • Pros
          • OOB
          • End User management
          • Single source for content types
        • Cons
          • Lack of change mgmt
          • Coordination via dedicated site collection
          • Does not work for hybrids
      • Left at this point since nothing new was covered
    • 12:00 – Surfacing LOB Data in SharePoint 2013 using BCS and Search (Shannon Bray)
      • Same as 2010
    • 1:30 - Lunch
    • 3:25 – Flight Home

Friday, October 5, 2012

MS Access SharePoint Read Only Linked Library

  • You are getting external data from a SharePoint library with Microsoft Access and wish to edit, insert, update, or delete the records
  • The library requires approval of submitted documents
  • You receive any of the following errors due to the list/library being read-only
    • "Cannot update. Database or object is read-only."
    • "This Recordset is not updateable."
    • etc.
  • You may also receive the "The setting you entered isn't valid for this property." 
    • You can ignore this one as it is irrelevant to this issue and will not prevent updating the list/library.
  • Disable the approval requirement in the document library versioning settings. Re-enable when done.
    • This seems to auto-approve any that are in progress. 
    • In addition, the Approval Status column may disappear from configured views.
  • Side note: For records with a populated person/group column, MS Access may hang during an update (via query or linked list manual update).  Removing and re-adding the users cleared this up for me.  And yes, this was strange.
  • The following scenario also does not affect the read-only status:
    • The list or library you are accessing included a managed metadata field at some point in time

      You can verify this by viewing the linked library in Design View in MSAccess and looking for a column named "Taxonomy Catch All Column". If it exists, then this list had a Term Store (Managed Metadata) column associated with it. Ex: Enterprise Keywords

Thursday, September 27, 2012

SSRS Regex Expression for SharePoint Lookup Column

  • You have a multi-select (multivalue) lookup field in your SQL Server Reporting Services 2008 R2 report
  • The field also displays the Field IDs and you want to format it correctly
    • Ex: Value1;#5;#Value5;#6;#Value6
  • Use the following expression
    • =System.Text.RegularExpressions.Regex.Replace(Fields!MyLookupColumn.Value, ";#\d+;#", ", ")

Tuesday, September 25, 2012

SharePoint Integrated SSRS: BIDS Deployment: Multiple Login Prompts

  • You are using SQL Server Business Intelligence Development Studio to deploy a report project to a  SQL Server Reporting Server in SharePoint Integrated Mode
  • You are attempting to use the SharePoint Server address with "/reportserver/" or the Report Library address. 
    • Note: BIDS asks for this format which may not work: "http://<servername>/reportserver"
  • You repeatedly receive "Reporting Services Login" authentication prompts when attempting to deploy and eventually fail to deploy
  • Use "http://servername/" or "/_layouts/ReportServer" in the TargetServerURL path in the project properties
    • Ex: "" or ""
    • If you use the server name, make sure to include the trailing forward slash
  • Use the Report Library/Folder location in the Target*****Folder settings
    • Note: You can use folder paths if your library contains folders. 
      • Ex: ".../Reports/Folder1/Folder2"
  • Here's an example of the settings (Right Click the project and select properties)

Tuesday, July 17, 2012

Active Directory Password Expiration Notification Email

  • Users log into your site using an AD user store
  • Password expiry is enabled via Active Directory Group Policy
  • User's passwords may expire without their knowledge, especially if they don't have regular access to a domain attached PC

Monday, July 2, 2012

AAM Default Zone Configuration Issues

  • You have configured Alternate Access Mappings (AAMs) for a SharePoint web application
  • You may be using ISA or UAG to terminate a FQDN and redirect to an internal URL
  • SharePoint Designer Workflow email alerts with document or item links may display the internal URL or other URL from the AAMs, rather than the public URL
  • Search results will not display any results (no results) on the search page when searching using a site scope
    • Ex: From a subsite, you enter a search criteria which is scoped to "This site" and receive no results even though the content has been indexed.  "All Sites" scope works correctly regardless

Thursday, June 28, 2012

Office 365 for educators just released!

For all teachers, educators, and school or district IT administrators.

MS just released Office 365 for educators. I would highly recommend this to any school. These are cloud services with extremely reduced costs (or FREE), saving your district money to put more of it into the classrooms. Class/staff web sites, public web site, online file storage, email (outlook), MS Office (w/ web apps), Instant Messaging, phones/voicemail (VOIP), calendaring, task mgmt, web search (of all curriculum/documents you have access to), and real-time collaboration (x people work on 1 document at once).  This includes SharePoint, which is the platform of choice for collaboration and content management solutions.  I would recommend engaging a competent solution integrator to migrate and deploy to Office 365.

Thursday, May 24, 2012

InfoWise handy SharePoint plug-ins

  • Enterprise Capacity Solution - Multiple site collection navigation management
  • Smart List Pro - Tab based forms with field hiding - For lists/libraries with lots of metadata
    • Not true permissions since datasheet view and web services gets around it
    • User group or other field based default values and hide rules
    • Regex column validation
  • Smart Print Pro - Print list views

Thursday, May 10, 2012

Solution Architecture - To SharePoint or Not to SharePoint

You are architecting a web based software solution and are considering custom development (Asp.Net and SQL) or SharePoint list and library based architecture.  You can decide based on the following list of SharePoint pros and cons.  If you can pick 3 or 4 items (or 1 very important item) from the Pro list and are aware of the items in the cons list, it is likely beneficial to use SharePoint.
  • Pros
    • Authentication, authorization, and membership - Claims, forms, AD, LDAP, and custom
      • Security trimming throughout the product - Very important
    • Document and content management
      • If you plan to upload files, plan to use SharePoint - Very important
    • Item Data
      • Site, library, and list columns
      • Managed metadata
      • Customizable ad-hoc list and library views
    • Search and Indexing
      • Security trimmed - Very important
    • Publishing, approval, versioning, and check outs
      • Versioning - Very important
      • Remember to turn these on where appropriate
    • Navigation
      • Security trimmed
      • Dynamically populated
    • Web content management - Sites, pages, wikis, blogs, and web parts.
    • Recycle Bin - The big undo
    • Email Alerts, RSS
    • Integrated workflow and task engine - Pre-built Approval and Review workflows
    • Retention policies, legal holds, and record management
    • Email enabled libraries
    • Unified user interface (Master pages, layouts, themes, and styles)
    • Reporting integration
      • Excel services
        • Better with PowerPivot (SQL Enterprise or BI)
      • SSRS
      • MS Access
      • PerformancePoint services
    • External lists and external chart web part
      • Using business connectivity services
    • MySites (personal web sites) and user profiles
    • MS Office integration
      • Including Office Web Apps (with MS Office volume license)
      • SharePoint Workspace for offline caching and synchronization
    • Plethora of third party products and solutions
    • Standardized skill-sets - by SharePoint focus
      • Ex: Architect, developer, analyst, admin, designer, end-user, bi analyst, librarian, etc.
    • Web Part Framework integration
      • This is also available in ASP.Net, but does not have audience integration and requires some master page work and is not as flexible for reuse and customization by end-users.
    • APIs: web services, client object model, sever object model, and PowerShell
    • MS Support
    • Load balanced, scalable architecture
    • COTS - little to no coding required for many solutions
  • Cons
    • Relational support limited
      • SharePoint supports lookups with referential integrity and reflected columns but does not support hierarchical/tree view and complex entity relationships without custom development
      • SSRS does not allow you to query with a join or union
    • System integration complexity
      • Integrating and maintaining SharePoint and related applications in your environment can be complex and requires a professional to do correctly.  This can be mitigated by using a hosted SharePoint provider.  This admin level complexity is greatly outweighed by SharePoint's inherent functionality.
    • Performance
      • You can't optimize the performance as well as with a SQL database.  If your system is highly transactional, consider moving these pieces to SQL and front-ending in SharePoint
    • New skill set to utilize fully
      • SharePoint is still in the early stages of user adoption and training.  Many users will need to be trained to understand how best to use SharePoint.
    • Storage hungry
      • SharePoint solutions with document libraries can eat up disk space faster than a file share.  Make sure to plan SQL capacity and possibly Remote Blob Storage
    • Wildfire effect
      • If proper governance plans, quotas, IT professionals, and permissions aren't in-place, SharePoint training and support needs may surpass the IT department's ability to provide
    • Initial cost
      • Initial costs (server licenses and CALs) should be surpassed by reduced development costs and increased productivity. 
      • Search Server 2010 Express (SharePoint Foundation 2010 w/ advanced search)  is available for low cost solutions.  This will not have all the features listed above.
    • Not easy to synchronize functionality and content across distributed farms, sites, and lists
      • If you plan to utilize site or list templates, you must have a plan to integrate new features into sites after they have been created.  Data migrations, schema changes, and feature additions must be addressed in a solution package or powershell script.
    • Troubleshooting bugs and limitations
      • The more you use SharePoint, the more you will run into its limitations and bugs.  Troubleshooting issues is usually not straightforward and requires SharePoint knowledgable IT staff and/or many hours on the support line.  Fortunately, limitations are very often overcome by community and third party products and are a google search away.  See the rest of my blog for many of these bugs, limitations, and workarounds.
    • Easy to poorly architect a solution
      • With great ease of implementation, comes incredibly horrible solutions
        • Generally, do not:
          • Use folders
            • unless they are doc sets, email enabled folders, or OneNote sections
            • folder level security and explorer view needs are a possible exception
          • Copy/move documents unless you have a good reason
            • Utilize in-place publishing, versioning, security, and filtered views whenever possible
          • Overwrite the standard list/library CRUD forms
            • you can add to the pages, just don't remove the dynamically generated form web part
            • Try to use custom fields, third party products, or views to implement custom functionality within a column
          • Use too many site collections
            • Site collections isolate functionality.  Only split if you are sure there will be little crossover in SharePoint functionality.  Search will work across site collections.
          • Use too many sites
            • Sites should map to your main navigation, you don't want too many at each level
            • The exception would be for dynamically generated templated sites, but you would need to implement code for instantiation, navigation, and disposal.
              • Ex: Project sites and my sites.
          • Use too many lists/libraries
            • Items with similar metadata and security should be in the same library and separated by content type or metadata values.
          • Develop a custom solution that can be addressed using native SharePoint functionality
        • Generally, do:
          • Have a seasoned SharePoint specialist gather requirements and architect a  solution
            • This person should know all the dos and don'ts
          • Use site content types and site columns
            • Define site columns and content types at the lowest level site needed to encompass all sub-sites where they will be used
          • When custom development is needed
            • Use javascript, ajax, and jquery
              • but not for security
            • Use PowerShell for administrative functions
            • Build SharePoint Designer workflows
            • Build Visual Studio workflow actions
            • Build Visual Web Parts
            • Build EventHandlers
            • Package and deploy visual studio solutions as a .wsp
            • Be careful with performance on the above
              • Dispose items properly
              • Cache any collection references, don't use the index
                • Ex: Don't use splist.items[x], instead use getitembyid or equivalent
          • Perform user testing
          • Use lookup lists and columns
          • Performance testing
          • Disaster recovery testing
            • Backup plans are useless without successfully tested recovery plans

Tuesday, May 1, 2012

SharePoint Report Builder disconnected bug

  • You have configured SQL Reporting Services 2008 R2 (SSRS) in integrated mode against SharePoint Server 2010 or SharePoint Foundation 2010
  • The SharePoint site collection containing your report library has anonymous access enabled for the authentication zone you are using.
    • Ex: You are building a report for a public website hosted on SharePoint and accessing it via the default zone where both Windows Auth and Anonymous are enabled
  • You try to add a new report to the library (after correctly configuring the report content types) or open an existing report using Report Builder 3.0
  • The report does not correctly connect to the integrated report server.
  • New document / report builder report symptoms:
    • "No current report server.  Connect"  appears at bottom left
    • Saving the report prompts for a location on your computer
  • Opening an existing report in report builder will open a blank report instead
  • This occurs because Report Builder does not use your existing windows authentication token from Internet Explorer and instead tries to initiate new credentials.  By default, anonymous access is provided, which does not have permissions to create or edit a report on the server.  You can workaround this by performing one of the following actions:
  • Disable anonymous access on the zone you are using to build reports
  • Create another zone where anonymous access is disabled and use that url/ip/port when designing reports
  • Build reports locally and manually upload/download them to/from the report document library
The zones are configured via central admin / manage web applications / authentication providers You may need to set alternate access mappings and/or extend a web application to configure additional zones

Wednesday, March 21, 2012

#SharePoint Lookup Column DefaultValue Datasheet View Bug

  • You have set a Lookup Column's default value property via code
    • There is no way to set this via the SharePoint UI with the exception of the workaround to default the first item in the lookup by making the column required
  • You receive the following errors
    • "The text entered for ColumnName isn't an item from the list." dialog box
    • The spreadsheet will not save the row and an invalid entry window will pop up

Side Note

I have developed a SharePoint solution that will allow a user to specify column defaults from a root site list for all instances of a Site Column within a specified site. For example, a company has several offices that each have a category that may change.  Each office has it's own team site. Every document and list item in the company must also have the office category populated for filtering and searching.  The user would set the office category from an office list at the root site which includes the office team site url, at that time, my tool updates the default value in each list/library where that site column is used within that team site.  If you would like more info, please comment to this post or contact Kiefer Consulting.

  •  Datasheet view does not work properly
    • You will run into errors if any of the following are the case
      • The client is running Office 2010 64bit with the 2007 Office System Driver: Data Connectivity Components workaround
        • The name and id are swapped in this case.  If you set the defaultvalue to the backwards combo the default will work for this client configuration but will not work with the standard new item form or other client configurations.
          • Ex: "Name1;#1"
      • The client is running an older version of Office
      • A defaulted lookup is multi-select
    • You may run into errors if the following is the case
      • A defaulted lookup is not visible within the Datasheet view
  • There is only one unique circumstance where Datasheet view will work with standard formatted defaults
    • Office 2010 32bit is installed on the client
    • The lookup columns are single-select
    • All defaulted columns are visible within the Datasheet view
  • To code for maximum datasheet support, you must use a repeated id format workaround
    • Ex: spfieldlookup.defaultvalue = "1;#1;#2;#2"
    • This will solve the "The text entered for ColumnName" issue for multi-selects and non-visible fields in Office 2010 32bit
      • This will also work for Office 2007 for single-select columns, and non-visible multi-select fields.  You will still get the error for visible multi-select fields
    • The side effect to this format is that the id value will be visible, instead of the display value, until the user moves off the row.

Monday, February 27, 2012

SharePoint 2007 to 2010 Help Desk Upgrade

  • You have installed the HelpDesk Fab 40 Template
  • You are performing a database attach upgrade from SharePoint 2007 or WSS 3.0 to SharePoint Server or Foundation 2010 and have run test-spcontentdatabase
  • The test-spcontentdatabase report contains the following errors (the cooresponding feature names have been added):
    • Category        : MissingFeature - HelpDeskModules
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-02cb-4f87-bb11-1ffde748a953].
      Remedy          : The feature with Id 75a0fea7-02cb-4f87-bb11-1ffde748a953 is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary.
    • Category        : MissingFeature - HelpDeskListInstances, HelpDeskServiceRequestsList
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-fe9d-4119-9615-2c2ef22d6fdb].
      Remedy          : The feature with Id 75a0fea7-fe9d-4119-9615-2c2ef22d6fdb is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary.
    • Category        : MissingFeature - HelpDeskListInstances, KnowledgeBaseKeywordsList
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-12fe-4cad-a1b2-525fa776c07e].
      Remedy          : The feature with Id 75a0fea7-12fe-4cad-a1b2-525fa776c07e is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary.
    • Category        : MissingFeature - HelpDeskListInstances, HelpDeskTasks
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-3b2a-4838-8a0c-57ba864feed3].
      Remedy          : The feature with Id 75a0fea7-3b2a-4838-8a0c-57ba864feed3 is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary.
    • Category        : MissingFeature - HelpDeskListInstances
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-97c5-4487-88e4-70fde8f79b25].
      Remedy          : The feature with Id 75a0fea7-97c5-4487-88e4-70fde8f79b25 is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary.
    • Category        : MissingFeature - HelpDeskListInstances, HelpDeskSupportFaqList
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-70e3-40b1-b395-c06f85d0d158].
      Remedy          : The feature with Id 75a0fea7-70e3-40b1-b395-c06f85d0d158 is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary.
    • Category        : MissingFeature - HelpDeskExpertsList, HelpDeskListInstances
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-e63b-4059-8f5a-ce9cbbadad2a].
      Remedy          : The feature with Id 75a0fea7-e63b-4059-8f5a-ce9cbbadad2a is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary.
    • Category        : MissingFeature - HelpDeskListInstances
      Error           : True
      UpgradeBlocking : False
      Message         : Database [MOSS_ContentDB] has reference(s) to a missing featu
                        re: Id = [75a0fea7-d31d-491a-9177-f0e461a81e3f].
      Remedy          : The feature with Id 75a0fea7-d31d-491a-9177-f0e461a81e3f is r
                        eferenced in the database [MOSS_ContentDB], but is not instal
                        led on the current farm. The missing feature may cause upgrad
                        e to fail. Please install any solution which contains the fea
                        ture and restart upgrade if necessary
  • There will also be some MissingSetupFile - Need to install messages as well.
  • The following solution is to get existing sites working.  To create new sites using the fab 40 templates, you may download and install the 2010 upgraded versions
    • I would recommend starting from a blank site template to build a tailored solution instead of using these templates due to the issues we've had modifying and upgrading them
  • The solution is to copy and then install the missing features
    • Copy the erroring feature folders from the 12 hive on the 2007 server to the 14 hive on the 2010 server
      • ...\12\template\features
      • ...\14\template\features
      • The ones we copied were: HelpDeskExpertsList, HelpDeskInIssuesList, HelpDeskListInstances, HelpDeskModules, HelpDeskServiceRequestsList, HelpDeskSupportFaqList, HelpDeskTasks, HelpLibrary 
    • Install the features on the 2010 server from PowerShell (SharePoint 2010 Management Shell)
      • Ex: install-spfeature -path "helpdeskservicerequestslist"
        • Do this for each of the folders copied earlier

Wednesday, February 15, 2012

Android: Upload documents, images, list items, or metadata to SharePoint

  • You are developing an Android OS application on an Android tablet or Android phone and need to upload a document or photo to a SharePoint list or library.
  • NTLM authentication is not natively supported
  • SOAP protocal is difficult to implement
  • REST interface is limited
  • Need to batch upload multiple documents and set metadata while reducing bandwidth
  • Need to thread multiple uploads
  • Kiefer Consulting, Inc. has experienced SharePoint and Mobile development teams that can help address these issues.

User Profile properties from a User or Group Column

  • You have user profile properties (Company, Role, Contact Info, etc.) in a user's SharePoint profile.  You have a People Picker (User or Group) Field in a list and select that user.  You would also like the selected user's profile properties to be automatically saved to columns in the list.
  • You cannot do this out of the box.
  • Kiefer Consulting, Inc. has developed a custom workflow that will allow you to do this. 
    Contact me if you need this.

Monday, January 16, 2012

Lync Attendee Install - Join a Lync Meeting - Public Users

You have been invited to a Lync meeting where you will be using microphone, speakers, screen sharing, webcam, whiteboarding, document annotation, or other attendee features and have not yet installed the Lync Attendee client software.

Install the Lync Attendee client. 

If you have the full version of Lync installed and do not have a Lync login, you will need to uninstall Lync before installing Lync Attendee.  Otherwise, you may use your Lync login with the full version of Lync to join the meeting.
  • Navigate to the URL provided by your meeting organizer (this person has a Lync account)
  • Select the View alternatives for joining the meeting hyperlink
  • Select the Lync Attendee hyperlink
  • Click the Run option at the bottom of your browser
  • Proceed through the installer wizard until you click Finish
  • Close the browser and any Lync windows already opened
  • Re-navigate to the meeting URL provided by your meeting organizer
  • This time you should see the Microsoft Lync Attendee client open up
  • Select the Join as Guest option and enter your display name
  • Always trust and Connect when prompted to Sign In
  • You should now be in the meeting. 
  • See documentation here for using specific features or configuring Lync Attendee