Wednesday, April 14, 2010

Microsoft SMB Protocol and CIFS Protocol

Microsoft SMB Protocol and CIFS Protocol

The Server Message Block (SMB) Protocol is a network file sharing protocol, and as implemented in Microsoft Windows is known as Microsoft SMB Protocol. The set of message packets that defines a particular version of the protocol is called a dialect. The Common Internet File System (CIFS) Protocol is a dialect of SMB. Both SMB and CIFS are also available on VMS, several versions of Unix, and other operating systems.

The technical reference to CIFS is available from Microsoft Corporation at Common Internet File System (CIFS) File Access Protocol.

Although its main purpose is file sharing, additional Microsoft SMB Protocol functionality includes the following:

Dialect negotiation
Determining other Microsoft SMB Protocol servers on the network, or network browsing
Printing over a network
File, directory, and share access authentication
File and record locking
File and directory change notification
Extended file attribute handling
Unicode support
Opportunistic locks

In the OSI networking model, Microsoft SMB Protocol is most often used as an Application layer or a Presentation layer protocol, and it relies on lower-level protocols for transport. The transport layer protocol that Microsoft SMB Protocol is most often used with is NetBIOS over TCP/IP (NBT). However, Microsoft SMB Protocol can also be used without a separate transport protocol—the Microsoft SMB Protocol/NBT combination is generally used for backward compatibility.

The Microsoft SMB Protocol is a client-server implementation and consists of a set of data packets, each containing a request sent by the client or a response sent by the server. These packets can be broadly classified as follows:

Session control packets—Establishes and discontinues a connection to shared server resources.

File access packets—Accesses and manipulates files and directories on the remote server.

General message packets—Sends data to print queues, mailslots, and named pipes, and provides data about the status of print queues.

Ref: http://msdn.microsoft.com/en-us/library/aa365233(VS.85).aspx

SharePoint Escalation Team - MOSS 2007 Search Query Mechanism Part 1

Ref: http://blogs.msdn.com/spses/archive/2010/03/02/moss-2007-search-query-mechanism-part-1.aspx

Errors when crawling content sources in SharePoint Server 2007: "Event ID 2436" and "Access is denied"

Ref: http://support.microsoft.com/kb/971382

Tuesday, April 13, 2010

SQL Recovery Model Overview (Simple vs Full Recovery)

Simple Recovery Model

--------------------------------------------------------------------------------
The simple recovery model minimizes administrative overhead for the transaction log, because the transaction log is not backed up. The simple recovery model risks significant work-loss exposure if the database is damaged. Data is recoverable only to the most recent backup of the lost data. Therefore, under the simple recovery model, the backup intervals should be short enough to prevent the loss of significant amounts of data. However, the intervals should be long enough to keep the backup overhead from affecting production work. Including differential backups in the backup strategy can help reduce the overhead.

Generally, for a user database, the simple recovery model is useful for test and development databases or for databases containing mostly read-only data, such as a data warehouse. The simple recovery model is inappropriate for production systems where loss of recent changes is unacceptable. In such cases, we recommend using the full recovery model.

For more information, see Backup Under the Simple Recovery Model.
http://msdn.microsoft.com/en-us/library/ms191164.aspx

Full Recovery and Bulk-Logged Recovery Models

--------------------------------------------------------------------------------

The full recovery and bulk-logged recovery models provide greater protection for data than the simple recovery model. These recovery models rely on backing up the transaction log to provide full recoverability and to prevent work loss in the broadest range of failure scenarios.

•Full recovery model

Provides the normal database maintenance model for databases where durability of transactions is necessary.

Log backups are required. This model fully logs all transactions and retains the transaction log records until after they are backed up. The full recovery model allows a database to be recovered to the point of failure, assuming that the tail of the log can be backed up after the failure. The full recovery model also supports restoring individual data pages.

For more information, see Backup Under the Full Recovery Model.
http://msdn.microsoft.com/en-us/library/ms190217.aspx


•Bulk-logged recovery model

