Tuesday, June 23, 2009

Creating and Using Web User Controls in SharePoint Server Projects

Creating and Using Web User Controls in SharePoint Server Projects

Step 1:- Create Sub folder Under Control Templates folder of the SPHive Location and Name it as Techno. See the image below .
Step 2:- Create a web user Control without Code behind file, Name it as WebUserControl.ascx. Design as per your requirement and write your business Logic using Inline Coding.
I coded my page as below.
Step 3:- Now save the WebUserControl.ascx in Techno Folder as below image.



Step 4:- Add the WebUserControl.ascx as Safe Control in the web.config file of the SharePoint Web application.
Step 5:- Now develop the web Part using Visual Studio extensions for wss 1.1/1.2.
For example Name it as WebUserCntrl And Add New item as WebPart name it as VenkatWebUserControlDemo.
Step 6:- Instantiate Control object at class level.
Step 7:- Override the Virtual methods such as OnPrerender (), CreateChildControls () methods.
Step 8:- In CreateChildControls () method load the Control as below.
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace WebUserCntrl
{
[Guid("3f1050ea-4d01-4029-b1fe-c0499750f6fe")]
public class VenkatWebUserControlDemo : System.Web.UI.WebControls.WebParts.WebPart
{
Control _WebUControl;
protected override void OnPreRender(EventArgs e)
{
this.Title = "Web User Control";
this.Description = "Demo for web user control";
}

protected override void CreateChildControls()
{
_WebUControl =this.Page.LoadControl("~/_controltemplates/Techno/WebUserControl1.ascx");
this.Controls.Add(_WebUControl);
}
}
}

Step 9: - now Click on Project--> WebUserCntrl Properties as below.

Step 1 0:- Click Debug and Provide URL of the SharePoint Site under Start Browser with URL option as below.



Step 11:- Press F5
Step 12:- now the UserControl web part is Successfully added to SharePoint Site.
Now you can find out the web part under miscellaneous section.
Step 13:- open the site http://spdevserver:30000/sites/Infosys
Go to SiteActions-->EditPage-->Add a web part-->Select the Web part with the name VenkatWebUserControlDemo Under miscellaneous section.

@@Enjoy Maadi.... by venkat

SharePoint Server (MOSS) 2007 Certification Training

Certification:- Microsoft Certified Technology Specialist (MCTS) in SharePoint Server 2007 Application Development(70-542).

Prerequisites: This course is designed for individuals with a basic understanding
knowledge of ASP.NET 2.0 and Visual Studio 2005 tools
.
Module 1 – Introduction to SharePoint Development

  • Introduction On Microsoft Office SharePoint Server 2007
  • Shared Service Provider (SSP)
  • SharePoint Products and Technologies
  • Difference between WSS and MOSS2007

Module 2 – Managing Content with Lists and Libraries

  • Creating Custom Lists and Document Libraries
  • Creation of Views based on criteria
  • Site columns
  • Creating/updating/propagating
  • Scopes
  • Content types
  • Creating/updating/propagating
  • Content types settings
  • Using Lookups and Calculated Columns
  • Information management policies

Module 3 – Configuring User Groups and Permissions

  • Creating users in Active Directory
  • Creating Mail box for the user
  • Configuring out look account settings
  • Configuring out going E-mail settings in Share Point

Module 4 – SharePoint Security

  • Site level
  • List or Library level
  • Item Level
  • Creating custom permission levels
  • Creating and using alerts

Module 5 – SharePoint Portal operations and Administration

  • Working with managed paths
  • Quota Templates
  • Blocked file types
  • Creating Site as Templates and Reusing
  • Creating Custom List Templates

Module 6 – Authentication

  • Forms Based Authentication
  • Windows Based Authentication

Module 7 – InfoPath

  • Designing the InfoPath forms
  • Publishing InfoPath form to SP Site
  • Submitting Form data to data base

Module 8– SharePoint Object Model

  • SharePoint core namespaces
  • SPSite and SPWeb context
  • Working with SPList,SpListItem,SpQuery
  • Migrating the Data from SQL SERVER Database to SharePoint List
  • Working with SharePoint Navigation System
  • Programmatically accessing data


Module 9- Web parts Development

  • Creating and Deploying Web Parts using VS
  • Creating and Deploying web part using VS extensions for WSS
  • Creating web part using Asp.net controls
  • Creating Custom Web Part Properties
  • Debugging the Webparts
  • Using Content Editor WebParts
  • Using Smart parts
  • Using Web user controls in web parts
  • Creating Custom Web Part menu items

