Irving Langmuir had an interesting career in science. He made countless discoveries an inventions including the diffusion pump, atomic hydrogen welding, submarine detection devices and the gas-filled incandescent light bulb, and even coined the word “plasma”. What is really interesting for me, however, is that in 1953 he coined the term “pathological science“, describing research conducted with accordance to the scientific method, but tainted by unconscious bias or subjective effects. This is in contrast to pseudoscience, which has no pretense of following the scientific method. In his original speech, he presented ESP and flying saucers as examples of pathological science; since then, the label has been applied to polywater and cold fusion.
As a side-effect of all his right-on inventions and amazing science, he also excelled at keeping an eye open for scientists who had unconsciously broken with the scientific methodology. Langmuir described it as “These are cases where even when no dishonesty was involved, people were tricked into false results by a lack of understanding about what human beings can do to themselves in the way of being led astray by subjective effects, wishful thinking, or threshold interactions.”
He did a lecture in 1954 where he proposed a list of “symptoms of pathological science”:
1. The maximum effect that is observed is produced by a causative agent of barely detectable intensity, and the magnitude of the effect is substantially independent of the intensity of the cause.
2. The effect is of a magnitude that remains close to the limit of detectability; or, many measurements are necessary because of the very low statistical significance of the results.
3. Claims of great accuracy.
4. Fantastic theories contrary to experience.
5. Criticisms are met by ad hoc excuses thought up on the spur of the moment.
6. Ratio of supporters to critics rises up to somewhere near 50% and then falls gradually to oblivion.
Now what does this have to do with us techies? Coming into a typical SharePoint, IIS, ASP .NET or indeed any other technical issue with many actors and moving parts, I find that the notion of pathological science is really something to watch out for. There are a few key risky neighbourhoods around some of the harder IT issues when they involve parachuting in to a lot of unknowns.
A major contributor to pathological science in the IT realm these days is, in my opinion, the “Let me Google/Bing that for you” effect - As far as I can tell, the world did not go off it’s axis when Google went globally down for a period. Global internet traffic dipped a bit, some people might have been induced to try an alternate approach or go take a break.
Although it’s a bit cynical to paint search engines with a broad brush as they give so much information out freely, there are schools of thought that propose search engines make people dumber. :) At the least, people such as, let’s say, Irving Langmuir, managed to crank out stunning inventions without such aids.
In the Microsoft world there are generally enough technical documents, forums, blogs, snippets and personal experiences that one can rapidly use a search engine to zero in on “a” fix for a particular symptom, but the problem is that these channels need to be vetted to exclude all the following critical factors as complications:
- software versions
- software interdependencies
– personal opinions
– known bugs
– unknown bugs
– known unknown bugs
– End user or external system interaction patterns
– .. and so forth.
When trying to isolate a cause for these types of issues, it’s important to stick to the patterns of these old school science greats. While things these days in the IT sector may be almost childlike in comparison to what these scientists dreamed up in their heads with no acronyms or decades of progress to back them up, the silo’s of logic that we have created around modern code mask huge underlying complexities. The problems we encounter daily normally are not so simple in that we have a square peg and are trying to fit it in a round hole- it’s that we have a bunch of pegs of various diameters, many of which will fit the pattern despite not being a true fit for the problem.
The cure for having many “so-so” answers to an issue and no definitive “right” answer is to fall back on experience, reason, and research and peer review.
Oh and what became of Irving Langmuir? Well, he went on in his latter career to pitch the concept of controlling weather via cloud seeding, so that humans could spawn rain clouds and such- with huge potential for agriculture and of course military uses. Unfortunately, he wanted to believe his weather spawning solution worked so much, he became an ironic victim of his own Pathological Science.
“Utilizing his own criteria for pathology, Langmuirʼs claims for cloud seeding qualified on several counts: they rested on observations close to the threshold of detectability, on apparently meaningful patterns generated in field trials; on the inability of critics to reproduce the experiments; on the intervention of the courts, legislature, and the press; and on overreliance on the credentials of a Nobel laureate rather than proof.”
In essence, despite knowing better, he pursued the result instead of getting a result from pursuit. I think this is something that all of us involved in IT can keep in mind in our daily problem solving.
Routine system maintenance is essential for the smooth operation of Microsoft SharePoint Products and Technologies. Routine system checks must be performed consistently, and the results need to be archived over a period of time to obtain the greatest benefit (trend analysis).
The routine checks come in the form of:
- Daily Maintenance Tasks
- Weekly Maintenance Tasks
- Monthly Maintenance Tasks
- Annual Maintenance Tasks
This checklist provides information and guidelines for maintaining the databases that host Microsoft SharePoint 2010 & 2013 data and configurations. It describes and provides examples of tried & true, best practice system & database maintenance tasks that itgroove recommend when using SharePoint 2010 & SharePoint 2013. Composing checklists and procedures is time consuming, we’ve done it for you!
Buy now for the super discounted price of $20 on the itgroove store!
Incoming search terms:
What is SharePoint Claims Authentication?
The claims-based identity is an identity model in Microsoft SharePoint Foundation 2010 and SharePoint Server 2010 that includes features such as authentication across users of Windows-based systems and systems that are not Windows-based, multiple authentication types, stronger real-time authentication, a wider set of principal types, and delegation of user identity between applications.
Claims-based identity is based on the user obtaining a security token that is digitally signed by a commonly trusted identity provider and contains a set of claims. Each claim represents a specific item of data about the user such as his or her name, group memberships, and role on the network. Claims-based authentication is user authentication that utilizes claims-based identity technologies and infrastructure. Applications that support claims-based authentication obtain the security token from the user and use the information within the claims to determine access to resources. No separate query to a directory service like Active Directory is needed.
In a simple analogy:
You check in at the Airport (Authentication)
- present credentials (Passport)
- credentials are validated by security guard
You receive a boarding pass (Signed Claims)
- Seat, Frequent Flyer, Gate etc.
Think of a claim as a piece of identity information (for example, name, e-mail address, age, or membership in the Sales role). The more claims your application receives, the more you know about your user. These are called “claims” rather than “attributes,” as is commonly used in describing enterprise directories, because of the delivery method. In this model, your application does not look up user attributes in a directory. Instead, the user delivers claims to your application, and your application examines them. Each claim is made by an issuer, and you trust the claim only as much as you trust the issuer. For example, you trust a claim made by your company’s domain controller more than you trust a claim made by the user.
Claims-based authentication in Windows is built on Windows Identity Foundation (WIF), which was formerly known as the Security Token Service, or STS. Many areas of SharePoint still refer to the name STS so it’s important to understand that it and WIF are one in the same. The Security Token Service comes pre-baked into the standard SharePoint 2010 install:
The Security Token Service Application in Central Administration:
The Security Token Service Application in IIS:
WIF is a set of .NET Framework classes that is used to implement claims-based identity. Claims-based authentication relies on standards such as WS-Federation, WS-Trust, and protocols such as SAML.
Microsoft recommends Claims-based authentication as the preferred provider to use on fresh SharePoint 2010 installs. You can configure this on a per-Web Application basis in SharePoint via the following dialog in Central Admin > Web Applications > Manage Web Applications > Ribbon Bar – New
If you select Classic-Mode Authentication, you configure the Web application to use Windows authentication and the user accounts are treated by SharePoint Server 2010 as Active Directory Domain Services (AD DS) accounts.
If you select Claims-Based Authentication, SharePoint Server 2010 automatically changes all user accounts to claims identities, resulting in a claims token for each user. The claims token contains the claims pertaining to the user. Windows accounts are converted into Windows claims. Forms-based membership users are transformed into forms-based authentication claims. Claims that are included in SAML-based tokens can be used by SharePoint Server 2010. Additionally, SharePoint developers and administrators can augment user tokens with additional claims. For example, Windows user accounts and forms-based accounts can be augmented with additional claims that are used by SharePoint Server 2010.
|Claims Based Authentication (Tokens) ||Classic Mode Authentication |
|-Windows Authentication: NTLM/Kerberos, Basic-Forms-based Authentication (ASP.NET Membership provider and Role Manager) |
-Trusted Identity Providers-Custom Sign-in page
|-Windows Authentication (NTLM/Kerberos) only |
*Both map authenticated users to the same SPUser object (security principles)
What does Claims look like/feel like?
The core process of Claims is illustrated as follows:
The core currency of Claims is the identity token.
i = Identity Claim all other claims will use “c” as opposed to “i”
: = Colon separator
0 = Reserved to support future Claims
#/? = Claim Type Encoded Value. The out of the box claim types will have a hardcoded encoded value, this will enable parity across farms.
E.g. Key: ? Value: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
Key: # Value: http://schemas.microsoft.com/sharepoint/2009/08/claims/userlogonname
./0 = Claim Value Type. The out of the box claim value types will have a hardcoded encoded value, this will enable parity across farms.
E.g. Key: . Value: urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name
Key: 0 Value: http://www.w3.org/2001/XMLSchema#string –
w/m/r/t/p/s = Original Issuer Type -> w = windows, m = membership, r = role, t = trusted STS, p = personal card, s= local sts claim
Why do I want to use Claims?
1. Decouples Authentication logic from Authorization and Personalization logic – this means speed and flexibility
2. Provides a common way for applications to acquire the identity information the need about users
3. Cloud-ready – lays the foundation to be able to Authenticate against Azure, Facebook, Google, Windows Live ID etc.
4. Federation – Partner networks, business to business, subsidiaries can all interact in the same sphere of authentication, cross machine and cross-farm
5. Supports existing identity infrastructure (Active Directory, LDAP, SQL, WebSSO etc.)
6. Standards-based and interoperable
7. In SP 2010 we can have a single Web Application configured to use multiple authentication types which allows different auth types to be served from one URL:
General issues for all Claims implementations
- Search crawler requires NTLM in the zone it uses
- Office Client Integration (2007 SP2+, 2010 are minimum requirements in order to maintain Client integration e.g. fluid editing of Word Document)
- SharePoint Designer does not support working with Claims Enabled Endpoints for Web Services
Migration issues when moving from Classic to Claims
- When upgrading from Classic to Claims, you will need to migrate users and Test & re-work customizations (Web parts, workflows etc.)
- After you move to Windows claims, you cannot go back to Windows classic. Ensure that you have good backups before you start and try your migration in a lab first before moving into production.
- Existing alerts may not fire, if this occurs the only workaround may be to delete and recreate the alerts
- Search crawl may not function, double-check the web application policies and ensure that the search crawl account shows the new converted account name. If it does not, you must manually create a new policy for the crawl account.
Configure Forms-based Authentication for a Claims-based Web Application
Configure the Security Token Service
SharePoint and Claims-based Identity
A Guide to Claims-based Identity and Access Control
SharePoint Server 2010 IT Professional Evaluation Guide
Plan Authentication Methods (SharePoint Server 2010) on TechNet
Claims-Based identity with Windows
Claims to Windows Token Service Overview (MSDN)
Claims Based Authentication in SharePoint 2010
Friends don’t Let Friends Use Claims Based Authentication
A useful collection of info regarding co-authoring in SP 2010:
“In today’s highly connected work environment, documents created by multiple authors, editors, and stakeholders are becoming the rule, instead of the exception. Organizations look to the communication and collaboration capabilities of Microsoft SharePoint Server 2010 to help them foster communication and collaboration between end-users while reducing administration required to support it. Microsoft Office 2010 continues this trend with co-authoring functionality for Microsoft PowerPoint 2010, Microsoft Word 2010, and Microsoft OneNote 2010 documents on SharePoint Server 2010.
Co-authoring removes barriers to server-based document collaboration and helps organizations to reduce the overhead associated with traditional document sharing through attachments. Co-authoring simplifies collaboration by enabling multiple users to work productively on the same document without intruding on one another’s work or locking one another out. This functionality requires no additional server setup and is the default state for documents stored in SharePoint Server 2010. Co-authoring functionality is managed by using the same tools and technologies that are already used to manage SharePoint, helping to minimize the impact on administrators.”
If you are upgrading or installing Nintex (and, as you will learn, pretty much any other .NET app/solution/web part/widget etc.) you may run into a fail whale in the form of the the error described on this post on the Nintex Forums
“Trying to upgrade my PRODUCTION server to the latest build of Nintex WF 1.11.1
At the end of the upgrade process I get a Windows Command prompt window with the following text:
Upgrading solution package…
System.Security.SecurityException: Access denied.
at Microsoft.SharePoint.Administration.SPSolutionLanguagePack.UpgradeCabFile(String path)
at Microsoft.SharePoint.Administration.SPSolutionLanguagePack.Upgrade(Stringpath, DateTime dt)
at Microsoft.SharePoint.Administration.SPSolution.Upgrade(String path, DateTime dt)
at Nintex.Installer.WSSHelper.Program.DeployWSP(String args)
The Zone of the assembly that failed was:
Press any key to continue…
While the advice offered in that thread regarding using MSIEXEC works, it’s important that one understands the simple cause and effect for this issue : one needs to Right-Click on the file in Windows Explorer and “Unblock” it before attempting to execute it. This also is a simple remedy for preventing similar issues with lot’s of .NET related installables, .DLLs, solutions etc.
You simply need to “Unblock” the installable file to prevent this situation from occuring – it is common for UAC in Windows to block executable or compilable code downloaded from the Internet Zone. Unless you explicitly unblock it, this type of error will occur. Had the MSI or file/code/.DLL been copied/compiled/executed locally in Visual Studio/via the installer etc. , the newly generated .dll or unpacked program files would have been in the same Zone (the My Computer Zone) as the rest of the .Net assemblies for the web application. The problem would not occur.
You will often encounter warnings when downloading the files (note: these warnings are not exclusive to .MSI or .CHM installer file types but also can occur for .ZIP’s, .DLL’s and other formats):
The Nitty Gritty Details
This file / directory blocking is provided by default on:
Windows XP SP2 with IE 7
Later Windows, like Windows Vista, 7
And marking the file / directory as blocked / unblocked is implemented via alternative data stream feature, which is a feature of NTFS file system. The alternative data streams are just some data like key-value pairs attached on a file or folder.
In the above scenarios, since the file in this scenario was downloaded from an internet location, the file is marked by set such key-value pair:
key (data stream name): Zone.Identifier;
value (data stream content): [ZoneTransfer]
1 = trusted;
2 = intranet;
3 = Internet;
4 = untrusted.
The above alternative data stream can be examined via command line:
more < MyCodeFile.zip:Zone.Identifier
That is how is MyCodeFile.zip file marked as blocked to enhance the security, and a “Unblock” button appears on the property dialog.
Actually any file / directory marked with this Zone.Identifier alternative data stream is considered from Internet and blocked by the Windows. A test.txt file can be created to test this:
echo test > test.txt
by checking its property, this test.txt is unblocked of course. Now inject the same Zone.Identifier alternative data stream into test.txt:
more < MyCodeFile.zip:Zone.Identifier > test.txt:Zone.Identifier
By clicking the “Unblock” button, the key-value pair is removed from the file, so the file is treated as unblocked by Windows.
If the files in the MyCodeFile.zip are extracted without unblocking the MyCodeFile.zip, those file will also have the same alternative data stream, indicating they are from Internet. So they are blocked, just like the above test file.
Resolution 1 – The Just get this damn app working approach
1. Roll back your code changes – this means uninstall any new .DLL’s, solutions, components that you may have added, or cancel out of the MSI install routine you were attempting.
2. Ensure that any new .DLL’s/code/files that are applied by the change are unblocked (right click on the file in Windows Explorer and click unblock). If you have one .ZIP file with a bunch of .DLL’s and other code inside it, it’s only necessary to unblock the root .ZIP file itself.
3. Re-apply code changes
4. If Application doesn’t come back to life give IIS a kick in the head with an IISRESET.exe
Resolution 2 – Change Workstation Config So Files Don’t Get Blocked Like this In Future
Several ways can be used to remove the Zone.Identifier data stream to unblock file / directory:
-Configure Windows to disable this feature (described below)
-Use command lines
-Use streams.exe provided in Sysinternals Suite (technique described here)
-Programmatically remove the data stream
-Registry Tweak to take ownership of a folder (technique described here)
Please review the following links that explain why this security exception is occurring
In completely unrelated news, it’s Yalla, the underwater cat:
Eric Ligman has assembled a nice little collection of free Microsoft ebook downloads:
Moving to Microsoft Visual Studio 2010
Programming Windows 8 Apps
Programming Windows Phone 7
Programming Windows Phone 7 (Special Excerpt 2)
Office 365 – Connect and Collaborate virtually anywhere, anytime
Microsoft Office 2010 First Look
Security and Privacy for Microsoft Office 2010 Users
Getting started withMicrosoft Office 2010 – For IT Professionals
Planning guide for Microsoft Office 2010 – For IT professionals
Deployment guide for Microsoft Office 2010 – For IT professionals
Operations guide for Microsoft Office 2010 – For IT professionals
Technical reference for Microsoft Office 2010 – For IT professionals
Understanding Microsoft Virtualization R2 Solutions
Introducing Windows Server 2012
Introducing Microsoft SQL Server 2012
Introducing Microsoft SQL Server 2008 R2
Configure Kerberos Authentication for SharePoint 2010 Products
Business continuity management for SharePoint Server 2010
Deployment guide for SharePoint Server 2010
Get started with SharePoint Server 2010
Governance guide for Microsoft SharePoint Server 2010
Profile synchronization guide for SharePoint Server 2010
Remote BLOB storage for Microsoft SharePoint Server 2010
Technical reference for Microsoft SharePoint Server 2010
Upgrading to SharePoint Server 2010
Getting Started with SharePoint Server 2010
Planning guide for sites and solutions for Microsoft SharePoint Server 2010, Part 1
Planning guide for sites and solutions for Microsoft SharePoint Server 2010, Part 2
Planning guide for server farms and environments for Microsoft SharePoint Server 2010
Capacity planning for Microsoft SharePoint Server 2010
| || |
SQL Server 2012 Tutorials: Analysis Services – Tabular Modeling
Microsoft SQL Server AlwaysOn Solutions Guide for High Availability and Disaster Recovery
Transact-SQL Data Manipulation Language (DML) Reference
QuickStart: Learn DAX Basics in 30 Minutes
SQL Server 2012 Tutorials: Analysis Services – Data Mining
Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide
Data Analysis Expressions (DAX) Reference
SQL Server 2012 Upgrade Technical Guide
Backup and Restore of SQL Server Databases
SQL Server 2012 Tutorials: Analysis Services – Multidimensional Modeling
Master Data Services Capacity Guidelines
Free Tools in the Classroom
Windows Live Movie Maker in the Classroom
Windows 7 in the Classroom
Microsoft Office Web Apps Teaching Guide
Microsoft Office in the Classroom
Developing Critical Thinking through Web Research Skills
Bing in the Classroom
Moving Applications to the Cloud, 2nd Edition
Windows Azure Prescriptive Guidance
Windows Azure Service Bus Reference
Intro to ASP.NET MVC 4 with Visual Studio (Beta)
Deploying an ASP.NET Web Application to a Hosting Provider using Visual Studio
Getting Started with ASP.NET 4.5 Web Forms (Beta)
Introducing ASP.NET Web Pages 2
Own Your Future
Windows 7 Power Users Guide
Deploying Windows 7 Essential Guidance
Welcome to Windows 7
What You Can Do Before You Call Tech Support (Windows 7)
I’ve come across lot’s of helpful lists around the net and forums on the topic of performance tuning SharePoint however as time and performance projects march forward it’s clear that this subject, more than most in the already dense realm of SharePoint, deserves a more realistic outlook. The standard lists of performance tuning tips look at the forest for the trees. This list looks at the forest as a melee battle between good and evil and er.. anyhow, read on for some twists on the old tuning bag of tricks:
1. Wack a Mole Syndrome
Get verified, fully detailed user stories complete with IP address, browser version/settings/plugins, OS version, Fiddler, YSlow debug reports, etc. BEFORE making any analysis. Failure to do so (resulting on heresay, opinions or assumption) will lead to a non-productive game of wack-a-mole.
2. SharePoint performance tuning is incremental, not subtractive
1 + 1 does not equal 2 when untying complex relationships between SharePoint, IIS, Active Directory, SQL, Project Server or whatever else is in the mix in your SharePoint performance issue. For example, in one farm we found reducing the SharePoint object cache file size from 500 MB to 100 MB caused a corresponding reduction in the W3WP.exe process for that web application from 1.5GB to 300MB – sometimes resource problems are exacerbated in a bell curve (or even less predictable patterns) rather than an simple formula.
This requires multiple passes at problem resolutions, resolving one (or one group of) problems at a time rather then just running through a laundry list of to-do items and calling it a day. You have to be able to get buy-in from your client or team that the issue(s) may not be nailed with one go at it.
3. Scale up or scale out
We all know SharePoint plugs in as a web farm out of the box. You have your App Servers, your Web Front Ends, your Search Servers etc. What is more of a grey area is the threshold of, when does one add more RAM/better CPUS/Disks, versus adding a secondary App or WFE server? There are tools like the HP SharePoint Sizer which try and point you to the hardware required based on some fixed (in that case, vendor-specific) formulas. The only way to get an accurate assessment of when it’s time to order some new servers or whether you just need your VM guys to allocate some more RAM, is to have an SharePoint Consultant complete a full assessment of your situation.
Following a cookie cutter table of specs and platforms will just lead to grief.
4.Cumulative Updates, Service Packs, Regressions demand constant attention
You need to be in the mix with SharePoint day-in, day-out in order to keep on top of the various updates, regressions, bugs and workarounds. What may solve Performance Problem X may work on CU but not another. Committing to performance fixes without knowing how they sit in the living, moving behemoth of code that is the SharePoint framework is the path to frustration.
5. VMware abstracts the problem
Virtualization is popular. Virtualization allows IT guys to give the guys in suits what they need with the push of a button rather than with capital PO’s. Therefore: VM admins have an increasing importance in organizations as they are power brokers who can called on to quickly breath life into stakeholders projects by giving them the virtual juice they need. The problem seems to be that the new-found speed of infrastructure deployment has downplayed the old tendency of hyper-critical evaluation of infrastructure – when we used to pay for every nut and bolt of a new server farm deployment the specs involved would be of supreme importance and it seemed more thought was given as to what the applications deployed on the hardware actually require.
Particularily due to SharePoints tendency to be adopted as a fragile pilot project (and subsequently taking the company by storm and absorbing silos left right and center), there is a trait of starting off farms on VM’s starved for resources with the idea “well if this isn’t enough then we can just flip the switch and add more (RAM/Disk/CPU) later”. This is a recipe for a rocky SharePoint adolescence – there are many aspects of virtualization that do not add
For example, Disk Defragmentation of the guest OS is considered a laughable or even harmful tactic by many VM admins. I try to disprove that (with Bob Nolan of PerfectDisk’s generous help) in my blog post here.
Brent Ozar is a kingpin on the topic of SQL virtualization and he point’s out some reasons on why you should perhaps not virtualize SQL server at all.
So try explaining that stuff to your local Xerxes VMWare Admin
6. Company Politics
Company politics makes keeping a sensible amount of web parts and content on the page difficult. Design by Committee results in the inevitable ultra-busy intranet home page which will invariably contain:
- A Yahoo stock ticker
- A photo slideshow
- Pictures of the CEO and Board of Directors
- Some form of social company initiative e.g. employee of the week and their hobbies
- ..and so forth
Each one of these little pieces of real estate on the homepage has typically been fought for by stakeholders in meeting after meeting. Frustration levels rise as initiatives may get squashed from higher up. People get asked to come in on Saturday to fix up a webpart, emotional investment in particular web parts or content grows.
Now you, as the one assessing performance, come in and see that this assembly of intentions is actually overloading the Win XP / Internet Explorer IE7 workstations of the end users or there are too many SQL connections coming from some custom web part. Your recommendation of stripping off web parts and content falls in line with modern usability best practices. Be ready for the sparks to fly, or even worse, for nothing to happen at all as this emotional investment in content or functionality may preclude the client from giving you the ability to actually resolve the problem.
You can tell the trurth and share that time and time again you have seen a simple search interface on the home page, combined with with key navigation elements, result in the best user experience. Be prepared to be told to fix up performance some other way as the politics factor may preclude you from being able to get the job done.
7. Best practice or immediate fix? Guess which one impresses SharePoint stakeholders more.
Related to the 6. Company Politics section, opinions rarely sail on the same seas as performance tuning. Custom branding or development decisions may lead to Catch 22′s which prevent you from making the “right” choice. “This ain’t drywalling” is a nice saying of mine, but really, sometimes we are required to just slap some stuff on top of a problem area.
8. It’s the Content, Stupid
90% of web page “load” is typically getting content from the server to the client browser and the time it takes for the browser to render it.The following items are exacerbating the situation with SharePoint:
- Jquery-enabled web parts
- The ease of which people can upload images into SharePoint means more than ever we are seeing staff who upload non-web optimized images into SharePoint, resulting in the classic scenario of a home page slide show with 7 five megabyte images
So the problem reverts from being a “SharePoint” problem and becomes a plain ol’ web content management problem. This is an important distinction to make during a performance assessment as there are often stakeholders who have spent years perfecting their mastery over their “silos” (Lotus Notes, Oracle etc.) who now have to submit to the crushing (yet invigorating) force of complete corporate assimilation by SharePoint – and they would like very much to pin performance issues on the SharePoint boogeyman. Being able to isolate basic web content management issues is vital and could potentially lead to considerable savings in a performance roundup as web content consultants are generally cheaper then SharePoint consultants.
9. Maytag Repairman Syndrome
You can run through all the TechNet best practices and fix up loose ends that the original SharePoint farm architects may have missed or misunderstood. You can set up quotas, split up content DB’s, and generally soup up that farm for all she’s worth: however unless you carefully document what you’ve done and can provide accurate projections of before and after results no one will ever notice your work. You will end up racking up the hours and become an underappreciated lonely repairman without any work as the tuned up SharePoint farm sails smoothly away into the future.
10. Integration is Exacerbation
SharePoint’s key benefit to an organization is it’s integrated environment. It is a Document Managment system, Corporate Homepage, business process repository (workflows) and more. The good news is that more and more legacy and external systems are being rolled up or tied in to the SharePoint framework. The bad news is that when you wire up your Oracle, Project Server, or specialized industry-specific software suites into SharePoint you can compound performance problems. This is why using tools such as Red Gate’s Memory and Performance Profiler tools can help you isolate leaky or load-generating .DLL’s and connections.
Incoming search terms:
Most Microsoft assemblies and DLLs are digitally signed. Each time signed assemblies are loaded, default system behaviour is to check with the owner of the root certificate that the cert with which the assembly was signed is still valid. In the case of Microsoft assemblies, this means “phoning home” to read the Certificate Revocation List at crl.microsoft.com .
Whilst this is all very well and good if you have an Internet connection, sometimes you don’t have this luxury. Many web servers, for instance, don’t have outbound Internet accessibility. The CRL check will attempt to connect to Microsoft’s servers and then timeout, usually within 30-60 seconds.
With SharePoint, you’ll get a lot of delays in this scenario. One way to check if your server is affected by this condition is to open up a SharePoint Management Console PowerShell window and run the “STSADM -help” command. If it takes 30 seconds or more to display the usage instructions, then you will be experiencing really slow server performance.
You make the first request of the day, or the first request after recycling the app pool because you are developing assemblies that sit in the GAC.There is a delay of about 2 minutes
While you are waiting, and tearing your remaining hair out because you know you have to do this at least 50 times today, there is no CPU activity, swapping or significant network traffic.
After the timeout the assembly is still loaded and the software works as expected, though very slow every time a new signed assembly is loaded for the first time, which happens a lot. The worst thing is that no entries are written to the event log and no exceptions are thrown so you are left completely in the dark about why your application is so bloody slow.
Our esteemed vendor Jereon from Muhimbi has a great explanation here and some options for you: http://blog.muhimbi.com/2009/04/new-approach-to-solve-sharepoints.html
Joel as well, and he even includes a PowerShell that will run it all down for you.
..and finally a SharePointBlues post on a bevy of Certificate-related issues:
When attempting to use WebDav to copy a file from one location to another programmatically, I ran into intermittent failures with the following error:
http://site_name is not accessible. Either this location does not exist or you might not have permission to use this network resource.
A similar client-side error (manipulating files with WebDav in Windows Explorer) would be:
Your client does not support opening this list with Windows Explorer.
Whenever we face such kind of issues, one thing should be important that you have already installed a valid copy of Office application on your client machine becuase Explorer view is windows feature provided by means of sharepoint that uses client functionalty i.e. Office 2010.
-Ensure you have Office Professional PLUS installed on your client machine.
-Integration features of Office client Applications and SharePoint uses WebClient service running on the client machine.
The problem where I faced was that something was missing from the server. On the Windows Server 2008 R2, I started searching for the WebClient Service to see if it was running or not. I went to Start
->Administrative Tools->Services and browsed through all the services but could not find it.
Generally, we find this service in services console so it was odd to not see it. The solution is that this service is deployed as part ofthe feature The name of the windows server feature Desktop Experience. The WebClient service is installed only when you install the Desktop Experience feature on you Server 2008 machine.
Here are the steps that I have taken to resolve this issue:
1) Go to Start->Administrative Tools->Server Manager
2)In Server manager Click on Features and the click Add Features
3)Select the Desktop Experience Feature and install it. Then Restart the Server (Required for installation of the feature)
4)Go to Start->Administrative Tools->Services
5)Select the Web Client Service and Start it.
So, in a nutshell- if you are deploying an SP2010 server and you want users to be able to take advantage of WebDAV in a reliable way – make sure Desktop Experience is activated and your WebClient service is running.
A similar problem has been posted here: http://mysharepointwork.blogspot.ca/2011/09/network-name-cannot-be-found-accessing.html
The SharePoint 2010 101 Code Samples set of examples is an excellent starting point for Developing with SharePoint.
Each code sample is part of the SharePoint 2010 101 code samples project. These samples are provided so that you can incorporate them directly in your code.
Each code sample consists of a standalone project created in Microsoft Visual Studio 2010 and demonstrates a distinct feature or feature set. Each sample includes comments describing the sample and the expected results. Each sample also contains comments that explain how to set up your environment so that the sample code runs, where necessary.
To open a solution:
1. Start Microsoft Visual Studio 2010.
2. On the File menu, click Open, and then click Project/Solution.
3. Navigate to the folder containing the .sln file, select it, and then click Open.
To run a solution:
1. In the solution files, read and follow the comments that describe how to set up your environment if necessary.
2. On the Build menu, click Build Solution.
3. When you have a successful build, right-click the project in the Solution Explorer window, and then click Deploy.
List of all Examples in the pack:
SharePoint 2010 Developing Styled Master Pages
This sample creates and deploys branded master pages to customize SharePoint sites, including custom stylesheets and images.
SharePoint 2010 Developing JQuery-Enabled Web Parts
This sample develops a Web Part that uses the JQuery library to display items from a SharePoint list.
SharePoint 2010 Hosting Silverlight Applications that Call Azure Services
This sample calls WCF web services that are hosted in Windows Azure from Silverlight applications that are stored in SharePoint.
SharePoint 2010 Developing AJAX-Enabled Web Parts
This sample creates a SharePoint Web Part that uses Ajax UpdatePanel and UpdateProgress controls to call server-side methods.
SharePoint 2010 Leveraging HTML5 Objects in SharePoint
This sample uses custom SharePoint master pages to enable IE9 and other compliant browsers to render HTML5 tags such as <audio>.
SharePoint 2010 Creating List Items from Silverlight
This sample creates SharePoint list items by calling the SharePoint Client Object Model from Silverlight applications.
SharePoint 2010 Developing Web Templates
This sample creates web templates, which are similar to SharePoint site definitions, but can be used in sandboxed solutions.
SharePoint 2010 Creating Document Sets Programmatically
This sample creates new SharePoint document sets and configures their properties.
SharePoint 2010 Developing List Definitions
This sample uses declarative programming to create a SharePoint list definition and an instance of that list.
SharePoint 2010 Developing Custom Navigation Providers
This sample creates and deploys two links to the top link bar on a SharePoint site.
SharePoint Online Accessing Web Services
This sample connects to SharePoint Online, authenticates by using claims authentication, and then displays the contents of a SharePoint Online list.
SharePoint 2010 Querying SQL Azure Data from Web Parts
This sample queries a SQL Azure database from code in a SharePoint Web Part.
SharePoint 2010 Developing Sequential Workflows
This sample develops SharePoint sequential workflows based on items in task lists.
SharePoint 2010 Creating Custom Field Types
This sample creates a new field type that adds options for users who create new columns in SharePoint lists, libraries, or content types.
SharePoint 2010 Creating Items in Lists from External WCF Services
This sample creates SharePoint list items by calling a method in a WCF service that uses the SharePoint List Data Retrieval Web Service.
SharePoint 2010 Developing Workflow Activities
This sample creates and deploys custom workflow activities that can be used in SharePoint Designer to extend workflows.
SharePoint 2010 Performing Cross-List Queries
This sample uses the SPSiteDataQuery class to find items from all the lists in a SharePoint site.
SharePoint 2010 Creating Custom Timer Jobs
This sample creates and schedules a SharePoint timer job that runs code at regular intervals.
SharePoint 2010 Developing Starter Master Pages
This sample sets master pages for SharePoint sites by using feature receivers, and deploys master pages without styles or images as starters for branded master pages.
SharePoint 2010 Updating SQL Azure Records from Web Parts
This sample saves changes to a SQL Azure record by using code in a SharePoint Web Part.
SharePoint 2010 Uploading SharePoint Library Content to Azure Storage
This sample uploads files from a SharePoint document library to Windows Azure storage.
SharePoint 2010 Displaying Video Files Stored in Azure
This sample displays videos stored in Windows Azure in Silverlight applications.
SharePoint 2010 Creating SQL Azure Records from Web Parts
This sample inserts records into SQL Azure tables by using code in SharePoint Web Parts.
SharePoint 2010 Developing Feature Receivers
This sample develops a Feature receiver that performs an action when Features activate and cleans up when Features deactivate.
SharePoint 2010 Calling Azure Services from Event Receivers
This sample calls WCF web services hosted in Windows Azure from SharePoint event receivers.
This sample uses the SharePoint Client Object Model to display the details of all the items in a SharePoint list.
SharePoint 2010 Creating Custom SharePoint Service Applications
This sample returns the current weekday by using a custom service application for SharePoint.
SharePoint 2010 Creating Content Types Programmatically
This sample creates SharePoint content types nondeclaratively in code.
SharePoint 2010 Developing Connected Web Parts
This sample creates two SharePoint Web Parts that you can connect to exchange information.
SharePoint Online Authenticating Using the Client-Side Object Model
This sample connects to, and authenticates in, SharePoint Online.
SharePoint 2010 Using REST to Discover the Contents of Excel Worksheets
This sample displays the names of tables that are in a spreadsheet by calling RESTful Excel Web Services.
SharePoint 2010 Displaying User Profile Pictures Programmatically
This sample evaluates and displays the pictures of all users who have set profile pictures in a Web Part.
SharePoint 2010 Using LINQ in REST Requests
This sample uses LINQ queries to return filtered lists of items from SharePoint lists.
SharePoint 2010 Accessing SharePoint Lists from External WCF Services
This sample writes a WCF service that returns all the items in SharePoint lists, and includes a sample client console application to test the service.
SharePoint 2010 Calling Azure Services from Web Parts
This sample calls WCF web services hosted in Windows Azure from SharePoint Web Parts.
SharePoint 2010 Performing Searches from Silverlight
This sample calls the SharePoint Search web service from a Silverlight application.
SharePoint 2010 Performing Searches from Web Parts
This sample calls a SharePoint Search or FAST Search service application from a Web Part.
SharePoint 2010 Creating Content Organizer Rules Programmatically
This sample creates and configures content organizer rules for content types in SharePoint document libraries.
SharePoint 2010 Creating Taxonomies Programmatically
This sample adds SharePoint groups, term sets, and terms to a term store programmatically.
SharePoint 2010 Developing Custom Field Controls
This sample creates custom field controls that display and edit fields on SharePoint publishing sites.
SharePoint 2010 Developing Application Pages
This sample creates and deploys a simple application page that displays information about the current SharePoint site, and modifies its description.
SharePoint 2010 Programmatically Reading User Profile Properties
This sample obtains properties from all SharePoint user profiles in your organization.
SharePoint 2010 Developing Event Receivers
This sample develops and registers an event receiver that intercepts SharePoint list item events such as ItemAdded and ItemUpdating.
SharePoint 2010 Managing Document Sets Programmatically
This sample reads properties from all the document sets in a given SharePoint document library.
SharePoint 2010 Deleting SQL Azure Records from Web Parts
This sample deletes records in SQL Azure by using code in SharePoint Web Parts.
SharePoint 2010 Calling Azure Services from Custom Workflow Activities
This sample calls WCF web services hosted in Windows Azure from code in SharePoint workflows.
SharePoint 2010 Accessing List Items from Silverlight
This sample returns items in SharePoint lists (in Silverlight applications) by using the SharePoint Client Object Model.
SharePoint Online Creating Documents Using Word, PowerPoint, or OneNote Web App
SharePoint Online Creating and Deploying Sandboxed Workflow Activities
This sample creates a workflow activity that functions in a sandboxed solution on SharePoint Online.
SharePoint 2010 Importing Content by Using the Content Deployment API
This sample imports content from CMP files into SharePoint lists by calling the Content Migration API.
SharePoint 2010 Developing Connected Silverlight Web Parts
This sample creates interconnected custom SharePoint Web Parts that can host Silverlight applications that exchange information.
SharePoint 2010 Programmatically Finding Tagged Items
This sample locates terms that match input strings and then locates all items tagged with those terms in SharePoint lists.
SharePoint 2010 Logging Site Events Programmatically
This sample develops and registers event receivers to intercept web events such as SiteDeleted and WebMoved, and logs those events to a list for auditors.
SharePoint 2010 Using REST to Obtain Excel Charts
This sample obtains image files of charts from Excel spreadsheets via REST.
SharePoint 2010 Calling WCF Services from Web Parts
This sample calls a WCF service that retrieves data after users click a button in a SharePoint Web Part.
SharePoint 2010 Deleting Items in Lists from External WCF Services
This sample creates a WCF service that finds a SharePoint item and deletes it.
This sample uses the SharePoint Client Object Model to change items in SharePoint lists.
SharePoint 2010 Developing Page Layouts
This sample creates and deploys custom page layouts for content types in SharePoint publishing sites.
SharePoint 2010 Declaring Records Programmatically
This sample can determine whether a document is a record and declare it as a record.
SharePoint 2010 Calling Azure Services from Timer Jobs
This sample calls WCF web services hosted in Windows Azure from SharePoint timer jobs.
SharePoint 2010 Developing Solution Validators
This sample develops SharePoint solution validators that check activating user solutions and help verify sandboxed solutions.
SharePoint 2010 Developing Custom Expiration Actions
This sample specifies custom actions to take and code to run after a document expires against a SharePoint information management policy.
SharePoint 2010 Retrieving List Contents and Parsing Atom Responses
This sample gets all the items in a SharePoint list by using the RESTful List Data web service.
SharePoint Online Creating and Deploying Sandboxed Event Receivers
This sample responds to item events (such as ItemAdded) in sandboxed event receivers.
SharePoint 2010 Using REST to Query Data Ranges in Excel Worksheets
This sample gets and displays data from a date range in an Excel spreadsheet by querying RESTful Excel Web Services.
SharePoint 2010 Developing Ribbon Actions
SharePoint 2010 Developing Delegate Controls
This sample creates an ASP.NET user control to replace the standard SharePoint Global Navigation.
SharePoint 2010 Working with Disposable Objects
This sample disposes SPWeb and SPSite objects properly so that they do not unnecessarily consume memory.
SharePoint 2010 Logging Data to the Developer Dashboard
This sample uses monitored scopes to log information to developer dashboards, and includes scripts to enable and disable those dashboards.
SharePoint Online Creating Excel Worksheets by Using Excel Web App
SharePoint 2010 Using JQuery to Retrieve List Contents in JSON
This sample uses the JQuery library to obtain and display items in SharePoint lists.
SharePoint 2010 Retrieving Single List Items in REST Requests
This sample gets a single item from a SharePoint list by using the RESTful List Data web service.
SharePoint 2010 Calling WCF Services from Custom Workflow Activities
This sample calls a WCF service from a SharePoint workflow that starts after a new item is created, and then modifies the item body field of that workflow.
SharePoint 2010 Retrieving List Contents in JSON Format and Parsing Responses
This sample gets items from SharePoint lists in JSON format, parses the responses, and then displays the item properties.
This sample uses the SharePoint Client Object Model to display an application page as a dialog box.
SharePoint 2010 Calling WCF Services from Event Receivers
This sample calls a WCF service from an event receiver; after a new item is added to a SharePoint list, the service returns data that is appended to the body of that new item.
SharePoint 2010 Performing Cached Cross-Site Queries
This sample uses the SharePoint PortalSiteMapProvider class to perform high-performance cross-site queries.
SharePoint 2010 Using REST to Create a SharePoint and Bing Maps Mashup
This sample uses SharePoint status and notifications to feed back information to users.
This sample uses the SharePoint Client Object Model with a CAML query to return matching items from lists.
SharePoint 2010 Developing Branded Media Controls
This sample brands a Media Field Control on a SharePoint site.
This sample uses the SharePoint Client Object Model to set titles and descriptions for SharePoint sites.
This sample uses the SharePoint Client Object Model to display information about the current SharePoint site.
SharePoint 2010 Developing Editor Web Parts
This sample modifies a Web Part properties sheet to include an Editor Web Part that enables users to choose from all the lists in the SharePoint site.
SharePoint 2010 Calling RESTful SharePoint Services From Desktop Applications
This sample uses a service reference to connect to the List Data Retrieval Web Service and display lists of SharePoint items in a Data Grid.
SharePoint Online Accessing Current User Information in Sandboxed Solutions
This sample creates a Web Part that functions in a sandboxed solution on SharePoint Online and gets information about the current user.
SharePoint 2010 Canceling Synchronous Events
This sample checks the properties of synchronous events and cancels them to prevent users from deleting SharePoint items.
SharePoint 2010 Calling WCF Services Hosted in SharePoint
This sample calls a WCF service that is hosted by Sharepoint, and whose code uses the SharePoint Foundation Server-Side Object Model.
SharePoint 2010 Developing Ribbon Drop Down Controls
This sample uses a drop-down control on the SharePoint ribbon to forward users to the selected list.
SharePoint 2010 Developing State Machine Workflows
This sample develops state machine workflows based on documents in SharePoint document libraries and items in tasks lists.
SharePoint Online Deploying Sandboxed Content Types and List Definitions
This sample creates a Web Part that functions in a sandboxed solution on SharePoint Online and uses code to create content types and list definitions.
SharePoint 2010 Developing Sandboxed Web Parts
This sample creates a Web Part in a sandboxed solution, and includes Panels to hide controls, radio buttons, and the Render method.
This sample uses the SharePoint Client Object Model to display information about the current site collection.
SharePoint 2010 Calling WCF Services from Timer Jobs
This sample calls a WCF service from a custom timer job that creates a new announcement when it runs.
SharePoint 2010 Developing Site Definitions
This sample creates a custom SharePoint site definition that specifies Content Editor and Image Viewer Web Parts on a Web Part page.
SharePoint 2010 Developing Custom Expiration Formulae
This sample calculates an expiration date for a SharePoint information management policy by using a custom expiration formula.
SharePoint Online Creating and Deploying Sandboxed Web Parts
This sample creates a Web Part that checks whether it is in a sandboxed solution and displays the title of the SharePoint site.
SharePoint 2010 Exporting Content by Using the Content Deployment API
This sample exports content from SharePoint lists by calling the Content Migration API.
SharePoint Online Creating and Deploying Sandboxed Feature Receivers
This sample creates a feature receiver that works in a SharePoint Online sandboxed solution.
Incoming search terms: