LINQPad è ormai il mio strumento preferito per l'interazione con Tridion tramite l'API del servizio principale.
Se si dispone solo di download a plain LINQPad, è possibile connettersi ai servizi di dati WCF (in genere noti come origini OData), ai database di SQL Server e al mercato di Azure Data Services. Poiché il servizio principale di Tridion non è di questi tipi, non è possibile creare una connessione persistente ad esso.
Ma è comunque possibile utilizzare LINQPad come alternativa leggera a Visual Studio attenendosi alla seguente procedura:
- Switch di LINQPad lingua a "C# Programma"
- incolla nel frammento di codice di seguito
- Aggiungi il riferimenti DLL necessari dallo snippet di codice
- Aggiungere i riferimenti Namespace necessari dallo snippet di codice
- Specificare i propri valori per nome host, nome utente e password
- scrivere il codice
LINQPad in grado di gestire più lingue. Il valore predefinito è "Espressione C#", il che significa che puoi semplicemente specificare una singola "istruzione" nel pannello del codice. Ciò funziona alla grande quando si lavora con es. Database SQL per i quali è disponibile un driver, ma non abbastanza per l'interazione con il servizio principale di Tridion. Quindi, per prima cosa è necessario passare dalla lingua "Espressione C#" alla lingua "Programma C#" nella barra degli strumenti nella parte superiore della query.
Dopo il passaggio lingua, io di solito comincio con il seguente testo standard
void Main()
{
// System.Runtime.Serialization.dll
// System.ServiceModel.dll
// System.Net.dll
// Namespaces:
// System.Net
// System.ServiceModel
// Tridion.ContentManager.CoreService.Client
var binding = new NetTcpBinding { MaxReceivedMessageSize = 2147483647, ReaderQuotas = new XmlDictionaryReaderQuotas { MaxStringContentLength = 2147483647, MaxArrayLength = 2147483647 } };
var endpoint = new EndpointAddress("net.tcp://<hostname>:2660/CoreService/2011/netTcp");
var DEFAULT_READ_OPTIONS = new ReadOptions();
CoreServiceClient client = new CoreServiceClient(binding, endpoint);
client.ChannelFactory.Credentials.Windows.ClientCredential = new NetworkCredential("<username>", "<password>");
try {
// TODO: fill in the blanks
} finally {
if (client.State == CommunicationState.Faulted) client.Abort(); else client.Close();
}
}
Dopo incollare questo codice, aprire la finestra Proprietà Query (F4) e aggiungi System.Runtime.Serialization.dll
, System.ServiceModel.dll
e System.Net.dll
alla scheda Riferimenti aggiuntivi. Assicurati di avere una copia di Tridion.ContentManager.CoreService.Client.dll sul tuo computer e aggiungi un riferimento anche a questo.(Puoi trovarlo in Tridion/bin/client sul tuo server)
Aggiungi System.Net
, System.ServiceModel
e Tridion.ContentManager.CoreService.Client
alla scheda Importa spazio dei nomi aggiuntivi.
Modificare i valori <hostname>
, <username>
e <password>
nel codice e verificare se la connessione ha esito positivo.
Dopodiché, completa gli spazi vuoti e inizia a divertirti con l'API del servizio principale.
Si consiglia di mantenere la documentazione dell'API Core Service (in formato CHM) sempre aperta. Con quello aperto ho scoperto che potevo arrivare abbastanza lontano anche senza il completamento automatico. E se si salva la query appena creato, si può facilmente clonare con Ctrl-Shift-C e hanno una query fresco con la lingua, i riferimenti DLL e namespace già compilato.
Aggiornamento
Un modo più semplice connettersi a Tridion da LINQPad è ora documentato qui: https://sdltridionworld.com/articles/sdltridion2011/using_linqpad_with_tridion.aspx
E il 404 è probabile perché LINQPad sta cercando/$ metadata che non esiste nel CoreService –
Accetto. Ricordare che il servizio principale viene implementato utilizzando WCF 3.5, che utilizza SOAP come predefinito. "Combinare la comunicazione Web-centrica con gli standard SOAP e WS- * in un unico stack di servizio e modello di oggetti è una delle caratteristiche che rende così avvincente WCF in .NET Framework 3.5", http://msdn.microsoft.com/it us/magazine/cc135976.aspx – robrtc
Nota: Tridion.ContentManager.CoreService.Client.dll è disponibile per SDL Tridion 2011 SP1. Dobbiamo generare la dll del client da soli se GA 2011 o Rollup aggiornamento rapido. –