Module 10-Business data catalog and CAML

  • Introduction on BDC
  • Creating Application definition file Using Meta man
  • Introduction on BDC Web parts
  • Working with built in web services

Module 11- Event Receivers

  • Introduction on Event Receivers
  • Synchronous Events
  • Asynchronous Events
  • Creating Receivers and registering them with SpLists/Libraries

Module 12- Features

  • Introduction on Features
  • Creating the features
  • Installing/uninstalling features to the sharePoint Site
  • Activating/De-activating features to the sharePoint Sites in Different Scopes
  • Creating Feature Receivers
  • Solutions or Packages
  • Creating several features and package them as a solution file(.wsp).

Module 13- Workflows

  • Introduction on work flows
  • Working with out-of-the box workflows
  • Creating the work flow using sharePoint Designer
  • Creating Custom Workflow using Visual Studio

Module 14- SharePoint Pages

  • Introduction on SharePoint Pages
  • Application Pages
  • Site Pages

Module 15- Business Intelligence

  • Excel Services
  • Key Performance Indicators (KPI’S)
  • Dash Boards
  • Reports

Module 16- Working with SharePoint Designer

  • Introduction on SharePoint Pages
  • Open An Existing SharePoint Site
  • Create A New SharePoint Site
  • Explore SharePoint Folders (Team Site)
  • Create ASP.NET Page
  • Modify a built-in CSS Style Sheet
  • Create/Attach a CSS style sheet
  • Create/Attach/Detach a Master Page
  • Check-In/Check-Out
  • Add Web Parts
  • Add Web Part Zone
  • Adding Images (_images directory)
  • Reset to Site Definition
  • Data View Parameters
  • Creating Custom List Forms
  • Backup a Site
  • Restore a Site ......etc
  • Creating and using Custom Themes.

Module 17- Site Definitions

  • Understanding Site Definitions
  • Creating Custom Site Definitions
  • Specify Site Elements and Features Using Onet.xml

Module 18- Enterprise Search

  • Configuring Search Settings in SSP
  • Search Scopes
  • People Search
  • All sites Search
  • Incremental Crawling
  • Full Crawling
  • Creating Custom Search Results Page

After Complettion of the Course : we will provide

  • Study material
  • Interview Guidance
  • Mock Tests
  • Mock Interviews
  • Resume Preparation as per the standards
  • Guidance for Microsoft Certification Exam


Fees Structure :

Regular Batch :

Rupees : 18,000/-

Duration : 17 days [50 hours]

Weekend Batch :

Rupees : 18,000/-

Duration :3 weekends [40 hours]

Note:- we can provide Training as per your needs.

For Any Training related Queries,feel free to contact :venkat @91-9916229967 or
venkat.ramavath@gmail.com

SharePoint Object Model Overview

SharePoint Object Model Overview : Server and Site Architecture
Windows SharePoint Services offers a highly structured server-side object model that makes it easy to access objects that represent the various aspects of a SharePoint Web site. From higher-level objects, you can drill down through the object hierarchy to obtain the object that contains the members you need to use in your code.
Entry Points
Depending on the type of custom application or solution that you are creating, you use different entry points into the object model to obtain the appropriate object from which to start. For example, if you are customizing administration and configuration of a deployment, you can use the static ContentService property to return the current Web service object and its collection of Web applications. To modify settings in the administrative Web application, instead use the AdministrationService property. Collection classes that derive from the Microsoft.SharePoint.Administration.SPPeristedObjectCollection class inherit a GetValue method that you can use to return a specific object from a collection.
Note :- If you are creating a Web Part, custom Web service, or Web application to work with site collections, individual sites, or lists, you can use members of the Microsoft.SharePoint.SPContext class to obtain the current site collection, Web site, or list. When you create a Web application in the /_layouts virtual directory, its functionality becomes available to all sites on the Web server. Outside of an HTTP context, such as in a console application or a Windows application, use a constructor of the SPSite class to obtain a specific site collection and to reach various objects within the collection. For more information, see Getting References to Sites, Web Applications, and other Key Objects.

Server Architecture : The following diagram shows the Windows SharePoint Services server architecture in relation to the collections and objects of the Microsoft.SharePoint.Administration namespace.