This recovery model bulk logs most bulk operations. It is intended solely as an adjunct to the full recovery model. For certain large-scale bulk operations such as bulk import or index creation, switching temporarily to the bulk-logged recovery model increases performance and reduces log space consumption. Log backups are still required. Like the full recovery model, the bulk-logged recovery model retains transaction log records until after they are backed up. The tradeoffs are bigger log backups and increased work-loss exposure because the bulk-logged recovery model does not support point-in-time recovery. For more information, see Backup Under the Bulk-Logged Recovery Model http://msdn.microsoft.com/en-us/library/ms190692.aspx and Considerations for Switching from the Full or Bulk-Logged Recovery Model. http://msdn.microsoft.com/en-us/library/ms190203.aspx

For more details & comparison table please refer link below:


Ref: http://msdn.microsoft.com/en-us/library/ms189275.aspx  

How to stop the transaction log of a SQL Server database from growing unexpectedly

http://support.microsoft.com/kb/873235

A transaction log grows unexpectedly or becomes full on a computer that is running SQL Server

http://support.microsoft.com/kb/317375

SQL Server 2008 Transaction Log Truncation

http://technet.microsoft.com/en-us/library/ms189085.aspx

Thursday, April 8, 2010

Collaborative Application Markup Language [CAML]

Introduction to Collaborative Application Markup Language (CAML)

Collaborative Application Markup Language (CAML) is an XML-based language that is used in Windows SharePoint Services to define the fields and views used sites and lists. CAML is also used to define tables in the Windows SharePoint Services database during site provisioning.

Note: CAML is case-sensitive.

Site Customization with CAML

CAML can be used in various ways to customize a SharePoint site, including the following:

•In script or code that implements members of the Windows SharePoint Services object model, where CAML strings are passed through method parameters, assigned to properties, or returned by methods and properties

•In SOAP messaging that passes CAML strings to a Windows SharePoint Services Web service to interact remotely with a deployment

•In front-end site definitions used to instantiate SharePoint sites

•In Windows SharePoint Services Features to add specific functionality within a particular scope

Rendering with CAML

CAML is used for two types of rendering in Windows SharePoint Services: to define the type of data that is contained within a field, and to construct HTML that is displayed in the browser. For information on the two major uses of CAML, see Data-Defining Elements and HTML-Rendering Elements.

Programming with CAML

The following programming tasks and overview topics illustrate various ways in which CAML is used to customize site and list definitions:

Ref: http://msdn.microsoft.com/en-us/library/ms426449.aspx

-----------------------------------------

Data-Defining Elements


Collaborative Application Markup Language (CAML) has two major types of elements—those for page rendering and those for field rendering and schema definition. The CAML field rendering elements are designed for use when rendering individual field values. These can appear in field definitions, or more commonly, in FLDTYPES.XML at Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\50\Templates\1033\xml.

A field is a column or an attribute of information that a user can add to a list. Each list on a Web site based on Microsoft Windows SharePoint Services has metadata stored in the List of Lists table in the database. The format of the schema is an XML structure, such as the following:

Each of the display modes (Display, Edit, New, etc.) contains a definition for how to render each of the field data types that are supported by Windows SharePoint Services.


For each display mode there is a display pattern, or CAML-rendering expression. Some CAML elements are used specifically in display patterns. Others can be used in either context, for page rendering or for field rendering, but are used primarily in rendering fields. The following intrinsic CAML-rendering elements are used to build templates that can include both static HTML and data, as well as metadata of the field being rendered

Ref: http://msdn.microsoft.com/en-us/library/dd586682(v=office.11).aspx
-----------------------------------------
Programming with the Microsoft.SharePoint and Microsoft.SharePoint.Administration Namespaces

Major top-level classes
The Microsoft.SharePoint and Microsoft.SharePoint.Administration namespaces provide types and members for working with lists and sites, as well as for managing a server or collection of servers running Microsoft® Windows® SharePoint™ Services. These namespaces have four major top-level classes:

•SPGlobalAdmin
•SPVirtualServer
•SPSite
•SPWeb

From these classes you can gain access to all the other classes to work with lists and Web sites, or to manage one or more servers. Starting with one of these classes, you can work through the object model to the class that you need to use. The following table briefly describes these four classes.

Ref: http://msdn.microsoft.com/en-us/library/dd586716(v=office.11).aspx

