Latest Posts
I just got the email a few minutes ago and had to share the news. I’ve been named a SharePoint Server MVP for as of today, July 1, 2008.
I owe a big thank you to Todd Bleeker who nominated me and to anyone else who added a good word or endorsement to the process along the way. I am incredibly EXCITED and hope to continue to live up to the honor that has been bestowed on me.
My next two best practices that are a part of my 10 part series, are going to be combined in one post because they are closely related. What's more is that I've already blogged about them, so it doesn't make sense to labor over something twice.
These two best practices are detailed out in my post titled:
How to Effectively Manage your "12 Hive" SharePoint Customizations and Deployments (Part 1 of 2): Keeping your Developers Honest and your Investment Secure with Source Safe
In that post, I discuss the prevalent bad practice of editing SharePoint's files directly within the 12 Hive. Bad! Bad! Bad! Don't do it! If you do, you'll run into all kinds of issues like your customizations don't get backed up regularly, your developer's are overwriting each other's changes, and inconsistency and incomplete deployments across your web front ends. These issues are especially significant if you have a large team.
If you read through that post, you're certain identify two best practices therein. One, never make changes directly to the 12 Hive on the file system, and two, make sure all 12 Hive customizations are in source control in a way that requires developers to use it.
Thanks! And stay tuned, we’re only half way through my top 10 list!
Phil
[cross posted from http://philwicklund.com]
Ever wondered whether the way you've designed, implemented and continue to support your SharePoint installation is the best way possible? Or could there be easier, better, more efficient ways to get things done?
Almost every SharePoint practitioner I've met has wondered the same thing at one time or another. Well here is your chance to find out. Join some of the brightest SharePoint experts in the business to discuss just what are SharePoint's Best Practices.
The first, and to the best of my knowledge only, conference dedicated to discussing SharePoint Best Practices will be held in Washington, DC from September 15-17. As the conference Web site says, “The 2008 Best Practices Conference replaces confusion with Clarity, Direction and Confidence by establishing key principles to guide effective SharePoint decision-making in any situation.” Hope to see you there.
Manning Publishing is giving away ebooks on .NET....
Starting on June 19, 2008 Manning Publishing is launching the ".NET Daily Drawing.” This promotion will run until July 17,2008. Each day’s lucky winner can choose one free .NET ebook of their choice. On the last day of the drawing, Manning will award one lucky winner... the entire Manning .NET library! (That’s nearly a $3000 value...)
Click the banner below to enter your name for the daily drawing.
The website for the SharePoint Best Practices conference is now up. Visit the site to see the agenda and register.
Occasionally, I see a question about determining if a given installation is MOSS or simply WSS. I am unaware of any Object Model method or property that indicates this, but I did find a different way. The User Profile service is a web service that is included in MOSS and not WSS. So, if the asmx file exists, then MOSS is installed.
Here is a code snippet:
string isapiFolder = SPUtility.GetGenericSetupPath("ISAPI");
string userProfileServicePath = Path.Combine(isapiFolder, "UserProfileService.asmx");
bool SharePointServerInstalled = File.Exists(userProfileServicePath);
General List management:
- SharePoint lists are basically just Database Tables (or excel worksheets). You have control over how many columns exist, and what their types are.
- SharePoint columns are generally set to these core types: 1 line of text, multiple lines of text (w/ or wo/ rich formatting), numerical, dates, choices, user/group assignment, lookup
- SharePoint choice columns are flat choice lists, but a hierarchy can be simulated by having choices such as: Food, Food:Groceries, Food:Restaurant, Food:CoffeeShop. That would allow you to choose "Food" as the parent node OR "Food:CoffeeShop" if you wanted to choose the child node. Maintaining the values in a choice column requires hard-core list maintenance.
- SharePoint choice columns may allow "Fill-in" choices if desired where the user is given a chance to choose a value from the drop down selector, OR type in their own value. The fill-in choice is NOT automatically added to the choice list for general use (the user would have to type the exact same value each time they wanted to use it).
- SharePoint list attachments and folders can be enabled or disabled on any list. List attachments let you attach files to individual list items.
- SharePoint list views can present vastly different presentations based on the same underlying items stored in the list. One view is the default for the list, others may be created as necessary. All views must be configured with: what columns to display; what order to display the columns; how to sort/group/filter the items; other presentation and content choices. This is a huge benefit as it typically allow designs utilizing one underlying list for many purposes rather than requiring the difficult management of many seperate lists.
- SharePoint list web parts are used to put lists on a web part page. Each list web part could present a different view of the same underlying list. This is a huge benefit for presenting the user with many different views and rollups of one list on a single page.
Advanced List management:
- SharePoint lookup columns are like choice columns, but refer to another SharePoint list for values instead. Maintaining the values in a lookup column merely requires adding an entry to the referenced list. The referenced list could be ANY type of list: Custom List, Tasks, Contacts, Calendar, Document Library, …
- SharePoint Site Columns and Content Types allow list maintainers to define a set of fields that need to be entered and managed together in a list that supports several Content Types. For example, we could define 5 columns for a "design tool" Content Type and 8 columns for a "runtime tool" Content Type. When someone adds/edits/views a "design tool" item, the system will display the 5 columns defined for it. When manipulating a "runtime tool" item, it will use the associated 8 columns. This approach works best when there are overlapping sets of column definitions, otherwise if there were no commonality, they might as well just be separate lists.
- SharePoint list permissions can be set to allow/restrict access to the list as a whole.
- SharePoint list item permissions can be set to allow granular permissions per item. This must be maintained manually per item (high burdon).
- SharePoint list item permissions can be set to allow: Read access to everyone, or just a user's own items; Edit access to all, none, or just a user's own items.
- SharePoint list versioning and approval handling can be enabled or disabled on any list.
- SharePoint workflows are possible, but are pretty advanced.
Many hoped that version three (V3) of Windows SharePoint Services (WSS) would help bring companies closer to compliance with Sarbanes Oxley (SOX) and/or the Health Insurance Portability and Accountability Act (HIPAA). I know from personal experience that my hopes were quite high when WSS V3 released, because I had worked with several organizations on the version two (V2) platform, and these organizations were enduring through pain because of their need to be mindful of such ordinances that would have an impact on SharePoint intranets. In fact, just the idea of a companywide collaboration tool sent most security departments down a path of fear and much concern. As you all now know, the c# statement “if (SharePoint == Compliant)” seems not likely to return “true” at any near point in the future. However, I did come up with a solution that proved very successful for one organization. It’s no silver bullet, but it is a step in the right direction nevertheless.
READ MORE...
[cross posted from http://philwicklund.com]
This next best practice in my top 10 list is definitely a matter of opinion on my part. The best practice revolves around SharePoint themes, and my inability to understand how they can be a benefit to someone. The reason why I struggle to see the value with themes is that every company that I have ever consulted for has always wanted to have their brand consistently applied throughout their entire farm. In their case, themes propose a problem because any end user that has full control anywhere can apply a theme on their site and in effect change mess with the company’s brand. Now I am fully aware that not all companies, especially small ones, are always terribly nit-picky about their brand. However, I do feel confident that from what I’ve seen, most are. Most companies desire a consistent and professional experience for their end users. I’m not a usability expert by any means, but my guess is that variation in the look and feel on an intranet cause more confusion that it does excitement and pleasure. Whenever I bring up the concept of themes to various organizations they all almost unanimously ask how to disable them even before I can tell them that it is even an option.
READ MORE...
[cross posted from http://philwicklund.com]
Finally! It looks like our new best practices book should ship around the first of July. Bill English and myself wrote a big chunk of the book, but we had tons of help from rock stars like Kathy Hughes (MVP), Paul Schaeflein, Daniel Webster (SharePoint Guru), Mark Ferraz (IA and Security), Paul Stork, Jim Curry, and Mark Schneider (PMP).
We want to publicly thank all of the folks who gave technical feedback and wrote fabulous real world sidebards: Todd Klindt (MVP), Steve Smith (MVP), Andrew Woodward (MVP), Todd Bleeker (MVP), Keith Richie (MVP), Bob Fox (MVP), Robert Bogue (MVP), Matthew McDermott (MVP), Joel Oleson (well, give it time), Doron Bar-caspi (MSFT), Mike Watson (thanks, Mike!! - you rock), James Petrosky (wow, what doesn't he know?), Scott Edwards, Daniel Galant, Jack Dougher, Woodrow Windischman, Steve Mong, Eric Larson, Kuda Nhiwatiwa, Oleg Glubochansky, Satish Mathew (MSFT), Sean Livingston, and Frank Zakrajsek (MSFT).
Ross Brookshire, Don Scott, and John Moh are great MCS guys and tech reviewed much of the book - thanks a ton (and your free copy is on the way!)
This book was a ton of work, but we really think it is a great resource for the community. It isn't prescriptive best practices as much as design and architecture best practices. A prescriptive best practices guide for SharePoint Server 2007 would be 3000 pages, and outdated in 90 days. In the book, we tried to get people to 'think' about the way they were installing, more than giving guidance on a specific technology.We aren't saying there is only one way to do it, we are showing the reader the methodology to get the right answer. There is often more than one 'best practice', and only through proper planning, designing, and testing, will you know for sure. We DO give you a starting place, and whether you agree or disagree isn't the point - it is to start you in the right direction and challenge you to find the best practices for your specific implementation. 800 pages of SharePoint Server goodness...
Our book should be available for purchase in mid-June. You can pre-order your copy today at Amazon, Barnes & Noble and other retail outlets. We'll also have a best practices web site (which is not up yet) at http://www.sharepointbestpractices.com.
Ben Curry, CISSP, SharePoint Server MVP
Mindsharp
As you may have heard, Silverlight 2 beta 2 came out. This post for me is necessary because I wrote a two part series on getting a Silverlight application to work in SharePoint, and since beta 2 came out, a few things need to be updated in that walkthrough of mine. Before I get started, MSDN has a nice article on all the main things that changed that could cause your applications to break – it's a laundry list so prepare for a heavy read.
Here's my laundry list of updates to my steps:
READ MORE...
[this post was cross posted from http://philwicklund.com]
In the last post of mine, I discussed certain implications that come with using SharePoint Designer to brand your SharePoint sites. This post will discuss the prefered alternative to SharePoint Designer, building custom site definitions. However, I must start by saying that this philosphophy is by no means a SharePoint standard. Andrew Connell, who’s probably one of the most well known and respected SharePiont MVP’s ever, begs to differ. Check out this powerful comment on one of his blog posts:
“
I still do everything I can to avoid creating site definitions. They are too big and cumbersome making it hard to debug when problems arise. Most importantly, they are very inflexible; once one a site has been created off a site definition, it should never be directly changed.” – Andrew Connell
READ MORE...
[cross-posted from http://philwicklund.com]
Hey all! This post is just an FYI letting you know I have changed the URL to my RSS feed, so make sure to update your RSS reader to stay up to date on my posts. The new URL is:
http://feeds.feedburner.com/sharepointhappenings
I took the advice of Joel Oleson and went with feedburner, to keep my URL agnostic. However, the old feed URL should still work, for now, there’s just no guarantee that it will forever, hence the reason I switch to feedburner.
Also, my blog is now utilizing the Community Kit for SharePoint, Enhanced Blog Edition (EBE). My main drivers to move to the EBE is better UI consistency (fonts, sizes, colors, etc), as well as integration with community tools like Digg, del.icio.us, and to be able to receive trackbacks.
DeliverPoint 2007 is now available for FREE with a full production license for a limited number of features. In this free version you'll enjoy the following features in your SharePoint Server 2007 deployment:
- Security Trimmed interface
- Discover Object Permissions
- Properties reporting
- Discover Account Permissions
I would encourage you to use DeliverPoint 2007 in your environment. It is the permissions tool that will help you significantly understand who has permissions to objects and sites with reporting capabilities.
If you have any questions about DeliverPoint 2007, please visit the web site at www.deliverpoint.com.
-ben
Daniel Larson has been sending smoke signals for the last week about using the RunWithElevatedPrivilege (RWEP) method. He finally goes into further detail today with his cautionary tale and a recommended SPUserToken work-around.
I have seen several programs that use RWEP to accomplish updates on behalf of a user. (In fact, I use the method in the Image Upload Web Part.) In this circumstance Daniel is advocating using impersonation via the SPUserToken for the "System Account." I believe this to be sound advice and will be updating my code accordingly.
This series of posts is border line ridiculously long, but I hope it is a fruitful endeavor nevertheless. In my vast journey’s around the great world of SharePoint, I have drawn many conclusions on what is good to do and what is not so good regarding SharePoint branding. I started documenting my thoughts in what will become a whitepaper on the subject, but it became clear to me early on that the whitepaper will be quite lengthy, and since I still have a day job, I figured it best to break it up into a series of posts with the paper serving as a supplemental and combined read when it is finished. My goal in this series is to outline the best practices and major concepts, the “what” when it comes to branding, and to outline the “how” and detailed steps in the whitepaper that will follow. Hopefully I will have the 10 posts done within the next 4 weeks (among posts on other subjects I plan on doing), with the whitepaper to follow 2 weeks thereafter.
Additionally, my desire is that these posts will generate feedback, enough so that the community can help shape the outcome and depth of the top 10 list. I will also use such feedback to help shape the contents of the whitepaper. Feel free to leave a comment if you want to contribute or raise concerns around my conclusions. Also – be sure to check out Bill & Ben’s new book on SharePoint best practices, that book is sure to be a hot seller.
READ MORE...
[this post is cross-posted from http://philwicklund.com]
We released an update to our product today. DeliverPoint :Permissions v3 includes a limited-functionality license for free. All the details can be found on http://deliverpoint.com.
All of us at Barracuda are excited about this product. And we've hit our groove with quarterly releases, which means you can expect much more going forward!
Mindsharp will be hosting the first SharePoint Best Practices and Governance Conference in Washington, DC on September 15-17. We will be hosting this event in cooperation with Microsoft Press, who will be publishing the SharePoint Server 2007 Best Practices Deployment book, co-authored by myself, Bill English, Kathy Hughes and others.
This should be a great conference, and we will be releasing the speaker roster in the next few weeks. As soon as we have the conference Web site up, I'll be sure to let you know. As a quick preview, we will be covering the 'why' of implementing portions of SharePoint, and then proving it with some real-world how to! Some areas to be covered are Governance, Branding, Customization, Web parts, Solutions, WCM, Taxonomies, Availability, Search, Document Management, and Capacity Planning.
Mark your calendars, and I hope to see you there.
Ben Curry, CISSP, SharePoint Server MVP
Mindsharp
http://www.mindsharpblogs.com/ben
There are a number of customers working to properly secure their SharePoint implementations. The Security Hardening documentation from Microsoft titled, "Plan and Design for Security (Windows SharePoint Services and Office SharePoint Server combined".
In fact, the Security Hardening guide recommends restricting access to the SQL ports: TCP port 1433 and UDP port 1434. Also, there are a number of SharePoint Technology - Windows SharePoint Services 3.0 and Office SharePoint Server 2007 - related recommendations; for example, Block UDP port 1434, Configure SQL Server named instances to listen on a non-standard port; block TCP port 1433 and re-assign the port; Configure SQL client aliases on all Web Front End and Application layer servers - ES, Index, Query and others in the farm.
This approach provides a greater degree of protection for your SQL Server communications. It also ensures that all servers in the SharePoint Farm follows a more restricted communication model.
Let's say that after properly configuring your security strategy your organization decides to use the Microsoft Single Sign On (SSO) technologies. You navigate to the SharePoint Central Administration v3 web site. You locate the configuration link for the SSO. You configure all of the settings and click on OK button.

Your browser refreshes. You notice that there is an error message. The error message encourages you to verify your SQL Server name and other configuration on the page.
You begin to bang your head against the monitor gently. As you take a look at the event logs - on the WFE server and the SQL Servers - and troubleshoot the TCP/IP stack. You notice that there is not an indication of of a notable error.
What we found that was encouraging the return of the SQL Server error message was the organization's security hardening policies. If your organization plans to use the SSO, the 1434 port must remain open. Of course, it would have been great to receive an error message that would provide more - specific - information that would have saved quite a few man hours.
In order to get rid of this error message, you would need to unblock port 1434 on your SQL Servers.
That is just my $19.11 worth.
If you're like most, you don't install the Office client on your servers. In order for the Index server to have the Office 2007 IFilters, you'll need to download this filter pack and install it on your Index server.
http://www.microsoft.com/downloads/details.aspx?FamilyId=60C92A37-719C-4077-B5C6-CAC34F4227CC&displaylang=en
Bill English
Mindsharp
I will be part of the developer roundtable at the Regional SharePoint Conference being held by the SharePoint User Group of DC (SUGDC). Hope to see you there!
Mindsharp will be hosting the first SharePoint Best Practices and Governance Conference in Washington, DC on September 15-17. We will be hosting this event in cooperation with Microsoft Press, who will be publishing the SharePoint Server 2007 Best Practices Deployment book, co-authored by myself, Ben Curry, Kathy Hughes and others.
This conference will focus on governance and best practices for a MOSS deployment. “How to” information will not be emphasized as much at this event as the “why” of making one decision over another for a deployment or customization. Learning how to “connect the dots” between the features of MOSS, your requirements and culture will be emphasized in this conference. If you're an architect, systems administrator, developer, web designer, librarian/taxonomist, project manager or CIO, this event will help you understand best practices and governance principles that will support a successful implementation in your environment.
We will have our conference web site up soon with all of the conference details and registration information you'll need to attend. But please mark your calendars for September 15-17 in Washington, DC. You won't want to miss it!
Bill English
Mindsharp
I've just posted an article on understanding the crawler architecture. You can find it here: http://admincompanion.mindsharp.com/BillBlog/Lists/Posts/Post.aspx?ID=83
Bill English
Mindsharp
Last week's Webinar - Best Practices for Using SharePoint for Email Management A Practical "How To" Webinar - is now available as an on-demand Webinar:-
http://www.colligo.com/webinars/Colligo-Email/register.asp
We'll be addressing those questions that we didn't get a chance to answer during the Webinar throughout the next week.
I'd like to thank Barry and Genese of Colligo Networks for organizing and sponsoring the Webinar.
In part one of this series; I explained the fundamentals of Silverlight development by walking you through the creation of a “Hello World” Silverlight application. This post will continue that discussion by covering the steps necessary to get that application working within a SharePoint context. We left off on step four of ten... Read More.
[Cross posted from http://philwicklund.com]
I consider creating and managing content databases a two part excercise. First, design for availability. Second, design for performance. Before I move forward, consider the following 2 points:
1. Service Level Agreements (SLAs). How long can your site collections be out of service? When designing your site collections it is important to remember that site collections are contained in content databases, and cannot span content databases. Consider the following when designing for site collection availability:
Recovery Time Objective - The recovery time objective (RTO) defines how long your system can be down before it is back online after a disruption. The disruption could be due to anything from a SQL Server outage to a WFE Server failure. The RTO should include data recovery at the server, farm, database, site, list, and item levels.
Recovery Point Objective - The recovery point objective (RPO) defines your data loss threshold, measured in time. If you run daily backups only and ignore the SQL Server transaction logs, then your RPO is 23 hours, 59 minutes, and 59 seconds. Any data written to SharePoint Server 2007 after you ran the backup cannot be restored via native tools until after the next backup. Many organizations assume this risk without fully understanding the impact of losing 24 hours worth of data.
2. Performance. You don't have to host all content databases on the same disks in your SQL Server. In fact, you don't even have to host them on the same SQL instance! For very large and/or busy site collections, you can host them on very fast disk using RAID 1+0 or 0+1 (depends on your speed vs. availability). You could then host the more generic site collections on less expensive configurations/disks, and assume more risk.
So, how do we begin our design? I would begin by calculating both the A. size and B. performance levels required. If you have a very fast site collection that is mostly read (think WCM / Publishing Site), then you need to optimize the data files on your SQL Server. That means a config like RAID 0+1 for super speed, or RAID 1+0 for more availability and decent speed. Your transaction logs won't matter as much. But, if you are designing for a highly-collaborative environment, then you probably want to optimize your transaction log files.
Microsoft often states that 100GB is the recommended maximum for a content database. This is mainly because small to medium shops may have difficulty maintaining, backing up, and restoring large content databases. But, let's be honest: You can't span content databases, so you are accepting a maximum Site Collection size of 100GB (or less if you count the 2nd stage recycle bin). Really? 100GB doesn't seem very big anymore :) If you need larger site collections, optimize SQL and rock on...
Update: There seems to be an issue with really large databases and large lists. See: http://blogs.msdn.com/toddca/archive/2008/03/23/database-disconnect-issues-with-sharepoint.aspx and http://joeloleson.spaces.live.com/blog/cns!B05AD15E2DE730DD!116.entry seems to still be valid. I know you want to know more - so do I. Look for a blog coming on this in the near future!
There are some performance hits with large site collections, but these usually aren't that bad. Just be sure to test, test, test. Visual Studio works great for stress testing your site collection performance.
We also need to think through our SLAs when designing content databases/site collections. The two are inseparable and are designed simultaneously. SharePoint Server 2007 can adapt to a multi-tiered SLA arrangement at the site collection/content database levels. If you grouped site collections by their criticality in corresponding content databases, you can then use SQL Server tools to manage them to different support levels. The below picture shows a possible database design for hosting three different SLA levels within a single farm.
If you group site collections similar to what is shown in the above picture, then you can manage them accordingly. Level 1 site collections could have frequent SQL level backups and be mirrored to another SQL instance. Level 2 site collections might be transaction log shipped, and Level 3 site collections might be in simple recovery mode and backed up only once a day. Additionally, every level of content database could be on a different SQL Server instance, and on different disk subsystems. Note that this depicts a one-to-one relationship between a Level 1 site collection and a Level 1 content database. While this provides robust recovery and performance options, it does not scale well. (Microsoft recommends no more than 100 content databases per Web application)
Note: If you have already over-loaded and over-populated your content databases, check out Todd Klindt's blog here to learn how to move them around. (nice post, Todd!) Another best practice is to create multiple content databases to support multiple site collections. A very common mistake we see is customers creating all site collections in a single content database. This usually results from a lack of understanding about how the product should be architected and partially from the process of rapid deployments. All is not lost, however, if you have implemented this way. I feel obligated to explain an almost always misunderstood Central Administration interface. The first picture below shows a screen in Central Administration Application Management Content Databases to take a database offline. The second picture shows the status of the database as stopped after it has been taken offline.
These settings do not mean what they appear to mean. Taking a database offline merely blocks any new site collections from being created in it. It does not take the database offline as one might think. Users can still upload and download content, view Web pages, and process workflows. The content database status will also show as stopped. Once again, this means only that new site collections cannot be created in this database. If you want a one-to-one site collection to content database association, taking the hosting database offline is the best method to accomplish this.
Cheers.
Ben Curry, CISSP, SharePoint Server MVP
Mindsharp
http://www.mindsharpblogs.com/benhttp://www.microsoft.com/MSpress/books/10623.aspxhttp://www.microsoft.com/MSPress/books/12197.aspx
I really like doing things in 10 easy steps, because although there is a lot of good tips and tricks out there for Silverlight, it's not always easy to get from A-Z for beginners. In similar fashion to my 10 steps on SharePoint and Visual Studio workflows, I hope this post helps you connect the dots on SharePoint and Silverlight.
In this two part series, we're going to build the conventional "Hello World" application in SilverLight. We are then going to wrap that SilverLight application within a SharePoint web part and deploy the web part into a MOSS/WSS site collection.
Read More...
[cross posted from http://philwicklund.com]
I have worked with many organizations building web based applications on the SharePoint Technologies platform. We have used tools such as Visual Studio, Front Page and, now, SharePoint Designer. Equally important, I present at a number of SharePoint summits across North America. The presentations delivered range from Designing and Implementation – of the various SharePoint related solutions – to branding – using SharePoint Designer. So, it is safe to say that I have quite a bit of experience in working with customers that are resistant to using SharePoint Designer as a customization (some would say branding) tool.
Many of those customers and attendees moved from the Windows SharePoint Services 2.0 platform to the Windows SharePoint Services 3.0 platform. Not only did they migrate the content, but also the skepticism associated with customizing the pages in a SharePoint environment. Or, they have heard about the nightmares associated with rendering customized - back then called unghosting - pages.Therefore, I decided to blog about the new features provided by the ASP.NET 2.0 framework and how it eliminates the problems experienced in the Windows SharePoint Services 2.0 environment. That is, Windows SharePoint Services 2.0 – due to the limitations of ASP.NET 1.1 – had a difficult time parsing pages from the database. As a result, all user requests - for SharePoint sites - were routed to the SQL Server database. All together, that means that Windows SharePoint Services 2.0 had a difficult time parsing and caching pages on the Web Front End servers.
For all that, Windows SharePoint Services 3.0 integration with ASP.NET 2.0 has been completely redesigned. First, Windows SharePoint Services 3.0 is built on ASP.NET 2.0, which provides significant enhancements over ASP.NET 1.1. Furthermore, the routing infrastructure was improved by removing the ISAPI filter and by adding an HttpModule and an HttpHandler that are registered with ASP.NET using entries in the web.config file.
When a SharePoint Administrator creates a Web Application, the SharePoint Administrator is extending an IIS web site to function as a Web application. Also, Windows SharePoint Services 3.0 adds a wildcard application map to the IIS Metabase file.
That is, all incoming HTTP requests are always processed by the ASP.NET runtime environment and are fully initialized with the ASP.NET context before the HTTP Requests are forwarded to the code that processes all Windows SharePoint Services 3.0 related requests. For the most part, the map routes are due to the wildcard application maps in the IIS Metabase. As a result, all incoming HTTP requests to the ASP.NET runtime- regardless of file types .pdf, .doc, … etc
Overall, the ASP.NET 2.0 framework addressed a number of gaps from the previous – Windows SharePoint Services 2.0 - version of SharePoint Technologies. The most notable gap addressed by the newASP.NET architecture addressed the gap related to how .aspx pages are parsed and compiled. The problem in SharePoint Technologies was that it could not leverage the .aspx page parser used by ASP.NET 1.1. The fact that Windows SharePoint Services 2.0 stored .aspx pages in the SQL Server database presented a problem. ASP.NET 1.1 worked only with pages that reside on the local file system of Web Front End servers. As a result, Windows SharePoint Services could not take advantage of the ASP.NET 1.1 page parser.
Virtual Path Providers were introduced in the ASP.NET 2.0 framework. The new framework allowed developers to write their own custom virtual providers. The value add allowed the SharePoint Product team to write a customized virtual provider – SPVirtualPathProvider - that retrieves .aspx pages from the SQL Server Database. Also, the PageParserFilter affords the SPVirtualPathProvider the capability to control how pages are parsed and compiled.
Once the SPVirtualPathProvider retrieves a .aspx page from the SQL Server database it leverages the ASP.NET 2.0’s .aspx parser. So then, Windows SharePoint Services 3.0 does not fall victim to the performance reduction, with respect to the limited page parsing, experienced by the Windows SharePoint Services 2.0 environment.
Figure 1 Page Rendering Using the SPVirtualPathProvider
In simplier terms, the perceived problems with customizing pages in a SharePoint environment has been addressed from page rendering view point. Despite the negative perception of the ASP.NET 1.1 limitations and how it affected the page rendering in the Windows SharePoint Services 2.0 environment, I think that it is time for the masses to accept the fact that ASP.NET 2.0 addressed those limitations. Whether pages are rendered from the Web Front End file system or from the SQL Server Database, ASP.NET 2.0 ensures that all pages are properly parsed.
That is just my $19.11 worth....
In teaching our Search Server 2008 class today, we ran into a discussion about how to build enterprise search capabilities into a team site so that users don't have to leave the team site in order to enjoy the goodness of the enterprise search center. I've written a short blog on this and you can find it here: http://admincompanion.mindsharp.com/BillBlog/Lists/Posts/Post.aspx?ID=76
Bill English
Mindsharp
There are a number of blogs that focus on configuring ( Create a Contributor group) the the Contributor Settings in SharePoint Designer 2007. It is not my intentions to provide the step by step to create and configure contributor settings.
Also, I can site a number of sites that clearly define the intentions of Contributor Settings (Introduction to Contributor Settings). In summary, the intent of the Contributor Settings is to control the use of SharePoint Designer on a site by site basis.
I am posting this blog to discuss the limitations of the Contributor Setting configurations and proposed work arounds. The fact that contributor settings are configurable on a site by site basis is not a great option in a number of site deployments. The fact that new sites are created within site collections at an alarming rate, is a compelling reason to ask for more of a centralized capability to set the contributor settings at the site collection level and to push it down throughout its namespace. In fact, it would be great to ensure that all sites across all web applications - scoped at individual sites - are dynamically configured with the required contributor settings.
The fact remains that Contributor Settings can only be set by using SharePoint Designer as the Site Manager. After the [contributorsetting].htm - generally named using the GUID of the site - is created, the [contributorsetting].htm can be added to a site template using the File element in the ONET.XML file.
But, in the event that Designers do not have access to the Web Front End (WFE) servers, adding the [contributorsetting].htm as a file element to the ONET.XML file, is not a viable option.
What we have found that adds some value for our SharePoint Designers - using SharePoint Designer 2007 - is that you can create a site - using the Browser or SharePoint Designer 2007 as a tool. After creating and customizing - it is titled Branding in some eyes - the site.
Once the site is customized, the Site Manager can create Contributor Groups and Region Types. After configuring the Contributor Settings, the Site Manager, Site Owner or Site Collection Owner - that all depends on the level of the site and the tools - Browser or SharePoint Designer - can save the site as a template.
To ensure that the save template(s) are used, the Site Collection Administrator or Site Owner can limit the template choices to the template(s) configured with the Contributor Settings.
The option presented is not the most centralized way to ensure the use of a consistent contributor settings across a number of sites within a site collection. But, it presents an option to ensure the authorized use of SharePoint Designer 2007 on each sub-site.
I hope that this helps.....
It seems that everyone is jumping on the Search Server 2008 bandwagon right now. This community is growing quickly. As one of the ways we can work together to learn more about Search Server 2008, I've started an email list at searchdiscussions@yahoogroups.com. To subscribe, send an e-mail to searchdiscussions-subscribe@yahoogroups.com. Join us in learning more about Search Server 2008!
Bill English
Mindsharp
I've posted my thoughts on some of the better software that is available today for those who need to extend or “round out” their toolbox for administrating SharePoint Server 2007.
http://admincompanion.mindsharp.com/BillBlog/Lists/Posts/Post.aspx?ID=75
Bill English
Mindsharp
In an attempt to blog shorter, but relevant and immediately useful 'stuff', I plan on blogging more, but with less rigidity.
So, here are a few tips to boost your SharePoint performance with very little effort.
1. Move your usage analysis files to a drive other than C:.
2. Move your IIS logs from C:
3. Move your Index from C:
4. Move your trace logs from C:
(are you seeing the OOB pattern here that can kill your system drive performance?)
5. Consider if you really need to check anti-virus on upload and download. Maybe pick one that suits you best?
6. Don't round-trip Active Directory. In other words, use Kerberos when possible.
7. Don't round-trip SQL. In other words, BLOB cache, object cache, output cache, and IIS compress 12Hive files.
8. Put your data files and transaction log files on different spindles in SQL
9. Don't trace log unless you are troubleshooting, only eventvwr.exe. Of course, there are exceptions to this. But, be careful turning up event or trace logging too high. (don't even think about logging ALL for verbose and information!!)
10. If your Index server is also running other apps, consider de-tuning the indexer by reducing performance on the service (Central Administration, Operations, Services on Server)
11. Don't use auditing excessively, unless you have a valid business requirement
12. Use caution will 'roll-up' Web parts on very busy pages
13. Change the SQL default filegrowth settings
cheers.
-ben