1. The SPFarm object is the highest object within the Windows SharePoint Services object model hierarchy. The Servers property gets a collection representing all the servers in the deployment, and the Services property gets a collection representing all the services.
2. Each SPServer object represents a physical server computer. The ServiceInstances property provides access to the set of individual service instances that run on the individual computer.
3. Each SPService object represents a logical service or application installed in the server farm. A service object provides access to server farm-wide settings of the load-balanced service that a respective service instance implements. Derived types of the SPService class include, for example, objects for Windows services, such as the timer service, search, Microsoft SQL Server, the database service, etc. and also objects for Web services, such as Windows SharePoint Services or services in the Microsoft Office system.
4. An SPWebService object provides access to configuration settings for a specific logical service or application. The WebApplications property gets the collection of Web applications that run the service.
5. An SPDatabaseServiceInstance object represents a single instance of a database service running on the server computer. The SPDatabaseServiceInstance class derives from the SPServiceInstance class and thus inherits the Service property, which provides access to the service or application that the instance implements. The Databases property gets the collection of content databases used in the service.
6. Each SPWebApplication object represents a load-balanced Web application based in Internet Information Services (IIS). The SPWebApplication object provides access to credentials and other server farm wide application settings. The Sites property gets the collection of site collections within the Web application, and the ContentDatabases property collection of content databases used in the Web application. The SPWebApplication class replaces the obsolete SPVirtualServer class; but it can still be helpful to think of a SPWebApplication object as a virtual server; that is, a set of one or more physical servers that appear as a single server to users.
7. An SPContentDatabase object inherits from the SPDatabase class and represents a database that contains user data for a SharePoint Web application. The Sites property gets the collection of site collections for which the content database stores data, and the WebApplication property gets the parent Web application.
8. An SPSiteCollection object represents the collection of site collections within the Web application. The Item property or indexer gets a specified site collection from the collection, and the Add method creates a site collection within the collection.

Site Architecture :- The following diagram shows the Windows SharePoint Services site architecture in relation to the collections and objects of the Microsoft.SharePoint namespace.



1. Each SPSite object, despite its singular name, represents a set of logically related SPWeb objects (see below). Such a set is commonly called a "site collection," but SPSite is not a standard Microsoft .NET collection class, in contrast to SPWebCollection. Rather, it has members that can be used to manage the site collection. The AllWebs property provides access to the SPWebCollection object that represents the collection of all Web sites within the site collection, including the top-level site. The Microsoft.SharePoint.SPSite.OpenWeb method of the SPSite class returns a specific Web site.
2. Each site collection includes any number of SPWeb objects, and each object has members that can be used to manage a site, including its template and theme, as well as to access files and folders on the site. The Webs property returns an SPWebCollection object that represents all the subsites of a specified site, and the Lists property returns an SPListCollection object that represents all the lists in the site.
3. Each SPList object has members that are used to manage the list or access items in the list. The GetItems method can be used to perform queries that return specific items. The Fields property returns an SPFieldCollection object that represents all the fields, or columns, in the list, and the Items property returns an SPListItemCollection object that represents all the items, or rows, in the list.
4. Each SPField object has members that contain settings for the field.
5. Each SPListItem object represents a single row in the list.

What are the major Differences between Kerberos and NTLM Authentication Protocols?

Difference between Kerberos and NTLM Authentication Protocols?
MicroSoft recommends to use windows Authenitaction for SharePoint Applications. Windows Authentications can use either NTLM or Kerberose depends on the requirement.

NTLM
1.symmetric cryptography
2.trusted thirdparty:domain controller
3.microsoftsupported p/f:Win 98,2000,xp,windowsserver2003
4.features:slower authentication because of pass throgh authentication
5.no mutual authentication
6.No support of delegation of authentication
7.No support of smart card login features
8.proprietery:microsoft authentication protocol
9.No protection for authorization data carried in ntlm message
Kerberos
1.Basic kerberos:symmetic cryptographykerberos PKINT:Symmetric and asymmetric
2.Basic kerberos:domain controller with KDC serviceskerberos PKINT:domain controller with KDC service and Enterprise CA
3.Microsoft supported p/f:Win 2000,xp,windows server 20034.features:faster authetication because of unique ticketing systems
3.mutual authentication
4.support for delegation of authetication
5.supprot for smart card logon features
6.proprietery:open standard
7.cyptographic protection for authorization data carried in kerberos tickets

SharePoint Server (MOSS) 2007 Interview Questions

Questions on: Moss 2007 Application Development


1. What is SharePoint Server ?
SharePoint Server is a Site provisioning engine which enables organizations to set up web based infrastructure for storing, Collaborating and managing the Content and documents in secured manner.
2. What is Shared Service Provider? what it can do?Shared service provider is a new concept in MOSS 2007. the basic idea behind this is there are certian certain that really makes sense to centrally manage and share. If we have different sites running under different web applications they should need share the information such as profiles, these type of scenarios SSP helps providing data through its services.
The major services provided by SSP are
1.UserProfiles and Audiences
2.Search
3.Excel Services
4.Business data catalog(BDC)