Saturday, March 20, 2010

Proxy Server

How to configure Internet Explorer to use a proxy server

You can configure Microsoft Internet Explorer to use a proxy server to connect to the Internet. A proxy server acts as a security barrier between your internal network and the Internet, keeping others on the Internet from being able to obtain access to information that is located on your internal network. This article describes how to configure Internet Explorer to use a proxy server over a Local Area Network (LAN) connection and lists the proxies that Internet Explorer supports.


Ref: http://support.microsoft.com/kb/135982
------------------------------------------------
How to configure client proxy server settings by using a registry file


To configure the proxy server settings on a client computer, create the following .reg file to populate the registry with the proxy server information:


[Code]

In this file, ProxyServername is the name of your proxy server.

You can also use the Internet Explorer Administration Kit (IEAK) to configure proxy server settings on client computers. For additional information about IEAK, visit the following Microsoft Web site:

http://technet.microsoft.com/en-us/ie/bb219520.aspx

Ref: http://support.microsoft.com/kb/819961

------------------------------------------------

How to use Proxy Server with Routing and Remote Access
You can use the Routing and Remote Access Server (RRAS) add-on for Microsoft Windows NT to create virtual private network (VPN) connections across the Internet. VPN connections use the Point-to-Point Tunneling Protocol (PPTP) protocol for encrypted communication across the Internet.


Microsoft Proxy Server is a network program that does not require routing. Operationally, this means that every packet that is transmitted to or from the proxy server is either sourced or destined with the proxy server's IP address.

For security reasons, the Proxy Server printed documentation recommends turning off IP forwarding on the computer on which Proxy Server is installed. However, when you install the Routing and Remote Access Update on a server that is running Microsoft Proxy Server, IP forwarding is now turned on. With IP forwarding on, a computer that is running Windows NT Server can forward packets correctly from the Internet connection to the internal network. If IP forwarding is enabled on a proxy server, all security features can be bypassed unless local host filters are configured. However, the PPTP client (the Microsoft Proxy Server) can make calls to the Internet because it is making a direct connection to the Internet and is the source of the PPTP connection. Any proxy clients that are behind the proxy server can also use the PPTP session that has been established. This is because after the PPTP connection is up, the Proxy server treats the PPTP connection like another network interface. ------------------------------------------------


Ref: http://support.microsoft.com/kb/169548
------------------------------------------------

Internet Explorer Uses Proxy Server for Local IP Address Even if the "Bypass Proxy Server for Local Addresses" Option Is Turned On


When you connect to a Web server using the Internet Protocol (IP) address or Fully Qualified Domain Name (FQDN) on the local network, Microsoft Internet Explorer or Windows Internet Explorer connects through an assigned proxy server even if the Bypass proxy server for local addresses option is turned on.


