Beruflich Dokumente
Kultur Dokumente
The first basic important point to note is Sharepoint workflow and windows are not different
entities. The base for sharepoint workflow is window workflow. In other words sharepoint
workflow sits on the top of windows workflow and adds the human work flow flavor.
The below figure reflects the broader definition of sharepoint workflow. It takes the core
windows workflow from .NET framework and then applies content centric workflow on it.
Content centric workflows are nothing but simple windows work flow attached to list,
documents and custom contents.
For instance let's say we have made approve and disapprove windows work flow. You can
attach this work flow with a student content type and the human work flow for student then
becomes student passed and student failed. If the content type is invoice then approve work
flow can become a invoice paid work flow and disapprove can become invoice not paid.
In other words sharepoint workflow is content centric and they depict human work flow.
Figure :- Approve and Disapprove
What are the different stages of SharePoint workflow life cycle?
Three-state workflow helps organization to track workflows which has three states and two
transitions. Its designed to track status of list item , task etc. With each transition between
states the work flow assigns the task to some person and sends a email alert.
Figure: - Three state workflow
In order to better understand three-state we will create a simple task list. This task list will
go through a review process. Following is how the workflow will be executed:-
• Administrator creates the initiates the task. The task is assigned to the reviewer.
• The reviewer then reviews the task, makes his comments and makes the task in
progress. Once he makes the task in progress it's automatically assigned to the
acceptor.
• Acceptor finally does the complete review and closes the task.
Let first create a team site so click on Site actions Site libraries and lists create a new
content Sites and workspaces and give some nice name like 'My team site'
Now click on 'My team site' , click on tasks and then click on list settings as shown in the
below figure.
Once you click on 'List setting' you will see lot of options. Goto the permission and
management section and click on 'Workflow Settings' as shown in the below figure.
You will prompted to create a new work flow. So create a new workflow and you will need to
fill in details of the workflow as shown in the below figure. Give a nice name to the work
flow, for the current sample we have given the name as 'My workflow'. We have specified
saying that create workflow as soon as the item is created.
A workflow will have three states an initial state, middle state and final state. These states
will be decided on the choice field of the task list. So when the status is having value 'Not
Started' then the work flow is in the initial state. When the status is with value 'In progress'
then the workflow is in middle state. When the status is completed that means the work
flow object will be terminated and the workflow will be marked as closed.
Now the second step is to tell the three-state work flow what needs to be done on every
work flow state. So let's fill what should happen when the work flow is initiated. When the
work flow is initiated it will be allocated to the user 'reviewer'. You can see the values
visually in the below figure.
When the reviewer reviews the document it's assigned to an acceptor. So when the
workflow is in the in progress state it's assigned to the acceptor for final closure.
So now that you have attached the work flow with the list its time to invoke the workflow on
the list. Click on new to add a task to the task list. Below are the details of task which we
need to enter. What we have done is we have entered a wrong statement with spelling
mistakes.
Now as soon as you click ok , you will see that the task is assigned to a reviewer.
Once done click on work flows and you should be able to see a complete tri-state flow.
You can see how the work flow was initiated , how the reviewer reviewed it and finally the
acceptor closed it.
You can get the virtual directory from the IIS from home directory tab in IIS. For instance
the current website is hosted on the sharepoint 80 virtual site which is actually located at
'C: \Inetpub\wwwroot\wss\VirtualDirectories\80'.
So now let's browse to 'C: \Inetpub\wwwroot\wss\VirtualDirectories\80\bin' directory and
copy the DLL in the bin folder.
Step 3:- Make entry of the WebPart in to web.config file.
Now that we have copied the DLL to 'bin' folder, we need to make a 'SafeControl' entry in
the 'Web.Config' file of the virtual directory.
So now let's browse to 'C:\Inetpub\wwwroot\wss\VirtualDirectories\80', open the
web.config file and add the class library name in the 'SafeControls' section of the web.config
file. Below code snippet shows the same in a visual manner.
You can also see the webpart which you recently added is seen the gallery. To make it
available click the check box and click populate gallery.
You should now see your webpart ( for this context it is SimpleLabelWebPart) in the WebPart
gallery.
Step 5:- Add the WebPart to site pages.
Ok so now that our WebPart is available in the gallery it's time to add this WebPart to a
SharePoint page. So goto the page where you want to add this WebPart, click on the site
action menu and click edit page as shown in the below figure.
On the page you should see a 'Add a webpart' button, click on it and it will populate with the
existing web parts. Browse to your web part and click add.
Once done your webpart is now added to the site page. You can edit the default webpart
properties by clicking on 'Modify Shared WebPart'. For simplicity sake we have changed the
title.
The table below shows the URLs to use for each web service provided by SharePoint Portal
Server. You can add them the same way as the WSS web services described above.
WSS Web Services Web Reference
Area Service http:///_vti_bin/areaservice.asmx>
Query Service http:///_vti_bin/search.asmx>
User Profile Service http:// /_vti_bin/userprofileservice.asmx
SPS Crawl Service http:///_vti_bin/spscrawl.asmx>
Outlook Adapter Service http:// /_vti_bin/outlookadapter.asmxd>
Introduction
This article is to give the developers or system administrators who are responsible for
installing WSS 3.0 for some tips which is important to keep their servers healthy and up
after installing WSS 3.0 on their web servers.
Problem
If you installed WSS 3.0 on your PC, I'd like to mention some tricks if you are a .net
developer or you are the person who managing web servers:
1-first, you will see that you can't debug any web application, if you are working in your
development PC, and you will get error message when you are trying to debug any asp.net
web site mentioning that "You are not debugger user", and you should notice that before
installing WSS 3.0 you can debug any asp.net website or web service.
Problem Resolution
The Cause of this error is: after installing WSS 3.0, it creates a default site on port 80,
and as you know that the default web site in IIS in listening also on port 80 that cause the
Default web site doesn't work, and even if you change the port for the default SharePoint
site, the site will not work.
Simply, 0pen SharePoint central administration site, go to Application managment, and click
on create or extend web application, and you have to extend the new site to be in different
port #.
This is not all, the new create web application, you have to create a site for it, because by default
it doesn't create the default site for you, create a new site.
Then, don't forget to delete the Default Site Web Application which is created when you
were installing WSS 3.0, it will delete the web application and all related sites for it.
Note: If you are a the person who responsible for managing web servers, don't forget to do
that on Peak time, and creating the new web site for your staff on extended site not the
default one as described above
Well, let me start from here, every organization let it be a Small, Medium Or Big would like
to webify each and every good activity that any employee carries out till (s)he is in
organization-premises and it becomes a matter of prestige for any organization to have
their own Enterprise portal. Truly speaking in today's world of internet your business can't
survive if you don't make your business compatible with E-World. But it's quite obvious that
not all the organizations can afford the huge amount that they had to invest in getting an
enterprise level portal build for them. For such kind of scenarios Microsoft came up with an
idea of "Sharepoint Server", and now it's only a matter of few clicks to build an enterprise-
portal. Here are the top 10 reasons for using an "Sharepoint Server".
1. Create a Complete View of Your Business Access
All the information, documents and applications you use throughout the day through
Microsoft Office SharePoint Portal Server 2003. Single Sign On and built in Microsoft
BizTalk Server and application connector integration enable IT Professionals to
integrate existing Line of Business applications into the portal. You can find and reuse
timely and relevant information from systems and reports, and quickly locate and
access documents, projects, and best practices by searching or browsing -- all
through the portal. Web Parts enable you to assemble a view of complementary
information from multiple sources, so you can view customer information from
Customer Relationship Management systems, Outlook, file shares and web sites at
the same time.
Microsoft Office SharePoint Portal Server 2003 enables you to be more productive by
giving you immediate access to up-to-date, relevant information. You can organize
all the information, documents and applications you access throughout the day in a
single view on My Site. Single sign on and personalization services enable you to not
only access applications through the portal; SharePoint Portal Server provides direct
access to those sections of the application you are most interested in, without having
to remember your password. Audience targeting enables IT to customize an
experience for you based on your role, hierarchy or interests, pushing relevant news,
links, documents, applications and Web Services to your portal.
Microsoft Office SharePoint Portal Server 2003 makes it easy for Business Units,
teams and individuals to contribute content to the portal. Business Units can
integrate their SharePoint Portal into the enterprise portal, enabling them to share
knowledge with other Business Units. Teams can easily make the content in their
Microsoft Windows SharePoint Services sites discoverable through the portal through
browsing or searching. And users can publish documents and Best Practices to the
rest of the organization by adding them to the public view of their personal sites.By
integrating with other office products, such as Microsoft Access, Microsoft FrontPage
and Microsoft Visual Studio, teams can leverage and share information they already
have deep investments in.
4. Find and Leverage Your Organization's Intellectual Capital
Microsoft Office SharePoint Portal Server 2003 utilizes Windows SharePoint Services
sites to create portal pages for people, information, and organizations. The portal
becomes a collaborative experience by extending the capabilities of Windows
SharePoint Services sites, enabling you to organize, manage and provision
SharePoint sites from the portal. Teams can also publish information in their sites,
sharing their Best Practices with the entire organization.
With its industry-leading search, single sign on technology and built in BizTalk Server
and application connector integration, Microsoft Office SharePoint Portal Server 2003
enables you to create self-service portals for employees, partners and customers.
Employees can access HR systems and sign up for benefits using the same portal
they use everyday to access people, teams and knowledge. Because SharePoint
Portal Server is so easy to use, you can deploy it as an extranet and enable
customers and partners to place and track their own orders or search for support
documents, improving customer satisfaction while reducing your support costs.
Extend a team web site beyond static pages using FrontPage.
Microsoft Office SharePoint Portal Server 2003 helps relevant information find you
through Alerts and Audience Targeting. Alerts notify you when any relevant
document, SharePoint site, or application has been added or changed. You can even
be alerted when a specific expert or team adds new information to the portal.
Audience targeting enables IT groups to push relevant information and applications
to a group of users with similar job roles, titles, or interests. Audiences can be
created from Active Directory, Distribution Lists, hierarchies, or any other criteria
that you define.
New technologies often fail because they are too hard to use and no one has time to
attend lengthy training courses. Microsoft Office SharePoint Portal Server 2003
speeds user adoption and lowers training costs by using familiar tools found in Office
applications, such as drop down boxes to display editing options, and drag and drop
tools to customize the portal content and layout. IT Professionals can create Web
Parts that expose information, applications and Web Services by using familiar tools
such as Visual Studio.NET and FrontPage.
9. Reduce Development Time and Cost with Out of the Box Portal Services
Microsoft Office SharePoint Portal Server 2003 can be deployed right out of the box
without any additional development work. Portal services such as search, SharePoint
site management, topics and My Sites are available immediately. Web Parts can be
created in FrontPage that provide read/write access to Microsoft applications such as
Outlook are also available right out of the box, lowering your development costs.
Feature Matrix
The following table shows the features that are included in Windows SharePoint Services
and SharePoint Portal Server 2003.
SharePoint Portal Server enables information workers to rapidly develop team sites for
collaboration across the enterprise. The first step is to select whether you want to use a site
or a workspace template: sites are geared more for communication among team members,
whereas workspaces serve as a drafting and development environment. But in both cases,
sites and workspaces can be customized to suit your specific needs. See the following table
for examples of templates. You create sites the same way as you create workspaces.
However, the designation of a site or a workspace occurs at the end of the site creation
process when you are given a list of template options from which to choose.
Site and Workspaces
Template Description
Team Site Web sites based on Microsoft Windows SharePoint Services are designed to
be flexible. You can tailor a site to fit your users' needs by adding or
removing pages, changing the appearance of pages, changing the site
navigation, and making other customizations
Document New Document Workspace sites deliver sites that are centered on one or
Workspace more documents. You can easily work together with coworkers on a
Sites document - either by working directly on the copy located on the Document
Workspace site or by working on your own copy, which you can update
periodically with changes that are saved to the copy located on the Document
Workspace site. You can create a Document Workspace site from a word
processing program compatible with Windows SharePoint Services. For
example, you can create a Document Workspace from Microsoft Office Word
2003, Office Excel 2003, Office PowerPoint 2003, as a Shared Attachment in
Office Outlook 2003, or by using the browser from a document library.
Meeting New Meeting Workspace sites deliver a place for managing meetings and
Workspace their attendees, agendas, documents, decisions, and action items. Users can
Sites contribute to a Meeting Workspace site using a browser. You can create a
Meeting Workspace site from an e-mail program compatible with Windows
SharePoint Services, such as Office Outlook 2003 or by using the browser
from an events list.
Web sites based on Microsoft Windows SharePoint Services include Web discussions, a
special collaboration feature that allows users to communicate with each other on the World
Wide Web. Web discussions are threaded discussions that allow users to collaborate on
HTML documents or on any document that can be opened with a browser (such as .htm,
.xls, .doc, and .ppt files) on a server running Windows SharePoint Services. Users can add
and view discussion items located within documents, or general discussion items located in
the discussion pane.
After creating a workspace, you can add a discussion board, to maximize the interaction
among users. With proper management, discussions are a powerful collaborative tool.
However, without solid moderation, discussion boards can become cluttered and frustrating.
A discussion board can be created in the workspace site. Follow the steps below to learn
how to create a discussion board.
1. Navigate to an existing workspace site that you have created. If there are no
workspace sites available. Follow the instructions in the 'How to Create a Team Site'
before proceeding with the instructions below.
2. Click 'Create' on the Horizontal Navigation bar
3. Scroll to the Discussion Board section and click on the 'Discussion Board' link.
4. Enter a Name and Description for your new Discussion Board.
5. If you would like the new Discussion Board to show up in the left navigation of the
workspace site, select 'Yes' for the 'Display the Discussion Board on the Quick Launch
Bar'.
6. Click 'Create'
Once created, you can open the new discussion board by clicking Documents and Lists on
the Horizontal Navigation bar and then clicking the discussion board name in the Discussion
Boards section. If you chose to add the discussion board to the Quick Launch bar, you can
also click the discussion board name there to open it.
How to create A Meeting Workspace?
A Meeting Workspace site is a Microsoft Windows SharePoint Services sub site that is
designed for centralizing all the information and materials for one or more meetings.
Although some management tasks are specific to workspace sites, most of the tasks that
you do for other types of SharePoint sites also apply to Meeting Workspace sites. Help for
the Meeting Workspace site as well as general Windows SharePoint Services Help is
available from the workspace site.
Some management tasks are specific to workspace sites, most of the tasks that you do for
other types of SharePoint sites also apply to Meeting Workspace sites.
To assign a new task follow the steps below:
1. Navigate to an existing meeting workspace site. If there are no workspaces available.
Follow the instructions in the 'Creating a Meeting Workspace' before proceeding with
the instructions below.
2. If the task list is not present on the meeting site home page follow these
instructions, if a task list is present, skip this step.
1. Look to the upper right hand corner of the site and Click 'Modify this
Workspace'
2. Click 'Add Web Parts'
3. Drag and Drop 'Tasks' into a Web Part Zone
4. Click the 'x' to close the 'Add Web Parts' Window
3. At the top of the list, click New Item.
4. In the Title box, type a heading for the task.
This field is required.
5. Enter information in the remaining boxes as desired.
6. In the Start Date and Due Date boxes, click the calendar, select a date, and then
select a time in the hour and minutes boxes.
7. In the 'Assigned To' field select the teammate the task will be assigned to.
8. Click Save and Close.
How to post Meeting Follow-up Items?
A Document Workspace is a drafting area for teams to work on documents; members can
go to the workspace to work on the documents or to participate in discussions and surveys
about the documents.
If you create a workspace based on an existing document, the Document Workspace site
carries the same name as the document on which it is based. The document is then stored
in a separate document library in the new Document Workspace site.
How to Create a Survey?
For a company intranet site, you may want a few people controlling the structure of the site,
but many more people who can add new content, or participate in surveys. So surveys are
anytime important aspect of an intranet portal. Steps to add create survey in your web
portal are,
1. Navigate to an existing workspace site that you have created. If there are no
workspace sites available. Follow the instructions in the 'How to Create a Team Site'
module before proceeding with the instructions below.
2. In the top link bar, click Create.
3. On the Create Page, click Survey.
4. In the Name box, type a name for the survey.
5. In the Description box, type a description of the purpose of the survey.
6. In the Navigation section, if you want a hyperlink to this survey to appear on the
Quick Launch bar, click Yes.
7. In the Survey Options section, if you want respondents' names to be visible when a
team member views the survey results, click Yes under Show user names in survey
results?
8. If you want to allow team members to respond more than once to the survey, click
Yes under Allow multiple responses?.
9. Click Next.
10. On the Add Question page, in the Question box, type a question.
11. Select an option for the type of answer that you want.
12. For example, if you want team members to choose from a set of items, click Choice.
13. In the Optional settings for your question section, specify the settings that you want.
14. The following types of answers are available, with options for each type as shown:
1. Single Lines of Text
2. Multiple Lines of Text
3. Choice
4. Rating
5. Scale
6. Number
7. Currency
8. Date/Time
9. Lookup
10. Yes/No
15. If you want to add more requisitions, click Next Question and repeat the steps
above.
16. When you are done adding questions, click Finish.
What are Public and Private Views?
One of the first things you will notice with My Site is that your personal site consists of two
views: A private view for personal information that only you can see, and a public view seen
by everyone else. The private view is shown by default when you first enter your personal
site. To switch to the public view, click Public in the Select View section of the action pane.
Private View
Your private view contains content targeted to you based on your membership in a
particular audience. For example, if you are a new employee, you might find links to key
training resources. You can also organize and access your documents, view and manage
your alerts and alert results, link to interesting people and information, view your e-mail
inbox, and maintain a calendar
Public View
Your personal site has a public view that contains information that you share with other
users. The public properties of your user profile are displayed on this page, along with links
and sites that you decide other users might want to see. Your most recent shared
documents also appear automatically in the public view of your personal site. However,
another user may not see all the content on your site depending upon their respective rights
to access certain content.
The public view of your personal site is a convenient way for you to manage the way that
other people in your organization find you and your work. You can easily update your public
profile; provide appropriate shared links, and share documents and other information. You
can send a link to your site to other people in your organization.
To switch to the public view on your My Site follow the steps below
1. From the portal home page click on the 'My Site' link in the upper right hand corner.
2. Click Public in the Select View section of the action pane.
What are Documents and Lists in Sharepoint?
In your personal site you can create a variety of collaborative spaces, including document
libraries, picture libraries, lists, discussion boards, surveys, sites, document workspaces,
and meeting workspaces.
The Difference between Private and Shared Document Libraries
When you open the Documents and Lists page, you may notice two types of document
libraries: Private Documents and Shared Documents.
• Use the Private document library for documents that you want to keep private; they
are only visible to you.
• Use the Shared document library to share a document with others; Documents
stored here are shared on your public home page.
How to Create an Alert?
Alerts are required when a user want to be notified of changes in the information of interest
to them. SharePoint alerts can be set to notify users of changes to documents, sites, lists
(announcements, contacts, events, tasks, surveys, and links), individual items in the lists,
news items, document libraries, and portal users. In addition, an alert can be set to notify
users when the results of a saved query change. With so many possibilities, it is important
that alerts be set up to provide the user with beneficial information as opposed to
generating a lot of messages that may get ignored.
Steps to create Alert
1. Navigate the portal and go to a page that displays a portal area.
2. In the Actions list (found in the left hand navigation bar), click Alert Me.
3. In the Title section, type a title for your alert or keep the automatically created
default title.
4. In the Delivery Options section, specify how you want to receive alert results. If you
click E-mail, specify how often you want to be notified of changes.
5. Click advanced options to view additional settings.
6. In the Alert Results section, specify whether you want to be notified when items have
been discovered or changed.
Note: By default, this alert informs you when area listings, lists, and list items are
discovered or changed.
7. In the Filter section, you can specify keywords to refine your alert results. Adding
filters to your alert limits results to omit items that do not match the restriction you
specify and reduces the number of results generated.
Tip: Separate words or phrases with a comma.
8. Click OK
How to Post or Publish Content to the Portal?
To organize the content within an area or sub area, you can assign content to different
groups. Each group is displayed by a group heading with the content listed under it. There
are default group headings called General, Highlight, and Expert that you can assign content
to. You can also create new groups that work best for your organization and content. For
example, in the Topics area, under the sub area Resources, you might create several groups
called Online Training, Classroom Training, and Books. You can also rename, delete, and
specify the order in which groups appear on a page.
How to Modify General Information about a Team Site?
In this task, you will learn how to manage your web site properties. Often, after you begin
to manage a new top-level site, you may need to modify the site settings you originally set
when creating the site.When you consider the management of sites in your organization, it
may be helpful to think about sites in the following hierarchy: Web sites in Microsoft
Windows SharePoint Services are organized into site collections. Each site collection has a
top-level Web site that can have multiple sub sites; each sub site can have multiple sub
sites. Because sites are nested in a hierarchy within the site collection, it can be challenging
to manage them all. However this is also the reason it is so important to properly maintain
your sites.
How to Apply a Theme to a Team Site?
A Windows SharePoint Services theme is a design set that establishes the fonts and color for
a Web site. By applying a theme, you apply visual consistency across your site.In this task,
you will learn how to apply a theme to an entire Web site. Each new Web site you create
automatically reflects the default theme. This theme can be changed from within the
browser of the SharePoint Portal Server.Themes and Web Editing ToolsEach time you apply a
theme using the web browser; it resets the theme across the entire site you have created.
However, applying a theme from within the browser will not change any pages formatted
using a Web page editing tool, such as FrontPage 2003.Therefore, it is recommended that
you try to avoid changing your theme once your content has been modified using a Web
editing tool.
How to find People within an Organization?
The best way to find other users within the organization is to use the search function at the
portal level. User profiles allow you to search for and connect with people within your
organization based on information they publish about themselves. Index and search services
use the profile information to improve search results.
Steps to Search for a Person:
1. From the Portal home page, simply type the person's name into the search field in
the top-right corner of the portal page and press Enter.
2. When a user name appears in the portal site, click the name to view the public view
of that person's personal site
Everything that a person chooses to share is available for you to see. You can see a person's
shared links to sites, people, and documents that might help you get your work done. You
can also see what information you have in common. This will help for collaboration
purposes.
How to conduct a Simple Search?
Microsoft Windows SharePoint Services enables users to search all Web site content on your
server or server farm - a broader search capability than offered in SharePoint Team Services
v1.0. In that version, searching was implemented using Internet Information Services (IIS)
catalogs and limited to documents on the file system; users were not able to search through
lists, such as tasks and contacts, or through discussion board items. Because all site
information (including documents) is now stored in a database, the search model has been
changed to allow searching of all site content.
Search features are only available for Windows SharePoint Services with Microsoft SQL
Server 2000. If you are running Microsoft SQL Server 2000 Desktop Engine (Windows)
(WMSDE) for your database, no search features are available. If you want to allow full-text
searching on your Web sites, you must upgrade to SQL Server 2000. Steps to carry out a
Simple Search
1. To begin searching, type a search term in the search box in the upper right corner of
the screen. For example, you can type the name of the team or division in which you
work to see documents, people, and information related to that team.
2. You can narrow the scope of your search by clicking the content sources list. This
provides you with a list of content sources that can be searched. To search all
content sources, ensure that All Sources is selected. 3. When you are ready, click the
green arrow to begin the search.
How do you modify 'My Page'?
Throughout the other modules you have created your personal profile, posted documents,
and searched for co-workers in your organization on your personal page, you may decide to
adjust your page to establish a more unique look. SharePoint Portal Server 2003 features
Web Parts; modular units of information that have a specific function and form the basic
building blocks of a Web Part Page.You can add web parts to your personal page from a Web
Part gallery while working in personal view in My Site. These Web Parts are called private
Web Parts because they are available only to the person who added or imported them - no
other users can see private Web Parts.
Using Web Parts
Typically the processes for adding Web Parts are the same whether you are on the adding
them to your personal page or to a shared page.
Adding Web Parts to My Page
Follow the steps below to complete the module:
1. Navigate to an existing workspace site that you have created. If there are no
workspace sites available. Follow the instructions in the 'How to Create a Team Site'
module before proceeding with the instructions below.
2. To add a web part to My Page,
1. If you are not already in Personal View, Switch to Personal View by clicking
the drop down arrow next to Modifying Shared Page.
2. Click 'Personal View'
3. Click the drop down arrow next to Modifying My Page.
4. Hover over 'Add Web Parts' and click 'Browse'.
5. Select the web part from the 'Web Part List' you would like to add and drag
and drop the web part into a zone.
6. Click the 'x' to close the 'Add Web Parts Window'
Design this Page
When you are in Web Part page design mode, you can drag web parts to arrange them on
the page.
Reset Page Content
You may decide that the changes to a page are no longer needed, and that you want to
return the page to its original content and layout. You can reset page content, but any
changes or customization that you've made are destroyed.
Reset Web Part Content
You may decide that the changes to an individual Web Part are no longer needed, and that
you want to return the Web Part to its original content and layout. You can reset Web Part
content, but any changes or customization that you've made are destroyed.
To reset Web Parts follow the steps below:
1. Click the arrow for the Web Part that you want to reset
2. Click Reset Web Part Content, then click OK
HINT: If the Reset Web Part Content is not available, no changes are made to this Web
Part.
In order to customize your My Site page to include inbox, tasks and calendar information,
your organization must be using Microsoft Exchange.
How to Personalize a Web Part on a Team Site?
You can practice Modifying Web Parts by clicking on the Activities on this page and the next.
These Activities will familiarize you with the general processes involved in changing the
appearance of web pages. Once you grasp the general steps involved in Modifying Web
Parts, you can take the liberty of exploring some of the other options available to you that
have not been covered in the Activities.
Personalized, Private and Shared Web Parts
You have different editing and viewing abilities, depending on the type of Web Part and upon
your permissions. The three varieties are explained below.
Personalized Web Part: If you modify a shared Web Part in Personal view, this becomes a
personalized Web Part. The changes you make this way are visible only to you.
Private Web Part: If you add a Web Part to a page in Personal view, it is a Private Web
Part. Private Web Parts are visible only to you.
Shared Web Part: If you have the authority to add a Web Part to a Shared View page, you
are adding a Shared Web Part. These are visible to all viewers of the Shared View page.
Assuming you have this authority and you would like to modify an existing Web Part, you
will notice the Advanced Properties are visible to you. These options are not available to the
general user.
How to Manage Site Groups and Permissions within in Team Site?
SharePoint has default site groups with default settings. Although it is possible to customize
the permissions for a default site group, it is not recommended. For example, if you
changed the permissions of the whole Content Manager group for your site, think about the
confusion users may have if a Content Manager on your site had different rights than the
Content Managers on Site B, or Site C, and so forth. For the sake of consistency and
security, changing the default rights of a site group is usually not the best form of site group
management.A better way to manage site group permissions is to create a new custom site
group, and assign the group the permissions you wish.
SharePoint Search! This is not a new topic at all but is certainly the most important area to
be explored in SharePoint. Microsoft boasts about SharePoint's search functionality as one of
the best in the world. SharePoint uses full text searching in order to retrieve relevant
information from a number of documents. Search works quite well when it comes to the
most popular formats like doc, txt, htm, xls, and ppt but fails in the case of mht, aspx, asp,
etc. PDF is not supported by default and one has to install the iFilter that can be downloaded
from the Adobe site. Install the filter, tweak your configuration files and within minutes, you
will be able to index and search PDF documents. Here are some links that show how to
enable PDF searching in SharePoint:
http://support.microsoft.com/?id=555209
http://support.microsoft.com/default.aspx?scid=kb;EN-US;832809
You will notice that the link shown in the above article takes you to the Adobe site where
you can download iFilter v5.0. For your information, Adobe has release iFilter v6.0 as well,
which is available for downloading. You can download it here:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611
These filters help you index Adobe PDF documents with Microsoft Indexing clients. This
allows the user to easily search for text with in the PDF documents.
http://weblogs.asp.net/bsimser/archive/2004/10/06/238787.aspx
Things to remember:
1. Restart your IIS after adding a new iFilter. You don't need to restart your machine.
2. iFilter must be installed on the machine where your SQL Server is and not on the
machine where your SharePoint front end is installed.
Introduction:
A custom SharePoint list can be configured to collect any type of data and SharePoint
automatically generates the forms for adding new items, editing items and viewing items.
Team Web site comes with a built-in List Calendar, Task, which is listed on the Quick
Launch bar. A new custom list has to be created for storing the files.
1. While creating custom list Named as FileList default column will create Title.
2. Modify column name Title as Filename.
3. Create one more column as Filedate.
4. Create one more column as FileSize.
Implementation of Web part
The files are added to the custom GridView (list) in web part level using browse file upload
button. You can add and delete multiple files in this list. Finally all the files are uploaded in
custom share point list Filelist using submit button in webpart.
The Web part base class seals the Render method of System.Web.UI.Control because
the Web Part infrastructure needs to control rendering the contents of a Web Part. For this
reason, custom Web Parts must override the Render method of the Web part base class.
namespace MultipleUploadWebpart
{
[Guid("2115a405-ff46-4040-8370-6e4fcb7b9194")]
public class MultipleUploadWebpart : System.Web.UI.WebControls.WebParts.WebPart
{
#region Variables
private HtmlInputFile inputFile;
private Button btnUpload;
private Label lblMessage;
private GridView dgdUpload;
private string fileName = "";
private Button btnSubmit;
private HyperLinkFieldhlnkFileName;
private BoundField bndFileSize;
private BoundField bndFileKb;
private ButtonColumn btnclmDelete;
private CommandField cmdDelete;
private double length;
byte[] contents;
DataTable dt;//datatable use for multiple file upload
DataRow dr;//datarow use for multiple file upload
DataColumn dc;//datacolumn use for multiple file upload
double count = 0;//count of file size
#endregion
#region Create Child Control
protected override void CreateChildControls()
{
#region inputfile
this.inputFile = new HtmlInputFile();
this.inputFile.ID = "_fileUpload";
#endregion
#region message label
this.lblMessage = new Label();
this.lblMessage.ID = "_lblMessage";
this.lblMessage.Text = "";
#endregion
#region Button
this.btnUpload = new Button();
this.btnUpload.ID = "_btnUploadUpload";
this.btnUpload.Text = "Upload";
this.btnUpload.Click += new EventHandler(btnUploadUploadClick);
this.btnSubmit = new Button();
this.btnSubmit.ID = "_btnSubmit";
this.btnSubmit.Text = "Submit";
this.btnSubmit.Click += new EventHandler(btnSubmit_Click);
#endregion
#region GridView
this.dgdUpload = new GridView();
this.hlnkFileName = new HyperLinkField();
this.hlnkFileName.DataTextField = "FileName";
this.hlnkFileName.DataNavigateUrlFormatString = "FilePath";
this.hlnkFileName.HeaderText = "FileName";
this.bndFileSize = new BoundField();
this.bndFileSize.HeaderText = "FileSize";
this.bndFileSize.DataField = "FileSize";
this.bndFileKb = new BoundField();
this.bndFileKb.HeaderText = "";
this.bndFileKb.DataField = "KB";
this.cmdDelete = new CommandField();
this.cmdDelete.HeaderText = "Delete";
this.cmdDelete.ButtonType = ButtonType.Link;
this.cmdDelete.InsertImageUrl = "delete.gif";
this.cmdDelete.DeleteText = "Delete";
this.cmdDelete.ShowDeleteButton = true;
this.dgdUpload.ID = "_dgdFileUpload";
this.dgdUpload.Columns.Add(hlnkFileName);
this.dgdUpload.Columns.Add(bndFileSize);
this.dgdUpload.Columns.Add(bndFileKb);
this.dgdUpload.Columns.Add(cmdDelete);
this.dgdUpload.AutoGenerateColumns = false;
this.dgdUpload.RowDeleting += new GridViewDeleteEventHandler
(dgdUpload_RowDeleting);
#endregion
#region Add Controls
this.Controls.Add(dgdUpload);
this.Controls.Add(inputFile);
this.Controls.Add(lblMessage);
this.Controls.Add(btnUpload);
this.Controls.Add(btnSubmit);
base.CreateChildControls();
#endregion
}
#endregion
#region RowDeleting
private void dgdUpload_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int recordToDelete= e.RowIndex;
dt = (DataTable)Page.Session["Files"];
int cn = dt.Rows.Count;
dt.Rows.RemoveAt(recordToDelete);
dt.AcceptChanges();
Page.Session["Files"] = dt;
this.dgdUpload.DataSource = dt
this.dgdUpload.DataBind();
}
#endregion
#region OnLoad
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
#endregion
#region File in SharePoint List
private void btnSubmit_Click(object sender, EventArgs e)
{
SPWeb site = SPContext.Current.Web;
SPList list = site.Lists["FileList"];
SPListItemmyNewItem ;
dt = (DataTable)Page.Session["Files"];
int _dtcnt = dt.Rows.Count;
string strDate="";
foreach (DataRow dr in dt.Rows)
{
strDate = System.DateTime.Now.Date.TimeOfDay.ToString();
myNewItem = list.Items.Add();
fileName = dr["Filename"].ToString();
string strFilepath= dr["FilePath"].ToString()
StreamReader sr = new StreamReader(strFilepath);
StreamfStream=sr.BaseStream ;
contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
myNewItem["Filename"] = dr["Filename"].ToString();
myNewItem["FileSize"] = dr["FileSize"].ToString();
myNewItem["Filedate"] = strDate;
myNewItem.Attachments.Add(fileName, contents);
myNewItem.Update();
System.IO.File.Delete(strFilepath);
}
lblMessage.Text = "Sucessfully Submited";
}
#endregion
#region Upload File Add in List
protected void btnUploadUploadClick(object sender, EventArgs e)
{
fileName = System.IO.Path.GetFileName(inputFile.PostedFile.FileName);
if (fileName != "")
{
string _fileTime = DateTime.Now.ToFileTime().ToString();
string_fileorgPath = System.IO.Path.GetFullPath
(inputFile.PostedFile.FileName);
string _newfilePath = _fileTime + "~" + fileName;
length = (inputFile.PostedFile.InputStream.Length) / 1024;
string tempFolder = Environment.GetEnvironmentVariable("TEMP");
string_filepath = tempFolder + _newfilePath;
inputFile.PostedFile.SaveAs(_filepath);
AddRow(fileName, _filepath, length);
lblMessage.Text = "Successfully Added in List";
}
else
{
lblMessage.Text="Select a File";
return;
}
}
#endregion
#region Render
protected override void Render(HtmlTextWriter writer)
{
// TODO: add custom rendering code here.
EnsureChildControls();
this.inputFile.RenderControl(writer);
this.btnUpload.RenderControl(writer);
this.lblMessage.RenderControl(writer);
this.dgdUpload.RenderControl(writer);
this.btnSubmit.RenderControl(writer);
}
#endregion
#region AddMoreRows for file upload
private void AddMoreColumns()
{
dt = new DataTable("Files");
dc = new DataColumn("FileName", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("FilePath", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("FileSize", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("KB", Type.GetType("System.String"));
dt.Columns.Add(dc);
Page.Session["Files"] = dt;
}
#endregion
#region AddRow for file upload
private void AddRow(string file, string path, double length)
{
dt = (DataTable)Page.Session["Files"];
if (dt == null)
{
AddMoreColumns();
}
dr = dt.NewRow();
dr["FileName"] = file;
dr["FilePath"] = path;
dr["FileSize"] = Convert.ToString(length);
dr["KB"] = "KB";
dt.Rows.Add(dr);
Page.Session["Files"] = dt;
this.dgdUpload.DataSource = dt;
this.dgdUpload.DataBind();//bind in grid
}
#endregion
}
}
4. Ensure the strong name key and sign the assembly check box.
5. Right Click properties select Deploy.
Events
1. Browse Button
2. Upload Button
It is used to upload file to the windows temp folder then list the files.
3. Submit Button
using this option you need to delete the file in this list.Whenever you give the submit only it
will go to SharePoint list.
All the files are uploading in respective share point custom list.
In this code the DirectoryUri and Query are passing as inputproperty and are used to specify
the text that will be displayed in the Display Name of User as Output. We use a dependency
property to enable the workflow to bind data to it. As with all workflow activities, the
Execute method performs the action.
After you build the custom activity assembly, sign it and copy it to the GAC. You then have
to tell SharePoint to trust the assembly. This is similar to configuring a web part as a safe
control, but instead of adding an entry to the <SafeControls> section, you add an entry to
the <System.Workflow.ComponentModel.WorkflowCompiler> section. Edit the web.config
file for your SharePoint web application and add an <authorizedType> element as in the
following example:
• Goto in your Site using this URL C:\Inetpub\wwwroot\wss\VirtualDirectories\10161
• Open your Config File.
• You need to add your assembly in specific site port config file:
//-----------------------------------------------------------------------------//
//--------------Active Directory helper Class----(Rifaqat:2nd April 06)-------//
//-------Description: ...............................................--------//
//-------------------------------------------------------------------------//
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.DirectoryServices;
using System.Collections;
namespace ActivityLibrary1
{
internal class ADHelper
{
private string ldapPath;
DirectorySearcher search;
internal ADHelper(string ldapPath)
{
this.ldapPath = ldapPath;
search = new DirectorySearcher(new DirectoryEntry(ldapPath));
}
internal string GetUsersManager(string loginName)
{
SearchResult result;
search.Filter = String.Format("(SAMAccountName={0})", loginName);
search.PropertiesToLoad.Add("manager");
result = search.FindOne();
if (result == null)
{
return "";
}
else
{
string userPath = result.Properties["manager"][0].ToString();
System.DirectoryServices.DirectoryEntry de = new DirectoryEntry("LDAP://" +
userPath);
return de.Properties["sAMAccountName"].Value.ToString();
}
}
In this code the DirectoryUri and Query are passing as inputproperty and are used to specify
the text that will be displayed in the Display Name of User as Output. We use a dependency
property to enable the workflow to bind data to it. As with all workflow activities, the
Execute method performs the action.
After you build the custom activity assembly, sign it and copy it to the GAC. You then have
to tell SharePoint to trust the assembly. This is similar to configuring a web part as a safe
control, but instead of adding an entry to the <SafeControls> section, you add an entry to
the <System.Workflow.ComponentModel.WorkflowCompiler> section. Edit the web.config
file for your SharePoint web application and add an <authorizedType> element as in the
following example:
• Goto in your Site using this URL C:\Inetpub\wwwroot\wss\VirtualDirectories\10161
• Open your Config File.
• You need to add your assembly in specific site port config file:
Introduction
• Click Personal Settings --> Out Look Sync
• Click Download Now
• Start Outlook 2003 or 2007.
• A toolbar will be added to the Outlook interface
• Click Tools --> Options
• Click Project Web Access Tab
There are two options for importing Tasks
• Outlook Tasks
• Outlook Calendar
You can also set your Project web access user id and password for automatic login and
status update.
• From PWA Toolbar Click Import New Assignments
• Click OK to import the tasks
• Tasks will be displayed on Outlook Welcome Screen as well as tasks page
• Click ON Tasks button on the left menu to go inside the tasks page
• Click on any task to see its details
• Now Double Click on any task to see its details
• Click next or Previous to move into different time spans.
• Enter the appropriate time in the task progress or timesheet information
• To save click Save to Project Web Access
• To Sent Timesheet to Project Manager Check the "And submit to project manager".
• You can also visit the PWA from the buttons given on this page.
• Using Outlook Calendar
c. Click OK
d. You will automatically see the notification if the tasks are late otherwise you can
see the task from calendar page.
e. Click On Calender
Purpose:
For all sort of programmers/ developers, Middle level management, Team Leads, Application
architects
Article:
The core target of Microsoft Office SharePoint Server (MOSS 2007) is to aggregate disparate
(Different but separate applications) information, events, processes and enterprise services
into a unified single view without to open multiple applications and cut and paste
information across multiple screens.
In MOSS 2007 these composite applications are based on the concept of a service-oriented
architecture (SOA). MOSS 2007 framework helps you develop components as distributed,
reusable business services. MOSS 2007 split into small applications in small pieces.
MOSS 2007 is basically superstructure who represents the high-level integration of users,
one-stop shop form information, managing interactions between people, and line-of-
business (LOB) data within organization and cross enterprises. MOSS 2007 based on SOA
framework that is driven by standard XML/ Web services.
It provides a window that connects people, processes, and information to create a unique &
rich end user experience. For example, during a natural disaster, it can provide critical
information to coordinate a response effort, monitoring traffic patterns, delivering supplies,
dispatching resources, and aggregating information to present operational insight. In a
manufacturing setting, you might use it to monitor inventory levels and assembly processes
up and down a supply chain. It's an excellent aggregation point for all of these types of
situations.
MOSS 2007 is point of collaboration & contents sharing. For example, SharePoint Portal
includes workspace to help loan officers find, organize, and share information so they can
process loans more efficiently. These workspaces used to be very limited in their reach,
which resulted in a proliferation of mediums to support discrete processes. A mortgage
broker might use a file system to store documents, e-mail to deliver loan applications to
customers, a Web site to gather additional customer information, and a spreadsheet to
monitor the loan approval process.
MOSS 2007 can unify all these tasks and offer collaboration tools to streamline the loan
approval workflow. Loan officers will then have a single place to access and modify
documents, check documents in and out of a repository, and work collaboratively to process
loans, all without having to use multiple interface mechanisms.
So, MOSS 2007 become more process-centric, they serve as clearinghouses for managing
multiple activities in multiple manners.
We will be learning how to develop a Web Part that loads in a SharePoint site. To
begin creating a web part:
• VS.NET 2005 installed.
• "Web Part Project Library" installed on your system.
• Start VS.NET 2005 and create a new project.
• Select Project Type as Visual C#-->SharePoint.
• Visual Studio Installed templates as Web Part.
• Change Name to Web Part Basics.
• Change Location to e:\Webpartbasics (or appropriate drive letter).
• Change Solution name to FileUploadWebPart.
The Render Method
The Web Part base class overrides the Render method of System.Web.UI.Control because
the Web Part infrastructure needs to control the rendering of the Web Part contents. For this
reason custom Web Parts must override the Render method of the Web part base class.
using System;
using System.Web.UI;
using System.Xml.Serialization;
using System.Runtime.InteropServices;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
namespace Webpartbasics
{
[Guid("c07e5146-b025-4f9b-b0a4-a0fc5cb2cfd6")]
public class Webpartbasics : System.Web.UI.WebControls.WebParts.WebPart
{
//varible declaration
private string _strResult;
private TextBox _tbxText;
private Button _btnShow;
private Label _lblErrMsg;
/// <summary>
/// 1 st EVENT IN WEB PART MANAGER
/// During the initialization, configuration values that were marked as webbrowsable
/// and set through the webpart task pane are loaded to the webpart
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)
{
try
{
this._strResult += "onInit Method <br>";
base.OnInit(e);
}
catch (Exception ex)
{
this._lblErrMsg.Text = ex.Message.ToString();
}
}
/// <summary>
/// 2 nd EVENT IN WEB PART MANAGER
///
/// Viewstate is a property inherited from System.Web.UI.Control .
/// The viewstate is filled from the state information that was previously serialized
/// would like to persist your own data within webpart
/// </summary>
/// <param name="savedState"></param>
protected override void LoadViewState(object savedState)
{
try
{
_strResult += "LoadViewState<br>";
object[] viewstate = null;
if (savedState != null)
{
viewstate = (object[])savedState;
base.LoadViewState(viewstate[0]);
_strResult += (string)viewstate[1] + "<br>";
}
}
catch (Exception ex)
{
this._lblErrMsg.Text = ex.Message.ToString();
}
} /// <summary>
/// 3 rd EVENT IN WEB PART MANAGER
/// All of the constituent controls are created and added to the controls collection
/// </summary>
protected override void CreateChildControls()
{
try
{
_strResult += "CreateChildControls<br>"; //creating error label controls
this._lblErrMsg = new Label();
this._lblErrMsg.ID = "lblErrMsg";
this._lblErrMsg.Text = string.Empty;
this.Controls.Add(_lblErrMsg); //creating text controls
this._tbxText = new TextBox();
this._tbxText.ID = "tbxText";
this._tbxText.Text = string.Empty;
this.Controls.Add(_tbxText); //creating button controls
this._btnShow = new Button();
this._btnShow.ID = "btnShow";
this._btnShow.Text = "Check Text Value";
this._btnShow.Click += new EventHandler(_btnShow_Click);
this.Controls.Add(_btnShow);
}
catch (Exception ex)
{
this._lblErrMsg.Text = ex.Message.ToString();
}
}
/// <summary>
/// butoon click event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void _btnShow_Click(object sender, EventArgs e)
{
try
{
this._strResult += "button click event has fired<br>";
}
catch (Exception ex)
{
this._lblErrMsg.Text = ex.Message.ToString();
}
}
/// <summary>
/// 4 th EVENT IN WEB PART MANAGER
/// Perform actions common to all requests, such as setting up a database query
/// At this point, server controls in the tree are created and initialized, the state is
restored,
/// and form controls reflect client-side data.
/// </summary>
/// <param name="e"></param>
protected override void OnLoad(EventArgs e)
{
try
{
this._strResult += "Onload<br>";
base.OnLoad(e);
}
catch (Exception ex)
{
this._lblErrMsg.Text = ex.Message.ToString();
}
}
/// <summary>
/// 5 th EVENT IN WEB PART MANAGER
/// Perform any updates before the output is rendered.
/// Any changes made to the state of the control in the pre-render phase can be
saved
/// while changes made in the rendering phase are lost.
/// </summary>
/// <param name="e"></param>
protected override void OnPreRender(EventArgs e)
{
try
{
this._strResult += "OnPreRender<br>";
base.OnPreRender(e);
}
catch (Exception ex)
{
this._lblErrMsg.Text = ex.Message.ToString();
}
}
/// <summary>
/// 6 th EVENT IN WEB PART MANAGER
/// store cutom data within a web part's viewstate
/// The ViewState property of a control is automatically persisted to a string
object after this stage.
/// This string object is sent to the client and back as a hidden variable.
/// For improving efficiency, a control can override
/// the SaveViewState method to modify the ViewState property.
/// once viewstate is saved,the control webpart can be removed from the memory
of the server.
/// webpart receives notification that they are about removed from memory
through dispose event
/// </summary>
/// <returns></returns>
protected override object SaveViewState()
{
this._strResult += "SaveViewState<br>";
object[] viewstate = new object[2]; viewstate[0] = base.SaveViewState();
viewstate[1] = "MyTestData";
return viewstate;
} /// <summary>
/// 7 th EVENT IN WEB PART MANAGER
/// Generate output to be rendered to the client.
/// you can create user interface of your webpart using html table.
/// You can apply your css classes here itself
/// </summary>
/// <param name="writer"></param>
public override void RenderControl(HtmlTextWriter writer)
{
try
{
//this method ensure all created child controls
EnsureChildControls();
this._strResult += "RenderControl<br>";
//table start
writer.Write("<table id='tblTest'align='center' cellpadding='0' cellspacing='0'
border='1' width='100%'>");
writer.Write("<tr>");
writer.Write("<td>");
writer.Write(_strResult);
writer.Write("</td>");
writer.Write("</tr>"); //row 2
writer.Write("<tr>");
writer.Write("<td>");
this._tbxText.RenderControl(writer);
writer.Write("</td>");
writer.Write("</tr>"); //row 3
writer.Write("<tr>");
writer.Write("<td>");
this._btnShow.RenderControl(writer);
writer.Write("</td>");
writer.Write("</tr>"); //row 4
writer.Write("<tr>");
writer.Write("<td>");
this._lblErrMsg.RenderControl(writer);
writer.Write("</td>");
writer.Write("</tr>");
writer.Write("</table>");
//table end
}
catch (Exception ex)
{
this._lblErrMsg.Text = ex.Message.ToString();
}
}
/// <summary>
/// 8 th EVENT IN WEB PART MANAGER
///
/// Perform any final cleanup before the control is torn down.
/// References to expensive resources such as database connections must be
/// released in this phase.
/// </summary>
public override void Dispose()
{
base.Dispose();
}
/// <summary>
/// 9 th EVENT IN WEB PART MANAGER
///
/// Perform any final cleanup before the control is torn down.
/// Control authors generally perform cleanup in Dispose and do not handle this
event
/// The webpart removed from memory of the server
/// Generally webpart developer do not need access to this event because all
/// the clean up should have been accomplish in dispose event
/// </summary>
/// <param name="e"></param>
protected override void OnUnload(EventArgs e)
{
base.OnUnload(e);
}
}
}
• Ensure the strong name key and sign the assembly check box.
• Right Click properties and select Deploy.
This Article describes features of windows SharePoint services (WSS 3.0) and MOSS
2007. It describes basic difference between WSS 3.0 and Moss 2007.
WSS 3.0 is built on top of ASP.NET, and supports Master Page and Site navigation. It is an
application framework. WSS improves team productivity.
Team site
Primarily designed to facilitate collaboration among teams through web sites Secure,
Document centric site, tracking process, sharing document, communicating with colleagues,
task list, contact list, discussion forums.
Windows SharePoint Services 3.0 provide a single workspace for teams to coordinate
schedules, organize documents, and participate in discussions-within the organization and
over the extranet.
Windows SharePoint Services are used as a platform to build rich, flexible, and scalable
Web-based applications and Internet sites specific to the needs of your organize.
Take advantage of its integration with Microsoft Office SharePoint Server 2007 that expands
platform services and common framework for document management exposed by Windows
SharePoint Services to offer enterprise-wide functionality for records management, search,
workflows, portals, personalized sites, and more.
Use Microsoft Office SharePoint Designer 2007 to quickly and easily customize SharePoint
sites and build reporting tools and applications tailored to specific tasks without writing or
deploying new code.
The My Site personal site gives users an opportunity to aggregate information into "for me,"
"by me," and "about me."
Audience targeting
Enables use of Web Part pages, Web Parts, and content to target distribution lists and
groups in addition to SharePoint audiences.
Available in Microsoft Office SharePoint Server 2007 and Microsoft Office Forms Server 2007
InfoPath forms services make it possible to design Web-capable forms in Microsoft Office
InfoPath 2007 and distribute them on corporate intranets, extranets, or the Internet. Users
can fill out forms in a browser or HTML enabled Mobile device with no download or client
components needed.
Business Data Catalog tightly integrates external data into the Office SharePoint Server
2007 user experience, providing access to external data residing within backed LOB
applications, and enabling the display of and interaction with external data through a set of
Business Data Web Parts.
Navigation
By default both WSS and MOSS have a simple navigation system that uses tabs across the
top to access sites along with the quick launch area on the left hand side to access content
element within a site.This information presented in site collection.
Windows SharePoint Services 3.0 provides the following new features to improve
site
• Navigation through User-aware links; for example, removing the Settings links for
users who cannot make particular changes, a capability that is provided through "link
trimming".
• Breadcrumbs to provide users with additional information about their location within
a site collection.
• Customization of the top navigation bar, ranging from adding and removing links to
adding Microsoft JScript drop-down menus and fly-outs, which is provided by new
shared navigation and master pages. Such menus can only be enabled by modifying
a master page; there is no built-in support for enabling these menus.
• Customization of the left navigation bar, which includes adding and removing links to
adding JScript drop-down menus and fly-outs, which is provided through ASP.NET
master pages and navigational controls such as the SiteMapPath, Menu and TreeView
controls. Such menus can only be enabled by modifying a master page; there is no
out-of-box support for enabling these menus.
• Common navigation bars provided through master pages.
Content Management with work flow
Content Characteristics
Microsoft Windows SharePoint Services 3.0 is designed to host content and applications that
support such business needs as communication, collaboration, analysis, process, and
knowledge management. Across those diverse functions, not all content is created equal.
Imagining a spectrum of content characteristics.
Content Database is a SQL server 2005 database that maintain all of the webpage
definitions, documents, lists and security information.
Document libraries also support an event system that you can tap in to
programmatically.These events can call into .net assemblies when new document are placed
in a library, modified, or deleted.The version of WSS also comes with its own work flow
engine based on WWF (Windows workflow foundation), the engine provides simple work
flow process such as document approval out of box.
User can develop more sophisticated workflows using the SharePoint designer (Microsoft
front page). We can create custom workflows with visual studio 2005 and harness all the
power of .NET Framework
List
Task list, list of contacts .Previous version of WSS, list used a different underlying
infrastructure than document libraries.
In the WSS 3.0 version both are same.List also capable of raising events that you can trap
in code. List also can participate workflow process.
All the files are uploading in respective share point custom list.
2- Click on Edit XSL Editor and paste the following xml code
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xmp><xsl:copy-of select="*"/></xmp>
</xsl:template>
</xsl:stylesheet>
3- Replace the existing XSL markup from the Search Core Results Web Part with the
following snippet
4- It will give you raw XML output during search
5- Now if you publish the page, you will see a result like the result in the following picture,
which illustrates how the raw XML could look: copy it
6- Take a blank text file and paste it with XML extension now it will look like this
9- Now click to add temp.xml and add your XML in SharePoint designer
10- After importing click on XML then there will option to show data
11- On right side pane you will see data
12- Just drag and drop you data fields as per your requirements
13- Click on the split window on aspx page. A XSL code will appear
14- Copy code between two tags to next
15- Edit your search page and paste this code in XSL editor and apply
6. Open the new folder (TEST in this case). Search for .INF file. Here we have copied JET
folder and rename that as TEST folder. So Inside TEST folder, we will get JET.INF. Rename
JET.INF to TEST.INF. (Right click and Rename).
7. Edit TEST.INF with notepad. Change all Jet to Test. When TEST.INF will open in Notepad,
you will find
[info]
Title=Jet
.
.
.
.
[titles]
1031=Jet
1036=Jet
...
Something likes that. Just change all Jet to Test. Here Test may not be in Upper Case. To
change, click on Edit->Replace. Then Save the file TEST.INF
<Templates>
<TemplateID>Test</TemplateID>
<DisplayName>Test</DisplayName>
<Description>This is Testing Site Theme.</Description>
<Thumbnail>images/Eye.gif</Thumbnail>
<Preview>images/Eye.gif</Preview>
</Templates>
Change <Template ID>, <Display Name>, <Description> <Preview>. Here I am changing
preview to Eyes.gif. Make sure Eyes.GIF is present in folder
C:\Program Files\Common Files\Microsoft Shared\web server
extensions\12\TEMPLATE\IMAGES. If Eye.GIF is not available, Paste Eye.Gif in this
folder. Whatever image you want to use with site theme. First copy and paste that Image in
this folder. Here Eye.GIF is my own image. I have copy and pasted this image in Image
folder.
9. Open the site in SharePoint designer
10. Open Edit ->View Folder. It will display all folder name. Delete _Theme folder.
11. Save the site in SharePoint designer
12. Click on Start->Run.
13. Type IISRESET. This will restart the IIS server.
14. Go to Site Action-> Site setting -> Look and Feel -> Site Themes
15. Select TEST site theme. And apply it.
All characters in this article are fictional and any resemblance to live or dead is
purely coincidental.
This is a nice talk between Mr. RC and Mr. Shiv about state machine work
flow. RC starts talking about an order project and they end up in a nice
discussion which gives us step by step approach of how to execute a state
machine work flow.
This article was written in a straight half & hour session so please excuse for
my English as it's my second language and for any spelling mistakes.so guys
enjoy State machines.
The State machine Work flow discussion
Ramprasad Chaurasiya:- Hi Shiv how's things ?
Shivprasad Koirala :- Doing great RC ( Ramprasad Chaurasiya ) ?
RC: - You have written more than 60 articles that's huge, looks like you are
copy pasting articles from MSDN and other sources.
Shiv: - Hmmm, can we talk something better before you reveal me
completely J ?.
RC: - I was reading your article on WWF. I am working currently on an order
processing project and I am bit confused how the workflow aspect of the
project should be approached.
Shiv: - Can you explain me the workflow part of your order project?
RC: - Ok here's the requirement for the order and also I have drawn a small
sketch of how the work flow looks like:-
• The work flow starts by user placing an order.
• Accounts department logs in and checks if payment is made for the
order. If the payment is not made then they mark the order as
cancelled and it's sent to the user for payment.
• Once the user makes the payment the order is moved to a valid order
placed stage again.
• Purchase department logs in and check if the product is in stock for
the order.
• If the product is in Stock the purchase department person enters
saying the product is Instock and the order is then ready for dispatch.
• Courier department logs in and check if the address of the order is
proper. If address is not proper the order is moved to a pending stage
and sent to the end user for address correction.
• In pending stage if the user corrects the address the order is then
moved back to ready for dispatch.
• If the order is dispatched and received by the end user the delivery
person marks the order as delivered.
Shiv: - Hmmm, it's an interesting work flow. This can be very easily solved
by using Windows work flow foundation. The first step we need to decide is
which kind of work flow we need to choose for the above.
RC: - ohhh , Are there different kind of work flows in Windows Work flow.
Shiv :- Primarily there are two kinds of work flows in WWF and depending
on the nature we need to choose the work flow accordingly.
RC:- That's funny I thought a work flow is just a collection of activities which
is executed depending on certain conditions. For instance below figure shows
a simple work flow which has customer activities, some if condition
depending on which the activities are executed. In other words what I want
to say is workflow is workflow what do you mean by types of work flow.
Shiv :- From windows work flow point of view there are two types of
workflow the first is a sequential work flow and the second is a state
machine work flow.
A sequential workflow has clear start and finish boundaries. Workflow
controls execution in Sequential workflow. In sequential execution, one task
is executed after other. Sequential workflow is more rigid in format and
execution path has a determistic nature.
A State machine workflow is more dynamic in nature. Workflow has states
and the state waits for events to help it move to next state. In State
machine execution path is undetermestic nature.
Below figure shows visual conceptualization of fundamentals. You can see in
Sequential workflow the execution path is very determent. Shiv performs the
entire task sequentially and these tasks are very determent. Now have a
look at the second workflow. Every state goes to other state when it receives
some external events. For instance when Shiv is seeing star trek there is an
event of flashing news which triggers him to see the flashing new.
RC :- In other words what we can say is that if the work flow controls the
execution then its sequential and if there is some external factor which
controls the work flow then it becomes a state machine workflow.
Shiv: - Yes, that's a good summary. Looks like you have started thinking in
terms of work flows. So now let's first decide your order project is of which
kind of work flow.
RC (Thinking):- Well I think it's a sequential work flow ,as the work flow has
a control on the execution.
Shiv :- Ok , so let me redraw your workflow diagram , below is your
changed diagram. You can see there are so many inputs from the user which
changes your workflow. For instance the accounts department depending in
the payment diverts the workflow, purchase department depending on stock
value divert the flow and same holds true for the courier person.
RC: - I understand where you are coming from. My work flow is not in
control of himself. Ok, I buy back my point my order project is of a state
machine work flow.
Shiv :- A few comments on work flow type before we move ahead. Many
architects get carried with sequential work flow. If you see in your
application that depending on user inputs your workflow is changing then it's
a good idea to think about state machine. Ok, let me comment from more
practical point of view. In actual projects it's a combination of these types
rather than just one type. In other words you can have a broader state
machine work flow which has lot of sequential work flow in between and vice
versa.
RC :- What I also think is we should also look from the domain perspective
what kind of work flow it actually looks like. Ok, this sounds good. So how
can we now move ahead?
Shiv :- So let's first try to visualize what are the important elements in state
machine work flow. There three important things in state machine work flow
initial state , action and the final state. You can see from the figure a simple
example of state machine. So you have a initial state, a action happens and
it moves to the some other state. For instance a bulb is first in a on state
and then switch off and it moves to a off state.
Shiv :- nice you are catching up on state machines. Ok now that we are
clear about our states and about our events. It's time to make the complete
work flow using WWF.
RC :- That sounds sense. I really do not like theory there should be some
practical implementation.
Shiv :- We will be using VS 2008 enterprise and .Net 3.5
RC :- Why not express edition ?.
Shiv :- Well WWF does not come with express edition.
RC :- Ok noted.
Shiv :- So before we move ahead and talk about practical. There's a one
more point we need to cover. In a typical work flow project we have two
important things one is the work flow and the second is the client which can
be windows or web application which consumes that work flow. In state
machine work flow we need to define a interface with all action. This
interface is the only thing which the work flow knows. So any client who
wants to invoke the work flow should make calls using this interface.
RC :- Ok great. So how should we define the events and next state for the
state.
Shiv :- If you remember we had defined a interface. It's time to start using
it. So go to the properties of the handle event and select the interface type
and the event for the same. The below figure shows the state is order placed
and we need to handle the instock event.
Shiv :- Now to specify the next state. So goto the property of the set state
component and specify target state name.
Shiv :- So create states , create event we need to handle in the states and
the next state. You will see you end up in to something like as shown below.
RC :- The visuals look great and appealing.
Shiv :- Yeah! The most important part for WWF is to get a feel of the work
flow development..
RC :- Ok , this sounds good. What next.
Shiv :- One of the most important points we have forgotten is we need to
make our concrete class which will be called by the client. So let's implement
the interface Iorder. You can see the below class clsOrder which implements
IOrder. We have just displayed simple console messages. Remember this
concrete class will called by client and all the below methods of the class will
be invoked by the client. This class internally calls the interface which in turn
invoked the work flow engine.
public class clsOrder : IOrder
{
#region IOrder Members
public event EventHandler<ExternalDataEventArgs> NotPaid;
public event EventHandler<ExternalDataEventArgs> InStock;
public event EventHandler<ExternalDataEventArgs> PaymentMade;
public event EventHandler<ExternalDataEventArgs> Dispatch;
public event EventHandler<ExternalDataEventArgs> AddressNotProper;
public event EventHandler<ExternalDataEventArgs> AddressCorrected;
public event EventHandler<ExternalDataEventArgs> ProductStocked;
#endregion
public void CallNotPaid(ExternalDataEventArgs args)
{
NotPaid(null, args);
Console.WriteLine("This order is not paid");
}
public void CallInStock(ExternalDataEventArgs args)
{
InStock(null, args);
Console.WriteLine("Product is InStock");
}
public void CallPaymentMade(ExternalDataEventArgs args)
{
PaymentMade(null, args);
Console.WriteLine("Payment is made for this Order");
}
public void CallDispatch(ExternalDataEventArgs args)
{
Dispatch(null, args);
Console.WriteLine("Dispatch the Order");
}
public void CallAddressNotProper(ExternalDataEventArgs args)
{
AddressNotProper(null, args);
Console.WriteLine("Adress is not Proper");
}
public void CallAddressCorrected(ExternalDataEventArgs args)
{
AddressCorrected(null, args);
Console.WriteLine("Adress is corrected");
}
public void CallProductStocked(ExternalDataEventArgs args)
{
ProductStocked(null, args);
Console.WriteLine("Product is stocked");
}
}
WorkflowInstance objWorkFlowInstance;
WorkflowRuntime objWorkFlowRuntime = new WorkflowRuntime();
clsOrder objOrder = new clsOrder();
ExternalDataExchangeService objService = new ExternalDataExchangeService();
Guid InstanceId = Guid.NewGuid();
objWorkFlowRuntime.AddService(objService);
objService.AddService(objOrder);
objWorkFlowInstance =
objWorkFlowRuntime.CreateWorkflow(typeof(OrderWorkFlow.WorkflowOrder), null,
InstanceId);
objWorkFlowInstance.Start();
RC :- Ok let me run it. Great I can see the order is first placed , then when I
entered 2 the product moved in stock and when I did dispatch it moved in a
delivered state.
Shiv :- The most important part in work flow is the work flow logic is now in
your work flow project and your business component are self contained and
they are doing their own activity.
RC :- Great man, From where can I download the Source code? Tonight at
home I would like to see the same.
Source Code
Shiv :- You can find the Source code at the top of this article.
In case you are still not clear with work flow basic you can go and read Windows Workflow
Foundation (WWF).