3) What are the two base classes a WebPart you are going to use within SharePoint 2007 can inherit from?
There are two base classes that a WebPart which is going to be consumed by SharePoint can inherit from, either the SharePoint WebPart Base class or the ASP.NET 2.0 WebPart base class.
When inheriting from the SharePoint WebPart Base class your derived WebPart class will inherit from Microsoft.SharePoint.WebPartPages.WebPart. When inheriting from the ASP.NET 2.0 WebPart base class your derived WebPart class will inherit from System.Web.UI.WebControls.WebParts.WebPart. It is considered good practice to use the ASP.NET WebPart base class since the old base class is meant for backwards compatibility with previous version of SharePoint; however there are four exceptions when it is better to leverage functionality from the SharePoint WebPart base class:


Cross page connections
Connections between Web Parts that are outside of a Web Part zone
Client-side connections (Web Part Page Services Component)
Data caching infrastructure


4) What are the differences between the two base classes and what are the inherit benefits of using one over another?The difference is the Microsoft.SharePoint.WebPartPages.WebPart base class is meant for backward compatibility with previous versions of SharePoint. The benefit of using the SharePoint WebPart base class is it supported:


Cross page connections
Connections between Web Parts that are outside of a Web Part zone
Client-side connections (Web Part Page Services Component)
Data caching infrastructure
ASP.NET 2.0 WebParts are generally considered better to use because SharePoint is built upon the ASP.NET 2.0 web architecture.
Inheriting from the ASP.NET 2.0 base class offers you features that inherit to ASP.NET 2.0, such as embedding resources as opposed to use ClassResources for deployment of said types.
5) What is the GAC?The GAC stands for the global assembly cache. It is the machine wide code cache which will give custom binaries place into the full trust code group for SharePoint. Certain SharePoint assets, such as Feature Receivers need full trust to run correctly, and therefore are put into the GAC. You should always try to avoid deployment to the GAC as much as possible since it will possibly allow development code to do more than it was intended to do.
6)What is strong naming (signing) a WebPart assembly files?
Signing an assembly with a strong name (a.k.a strong naming) uses a cryptographic key pair that gives a unique identity to a component that is being built. This identity can then be referred throughout the rest of the environment. In order to install assemblies into the GAC, they must be strongly named. After signing, the binary will have a public key token identifier which can be use to register the component in various other places on the server. Article prepared by Srinath Sadda © meraTechExplorer Resources for Technical Professionals
7) What are safe controls, and what type of information, is placed in that element in a SharePoint web.config file?
When you deploy a WebPart to SharePoint, you must first make it as a safe control to use within SharePoint in the web.config file. Entries made in the safe controls element of SharePoint are encountered by the SharePointHandler object and will be loaded in the SharePoint environment properly, those not will not be loaded and will throw an error.
In the generic safe control entry (this is general, there could be more), there is generally the Assembly name, the namespace, the public key token numeric, the typename, and the safe declaration (whether it is safe or not). There are other optional elements.
8) What is the CreateChildControls() method? How can you use it to do something simple like displaying a Label control?The CreateChildControls method in WebParts is used to notify the WebPart that there are children controls that should be output for rendering. Basically, it will add any child ASP.NET controls that are called instantiating each control with its relevant properties set, wire any relevant event handlers to the control, etc. Then the add method of the control class will add the control to the controls collection. In the relevant WebPart render method, the EnsureChildControls method can be called (or set to false if no child controls should be called) to ensure that the CreateChildControls method is run. When using CreateChildControls it implies that your WebPart contains a composition of child controls.
In order to create something like a label control in Create, you would create a new label control using the new keyword, set the various properties of the control like Visible=True and ForeColor = Color.Red, and then use Controls.Add(myLabelControl) to add the control to the controls collection. Then you can declare EnsureChildControls in the Render method of the WebPart.
9) What does the RenderContents method do in an ASP.NET 2.0 WebPart?
The render contents method will render the WebPart content to the writer, usually an HtmlTextWriter since WebParts will output to an HTML stream. RenderContents is used to tell how the controls that are going to be displayed in the WebPart should be rendered on the page.
Side Question: I got asked what the difference between CreateChildControls and the RenderContents method. The CreateChildControls method is used to add controls to the WebPart, and the RenderContents method is used to tell the page framework how to render the control into HTML to display on a page.
10) What is the WebPartManager sealed class? What is its purpose?
The WebPartManager sealed class is responsible for managing everything occurring on a WebPart page, such as the WebParts (controls), events, and misc. functionality that will occur in WebPartZones. For example, the WebPartManager is responsible for the functionality that is provided when you are working with moving a WebPart from WebPartZone to WebPartZone. It is known as the “the central class of the Web Part Control Set.”
Side Question: I got asked how many WebPartManager controls should be on a page. In order to have WebParts on a page there has to be just one WebPartManager control to manage all the WebParts on the page.
11) What is a SPSite and SPWeb object, and what is the difference between each of the objects?
The SPSite object represents a collection of sites (site collection [a top level site and all its subsites]). The SPWeb object represents an instance SharePoint Web, and SPWeb object contains things like the actual content. A SPSite object contains the various subsites and the information regarding them.
12) How would you go about getting a reference to a site?
C#:
oSPSite = new SPSite("http:/server");
oSPWeb = oSPSite.OpenWeb(); Article prepared by Srinath Sadda © meraTechExplorer Resources for Technical Professionals
13) What does a SPWebApplication object represent?
The SPWebApplication objects represents a SharePoint Web Application, which essentially is an IIS virtual server. Using the class you can instigate high level operations, such as getting all the features of an entire Web Application instance, or doing high level creation operations like creating new Web Applications through code.
14) Would you use SPWebApplication to get information like the SMTP address of the SharePoint site?
Yes, since this is a Web Application level setting. You would iterate through each SPWebApplication in the SPWebApplication collection, and then use the appropriate property calls (OutboundMailServiceInstance) in order to return settings regarding the mail service such as the SMTP address.
Side Question: I got asked if there are other ways to send emails from SharePoint. The answer is yes, there is. You can use the SendMail method from the SPutility class to send simple emails, however it is not as robust as using the System.Net.Mail functionality since it doesn’t allow things like setting priorities on the email.
15) How do you connect (reference) to a SharePoint list, and how do you insert a new List Item?
C#:
using(SPSite mySite = new SPSite("yourserver"))
{
using(SPWeb myWeb = mySite.OpenWeb())
{
SPList interviewList = myWeb.Lists["listtoinsert"];
SPListItem newItem = interviewList.Items.Add();
newItem["interview"] = "interview";
newItem.Update();
}
}
16) How would you loop using SPList through all SharePont List items, assuming you know the name (in a string value) of the list you want to iterate through, and already have all the site code written?C#:
SPList interviewList = myWeb.Lists["listtoiterate"];
foreach (SPListItem interview in interviewList)
{
// Do Something
}
17) How do you return SharePoint List items using SharePoint web services?
In order to retrieve list items from a SharePoint list through Web Services, you should use the lists.asmx web service by establishing a web reference in Visual Studio. The lists.asmx exposes the GetListItems method, which will allow the return of the full content of the list in an XML node. It will take parameters like the GUID of the name of the list you are querying against, the GUID of the view you are going to query, etc.
Side Question: I got asked how I built queries with the lists.asmx web service. In order to build queries with this service, one of the parameters that the GetListItems method exposes is the option to build a CAML query. There are other ways to do this as well, but that was how I answered it.
18) When retrieving List items using SharePoint Web Services, how do you specify explicit credentials to be passed to access the list items?
In order to specify explicit credentials with a Web Service, you generally instantiate the web service, and then using the credentials properties of the Web Service object you use the System.Net.NetworkCredential class to specify the username, password, and domain that you wish to pass when making the web service call and operations. Article prepared by Srinath Sadda © meraTechExplorer Resources for Technical Professionals
Side Question: I got asked when you should state the credentials in code. You must state the credentials you are going to pass to the web service before you call any of the methods of the web service, otherwise the call will fail.
19) What is CAML, and why would you use it?CAML stands for Collaborative Application Markup Language. CAML is an XML based language which provides data constructs that build up the SharePoint fields, view, and is used for table definition during site provisioning. CAML is responsible for rending data and the resulting HTML that is output to the user in SharePoint. CAML can be used for a variety of circumstances, overall is used to query, build and customize SharePoint based sites.
A general use would be building a CAML query in a SharePoint WebPart in order to retrieve values from a SharePoint list.
20) What is impersonation, and when would you use impersonation?Impersonation can basically provide the functionality of executing something in the context of a different identity, for example assigning an account to users with anonymous access. You would use impersonation in order to access resources on behalf of the user with a different account, that normally, that wouldn’t be able to access or execute something.
21) What is the IDesignTimeHtmlProvider interface, and when can you use it in WebParts?The IDesignTimeHtmlProvider interface uses the function GetDesignTimeHtml() which can contain your relevant render methods. It was helpful to use in 2003 since it allowed your WebPart to have a preview while a page was edited in FrontPage with the Webpart on it, because the GetDesignTimeHtml() method contains the HTML for the designer to render.
22) What are WebPart properties, and what are some of the attributes you see when declaring WebPart properties in code?WebPart properties are just like ASP.NET control properties, they are used to interact with and specify attributes that should be applied to a WebPart by a user. Some of the attributes you see with ASP.NET 2.0 properties are WebDescription, WebDisplayName, Category, Personalizable, and WebBrowsable. Although most of these properties come from the System.Web.UI.WebControls.WebParts class, ones like Category come out of System.ComponentModel namespace.
23) Why are properties important in WebPart development, and how have you exploited them in past development projects? What must each custom property have?Properties are important because WebParts allow levels of personalization for each user. WebPart properties make it possible for a user to interact, adjust, and increase overall experience value with the programmatic assets that you develop without having the need to use an external editor or right any code. A very simple example of exploiting a property would be something like allowing the user to change the text on the WebPart design interface so that they can display whatever string of text they desire.
Each custom property that you have must have the appropriate get and set accessor methods.
24) What are ClassResources? How do you reference and deploy resources with an ASP.NET 2.0 WebPart?
ClassResources are used when inheriting from the SharePoint.WebPart.WebPartPages.WebPart base class, and are defined in the SharePoint solution file as things that should be stored in the wpresources directory on the server. It is a helpful directory to use in order to deploy custom images. In ASP.NET 2.0, typically things such as images are referenced by embedding them as resources within an assembly. The good part about ClassResources is they can help to eliminate recompiles to change small interface adjustments or alterations to external JavaScript files.
25) What is a SharePoint Solution File? How does it differ from WebPart .cab files in legacy development? What does it contain?
A SharePoint solution file is essentially a .cabinet file with all a developers ustom componets suffixed with a .wsp extension that aids in deployment. The big difference with SharePoint solution files is is that a solution:


