SharePoint 2010 Architecture Diagram


I came across this intelligent diagram that describes the SharePoint 2010 Architecture it as release as a part of SharePoint practices and patterns blog.

Top level model-patterns

Advertisements

Programming Performance Point Services 2010 – Create a new Standard KPI


This Post is a Part of Programming PeformancePoint 2010 Series.

public IKPI CreateNewDefaultKPI(string listURL,string kpiName,string description,LocationManagement.Location displayFolder)
        {
            Kpi newKpi = Kpi.CreateNew();
            newKpi.Name.Text = kpiName ;
            newKpi.Description.Text = description;
            // Set the DisplayFolder
            if (displayFolder != null)
            {
                newKpi.Folder = displayFolder.Path;
            }

            // Fixed value actual
            newKpi.Actual.DataSourceLocation = new RepositoryLocation(Constants.FixedValuesDataSourceLocationKey);
            newKpi.Actual.ModelCurrent = 80;    // this sets the value for the actual

            // Fixed value target
            Target target1 = new Target();
            target1.Guid = Guid.NewGuid();
            target1.Name.Text = "Target";
            target1.DataSourceLocation = newKpi.Actual.DataSourceLocation;
            target1.ModelCurrent = 100; // this sets the value for the target
            target1.IndicatorLocation =
                BuiltinIndicators.GetIndicatorByCode(BuiltinIndicators.IndicatorCode.ShapesJagged3Small).Location;
            target1.Pattern = KpiPattern.IncreasingIsBetter;
            target1.RelatedActualId = newKpi.Actual.Guid;
            // set up the banding; 3 bands: < .5; .5 - 1.0; > 1.0
            target1.Banding.ActualWorst = 0;
            target1.Banding.Type = BandType.Normalized;
            target1.Banding.SpreadMaximum = 1.2M;
            target1.Banding.SpreadMinimum = 0;
            target1.Banding.CustomBoundary.Add(.50M);
            target1.Banding.CustomBoundary.Add(1M);
            newKpi.Targets.Add(target1);
            newKpi = PPSWebService.GetInstance().WebService.CreateKpi(listURL, newKpi);
            return new KPI(newKpi);

        }

Part of the Question I always get is how can I create a new Performance Point KPI, The Above function will help you through it.

Install SharePoint 2010 Complete on Domain Controller


If you are a Developer you may need to create a Single Machine that contains SharePoint 2010 , VS 2010 and the Machine is a Domain Controller

The Problem is : SharePoint 2010 don’t support Complete Installation on Domain Controller

to Over Ride this Behavior

  1. 1. Open Command Line
  2. 2. Extract the OfficeServer.exe File C:\Users\Administrator\Desktop\14.0.4730.1010_OfficeServer_none_ship_x64_en-us.exe /extract:c:\SP2010\
  3. 3. Run the Setup using the following Command:
    setup /config c:\SP2010\Files\SetupFarm\config.xml

 

Hopes this help

Programming Performance Point Services 2010 – Part 2 (Create a new DataSource In Performance Point Programmatically)


Check the First Post (Click Here)

The Below function will allow you to create a new DataSource inside Performance Point

public IDataSource CreateNewAnalysisServicesDataSource(string dataSourceName,string serverName,string databaseName,string cubeDisplayName,DSConnectionContext connectionContext)
        {           
// Get a New Instance from the Service 
PPSWebService service = PPSWebService.GetInstance();         
  // Create a new Data Source Instance 
DataSource newDS = DataSource.CreateNew();            
newDS.Name.Text = dataSourceName;            
newDS.Description.Text = "Created By System";
newDS.ServerName = serverName;            // Set the Data Source Type to Analysis Services Type newDS.SourceName = "ADOMD.NET"; newDS.CubeName = cubeDisplayName; newDS.MinutesToCache = 10; newDS.ContentType = FCOContentType.PpsDataSource;
// Set the Connection Type Based on Enumerator 
if(connectionContext == DSConnectionContext.PerIdentity)            
{            
newDS.ConnectionContext = ConnectionContext.ConnectAsUser;            
}else if(connectionContext == DSConnectionContext.SharedUser)            
{                
newDS.ConnectionContext = ConnectionContext.ConnectAsSharedUser;            
}

newDS.DatabaseName = databaseName;

// Request the Service Instance to Create the DataSource 
PPSWebService.GetInstance().WebService.CreateDataSource(Configurations.PerformancePointDefaultDataConnectionsList, newDS);

return new Datasource(newDS);

        }

To be Able to restore the DataSource Again Always Store the List URL (Relative Path and the Item Index in your Data Store)

The Default List Should be store in a Relative Path like the below sample:

“Data%20Connections%20for%20PerformancePoint/”

Feel free to Contact me for more info mahmoud.m.moussa@live.com

Programming Performance Point Services 2010 – Part 1 (Communicate with the Service)


I’ll Start My PerformancePoint 2010 Programming Set with the the Basics how to communicate with the the PPS Monitoring Service

Monitoring Service

First you need to know where is the service URL:
http://<Your Site URL>/_vti_bin/pps/PPSAuthoringService.asmx

Try to type the Above URL in your browser to make sure you can communicate with the server

The Required Assemblies

To Access the Performance Point you need to include these set of Microsoft.PerformancePoint.Scorecards to your project

This Assemblies is available in GAC

The Namespaces

using Microsoft.PerformancePoint.Scorecards;
Create The Service Proxy Instance
IBIMonitoringAuthoring pmService;

pmService = BIMonitoringAuthoringServiceProxy.CreateInstance(
http://<Your Site URL>/_vti_bin/pps/PPSAuthoringService.asmx);
Some Notes You need to know 

1. The PerformancePoint Items you need to create should be added to the same site you’re accessing from the Performance Point Service
 
By Now you have access to the Monitoring Services and you can start working with your Performance Point Items 
Keep your feeds ready for more posts in PerformancePoint Programming.
 

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }