martedì 23 agosto 2011
lunedì 22 agosto 2011
Azure & Sharepoint 2010
Vediamo come possiamo creare un DB SQL Azure e come esporre i dati tramite interfaccia Microsoft Sharepoint 2010.
Partiamo
quindi con la creazione del nuovo database utilizzando l’interfaccia
web, facendo login sul portale di Windows Azure all’indirizzo https://windows.azure.com con le nostre credenziali.
Una
volta entrati, scegliamo la voce “Database” dal menu di sinistra, poi
l’opzione “Create” dalla barra dei Ribbon posizionata nella parte alta
della pagina ed inseriamo il nome che avrà la nostra nuova base di dati.
Abbiamo cosi creato un DB vuoto e possiamo ora creare una tabella tramite l'utilizzo (SQL Server 2008 R2 Management Studio).
L'accesso al DB è le normali attività che possiamo eseguire, sono le stesse che possiamo eseguire usando un db installato su un SQL server classico.
Riferimenti:
Sharepoint OnLine - Articolo
Ottimo articolo di Chris Mayo, dove potete anche trovare un esempio:
Link
Buona lettura.
MVP Pattern - Sharepoint webpart
Link 1
Link 2
Link 3
Qui trovate una guida, anzi una gran libro:
SharePointGuidance2010.pdf
Good...!!!!
Sviluppi WCF REST (sharepoint)
Ultimamente mi è capitato di dover sviluppare per un cliente un servizio WCF Rest, da utilizzare in un applicazione mobile sotto sharepoint.
Lo sviluppo non è molto differente da un classico servizio WCF, serve solo un pò di accuratezza.
come prima cosa creiamo un progetto sharepoint (in Visual studio 2010)
Inseriamo nel progetto un riferimento alla Cartella "ISAPI" di sharepoint.
Cliccando con il tasto destro sul progetto come da figura:
A questo punto non ci resta che creare il nostro servizio.
Nella cartella "ISAPI" sono stati inseriti 2 file:
1. AccessList.svc
2. Web.config
AccessList.svc:
<%@ ServiceHost Debug="true" Language="C#" Service="[NameSpace].AccessList, [NameSpace], Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxx" CodeBehind="AccessList.cs"
Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressDataServiceHostFactory, Microsoft.SharePoint.Client.ServerRuntime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx" %>
Microsoft.SharePoint.Client.Services.MultipleBaseAddressDataServiceHostFactory (utilizzare il REST)
Web.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<!-- we need this to enable session -->
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<behaviors>
<endpointBehaviors>
<!-- our configuration for rest relies on web http -->
<behavior name="RestBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<!-- a selection of security bindings that you can use in the service registration below-->
<binding name="WindowsAuthenticationBasicHttpBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
</binding>
<binding name="NoSecurityHttpBinding">
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
</webHttpBinding>
</bindings>
<services>
<!-- register our wcf service -->
<service name="[NameSpace].AccessListBehavior" >
<endpoint address=""
binding="webHttpBinding"
behaviorConfiguration="RestBehavior"
contract="[NameSpace].IAccessList"
bindingConfiguration="NoSecurityHttpBinding">
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
nel web.config si occupa di esporre il servizio.
Nel file AccessList.cs:
[ServiceBehavior]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class AccessList : IAccessList
{
SPList oList;
string _CurrentURL = string.Empty;
public System.Collections.Generic.List<entry> GetUFList(string list, ...
{
...
}
}
viene scitto il codice che si occupa di erogare il servizio vero e proprio.
Nel file IAccessList.cs:
è presente il contract del servizio:
[ServiceContract]
public interface IAccessList
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare]
public System.Collections.Generic.List<entry> GetUFList(string list, ... )
Facciamo il deploy sul server Sharepoint, a questo punto il servizio può essere richiamato nel seguente modo:
http://[Server]:[Port]/_vti_bin/listaccess/accesslist.svc/
Approfondimenti:
http://msdn.microsoft.com/it-it/magazine/dd315413.aspx
Nuove certificazioni microsoft
- Exam 70-573: TS: Microsoft SharePoint 2010, Application Development
http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-573
- Exam 70-576: PRO: Designing and Developing Microsoft SharePoint 2010 Applications
http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-576
- Exam 70-667: TS: Microsoft SharePoint 2010, Configuring
http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-667
- Exam 70-668: PRO: Microsoft SharePoint 2010, Administrator
http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-668
sharepoint - cancellare tutti gli elementi da una lista
il modo migliore per cancellare tutti gli elementi di una lista da codice, non è usare un classico ciclo e cancellare un elemento per volta.
Ma il modo più veloce:
private void DeleteAllListItems(SPList currentList, SPWeb web)
{
StringBuilder sbDelete = new StringBuilder();
sbDelete.Append("
foreach (SPListItem item in currentList.Items)
{
sbDelete.Append("
sbDelete.Append("
sbDelete.Append("
sbDelete.Append("
sbDelete.Append("
}
sbDelete.Append("
try
{
web.ProcessBatchData(sbDelete.ToString());
}
catch (Exception ex)
{
Console.WriteLine("Delete failed: " + ex.Message);
throw;
}
}
ciao
(Sharepoint 2010) Claims based authentication
foglio Office excel in c# (cambio lingua) - in webpart
il problema si presentava quando dovevo poi eseguire la select su tale foglio....una soluzione può essere la seguente
OleDbConnection objConn = new OleDbConnection(connString.ToString());
objConn.Open();
DataTable mDt = null;
mDt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
DataRow mRowSheet = null;
mRowSheet = mDt.Rows[0]; //Prendiamo il nome del primo tab - Foglio
string nameSheet = mRowSheet["TABLE_NAME"].ToString();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM " + nameSheet, objConn); //Facciamo la select e estrapoliamo i dati
social computing e la collaborazione
Sharepoint 2010 - Limite massimo item in list
- Numero massimo di voci di elenco è di 50 milioni
Vincola che bloccano gli elenchi:
- Max di 8kb di dati per voce di elenco (non compresi gli allegati)
- Massima di sei campi proiettato ammessi su entra a far parte
Sharepoint 2010 - Backup/Recover/Upgrade Changes
La prima features è l'uso di database di sola lettura che è stata resa disponibile a partire da Office SharePoint Server 2007 Service Pack 2. SharePoint Server 2010 ora riconosce un content database se è stato reso di sola lettura in SQL Server e tagliare l'interfaccia utente, come se tutte le site collection fossero in sola lettura. Ciò consente agli utenti l'accesso in lettura al contenuto, mentre l'aggiornamento ha sta ancora girando.
2. Patching improvements - La patch interfaccia utente di gestione e reporting cmdlet patch consentire il monitoraggio delle patch in tutta farm. Ci sono anche patch status che avverte l'amministratore usando degli alert, che vi sono delle inconsistenze.
3. Granular Backup/Restore - da Amministrazione centrale (non solo nei STSADM) - tra cui il recupero del documento unico
4. Recover data from unattached content database - non è necessario allegare il backup dei contenuti del database di SQL Server per recuperare i dati
5. Browse the content of a content database - che è collegata a un server SQL, ma non associati a SharePoint Server
6. Automatic failover
7. Workflows are not Imported/Exported - quando si export/ import i flussi di lavoro del sito non saranno inclusi, è necessario spostare manualmente
articolo:http://sharepoint-sandbox.com/index.php?/SharePoint-2010/Maintenance/sp2010-backuprecoverupgrade-changes.html?directory=14
Sharepoint 2010 - I nuovi servizi
SharePoint 2010 offre il nuovo modello architettonico di servizi, deprecando l'approccio SSP completamente.
Invece di questo SharePoint 2010 fornisce nuovo approccio che facilita la condivisione tra le applicazioni web e raccolte siti
Service Name
Service Description
Access Services
Enables users to view, edit, and interact with Microsoft Access databases in a Web browser.
Application Registry Service
Enables users to search and collaborate around business data.
Business Data Catalog
Enables structured data from line-of-business applications, such as SAP and Siebel systems, to be integrated into SharePoint Server "14".
Excel Services
Enables users to view and interact with Microsoft Excel spreadsheets in a Web browser.
Lotus Notes Connector
Enables users to search data on a Lotus Notes server.
Managed Metadata Service
Enables teams or departments to manage their own taxonomy, hierarchies, keywords, and social tagging infrastructure, so that, for example, taxonomies and content types can be shared across the organization (across site collections and web applications)
People
Enables users to search for people within their organization to, for example, find skills, memberships within enterprise communities, and shared interests.
Performance Point Service
Balanced scorecard and dynamic dashboard tool that allows power users/IT to create dynamic and highly interactive dashboards that display strategy to operations. Performance Point Services allows you to combine multiple data sources, and objects providing a single view of the business
Search Service Application
Enables user to index content, gather information, and perform search queries.
Secure Store Service
Enables users to store data securely, and associate it to a specific identity or group of identities.
State Service
Enables users to temporarily store user session data for SharePoint Server "14" components.
Usage and Health data collection
Collects farm-wide usage and health data, so that users can view usage and health reports.
Visio Graphics Service
Enables users to view and refresh published Visio diagrams.
Web Analytics Web Service
Collects data about how users access pages in a deployment of SharePoint Server, such as the search engine used and keywords that the end user types to find a site.
Word Conversion Service Application
Enables users to perform automated bulk document conversions.
caricare un swf - sharepoint 2010
Sembra una cosa banlissima ma non lo è!!!!
- andare in Application Management, Manage Web Application
- dalla lista delle web application, posizionarsi su quella da modificare per poi selezionare la voce General Settings dal menu General Settings
-cercare “Browser File Handling” e selezionare “Permissive” al posto di “Strict”.
e dopo questa semplice operazione il gioco è fatto....
Deploy in sharepoint 2010 - errore permessi
La soluzione è semplice, mancano i permessi sul DB content, basta aggiungere nella security del DB l'utente che che si utilizza per fare il deploy (es: accediamo alla macchina con un utente di dominio, apriamo visual studio, lanciamo il deploy e ci da errore, aggiungendo l'utente sul DB content con i permessi giusti tale problema scompare)......
spero di essere stato chiaro :)
Autocomplite(jquery) - in sharepoint
Provider model asp.net 2.0
http://dotnetside.org/blogs/articoli/pages/Servizi-basati-su-Provider-Model-in-ASP.NET-2.0.aspx
CustomActions SharePoint
Qui di seguito sono riportati un paio di esempi che ho trovato utile in
fase di test di recente. Il progetto di esempio aggiunge due
elementi in una visualizzazione elenco uno per il'EditControlBlock', che consente di creare una copia dell'elemento selezionato elenco e un
altro che aggiunge una voce al menu Azioni, che ti permette di eliminare tutti
i elementi nella lista corrente.
L'aggiunta di elementi viene eseguita tramite una funzione e alcune azioni
personalizzate. Le azioni sono solo i puntatori a Pagine
aspx nella cartella _layouts e queste pagine effettivamente eseguono la copia e
la cancellazione di SPListItems.
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="App.DuplicateListItem"
Location="EditControlBlock"
Title="Copy Item..."
RegistrationType="ContentType"
RegistrationId="0x01">
<UrlAction Url="~site/_layouts/TheKidListActions/CopyListItem.aspx?List={ListId}&ID={ItemId}"/>
</CustomAction>
<CustomAction
Id="App.ClearListItems"
Location="Microsoft.SharePoint.StandardMenu"
GroupId="ActionsMenu"
Title="Delete All Items"
RegistrationType="List"
Sequence="10">
<UrlAction Url="~site/_layouts/TheKidListActions/ClearList.aspx?List={ListId}"/>
</CustomAction>
</Elements>
Nota:
In “<UrlAction Url=" “ viene indicata la URL chimata in seguito all’azione
scelta. Nella query string viene usata ListId e ItemID per indicare l’id del Item o della Lista. Le altre due possibilità sonoItemUrl e siteurl.
E 'anche degno di nota il RegistrationType del CustomAction voce copia. Questo si può vedere è la registrazione di per sé dal tipo di contenuto e
sta utilizzando una RegistrationId di 0x01.In questo modo viene registrata per tutte le
liste in SharePoint. Per maggiori dettagli su come SharePoint
decide quali elementi appaiono nella EditControlBlock si dovrebbe avere uno sguardo al file Core.js in SharePoint. Il file Core.js contiene una funzione chiamata InsertFeatureMenuItems che decide quali elementi verranno
visualizzati nel menu per ogni elemento della lista.
Faccio il Deploy delle nuove Features:
<Feature Id="27C737D3-EE8C-4FD0-8A56-2A09F0169E9F"
Title="Decatec.ProgerDataTransfer.CtypeCentralAdmin"
Description=""
Version="1.0.0.0"
Scope="Site"
Hidden="False"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="MyCatomAction\MyCatomAction.xml" />
</ElementManifests>
</Feature>
End.