Allows deployment to all WFE’s in a farm
Is highly manageable from the interface allowing deployment, retraction, and versioning
Can package all types of assets like site definitions, feature definitions (and associated components), Webparts, etc.
Can provide Code Access Security provisioning to avoid GAC deployments
Just to name a few things.
26) What is a .ddf file and what does it have to do with SharePoint Solution creation?
A .ddf file is a data directive file and is used when building the SharePoint solution bundle specifying the source files and their destination locations. The important thing for someone to understand is that the .ddf file will be passed as a parameter to the MAKECAB utility to orchestrate construction of the SharePoint solution fiel.
27) What file does a SharePoint solution package use to orchestrate (describe) its packaged contents?
The solution Manifest.XML file.
28) What deployment mechanism can you use to instigate Code Access Security attributes for your WebParts?
SharePoint solution files can add in order to handle code access security deployment issues. This is done in the element in the SharePoint solution manifest.XML, which makes it easier to get assemblies the appropriate permissions in order to operate in the bin directory of the web application.
29) What is a SharePoint Feature? What files are used to define a feature?
A SharePoint Feature is a functional component that can be activated and deactivate at various scopes throughout a SharePoint instances, such as at the farm, site collection, web, etc. Features have their own receiver architecture, which allow you to trap events such as when a feature is installing, uninstalling, activated, or deactivated. They are helpful because they allow ease of upgrades and versioning.
The two files that are used to define a feature are the feature.xml and manifest file. The feature XML file defines the actual feature and will make SharePoint aware of the installed feature. The manifest file contains details about the feature such as functionality.
Side Question: I got asked how the introduction of features has changed the concept of site definitions. SharePoint features are important when understanding the architecture of site definitions, since the ONET.XML file has been vastly truncated since it has several feature stapled on it.
30) What types of SharePoint assets can be deployed with a SharePoint feature?Features can do a lot. For example, you could deploy


