Learn IT

Free learning anything to everything in Information Technology.

MOSS 2007: Plan SharePoint Sites

Planning a solution based on Microsoft Office SharePoint Server 2007 involve determining the types of Web sites and portal sites to implement, and a list of the features that we need to plan for each site.

Few important points to be considered for each site we plan are:

  • The sets of users who will participate in the site or portal. When we know who the site serves, we can more easily determine the appropriate security settings for the site.
  • Requirements for searching.
  • Customization needs.
  • Personalization needs.
  • Features that we need to plan for each portal or site, such as business intelligence, document management, forms, or workflows.
Plan Sites

The first step in planning a solution based on Microsoft Office SharePoint Server 2007 is to determine the set of portal sites, Internet presence sites, team sites, and specialized sites that your organization and its customers need. Determining this affects subsequent planning decisions, such as where the sites will be implemented in your server topology, what features to plan for each site, how processes that span multiple sites are implemented, and how information is made available across one or more sites.

Plan Portal Sites

Portal sites based on Office SharePoint Server 2007 provide a focal point for finding relevant, personalized information in an organization. You can plan divisional and rollup portal sites that are based on the scale and structure of your organization and that aggregate organizational information, and you can plan interactive application portals where team members can perform tasks in your organization.



Planning portal sites by organizational hierarchy

Plan the basic portal sites you need based on the scale and structure of your organization. Each of these portal sites should contain information needed for a project or division within your larger organization, and each will link to collaboration sites relevant to that project or division. Some portal sites for larger divisions or projects will also aggregate information found on all the smaller portal sites devoted to smaller divisions or projects.



You can use the following guidelines when planning portal sites based on your organizational structure:

  • Divisional or team portal sites - Plan to create one portal site for an entire small organization, or one for every division or project of 50-100 people within a medium-sized to large organization. In large organizations, there might be several levels of portal sites, with each portal site focusing on the content created and managed at its level of the organization.
    You can design a portal site for members of your organization to collaborate on content related to your business or organizational goals. These can be self-contained or they can work with other sites as part of a publishing process. Often, these portal sites will have a mixture of collaborative content used internally and content intended for publication to an audience.

  • Rollup portal sites - A rollup portal site contains general cross-organization content. It lets users across divisions find information, experts, and access to organization-wide processes. It often contains subsites that are scoped to the overall organizational information architecture and are usually mapped to the structure of the divisional or project portal sites. For each organization or distinct Shared Services Provider (SSP), plan to create a centralized rollup portal site with an aggregated view of all related portal sites.
Planning application portal sites

An application portal organizes team processes and provides mechanisms for running them. Application portals often include digital dashboards and other features for viewing and manipulating data related to the portal's purpose. The information presented in an application portal site usually comes from diverse sources, such as databases or other SharePoint sites.
For example, the human resources organization in an enterprise could design an application portal site to provide employees with:

  • Access to general information such as employee handbooks and career opportunities.
  • Ways to do common tasks, such as submitting timecards and expense reports.
  • Dashboards for viewing personalized information such as an employee's salary and benefits history.
As another example, the internal technical organization in an enterprise could design a Help Desk application portal to provide technical support to members of the enterprise. Features of the application portal could include:

  • Access to a knowledge base of past support incidents and best-practices documentation.
  • Ways to do common tasks, such as starting a support incident or reviewing the status of an ongoing incident.
  • Integration with communications features that support online meetings and discussions.
  • Personalized views of data. For example, support managers could view dashboards providing views of their team members' productivity and customer satisfaction ratings.
  • Support engineers could view their current unresolved incidents.

In the Determine Sites and Portals planning worksheet, list each divisional, rollup, and application portal site that you plan to create. Be sure to identify the name and purpose of the portal site.

Plan Internet presence sites

Internet presence sites are customer-facing sites. They are usually branded and are characterized by consistent stylistic elements, such as colors, fonts, and logos in addition to structural elements such as navigation features and the structure of site pages. Although the appearance of an Internet site is tightly controlled, the content of the site may be dynamic and may change frequently.

For example, a corporate presence Internet site communicates important company information to customers, partners, investors, and potential employees, including descriptions of products and services, company news, annual reports, public filings, and job openings. As another example, an online news Internet site provides frequently updated information, along with interactive features such as stock tickers and blogs.

Plan other sites