However, if you connect to a Web server using the host name (for example, http://webserver) instead of the IP address (for example, http://10.0.0.1) or FQDN (for example, http://webserver.domainname.com), the proxy server is bypassed and Internet Explorer connects directly to the server.
 
Ref: http://support.microsoft.com/kb/262981
------------------------------------------------

How to disable automatic proxy caching in Internet Explorer
 
When you configure Internet Explorer to use an automatic proxy configuration script, it caches the proxy that is returned by the FindProxyForURL call. The caching mechanism (Automatic Proxy Result Cache) is performed on a host basis (that is, not on an URL basis). This prevents you from using different proxies to gain access to the same Web server.
 
Ref: http://support.microsoft.com/kb/271361
 
--------------------------------------------------
 
Proxy Server Hardware and Software Requirements
Ref: http://support.microsoft.com/kb/164088
--------------------------------------------------
HOW TO: Set Up SQL Server with Proxy Server

Ref: http://support.microsoft.com/kb/216415

--------------------------------------------------
Using Server Proxy with SSL in Proxy Server 2.0
Ref: http://support.microsoft.com/kb/184030
--------------------------------------------------
How to: Bypass a Proxy Server for Local Web Requests



When you are using the ASP.NET Development Server to test your ASP.NET Web pages, you might receive a 502 error or an error indicating that the page cannot be displayed. If so, your browser might be unable to resolve a URL containing localhost and a port number, such as the following:

http://localhost:8080/MyWebSite/Default.aspx

You might be able to resolve this error by bypassing the proxy server for local Web requests, as described in the following procedure.

To bypass a proxy server for local Web requests
1.In Visual Web Developer, on the Tools menu, click Options.
2.In the Options dialog box, select the Show all settings check box.
3.Double-click Environment, click Web Browser, and then click the Internet Explorer Options button.
4.On the Connections tab of the Internet Properties property sheet, click LAN Settings.
5.On the Local Area Network (LAN) Settings property sheet, clear the Automatically detect settings check box.
6.Under Proxy server, select the Use a proxy server for your LAN (These settings will not apply to dial-up or VPN connections) check box.
7.Specify the address and port number that match your network, and then select the Bypass proxy server for local addresses check box.
8.Click OK, click OK, and then click OK again.
9.On the File menu, click Exit, and then re-open Visual Web Developer to apply the changes.

--------------------------------------------------

Proxy Configuration
A proxy server handles client requests for resources. A proxy can return a requested resource from its cache or forward the request to the server where the resource resides. Proxies can improve network performance by reducing the number of requests sent to remote servers. Proxies can also be used to restrict access to resources.

Adaptive Proxies
In the .NET Framework, proxies come in two varieties: adaptive and static. Adaptive proxies adjust their settings when the network configuration changes. For example, if a laptop user starts a dialup network connection, an adaptive proxy would recognize this change, discover and run its new configuration script, and adjust its settings appropriately.

Adaptive proxies are configured by a configuration script (see Automatic Proxy Detection). The script generates a set of application protocols and a proxy for each protocol.

Several options control how the configuration script is run. You can specify the following:

How often the configuration script is downloaded and run.
How long to wait for the script to download.
Which credentials your system should use to access the proxy.
Which credentials your system should use to download the configuration script.

Changes in the network environment may require that the system use a new set of proxies. If a network connection goes down or a new network connection is initialized, the system must discover the appropriate source of the configuration script in the new environment and run the new script.

Ref: http://msdn.microsoft.com/en-us/library/dkwyc043.aspx.

--------------------------------------------------

Document Versioning‏

Managing Versions and Checking Documents In and Out (Windows SharePoint Services 2.0)

Updated: 08-22-2005

Microsoft Windows SharePoint Services gives users the ability to keep versions of documents, and to check documents in and out.

About document versioning

Document versioning allows you to keep multiple versions of a document. If a change needs to be reversed, you can restore the previous version and continue working. A Version History command is included on the drop-down list users see when they click the arrow next to a document name and on the toolbar in the Edit Properties page for the document. The Version History command is also available in client applications compatible with Windows SharePoint Services, such as Microsoft Office Word 2003, Microsoft Office Excel 2003, and Microsoft Office PowerPoint 2003. When the user clicks Version History, a list of the previous versions of the document appears. The user can open an old version, restore a version (replacing the current version), or delete an old version.

When versioning is enabled, versions are automatically created whenever a user updates a document in a document library. Versions are created in the following situations:

When a user checks out a file, makes changes, and checks the file back in.
When a user opens a file, makes changes, and then saves the file for the first time.

Note:

If the user saves the file again, without closing the file, a new version is not created. If the user closes the application he or she is using to edit the file, and then opens it and saves the file again, another version is created.

When a user restores an old version of a file (and does not check it out).
When a user uploads a file that already exists, in which case the current file becomes an old version.

Ref: http://technet.microsoft.com/en-us/library/cc287876.aspx

--------------------------------------------------------

Introduction to versioning

Applies to: Microsoft Office SharePoint Server 2007, Windows SharePoint Services 3.0

Versioning enables you to store, track, and restore items in a list and files in a library as they are changed.

In this article
---------------------------------------
Overview
When versions are created
Working with major and minor versions
Version numbering
How versioning works with content approval
How versioning works with file check-out

---------------------------------------

Overview

When versions are tracked for lists or libraries, revisions to the items or files and their properties are stored. This enables you to better manage content as it is revised and even to restore a previous version — for example, if you make a mistake in the current version. Versioning is especially helpful when several people work together on projects, or when information goes through several stages of development and review.

Versioning is available for list items in all default list types — including calendars, issue tracking lists, and custom lists — and for all file types that can be stored in libraries — including Web Part Pages.

How versioning works with file check-out

Checking out files make the most of versioning. When you check out a file, a version is created only when you check the file back in, so that you can specifically designate when a version is created. When check-out is not required, a version is created when you first save a file, and then this version is updated when you close it. If you open and save the file again, another version is created. Depending on the situation, you might not intend for multiple versions to be created, for example, if you have to close a file to attend a meeting before you finish making changes to the file.

When check-out is required, you cannot add a file, change a file, or change the file's properties without first checking out the file. When you check in the file, you are prompted to provide comments about the changes that you made, which helps to create a more meaningful version history.

Ref: http://office.microsoft.com/en-us/sharepointtechnology/HA100215761033.aspx

--------------------------------------------------------

Monday, March 15, 2010

SharePoint Peoplepicker‏

Peoplepicker-searchadforests: Stsadm property (Office SharePoint Server)

Permits a user to search from a second one-way trusted forest or domain.

All servers in a farm need to be within one domain. Users in the forest that the server is in (that is, a resource forest) are displayed automatically. Forests that have at least a one-way trust to that forest can be searched for users to add.

When a Web application uses Windows authentication, People Picker searches all two-way trusted forests and all two-way trusted domains. However, if you want to search from a one-way trusted forest or a one-way trusted domain, you must run the setapppassword operation, and then run the peoplepicker-searchadforests property.

The peoplepicker-searchadforests property allows you to search multiple values when users are selected. You also can add multiple forests, domains, accounts, and even specific property searches.

Note:

By default, Microsoft Office SharePoint Server 2007 talks to the domain controller for the domain in which Office SharePoint Server 2007 was installed and all trusted domains for two-way trusted domains.

Examples

Search additional domains or forests

To enumerate a list of users by using People Picker from a second forest or domain, use the following syntax:

stsadm –o setproperty –pn peoplepicker-searchadforests –pv [list of forests or domains] -url [WebApp]

Specify user account and password from a one way trust

To specify the user name and password from a one-way trust, so that People Picker can look up this information, use the following syntax:

stsadm -o setproperty -url http://[server:port] -pn peoplepicker-searchadforests -pv "forest:contoso.corp.com;domain:bar.contoso.corp.com", [LoginName], [Password]

Ref: http://technet.microsoft.com/en-us/library/cc263460.aspx

-------------------------------------------------------------

Examples

To create a custom filter that searches for the user "David" in the Active Directory in the Contoso domain, use the following syntax:

stsadm -o setproperty -url http://contoso -pn "peoplepicker-searchadcustomfilter -pv (
(Title=David))