Simple site customizations
Custom site navigation
WebParts
Pages
List types
List instances
Event handlers
Workflows
Custom actions
Just to name a few things.


31) When would you use an event receiver?
Since event receivers respond to events, you could use a receiver for something as simple as canceling an action, such as deleting a document library by using the Cancel property. This would essentially prevent users from deleting any documents if you wanted to maintain retention of stored data.
32) What base class do event receivers inherit from?Event receivers either inherit from the SPListEventReciever base class or the SPItemEventReciever base class, both which derive from the abstract base class SPEventReceiverBase.
33) If I wanted to not allow people to delete documents from a document library, how would I go about it?You would on the ItemDeleting event set: properties.Cancel= true.
34) What is the difference between asynchronous and synchronous event receivers?
An asynchronous event occurs after an action has taken place, and a synchronous event occurs before an action has take place. For example, an asynchronous event is ItemAdded, and its sister synchronous event is ItemAdding.
35) How could you append a string to the title of a site when it is provisioned?
In the OnActivated event:
C#:
SPWeb site = siteCollection.RootWeb;
site.Title += "interview";
site.Update();
36) Can an event receiver be deployed through a SharePoint feature?Yes.
37) What is a content type?A content type is an information blueprint basically that can be re-used throughout a SharePoint environment for defining things like metadata and associated behaviors. It is basically an extension of a SharePoint list, however makes it portable for use throughout an instance regardless of where the instantiation occurs, ergo has location independence. Multiple content types can exist in one document library assuming that the appropriate document library settings are enabled. The content type will contain things like the metadata, listform pages, workflows, templates (if a document content type), and associated custom written functionality.
38) Can a content type have receivers associated with it?Yes, a content type can have an event receiver associated with it, either inheriting from the SPListEventReciever base class for list level events, or inheriting from the SPItemEventReciever base class. Whenever the content type is instantiated, it will be subject to the event receivers that are associated with it.
39) What two files are typically (this is kept generally) included when developing a content type, and what is the purpose of each?
There is generally the main content type file that holds things like the content type ID, name, group, description, and version. There is also the ContentType.Fields file which contains the fields to include in the content type that has the ID, Type, Name, DisplayName, StaticName, Hidden, Required, and Sealed elements. They are related by the FieldRefs element in the main content type file.
40) What is an ancestral type and what does it have to do with content types?An ancestral type is the base type that the content type is deriving from, such as Document (0x0101). The ancestral type will define the metadata fields that are included with the custom content type. Article prepared by Srinath Sadda © meraTechExplorer Resources for Technical Professionals
41) Can a list definition be derived from a custom content type?Yes, a list definition can derive from a content type which can be seen in the schema.XML of the list definition in the element.
42) When creating a list definition, how can you create an instance of the list?
You can create a new instance of a list by creating an instance.XML file.
43) What is a Field Control?Field controls are simple ASP.NET 2.0 server controls that provide the basic field functionality of SharePoint. They provide basic general functionality such as displaying or editing list data as it appears on SharePoint list pages.
44) What base class do custom Field Controls inherit from?
This varies. Generally, custom field controls inherit from the Microsoft.SharePoint.WebControls.BaseFieldControl namespace, but you can inherit from the default field controls.
45) What is a SharePoint site definition? What is ghosted (uncustomized) and unghosted (customized)?
SharePoint site definitions are the core set of functionality from which SharePoint site are built from, building from the SiteTemplates directory in the SharePoint 12 hive. Site definitions allow several sites to inherit from a core set of files on the file system, although appear to have unique pages, thereby increasing performance and allowing changes that happen to a site propagate to all sites that inherit from a site definition. Ghosted means that when SharePoint creates a new site it will reference the files in the related site definition upon site provisioning. Unghosted means that the site has been edited with an external editor, and therefore the customizations are instead stored in the database, breaking the inheritance of those files from the file system.
46) How does one deploy new SharePoint site definitions so that they are made aware to the SharePoint system?
The best way to deploy site definitions in the SharePoint 2007 framework is to use a SharePoint solution file, so that the new site definition is automatically populated to all WFE’s in the SharePoint farm.
47. What are the features?Answer:
Feature is the feature in SharePoint server 2007 which contains busic logic.when we install the feature it can be activated/Deactivated in different scopes.
SharePoint Provides four different Scopes.