You can plan to allow portal site or Internet site users to create additional sites. For example, you can plan to give each team member who uses a portal site a My Site, which is a team site based on Windows SharePoint Services 3.0 with public and private views. You can also allow team members to create other sites, such as Document Workspace sites, as they collaborate. Similarly, you can give users of an Internet site access to collaboration sites as part of a Web-based service. For example, you can give them permissions to create Meeting Workspace sites and participate in online meetings as part of their experience of using your site.

In addition to portal sites and Internet sites, Office SharePoint Server 2007 includes the ability to create the following specialized sites of use in the organization:

  • Document Center site This is a large-scale library useful as an enterprise-wide knowledge base or historical archive. It includes features that can help users navigate, search, and manage a large number of documents in a deep hierarchy by using a set of specialized Web Parts.
  • Records Center site Records management is the management of files and documents that provide evidence of activities or transactions performed by the organization. The Records Center site is designed to implement the storage component of a records management solution based on Office SharePoint Server 2007.

MOSS 2007: Planning and Architecture

Planning a system based on Microsoft Office SharePoint Server 2007 involves following steps at a high level.


  • SharePoint Sites and Solution Planning


    • Plan overall design

    • Governance Model

    • Web site structure and publishing

    • Personalized Content and Sites

    • Workflows

    • Infopath Forms Services

    • Business Intelligence

    • Enterprise Search

    • Plan Communication

    • Document Management

    • Records Management

    • Site and Content Security

    • Site Creation and Maintenance


  • Infrastructure Planning


    • System Requirements

    • Server Farms and Topologies

    • Logical Architecture

    • Authentication

    • Security Hardening

    • Performance and Capacity

    • Database Storage and Management

    • Data Protection and Recovery

    • Globally Deploying Multiple Farms



    PS: I will be publishing individual tasks involved under each of these activities in the upcoming posts.


Establishing MOSS 2007 Planning Team

A well-planned solution based on Microsoft Office SharePoint Server 2007 will promote better collaboration, content management, knowledge discovery, and business processes across the organization while being secure, cost-effective, and manageable for your IT department.

To satisfy this broad set of goals, it is important to identify key stakeholders across all relevant disciplines and include them in your planning team.

They include:

  • Managers and other organizational leaders who understand the requirements of the business processes that Office SharePoint Server 2007 will be used to implement.
  • IT professionals and business unit IT specialists who will be tasked with proposing a solution that implements the desired business processes, and with deploying and maintaining the solution across one or more server farms.
  • Site designers to plan the user experience and visual design of the sites and the templates that will comprise the solution.
  • Developers to determine the scope and design of required custom features, such as workflows, forms, and Web Parts.
  • Testers who will ensure that the site's features are correct and that site deployment and administration function as specified.

References:
Plan Sites and Features, Part 1 from Microsoft

Examples of solutions based on MOSS 2007

Here are examples of typical solutions that can be built using Microsoft Office SharePoint Server 2007:

  • Online news magazine

A publishing organization uses Office SharePoint Server 2007 to build their branded online magazine site. Article submissions come from inside and outside the organization to be reviewed and accepted by staff editors. This Internet site has a strong community presence because users can log on for personalized information, and it has an extensive search component.

The Internet site includes subsites for current news and editorials; blogs; and regular columns about politics, business, health, people, personal finance, and science and technology. The site also enables users to sign in to interact with each other and to comment on articles published on the site.

  • Controlled distribution of financial data to clients and business partners

A bank deploys a solution based on Office SharePoint Server 2007 to take advantage of Excel Services. The solution enables bank managers to communicate efficiently with clients by providing controlled access to specified workbooks that can be rendered with view-only permissions in a Web browser. The workbooks are accessible in document libraries on a portal; this enables the bank to restrict the availability of financial data to clients who have authenticated access to the portal.

  • Online permit application

A local government agency uses Office SharePoint Server 2007 and Microsoft Office InfoPath 2007 to provide permit application and approval to contractors over the Internet. Contractors use the Web site to apply for permits using an online service. Data entered into the permit application Web form is submitted to a database in the government's Department of Building Inspections network.

