09/01/2008

Tutorial: Sviluppare un cmdlet in C# (Livello base)

A cura di Efran Cobisi


Pagina 1 di 5

Nonostante Windows PowerShell includa di per sè un ampio numero di cmdlet pronti all’uso, talvolta si rivela utile, se non indispensabile, crearne di nuovi; la necessità di creare cmdlet ad hoc è determinata, ad esempio, dal desiderio di sfruttare i meccanismi di interoperabilità con il codice nativo offerti da .NET oppure, più semplicemente, per compilare (e quindi rendere più performante) una funzione definita in precedenza all’interno di uno script PowerShell.

Nel prosieguo dell’articolo viene analizzata la creazione di un semplice cmdlet, passo dopo passo, provvedendo a commentare i punti di maggior interesse; naturalmente il lettore consideri che, poichè questo testo vuole essere un mero punto di partenza, per ulteriori approfondimenti si rimanda all'SDK di PowerShell.


Cos’è un cmdlet?

Un cmdlet, prononunciato “command-let”, è un termine specifico di PowerShell ed indica una tipologia di comando eseguibile all’interno della shell. La shell dispone infatti di quattro tipologie distinte di comando: cmdlet, funzioni, script ed eseguibili nativi Win32.

È possibile ottenere la lista dei cmdlet disponibili eseguendo questo blocco di codice all'interno della shell:

Get-Command –CommandType Cmdlet

Ottenendo un risultato simile a questo:

CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
Cmdlet          Add-Member                      Add-Member [-MemberType] <PS...

Ciascun cmdlet è definito mediante una classe .NET che deriva da uno specifico tipo contenuto all’interno degli assembly di sistema di PowerShell. Poichè i cmdlet vengono dapprima compilati in una DLL e, successivamente, caricati nel processo di PowerShell quando la shell viene lanciata, questa categoria di comandi è probabilmente una tra le più performanti tra quelle disponibili e sicuramente la più conveniente in termini del rapporto performance / tempi di sviluppo.

Pagina 1 di 5

Commenti



Nessun commento disponibile.

Cobisi EmailVerify.NET is a Microsoft .NET software component that validates email addresses. valid email