1:-Farm – The elements will be deployed at the farm level. To activate or deactivate a farm-scoped Feature, go to Central Administration, Operations section, and click on Manage Farm Features in the Global Configuration group.
2:- Web Application – The elements will be deployed at the web application level. To activate or deactivate a web application-scoped Feature, go to Central Administration, Application Management section, and click on Manage Web Application Features in the SharePoint Web Application Management group.
3.Site Collection :– The elements will be deployed at the site collection level. To activate or deactivate a site collection-scoped Feature, go to the root web site settings, and click on Site Collection Features in the Site Collection Administration group. You must be a site collection administrator to see this setting.
4.Web Site – The elements will be deployed at the web site level. To activate or deactivate a web site-scoped Feature, go to the web site settings, and click on Site Features in the Site Administration group. You must have ManageWeb permissions (for instance, being a site administrator) to see this setting.


48. What are the Event Receivers?
Answer : Event Receivers adds behaviours to Lists or list items. They are Commonly used to perform data validation beyond SharePoint capabilities to ensure data integrity or to perfom the business process.


Questions On Administration:
What is a SharePoint site definition? What is ghosted (uncustomized) and unghosted (customized)?
SharePoint site definitions are the core set of functionality from which SharePoint site are built from, building from the Site Templates directory in the SharePoint 12 hive. Site definitions allow several sites to inherit from a core set of files on the file system, although appear to have unique pages, thereby increasing performance and allowing changes that happen to a site propagate to all sites that inherit from a site definition. Ghosted means that when SharePoint creates a new site it will reference the files in the related site definition upon site provisioning. Unghosted means that the site has been edited with an external editor, and therefore the customizations are instead stored in the database, breaking the inheritance of those files from the file system.


