Freitag, November 10, 2006, 10:05 AM
Endlich gibt es neue Visual Studio 2005 Templates zur WebPart-Erstellung!Mit den neuen Templates können auch vorkonfigurierte SharePoint Services 3.0 Seiten erstellt werden, aber für die Arbeit mit Office Sharepoint Server 2007 ist das automatische Deployment von WebParts der wichtigste Aspekt.

In den Configuration Properties des WebParts kann man die Ziel-SiteCollection des SharePoint Servers angeben:

so dass bei Drücken der Taste F5, automatisch das WebPart:
- kompiliert wird
- in den Global Assembly Cache aufgenonnen wird
-und In die WebPart Gallery der angegeben SiteCollection aufgenommen wird
Durch verwendung des GAC wird leider jedes Mal ein iisreset durchgeführt, und jedes zukünftige Deployment dauert etwas länger als die manuelle Variante, bei der man das WebPart im Bin-Verzeichnis installiert.
Nachtrag:
Die Installation im GAC hat sich als unpraktisch erwiesen. Wir deployen unsere WebParts nur noch in den BIN-Ordner WebApplication.
Download unter:
http://www.microsoft.com/downloads/deta ... laylang=en
Quelle:
http://blogs.gotdotnet.com/alexma/archi ... r-wss.aspx
| Permalink
| Related Link
Donnerstag, November 9, 2006, 09:55 AM
Will man manuell in WebParts Tabellen im SharePoint Server anzeigen, ist es ratsam, die gleichen Stylesheets zu verwenden, wie in den Standard-Tabellen. So passen sich auch die eigenen Tabellen an, wenn das Theme oder die Styles geändert werden.Grundstruktur der Listing-Tabellen einer Form Library:
<table class="ms-listviewtable">
<tbody>
<tr class="ms-viewheadertr">
<th class="ms-vh2"></th>
</tr>
<tr>
<td class="ms-vb-icon">ICON</td>
<td class="ms-vb2">Text</td>
</tr>
</tbody>
</table>Mittwoch, November 8, 2006, 11:40 AM
Ein editierbares Property für ein WebPart anzulegen funktioniert auch mit den neuen, von WebPart abgeleiteteten Klassen genauso wie bei der 2003er Version.Beispiel für ein einfaches Textfeld:
protected string _Text;
[Personalizable(), WebBrowsable(true), WebDisplayName("Variable Text"), WebDescription("Enter an individual text to display in the WebPart.")]
public string Text {
get { return _Text; }
set { _Text = value; }
}Dienstag, November 7, 2006, 03:10 PM
Um auf die Inhalte einer beliebigen Liste zuzugreifen, die sich nicht auf der aktuellen SharePoint Site befindet und nicht als WebPart eingebunden werden kann, schreibt man sich am besten ein eigenes Webpart um beliebige Inhalte anzuzeigen. Die Grundstruktur kann dabei wie folgt aussehen:Alle Zeilen aller Felder der aktuellen View aus einer definierten Liste anzeigen:
// Als WebPart am besten den Current Context beziehen, als externe Appl. aber von außen zugreifen:
// SPSite currentSite = SPContext.Current.Site;
SPSite site = new SPSite("http://devserver:8092");
SPWeb web = site.OpenWeb();
SPList list = web.Lists.GetList(new Guid("fa35db75-1ebd-40ea-9962-d242f88cfb10"), false);
SPView view = list.DefaultView;
// Spaltennamen der DefaultView ausgeben:
foreach (string viewField in view.ViewFields) {
txt_Debug.Text += viewField + ", ";
}
txt_Debug.Text += "\r\n";
// Spalteninhalte jeder Listenzeile ausgeben:
foreach (SPListItem item in list.Items) {
txt_Debug.Text += item.Url + ": ";
foreach (string viewField in view.ViewFields) {
txt_Debug.Text += item[viewField] + ", ";
}
txt_Debug.Text += "\r\n";
}
Freitag, November 3, 2006, 05:55 PM
TopLevel Sites sind direkt der WebApplication untergeordnet. In ihnen befinden sich die Webs.Nur wenige Zeilen Code sind nötig, um eine TopLevel Site unter einer WebApplication zu erstellen:
SPWebApplicationCollection webApplicationCollection = SPWebService.ContentService.WebApplications;
SPSite newTopLevelSite;
newTopLevelSite =webApplicationCollection["WebApplicationName"].Sites.Add(
"/sites/autoAdd", "AutoAdd Title",
"AutoAdd Description", 1033, SPWebTemplate.WebTemplateSTS, "SERVER\\Administrator",
"Administrator", "Administrator@server");
newTopLevelSite.Dispose();Hinweis:
SPSite Objekte (und andere) sollten nach Gebrauch mit Dispose() zerstört werden, da sie sehr lange im Speicher verweilen, bis der Garbage Collector sie freigibt.
Da es jedoch mitunter sehr lange dauern kann, bis eine SiteCollection angelegt ist, solle man die Add Methode lieber in einem Asynchronen Prozess starten, um nicht die Kontrolle zu verlieren und ggf. dem Anwender Informationen zum Status zu zeigen.
TopLevel Site Erstellung mit Status-Anzeige unter Verwendung eines Delegates:
SPWebApplicationCollection webApplicationCollection = SPWebService.ContentService.WebApplications;
SPSiteCollection siteCollection = webApplicationCollection["FormsTest"].Sites;
SiteCreationDelegate createSite = new SiteCreationDelegate(siteCollection.Add);
IAsyncResult asyncResult = createSite.BeginInvoke("/sites/autoAdd",
"AutoAdd Title", "AutoAdd Description", 1033, SPWebTemplate.WebTemplateSTS,
"SERVER\\Administrator", "Administrator", "Administrator@server", null, null);
while (!asyncResult.AsyncWaitHandle.WaitOne(1000, false)) {
txt_Debug.Text += "Waiting: " + DateTime.Now.ToString("HH:mm:ss.ffff") + "\r\n";
txt_Debug.Refresh();
}
SPSite createdSite = createSite.EndInvoke(asyncResult);
txt_Debug.Text += "Site erstellt: " + createdSite.ToString();
createdSite.Dispose();Informationen:
http://msdn2.microsoft.com/en-us/library/ms778813.aspx
http://www.microsoft.com/germany/msdn/l ... x?mfr=true
Zurück Weiter

Calendar