To view the current setting for the searchadcustomfilter property, use the following syntax:

stsadm -o getproperty -url http://server_name -pn peoplepicker- searchadcustomfilter

Ref: http://technet.microsoft.com/en-us/library/cc263452.aspx

-------------------------------------------------------------

The following table describes the peoplepicker properties.

Property name Description

Peoplepicker-activedirectorysearchtimeout

Configures the timeout when a query is issued to Active Directory.

Peoplepicker-distributionlistsearchdomains

Restricts the search of a distribution list to a specific subset of domains.

Peoplepicker-nowindowsaccountsfornonwindowsauthenticationmode

Specifies not to search Active Directory when the current port is using forms-based authentication.

Peoplepicker-onlysearchwithinsitecollection

Displays only users that are members of the site collection.

Peoplepicker-searchadcustomquery

Permits the administrator to set the custom query that is sent to Active Directory.

Peoplepicker-searchadforests

Permits a user to search from a second one-way trusted forest or domain.

Ref: http://technet.microsoft.com/en-us/library/cc263318.aspx

-------------------------------------------------------------

The Check Names function does not honor the Peoplepicker-onlysearchwithinsitecollection setting in Windows SharePoint Services 3.0

Ref: http://support.microsoft.com/kb/967135

-------------------------------------------------------------

Configure connections to Profile Services