How does one deploy new SharePoint site definitions so that they are made aware to the SharePoint system?
The best way to deploy site definitions in the SharePoint 2007 framework is to use a SharePoint solution file, so that the new site definition is automatically populated to all WFE’s in the SharePoint farm.


What does partial trust mean the Web Part developer?If you install assemblies into the BIN directory, you must ensure your code provides error handling in the event that required permissions are not available. Otherwise, unhandled security exceptions may cause your Web Part to fail and may affect page rendering on the page where the Web Part appears.
Request for the permission of type
Microsoft.SharePoint.Security.SharePointPermission,
Microsoft.SharePoint.Security, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c failed.


The WSS_Minimal trust level does not grant permission to the SharePointPermission.ObjectModel to assemblies in the BIN directory for an application.


Therefore, if your code attempts to use the Microsoft SharePoint object model, the common language runtime (CLR) throws an exception.


Since the minimal permission set provides the smallest set of permissions required for code to execute, the likelihood of additional security exceptions is increased.


Recommendation Try-catch critical areas to address situations where you may not have the necessary permissions to accomplish a specified objective.


What if my assemblies are installed in the GAC?


By default, assemblies installed in the global assembly cache (GAC) run with Full trust. Although, installing your Web Part assembly in the GAC is a viable option, it is recommended that you install Web Part assemblies in the BIN directory for a more secure deployment.


What if my assembly is not strongly named? How does my code group change?
You can specify membership conditions for a code group in several ways. You can use the UrlMembershipCondition to specify conditions as follows:



What is a Shared Service Provider? In what circumstances might you create more than one?
The Shared Service Provider in MOSS is where the administrator manages the Search crawling and indexing in the portal. It is also where the information from Active Directory is compiled. The reasons for having more than one would be to ensure information in a secure or sensitive part of your portal is not included in search results for the rest of the portal.


What are Features and Solutions and what is the difference between the two?
Features are a method for developers to package customisations and deploy them to the SharePoint portal. They can then be activated and deactivated at the Site Collection level. Solutions are a way to bundle features together for deployment.


What is the difference between a Site Definition and a Site Template?


Site Definitions are stored on the hard drive of the SharePoint front end servers. They are used by the SharePoint application to generate the sites users can create. Site Templates are created by users as a copy of a site they have configured and modified so that they do not have to recreate lists, libraries, views and columns every time they need a new instance of a site.

What is Ghosting and UnGhosting in SharePoint?

Ghosted Page in SharePoint



A ghosted page is a page in SharePoint website which is not stored in the database instead it reference to a file which exists in the server’s file system. These reference files are common for all the website/site collection within that SharePoint server, i.e., if you modify a reference file then that change will reflect in all the websites/site collections within that SharePoint server automatically. So we can say these reference files are used as template.


The default master page of SharePoint “default.master” is a well known example of ghosted page. “default.master” page is located in the directory "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\Global". If you do some changes in the “default.master” then this change will automatically reflect in all the websites within that SharePoint server.


To create a new site in SharePoint, a site template is used. Site template contains description of all the pages, webparts within the pages, master page used, custom lists, etc. for the web site to be created. You can define a page ghostable in the “onet.xml” file of the site template.


Unghosted Page in SharePoint


All the pages in a SharePoint website which are stored in the content database are referred as unghosted pages. All the unghosted pages are specific to that SharePoint website only, i.e., changes done in an unghosted pages will not reflect in other websites within that SharePoint server.


If a new website is created with a site template which contains a page defined as “unghostable” in the “onet.xml”, then that page will be stored in the content database of new website created and will not reference to the page available in the site template folder.


If a ghosted page is modified in the SharePoint designer, it will become unghosted. For example if a master page is customized in SharePoint Designer, SharePoint stores a modified version of the master page in the content database and also it breaks the reference to the “default.master” file on the “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\Global“.