After the application data is submitted, a new permit request (a multi-part Office InfoPath 2007 form) is automatically populated to a workspace. When the form is opened, the requesting contractor's company and permit application data is populated into the form's fields. If the request is approved, an electrical permit (also populated with the requestor's contact data and relevant information) is rendered in HTML and posted to the Department of Building Inspections permit site, where the contractor can view and print the permit for posting at the construction site.

  • Departmental portal site

A product development department within a medium-sized company uses Office SharePoint Server 2007 to take advantage of its search, content aggregation, business application integration, collaboration, and personalization features. The department develops a portal site that becomes an essential part of the product development process, hosting their knowledge base, product specifications, an organization chart, individual My Sites for team members, and a home page that broadcasts schedule information, product success stories, and other important news. The installation grows from an isolated small server farm into a well-developed medium server farm implementation that uses a combination of intra-farm and inter-farm shared services within a larger deployment across the entire company.

  • Equity research

A large investment bank uses Office SharePoint Server 2007 to develop a set of Web sites that facilitate quickly developing, reviewing, and publishing equities research notes, reports, and models in a variety of formats. Using the integrated Office SharePoint Server 2007 platform, the solution designers implement a portal site for authoring and reviewing research notes and models; an Internet site for presenting the content to customers; a staging site to test the Internet site; and a records repository site for retaining models and research notes to meet regulatory requirements. Using custom features, the set of sites (distributed over multiple server farms) supports the rapid and automated flow of content from site to site and from team member to team member as content moves through its stages toward publication.

  • Records management

An appliance manufacturer's legal division implements a records management solution using the Office SharePoint Server 2007 Record Repository site template. Based on their file plan, the division implements and configures policies, content types, and document libraries to retain each type of record the division manages. The records managers adjust easily to the record repository site's familiar SharePoint interface while taking advantage of its built-in records management features. These features support properly storing incoming records, retaining each type of record for the legally mandated period, putting records on hold, and approving of their disposition. The records management programmable interface let teams in the organization integrate their document management and e-mail systems with the record repository site using the Web service APIs.

  • Corporate Internet presence site

An international automobile manufacturer has headquarters in Germany; a major subsidiary in Michigan serving the North American market; and regional offices throughout Europe, Asia, and North America. The products are sold internationally, and distinct manufacturing operations serve each regional market. The company's Internet presence Web site is built, administered, and authored using Office SharePoint Server 2007. It is the focal point for the corporate marketing efforts, and it includes subsites for each product line along with areas for press releases, investment information, company information, and career opportunities.

Each corporate brand has its own marketing department with individuals responsible for writing that brand's content and updating it on the Web site. The corporate communication department controls the look and feel of the site to make sure the branding and messaging are consistent. The site includes site variations that tailor its content to different languages, cultures, markets, and geographic regions.

Using Office SharePoint Server 2007 Web sites, the writers for each brand author the site's content and route it for review and approval while managing the creation of multilingual content versions. Using scheduled workflows, the approved and localized content is copied to staging sites where it is tested and ultimately deployed to the public site.

References:

Plan Sites and Features, Part 1 from Microsoft

Implementing Single Sign On (SSO) in MOSS 2007

There are number of instances when we need to design an enterprise wide MOSS 2007 portal that would integrate some of the existing Line Of Business (LOB) applications. We also need to use SSO, because some of the existing applications are not necessarily AD-enabled.

To use SSO in MOSS 2007, you can create your own custom web part and connect to the SSO services through there.

Enabling SSO

To enable SSO, you need to start the Microsoft Single Sign-On Service in the Services-tool of Windows. You can also do this on the command-line with "net start ssosrv". Keep in mind the service needs to run under an account that has access to the SQL hosting your SSO database.

For demonstrational purposes you can use administrator, otherwise create a dedicated account.Next, go to MOSS Central Admin at http://localhost:port/, where port is whatever you specified when installing MOSS. Select Operations-tab, and navigate to Manage settings for single sign-on.
If you get this error:
Failed to connect to Microsoft Single Sign-on Service. To configure, please ensure the service is running.

It means your SSO service is not running. Go and doublecheck the settings on that. Then, select Manage server settings, and fill out the fields. Default values are normally ok for those fields that have been prepopulated. Click OK - the database and settings for your SSO service should now be created.

Configuring applications for SSO

Now that you have SSO running, you need to configure which applications are going to take advantage of it. Go to Manage settings for enterprise application definitions (http://localhost:port/_admin/sso/ManageApps.aspx) and click New Item. Enter a display name, application name and contact email address. The important thing here is to enter an application name that is easy to remember and describes the integrated application, such as "Asp3Tools" or "FinanceApp". Fill out rest of the fields as you see fit.

If you're wondering what the five fields under logon account information are for, you can use those to send a maximum of 5 custom fields to your LOB application upon user authentication. Normally you'd use 2, one for username and one for password. MOSS uses these field names and settings to render the authentication form dynamically for you, when logging into the the LOB application for the first time (via SSO).

Creating skeleton web part for SSO

Now that you've successfully configured SSO for MOSS, it's time to create your web part. I'll provide the basic RenderContents() -method for you that walks through the basic step when using SSO:

protected override void RenderContents(HtmlTextWriter output) {
string[] rgGetCredentialData = null;
try {
Credentials.GetCredentials(1, "AppName", ref rgGetCredentialData);
ISsoProvider provider = SsoProviderFactory.GetSsoProvider();
SsoCredentials creds = provider.GetCredentials("AppName");
creds.Evidence = new System.Security.SecureString[2];
try { // your implementation of accessing the LOB app }
catch (Exception e) { // catch exceptions}
}
catch (SingleSignonException ssoex)
{
if (SSOReturnCodes.SSO_E_CREDS_NOT_FOUND == ssoex.LastErrorCode)
{ string strSSOLogonFormUrl = SingleSignonLocator.GetCredentialEntryUrl("AppName");
output.Write("Click here to save your credentials for the Enterprise Application."); }}

You can do a HttpWebRequest to your application, parse the HttpWebResponse and render out your application. The important thing is to use the correct application name (AppName) and catch the SSO_E_CREDS_NOT_FOUND exception for first time users. MOSS will then create the initial authentication page for you, hiding possible other authentication pages you have in your LOB system.

Responsibilities of an Operating System

An Operating System has three main responsibilities:
  1. Perform basic tasks, such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers.
  2. Ensure that different programs and users running at the same time do not interfere with each other.
  3. Provide a software platform on top of which other programs (i.e., application software) can run.

The first two responsibilities address the need for managing the computer hardware and the application programs that use the hardware. The third responsibility focuses on providing an interface between application software and hardware so that application software can be efficiently developed. Since the operating system is already responsible for managing the hardware, it should provide a programming interface for application developers.

Computer Software

Computer software can be divided in to two main categories:
  • Application Software
  • System Software

Application Software

Application software consists of the programs for performing tasks particular to the machine's utilization. Examples of application software include spreadsheets, database systems, desktop publishing systems, program development software, and games.

Application software is generally what we think of when someone speaks of computer programs. This software is designed to solve a particular problem for users.

System Software

System software is more transparent and less noticed by the typical computer user. This software provides a general programming environment in which programmers can create specific applications to suit their needs. This environment provides new functions that are not available at the hardware level and performs tasks related to executing the application program.

System software acts as an interface between the hardware of the computer and the application software that users need to run on the computer.

WSS 3.0: Permission To Add Users to SharePoint Groups

General information

  • The Group Owner of a SharePoint group has permission to add / remove users from a group.
  • The Site Collection Administrator has permission to add / remove users from a group.
  • Only one person (or group) can be assigned as the Group Owner.
  • SharePoint Groups belong to the Site Collection.

Set an individual as the Group Owner

  • Navigate to the Change Group Settings page. One way to do this is:
  1. Browse to any site within the site collection.
  2. On the Quick Launch Click People and Groups.
  3. On the Quick Launch Click on the group you wish to modify.
  4. Click Settings – Group Settings
  • Change the Group Owner to the desired individual.

Set a group as the Group Owner

  • Create a SharePoint Group for all individuals that will have the Group Owner permissions (such as MySite Group Owner).
  • Add individuals to this group.
  • Follow the steps for setting an individual, but enter the SharePoint group name. HINT: You can use the address lookup to help find (and insure correct spelling) the desired group.

MOSS 2007 - How To: Edit default.aspx for a Site Collection

Imagine that you don't have Frontpage or SharePoint Designer installed in an environment and you have to make changes to web pages that are stored in the content database. This is a very natural scenario in a production environment but we normally don't make changes directly in production. However if this scenario arises there is a really neat and quick way to do this by using Internet Explorer and Notepad (a very handy tool...reminds me of 10 years back my initial days Java coding using Textpad) . So, here goes simple steps to achieve this:

  1. Open the site using web folder in Internet Explorer (File->Open...) and check "Open as Web Folder" checkbox.



  2. Download the required on the local filesystem.


  3. Make the required changes and upload it back to server.




Deciding Between Custom Site Template and Site Definition


An Overview of Microsoft .NET Framework 3.0

Introduction

I have been come across many people thinking that WinFx is not related to .NET Framework. The funniest answer I have gotten is that it is a fix related to Windows PC protection similar to WinFix. It is good decision from Microsoft for changing its name from .NET Framework 3.0. This article gives a clear explanation about the additional technologies/features that are included in .NET Framework 3.0, namely Windows Presentation Foundation (WPF), Windows Workflow Foundation (WF), Windows Communication Foundation (WCF) and Windows Card Space (WCS).

What Happens when we install Framework 3.0

Does it install new version of the Framework? No. It is just an upgraded Framework from 2.0 that comes along with WPF (Avalon), WCF (Indigo), WCS (InfoCard) and WF. It is a Framework that sits on the top of the 2.0 Framework along with Common Language Runtime (CLR) and BCL (Base Class Library). Framework 3.0 comes with CLR version 2.0. We are still using version 2.0 compilers for the Framework 3.0. So if we have Framework 2.0 installed in our system, it will install managed API's that are required for workflow, presentation, communication, etc. If Framework 2.0 is not installed, it will install Framework 2.0 and then install all other upgraded required components. The serious question that comes to mind is "why the version number is changed if we are still using 2.0 compliers." The reason for choosing the new version number is Avalon, Indigo, Workflow, and Info card are all major new pieces of platform technology.

Windows Presentation Foundation (WPF)

This is formerly known as the code named "Avalon," a graphical feature in Framework 3.0 that makes easy to build next generation web applications with the help of rich User Interface (UI), documents and media. This is used to display more advanced graphics that helps a developer to improve his/her designing skills using programming skills, which would be quite challenging. We developers can produce outstanding user interfaces using multimedia and document services in WPF. We can also make use of vector graphics, user interface, 2D and 3D drawing, fixed and adaptive documents, typography, raster graphics, animation, data binding, audio, video and develop graphic/animation through declarative programming. WPF allows developers as well as designers to collaborate and develop awesome visual user interfaces. Here are the two different developer environments that are used to make developer and designer work together.
1. Microsoft Visual Studio
2. Microsoft Expression Interactive Designer

The language that is used to develop application user interfaces in WPF is called XAML (Extensible Application Markup Language). XAML is based on XML (Extensible Markup Language). Separation of model and view is possible in XAML by placing design related information in FileName.xaml file and business logic is placed in FileName.xaml.cs file.

Core Components

The major components of WPF are:
1. Presentation Framework
2. Presentation Core
3. MILCore (Media Integration Layer)
4. DirectX

Presentation Framework and Presentation core are written in managed code. The DirectX engine is responsible for displaying. MILCore is written in unmanaged code in order to enable tight integration with DirectX. MILCore (MILCore.dll) also consists of a composition engine which is responsible for performance reasons.

Microsoft Silverlight

WPF comes with its subset Microsoft Silverlight formerly named as Windows Presentation Foundation Everywhere (WPF/E) and is a subset of WPF which depends on XAML and JavaScript. Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences for the Web and mobile applications. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. It is lightweight, just 1 MB download and pretty fast. We can play many videos simultaneously without stuttering or dropping frames. No doubt WPF is next-generation graphics API. More explanation on Silverlight is out of the scope of this article. For more details on Silverlight, visit http://www.microsoft.com/silverlight.

Windows Workflow Foundation (WF)

"Workflow" is a declarative way of implementing result oriented business process in software. WWF is a programming model that helps in defining, building, executing, debugging and managing work flow related applications that are in sync with business processes. It consists of a Microsoft NET Framework version 3.0 namespace, an in-process workflow engine, and designers for Visual Studio 2005.

We can build as many work flow styles as we need based on the requirement.

Graphical designer and debugger are provided to implement work flow related software. We can make use of imperative code along with declarative modeling. It enables us to build workflow software that is more flexible and transparent.

Core Components
WF core components include:
1. Base Activity Library: This provides functionality for control flow, conditions, event handling, state management and invoking web service. One can build his or her own custom domain specific activities using the base activity.

2. Runtime Engine: This is responsible for Workflow execution and state management.

3. Runtime Services: This provides hosting flexibility and communication.

4. Visual Designer: It is responsible for graphical and code-based construction.

Once a workflow model is compiled, it can be executed inside any windows process including console applications, WinForms applications, Windows Services, ASP.NET Web sites, and Web services. Extensible Object Modeling Language [XOML] based on XAML is the language that is used for declaring the structure of workflow, business logic for the workflow.

In order to create workflow, activities using WWF are:

1. VS 2005 (comes by installing Visual Studio 2005 add-ins to design and program workflow)

2. SharePoint designer that permits building workflows for Share Point 2007

Windows Communication Foundation (WCF)

WCF is formerly known as the code “Indigo” is the first Unified Programming Model (UPM) for Service Oriented Applications (SOA). It is the unification of the technologies used to deliver distributed systems such as Enterprise Services, Messaging, .NET remoting, ASMX and WSE that run on the Microsoft platform. In other words, Windows Communication Foundation is an advanced technology to provide web services/remoting functionality with better features and reduces the time to develop a distributed system. It makes development interoperable with Non-MS Platform and integrates with existing products. We can build amazing services that would add more weight using WCF. WCF uses SOAP messages for communication between two processes. WCF has a set of API's for creating systems that send messages between services and clients. The same API's are used to create applications that communicate with other applications on the same system or on a system that resides in another company.

Core components

Here is a list of core components in WCF.

1. End Point: A WCF service is exposed to the world as a collection of endpoints. It is the point where messages are sent or received. It consists of Address, Binding and Contract.
  • Address: End point consists of location where message can be sent/received. This is equivalent to a service address in WSDL. An example of Address components are URI, Identity & Headers.
  • Binding: This is a communication mechanism that describes how messages can be sent. This represents configuration. It is made up of various binding elements like Transport protocol, such as TCP, HTTP, MSMQ, named pipes, Encoding such as text, Message Transmission Optimization Mechanism such as MTOM, binary, and security like asymmetric, symmetric and transport.
  • Contract: It is a definition for a set of messages that can be sent or received (or both) at the address that describes what message can be sent. It describes the WCF contracts and their operations like One way, request/reply, duplex, and queuing.

2. Channel: A channel is a concrete implementation of a binding element. The channel is the implementation associated with that configuration.

3. Client: A program that exchanges messages with one or more endpoints using channels.

4. Service: A service is a construct that exposes one or more endpoints, with each endpoint exposing one or more service operations.

5. Behavior: A behavior is a component that controls various run-time aspects of a service, an endpoint, a particular operation, or a client.

Facts:

  • WCF has rich communication capabilities.
  • WCF is 25%—50% faster than ASP.NET Web Services and approximately 25% faster than .NET Remoting.
  • It is secured, Confidential in keeping messages.
  • Using WCF message transfer is reliable.

SharePoint Development Improves in Visual Studio 2010

The focus of the tooling is to automate tedious tasks, enhance the debugging experience, and provide a GUI surface for visually exploring deployment and feature packaging. These tools will replace the much-derided SharePoint Designer.

VS 2010 Tools for SP Quick info:

Building and Debugging
Visual Studio will be able to building and debug SharePoint projects. "F5 Just Works!"

Server Explorer Integration
SharePoint Connections will be an option in the VS Server Explorer. Standard Sharepoint artifacts will be viewable: ContentTypes, Features, Templates, Lists, Sites, Workflows, Workspaces. Direct manipulation of some artifact attributes will be supported through VS property grid integration.

Windows SharePoint Services Project (WSP) Import
This will automate the manual task of creating Windows SharePoint Services solution package files. Previously, to create a solution package file, a developer had to use the Makecab.exe console application that is included in the Microsoft Cabinet Software Development Kit (SDK). Makecab.exe requires specifying the Diamond Directive File (.ddf) that contains a list of all the files to include in the package. Much of this will be automated.

Visual Web Part Designer
A new WSYWIG designer will exist for authoring Web Parts. The designer will also load a user control as a web part for SharePoint. This seems to be a more tightly integrated version of the widely used SmartPart, which is a Web Part that allows hosting of ASP.NET User Controls in SharePoint.

Event Receiver Wizard
Adding Event Receivers and connecting them to Sources can be done visually through a wizard.

Workflow Integration
A new ASPX Workflow Initiation form for Workflow Project will be added. Workflow initiation forms will have a visual designer.

Packaging Editor
A new Packaging Explorer will exist that supports editing Packaging and structuring the SharePoint Features and WSP file.

Native Image Generator (Ngen.exe)

The Native Image Generator utility (Ngen.exe) allows you to run the JIT compiler on your assembly's MSIL and generate native machine code which is cached to disk. After the image is created .NET runtime will use the image to run the code rather than from the hard disk. Running Ngen.exe on an assembly potentially allows the assembly to load and execute faster, because it restores code and data structures from the native image cache rather than generating them dynamically.

The key points about Native Image Generator are:

  • Native images load faster than MSIL because JIT compilation and type-safety verification is eliminated.

  • If you are sharing code between process Ngen.exe improves the performance significantly. As Native image generated Windows PE file so a single DLL file can be shared across applications. By contrast JIT produced code are private to an assembly and can not be shared.

  • Native images enable code sharing between processes.

  • Native images require more storage space and more time to generate.

  • Startup time performance improves lot. We can get considerable gains when applications share component assemblies because after the first application has been started the shared components are already loaded for subsequent applications. If assemblies in an application must be loaded from the hard disk, does not benefit as much from native images because the hard disk access time shadows everything.

  • Assemblies in GAC do not benefit from Native image generator as the loader performs extra validation on the strong named assemblies thus shadowing the benefits of Native Image Generator.

  • If any of the assemblies change then Native image should also be updated.

  • You should have administrative privilege for running Ngen.exe.

  • While this can fasten your application startup times as the code is statically compiled but it can be somewhat slower than the code generated dynamically by the JIT compiler. So you need to compare how the whole application performance with Ngen.exe and with out it.

SQL Cache Dependency in ASP.NET 2.0

SQL cache dependencies is a new feature in ASP.NET 2.0 which can automatically invalidate a cached data object (such as a Dataset) when the related data is modified in the database. So for instance if you have a dataset which is tied up to a database tables any changes in the database table will invalidate the cached data object which can be a dataset or a data source.

Steps to enable SQL Cache Dependency in ASP.NET 2.0
  • Enable notifications for the database.

  • Enable notifications for individual tables.

  • Enable ASP.NET polling using "web.config" file.

  • Finally use the Cache dependency object in your ASP.NET code.

Benefits and Limitations of using Cookies

Benefits
  • No server resources are required as they are stored in client.

  • They are light weight and simple to use.

Limitations

  • Most browsers place a 4096-byte limit on the size of a cookie, although support for 8192-byte cookies is becoming more common in the new browser and client-device versions available today.

  • Some users disable their browser or client device’s ability to receive cookies, thereby limiting the use of cookies.

  • Cookies can be tampered and thus creating a security hole.

  • Cookies can expire thus leading to inconsistency.

Object pooling in .NET

COM+ reduces overhead by creating object from scratch. So in COM+ when object is activated its activated from pool and when its deactivated it’s pushed back to the pool. Object pooling is configures by using the "ObjectPoolingAttribute" to the class.

ObjectPooling(MinPoolSize := 2, MaxPoolSize := 5, CreationTimeout := 20000)
Public Class testingclass
Inherits ServicedComponent
Public Sub DoWork()
' Method contents go here.
End Sub
End Class

Above is a sample code which has the "ObjectPooling" attribute defined. Below is a sample code which uses the class.

Public Class App
Overloads Public Shared Sub Main(args() As String)
Dim xyz As New TestObjectPooling()
xyz.doWork()
ServicedComponent.DisposeObject (xyz)
End Sub
End Class

Above is a sample code which uses the object pooled object. Note the DisposeObject() This ensures its safe return to the object pool.

What is DCOM ?

DCOM differs from COM in that it allows for creating objects distributed across a network, a protocol for invoking that object’s methods, and secures access to the object. DCOM provides a wrapper around COM, hence it is a backwards compatible extension. DCOM uses Remote Procedural Calls (RPC) using Open Software Foundation’s Distributed Computing Environment.

These RPC are implemented over TCP/IP and named pipes. The protocol which is actually being used is registered just prior to use, as opposed to being registered at initialization time. The reason for this is that if a protocol is not being used, it will not be loaded.

In order to inform an object that the client is still alive, periodic pinging is used. Hence, when the client has died and no ping has been received (to refresh it) before the expiration time, the server object will perform some clean up tasks (including decrementing its reference count).

Since RPC across a network are typically slow (compared to processes residing on the same machine), DCOM sends multiple requests in the same call. For example, in COM, the program performs a QueryInterface, one interface at a time. In DCOM, multiple QueryInterfaces are all clustered into one call.

This clustering optimization trick is also used when creating an instance of the object and serializing it with data. Since these two operations usually occur together, DCOM allows one method which will perform both operations in one call without waiting for an acknowledgment from the first task before performing the second one.

Similarly, when a client pings its server object, he can do it in one call. Moreover, if there are multiple clients sending pings to multiple servers, an optimization is made where the multiple pings going to the same object are consolidated into just one ping. This is to cut down on the use of precious bandwidth used only for pinging.

The client has the control to set the computer which will be responsible for the lifetime of the object. That is to say, these objects are not created just somewhere where the system resources and access privileges allow for it.

Call security is implemented in all four ways: authentication (to prevent false clients from impersonating the true client), authorization (to insure that a client only does what it is authorized to do), data integrity (to insure that data was not tampered with during transit) and data privacy (to insure that only designated sources can read it). The security issues are handled as they are on operating systems. The client gives the server various access privileges to access memory or disk space.

How to prevent .NET DLL to be decompiled ?

By design .NET embeds rich Meta data inside the executable code using MSIL. Any one can easily decompile your DLL back using tools like ILDASM (owned by Microsoft) or Reflector for .NET which is a third party. Secondly there are many third party tools which make this decompiling process a click away. So any one can easily look in to your assemblies and reverse engineer them back in to actual source code and understand some real good logic which can make it easy to crack your application.

The process by which you can stop this reverse engineering is using "obfuscation". It’s a technique which will foil the decompilers. There are many third parties (XenoCode, Demeanor for .NET) which provide .NET obfuscation solution. Microsoft includes one that is Dotfuscator Community Edition with Visual Studio.NET.

SharePoint from a Users Perspective

From a Users perspective SharePoint is a way of making documents and folders on the Windows platform accessible over the web. The user visits the SharePoint Portal web page, and from there they can add documents, change documents & delete documents. Through this Portal, these documents are now available for discussion, collaboration, versioning and being managed through a workflow. Hence the name "Share-Point". Details about the document can be saved too, such as: who wrote it, when, for whom, its size, and version, category or target audience. These can then be used to find the document through SharePoint's Search facility. Even documents not "in" SharePoint can be included in the search engine's index so they become part of the portal. All in all, it's a great way to get stuff up on the web for users with average technical skills, and for administrators to manage the content.

SharePoint from an Administration Perspective

Administering SharePoint mainly consists of setting it up, which is much easier than you expect, adding the content, which can be just dragging and dropping in whole directory structures and files, and then organizing the files better by giving them categories or other metadata. This is done either through the Web interface or through the SharePoint Client: a program what means you can access SharePoint as a Web folder and then right-click files to select options like "edit profile". Or add files by dragging them in individually or in bulk.

Setting the security is also important, using NT accounts, either NT4 or Active Directory (or both in mixed mode) you can give users access to files/folders the same way as you do in standard Windows. Users can be grouped and the groups given access privileges to help manage this better. Also SharePoint has 3 Roles that a User or Group can be given on a particular item. Readers can see the item (i.e. document/file or folder) but not change it, Authors can see and edit items and coordinators can set security privileges for the part of the system they have control over. Thus, you could set 12 different coordinators for 12 different folder trees, and they could manage who can do what within that area only.

SharePoint from a Technical Perspective

Technically SharePoint illustrates neatly what Microsoft's .net strategy is all about: integrating Windows with the Web. Microsoft has previously made accessing stuff on a PC easier, (Windows) then on a network (NT) and now on the web (.NET). SharePoint is an application written to let a user access a web accessible directory tree called the Web Storage System.

SharePoint was written with a set of technologies that allow the programmer to pass data, functions, parameters over HTTP, the web's medium. These are XML, XSL and SOAP, to name a few.

To the user it looks easy, like Hotmail, but every time they click a button or a link, a lot has to happen behind the scenes to do what they want to do quickly and powerfully. Not as easy as you might think, but SharePoint does it for you. Accessing this Web storage system and the server itself is also done using technologies like ADO, CDO, PKMCDO, LDAP, DDSC, ADSC. SharePoint is a great example of how the Internet Platform can be extended and integrated into an existing well adopted technology, Windows.

Business Benefits of MOSS 2007

• Provide a simple, familiar, and consistent user experience.

• Boost employee productivity by simplifying everyday business activities.

• Help meet regulatory requirements through comprehensive control over content.

• Effectively manage and repurpose content to gain increased business value.

• Simplify organization-wide access to both structured and unstructured information across disparate systems.

• Connect people with information and expertise.

• Accelerate shared business processes across organizational boundaries.

• Share business data without divulging sensitive information.

• Enable people to make better-informed decisions by presenting business-critical information in one central location.

• Provide a single, integrated platform to manage intranet, extranet, and Internet applications across the enterprise.

Advanced Features of MOSS 2007

  • User Interface (UI) and navigation enhancements
  • Document management enhancements
  • The new Workflow engine
  • Office 2007 Integration
  • New Web Parts
  • New Site-type templates
  • Enhancements to List technology
  • Web Content Management
  • Business Data Catalog
  • Search enhancements
  • Report Center
  • Records Management
  • Business Intelligence and Excel Server
  • Forms Server and InfoPath
  • The “Features” feature
  • Alternate authentication providers and Forms-based authentication