Updated: 2009-03-26

In this article:
• Add import connections
• Configure import connections
• Configure user profiles

Personal information about the users in your organization is stored in directory services and line-of-business applications and imported to the user profile store so that it can be used to present personalized or targeted content in sites, and to search for people in your organization.

When the administrator of the Shared Services Provider (SSP) configures user profile imports, the import connections necessary for those settings are configured automatically except for custom connections. Custom import connections must be configured separately.

Add import connections

The administrator of personalization services for the SSP configures import connections, adding accounts for all users who are sharing personalized information by using the SSP. In deployments that have groups of isolated users, personalized information is isolated by using multiple SSPs. In deployments that have multiple SSPs, the SSP administrator must add connections between SSPs.

Connections to directory services can include Active Directory directory services and Lightweight Directory Access Protocol (LDAP) directory services. You can add a connection to the Business Data Catalog, but it is recommended that you first add import connections for directory services.

Most of these connections are configured automatically when import settings are configured. You can change the default configuration options or add custom import connections.

Use the following procedure to add an import connection.

Configure user profiles

You can add properties to user profiles other than those that are imported from directory services and the business data catalog. These properties can be mapped to existing properties so that their values can be automatically updated during profile imports.

During initial deployment, add the additional properties that you identified during user profile planning.

Use the following procedure to add properties to user profiles.

Ref: http://technet.microsoft.com/en-us/library/cc263320.aspx

-------------------------------------------------------------

I would like to validate a People Editor field. I have tried using the property Allow Empty, but unfortunately it doesn’t work. I have used a Required field validator. Luckily it works to some extent. But the problem starts if there is any post back happening on the page. After the post back, it takes the value to be empty even if there is an entry in the control.

Could anyone help me if there is any particular property to be enabled or any other solution to achieve the validations on People Editor Control

• I had the exact same problem on a custom application page.

I solved it with a Custom Field Validator using client side validation

[script language="javascript"]

function CheckProjectManager(source, arguments) {

if (aspnetForm.ctl00_PlaceHolderMain_ProjectManager_downlevelTextBox.value == "")

arguments.IsValid = false;

else

arguments.IsValid = true;

}

[/script]



[SharePoint:PeopleEditor

ID="ProjectManager"

AllowEmpty="false"

ValidatorEnabled="true"

MultiSelect="false"

runat="server"

SelectionSet="User"

Width="200px"

TabIndex="2" /] 

[asp:CustomValidator

ID="rfvProjectManager"

runat="server"

ControlToValidate=""

ErrorMessage="Required"

Enabled="true"

ClientValidationFunction="CheckProjectManager"]

[/asp:CustomValidator]

Note that the ControlToValidate on the CustomValidator is set to ""

The ID for the People Editor ctl00_PlaceHolderMain_ProjectManager_downlevelTextBox was found using IE Developer Toolbar, Note that downlevelTextBox contains the validated userid e.g. DOMAIN\USERID after pressing check user in the peopleeditor.

/Jan Lange

Ref: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/7ea35995-b907-48a4-8a44-cfbd7b549b2b

-------------------------------------------------------------
Non-Microsoft Article
******************************************
Ref: http://vspug.com/dwise/2008/05/01/inside-the-sharepoint-people-picker/

Inside the SharePoint People Picker
SharePoint provides a handy control commonly known as a "people picker" that allows users to search for and select users defined at some specified scope. This control is normally associated with Personnel field in a SharePoint List. However, what happens when you need to add this functionality to some custom component and need to access it programmatically? It gets a lot more complicated!

This article is meant as more of a repository of knowledge that I've discovered while working with this control rather than a "how-to". If you are looking for How-To articles, try these: Eric Kraus or SharePoint Tips. Likewise, please let me know if you have any additional information about the actual workings of this poorly documented control.

Where to find the control
The control is actually called a "PeopleEditor" and is in the 'Microsoft.SharePoint.WebControls' namespace. You will need to add a reference to 'Microsoft.Sharepoint.dll' to your project in Visual Studio, which is something you probably already have if you are writing anything that works with SharePoint.

What is it?
The PeopleEditor is simply a standard UserControl with it's own hierarchy of elements. If you were to walk the tree of controls used, you would see the structure shown below (control IDs are in green italics).

Microsoft.SharePoint.WebControls.PeopleEditor
|-System.Web.UI.HtmlControls.HtmlInputHidden (hiddenSpanData)
|-System.Web.UI.HtmlControls.HtmlInputHidden (OriginalEntities)
|-System.Web.UI.HtmlControls.HtmlInputHidden (HiddenEntityKey)
|-System.Web.UI.HtmlControls.HtmlInputHidden (HiddenEntityDisplayText)
|-System.Web.UI.WebControls.Table (OuterTable)
|- |-System.Web.UI.WebControls.TableRow
|- |- |-System.Web.UI.WebControls.TableCell
|- |- |- |-System.Web.UI.WebControls.Table
|- |- |- |- |-System.Web.UI.WebControls.TableRow
|- |- |- |- |- |-System.Web.UI.WebControls.TableCell
|- |- |- |- |- |- |-System.Web.UI.HtmlControls.HtmlGenericControl (upLevelDiv)
|- |- |- |- |- |- |-System.Web.UI.WebControls.TextBox (downlevelTextBox)
|- |- |-System.Web.UI.WebControls.TableCell
|- |- |- |-System.Web.UI.WebControls.HyperLink (checkNames)
|- |- |- |-System.Web.UI.LiteralControl
|- |- |- |-System.Web.UI.WebControls.HyperLink (browse)
|- |- |- |-System.Web.UI.LiteralControl
|- |- |- |-System.Web.UI.HtmlControls.HtmlInputButton (CreateItem)
|- |-System.Web.UI.WebControls.TableRow
|- |- |-System.Web.UI.WebControls.TableCell
|- |- |- |-System.Web.UI.WebControls.PlaceHolder
|- |- |- |- |-System.Web.UI.WebControls.Label (errorLabel)
|- |- |- |- |-System.Web.UI.WebControls.Table
|- |-System.Web.UI.WebControls.TableRow
|- |- |-System.Web.UI.WebControls.TableCell
|- |- |- |-System.Web.UI.WebControls.Label

Of particular interest are upLevelDiv and downlevelTextBox as those are the controls used when a person is manually entering a name.
*****************************************

Friday, March 12, 2010

Onet.xml

Onet.xml
When you install Windows SharePoint Services 3.0, six Onet.xml files are placed within the setup directory, one in \Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\GLOBAL\XML that applies globally to the deployment, and five in different folders within ...\TEMPLATE\SiteTemplates that apply to each of the five site definitions that ship with Windows SharePoint Services 3.0. They are Blog sites, the central administration site, Wiki sites, Meeting Workspace sites, and team SharePoint sites. Only the last two of these families contain more than one site definition configuration in Windows SharePoint Services 3.0.

The global Onet.xml file defines list templates for hidden lists, list base types, a default definition configuration, and modules that apply globally to the deployment. The five Onet.xml files in the \SiteTemplates directory define navigational areas, list templates, document templates, configurations, modules, components, and server e-mail footer sections used in the five site definitions.

Functions of Onet.xml
Depending on its particular use, an Onet.xml file can serve multiple functions, such as the following:

Define the top and side navigation areas that appear on the home page and in list views for a site definition.

Specify the list definitions that are used in each site definition and whether they are available for creating lists on the Create page.

Specify document templates that are available in the site definition for creating document library lists on the New page, and specify the files used in the document templates.

Define the base list types from which default Windows SharePoint Services lists are derived. (Only the global Onet.xml file serves this function.)

Specify the configurations of lists and modules that are used within each site definition.

Specify Windows SharePoint Services components.

Define the footer section used in server e-mail.

Web Site Definition Tasks with Onet.xml
The following kinds of tasks can be performed in a custom Onet.xml to create a custom site definition:

Specify an alternate cascading style sheet (CSS) file, JavaScript file, or ASPX header file for a site definition.

Modify navigation areas for the home page and list pages.

Add a list definition as an option to the Create page.

Add a document template for creating document libraries.

Define one or more configurations for the site definition, specifying the lists, modules, files, and Web Parts that are included when a site definition configuration is instantiated.

Caution:
Making changes to an originally installed Onet.xml file on a server running Windows SharePoint Services can break existing sites, and the changes may be overwritten when you install updates or service packs for Windows SharePoint Services, or when you upgrade an installation to the next product version. Always create a new Onet.xml; do not modify the original file. For more information, see How to: Create a Custom Site Definition and Configuration.

Ref: http://msdn.microsoft.com/en-us/library/ms474369.aspx
------------------------------------
Site Definition (Onet.xml) Files
In an Onet.xml file, the Feature element is used within a site definition configuration to contain a reference to a Feature instance and default property values. The Configuration element specifies lists and modules to use when creating SharePoint sites. For information about the format and elements used in site definitions, see Site Schema.

The site definition file format for Windows SharePoint Services 3.0 retains full backwards compatibility with the site definition file format of Onet.xml in Windows SharePoint Services 2.0.

Windows SharePoint Services activates Features specified within the Onet.xml file in the order that they are listed. Consequently, you must specify Features that are depended upon before Features that depend upon them.

Example
The following example shows the Feature element used to specify Features and Feature properties in a site definition configuration.

Ref: http://msdn.microsoft.com/en-us/library/ms432370.aspx

------------------------------------

Working with Features

Features reduce the complexity involved in making simple site customizations, and are robust when upgrades are applied to a deployment. Features eliminate the need to copy large chunks of code to change simple functionality. Features thus reduce versioning and inconsistency issues that may arise among front-end Web servers. Features make it easier to activate or deactivate functionality in the course of a deployment, and administrators can easily transform the template or definition of a site by simply toggling a particular Feature on or off in the user interface. Features provide the following capabilities:

Scoping semantics for determining where custom code runs

Pluggable behavior for installing or uninstalling Features within a deployment

Pluggable behavior for activating or deactivating Features at a given scope

A scoped property bag for storing data required by a Feature within its scope

The basis of a unified framework for distributed deployment of Windows SharePoint Services solutions

Feature Implementation
To implement a Feature you add a subfolder containing a Feature definition within the Features setup directory (Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES). The Feature subfolder includes a Feature.xml file that defines the base properties of the Feature and lists elements bound to it, such as XML files containing element manifests and any other supporting files. A Feature folder may contain only a Feature.xml file, or it may contain a Feature.xml file and any number of supporting element files, including XML files, but also .aspx, .htm, .xsn, .resx, .dll, and other file types.

Note:
When you create a folder within the Features directory through Windows Explorer by right-clicking a folder, pointing to New, and then clicking Folder, the new folder does not have inherited permissions. If you deploy a Feature in the folder, then some Windows SharePoint Services pages, such as for site settings or list views, throw an exception. You can fix this problem by right-clicking the new folder, click Properties, click Security, and then click Advanced. On the Permissions tab, delete uninherited permissions from the folder. You can also fix this problem by creating the new folder at the command prompt through the md command.

After creating the Feature folder, you can install and activate the Feature through command-line operations of stsadm.exe, or through the object model. You can also activate a Feature through the user interface. Installing a Feature makes its definition and elements known throughout a server farm, and activating the Feature makes the feature available at a particular scope.

Ref: http://msdn.microsoft.com/en-us/library/ms460318.aspx
------------------------------------
Understanding Onet.xml Files[This documentation is preliminary and is subject to change.]

When SharePoint Foundation is installed, several Onet.xml files are installed, one in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\GLOBAL\XML that applies globally to the deployment, and several in different folders within %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. Each in the latter group corresponds to a site definition that ships with SharePoint Foundation. They include, for example, Blog sites, the central administration site, Meeting Workspace sites, and team SharePoint sites. Only the last two of these families contain more than one site definition configuration.

The global Onet.xml file defines list templates for hidden lists, list base types, a default definition configuration, and modules that apply globally to the deployment. Each Onet.xml file in a subdirectory of the %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates directory can define navigational areas, list templates, document templates, configurations, modules, components, and server e-mail footers used in the site definition to which it corresponds.

Ref: http://msdn.microsoft.com/en-us/library/ms474369(office.14).aspx 
------------------------------------