Het mysterieuze SharePoint fouten oplossen.

Overzicht:

Foutopsporing is moeilijk bij het ontwikkelen van aangepaste functionaliteit voor Windows SharePoint Services 3.0 (WSS) of een Microsoft Office SharePoint Server (MOSS). De belangrijkste beklaagde is dat SharePoint normaal weinig diagnostische gegevens op de webbrowser oppervlakken wanneer een fout optreedt. Deze blog entry wordt beschreven hoe u extra systeem gegenereerde diagnostische om informatie te vinden die kan vaak dat extra beetje van detail dat men nodig heeft om te identificeren oorzaken. Dit kan vervolgens leiden tot het oplossen van het probleem.

Ik heb deze techniek met succes gebruikt om op te lossen anders mysterieuze fouten.

Aanpak:

SharePoint bespaart een heleboel informatie aan een diagnostische logboek in een logboekbestand in de 12 korf.

De "12-component" bevindt zich gewoonlijk in bij "C:\Program FilesCommon FilesMicrosoft SharedWeb Server Extensions12 ". (Ik ben niet zeker of het is mogelijk voor de 12 korf te leven ergens anders, Eigenlijk).

Het idee is om het huidige logboekbestand zoeken, dwingen de fout en opent u het logboekbestand snel. Deze logboekbestanden worden gekenmerkt door:

  • Overvloedige hoeveelheden van informatie. SharePoint genereert een zeer groot bedrag van diagnostische gegevens en schrijft het naar het logboekbestand zeer snel. Je moet snel met de vingers om het te vangen.
  • Veelheid. SharePoint wordt niet schrijven naar één logboekbestand maar eerder genereert meerdere logboekbestanden in volgorde.
  • Kopieer en plak mooi in MS Excel.

Mijn favoriete methode:

  1. Open een windows Verkenner naar de 12 hivelogs.
  2. De weergave te tonen door wijzigingsdatum sorteren (meest recente eerst).
  3. Markeer het meest recente logboekbestand.
  4. In een web browser-venster, dwingen de fout.
  5. Snel het huidige logboekbestand openen en de inhoud ervan kopiëren naar MS Excel.
  6. Springen naar het einde en de relevante posten analyseren.

Andere notities:

Standaard, het diagnoselogboek bevindt zich in de 12 hiveLOGS directory.

MS Best practices (Volgens Mike T. van Microsoft) staat dat de logboekbestanden moeten worden opgeslagen op een aparte harde schijf. Men doet dit via centrale admin. Uw systeembeheerder kan dit hebben gedaan, in dat geval zou u uiteraard moet het logboekbestand er in plaats van de standaard te vinden 12 korf locatie).

Deze ingang vraagstukken zoals:

  • SharePoint-werkstroom kan niet worden gestart wegens een interne fout.
  • (meer worden toegevoegd na verloop van tijd)
  • Dit bericht nuttig diagnose van werkstroomfouten geweest (bijvoorbeeld. "De werkstroom kan niet worden gestart wegens een interne fout").

MOSS: Effectieve Inleiding tot een organisatie

(Deze ingang kruis gepost tussen http://paulgalvin.spaces.live.com/blog/ en http://blogs.conchango.com)

De postings op deze site zijn mijn eigen en niet noodzakelijkerwijs Conchango van posities, strategieën of adviezen.

Overzicht:

Deze ingang wordt beschreven wat achtergrondinformatie over een grote (3,000 gebruikers) Microsoft Office SharePoint Server (MOSS) implementatie en wat we deden om het project rollend op zodanige wijze dat de klant blij is en stevig op een weg die eindigt met volledige goedkeuring van de eigenschapreeks MOSS. Zoals voor het schrijven van de post, We zijn ongeveer 50% compleet met de eerste fase van het project. Als dingen vooruitgang, Ik zal deze post bijwerken en/of schrijven nieuwe posten.

In dit specifieke geval, het bedrijf had al geïnstalleerd van SharePoint Portal Server 2003. De IT-groep het product in een soort van "laten we eens kijken als iemand cares geïnstalleerd" mode. Het was snel aangenomen door veel zakelijke gebruikers en werd erg populair in de onderneming in het algemeen. Zoals u zich kunt voorstellen, Dit was niet de beste uitrol-strategie (die de klant gemakkelijk toegeeft) en toen MOSS op het toneel aankwamen, de client herleid tot "do it recht" en huurde ons om hen te helpen.

Een van de centrale vragen geconfronteerd toen we begonnen met uitvoering van dit project was: Hoe we MOSS kennismaken met deze client? Gezien het feit dat de client had al ervaring met SharePoint, We vroegen ons af — we hebben nodig om te doen "differentiële" opleiding of doen die we vanaf de grond starten? Na het werken met key-users, wij vastgesteld dat dit te behandelen als een groene veld project meer zinvol.

Dat besluit gaf een uitgangspunt, maar nog steeds ons met de belangrijkste voorwaarde van het uitzoeken van een goede strategie voor MOSS uitrollen naar de onderneming. MOSS is een dergelijke grote dier … Het omvat inhoud beheer, documentbeheer, zoeken, veiligheid, doelgroepen, projectbeheer, "fabulous veertig" sjablonen, werkstroom, zakelijke gegevens verbindingslijn, etc. Koppel dit aan het feit dat er een grote organisatie die kan echt gebruikmaken van vrijwel elke grote MOSS functie en je hebt het zich om een groot project met een onderneming bereik en veel goede dingen gebeuren.

We zijn geconfronteerd met deze kwestie keer op keer … MOSS is een onderneming bereiken met de enterprise functieset, nog hebben zelfs enigszins geavanceerde clients een harde tijd het geestelijk opvangen die functies, Laat alleen het opnemen van een aanzienlijk deel van hen in hun dagelijkse routine.

Ik heb niet een magische oplossing voor het probleem. In plaats daarvan richt ik mij slechts de allereerste stappen die we hebben genomen met de cliënt om te hen leiden de weg naar succes op lange termijn goedkeuring.

Toepassingsgebied:

Zo veel als ik het team wilde om een projectplan dat dergelijke mijlpalen als 'PoepleSoft integratie via de voltooid BDC' opgenomen ambacht, "Nieuwe Cross-departementele Product lancering Workflow voltooid" en "Uitvoerend Management KPI geaccepteerd", Ik moest genoegen nemen met iets minder. Dit is niet te zeggen dat "minder" is slecht. Eigenlijk, de "less" dat hebben we voor de eerste uitrol besloten was mijlen voor waar zij waren voordat we begonnen. In ons geval, de "less" omgezet in:

  • Eenvoudig documentmanagement met behulp van documentbibliotheken, versie controle en inhoud typen.
  • Effectief zoeken op basis van inhoudstypen en aangepast voorschot zoeken (via beheerde eigenschappen, XSLT om mooie resultaten te produceren, etc).

Naast de bovenstaande ondernemingswijde functies (Wat betekent dat ze moesten worden uitgerold naar alle afdelingen en gebruikers), Wij toegevoegd de volgende singleton in-scope mini-projecten:

  • Bewijs van concept BDC integratie.
  • Meerdere stappen en multi tak workflowproces gemaakt via EPD.
  • Complexe InfoPath-formulier.
  • Bestrating KPI's voor sommige bedrijfsproces (waarschijnlijk HR talent acquisitie in ons geval, Hoewel dat kan veranderen).

De reikwijdte hier is niet 100% nauwkeurige maar vertegenwoordiger van onze aanpak en voldoende voor mijn doel hier, welke is om uit te leggen wat ik beschouw als een "doeltreffend" invoering van MOSS die zal de klant stevig naar beneden het gouden pad ingesteld op volledige MOSS aanneming.

Ik zal niet veel meer over de singleton schrijven in deze post. Ik wil erop wijzen dat deze deel van onze overkoepelende strategie uitmaken. Het idee is om de kern document beheer en zoek functies voor alle gebruikers implementeren maar bieden hoogfunktionele, hoge zichtbaar en zeer representatieve voorbeelden van andere MOSS kernfuncties die gewoon buiten het vermogen van de meeste gebruikers te vangen in dit vroege stadium. Echter, zij zullen "out there" en men hoopt dat andere business units zal weten of over hen leren en deze functies wilt gebruiken voor zichzelf, leidt tot grotere aanneming. Deze succesverhalen singleton ook dienen om ons verkoopteam "munitie" voor het met succes het winnen van tweede, derde en n-fase projecten.

Wat wij introduceren en waarom?

Hebben afgerekend op documentbeheer en zoek als een basislijn ondernemingswijde eis, we nodig om te starten met het verzamelen van details. Als een praktische kwestie, Dit draaide rond inzicht in hun documenten en die uiteindelijk toegewezen aan het begrip van inhoudstypen.

Ik heb gevonden is het moeilijk uit te leggen van inhoudstypen zonder visuele aides. Meer technische folk kan lopen van een discussie over inhoudstypen wanneer CT's worden beschreven in databasetermen. "A CT is soortgelijk aan een databasetabel, het heeft kolommen en kolommen worden gedefinieerd in termen van gegevenstypen, maar CT gegevenstypen bevatten meer dan eenvoudige geheel getal/datum, maar ook "keuze" en "lookup" en dergelijke." We kunnen praten over het "uitbreiden" inhoudstypen, net als een kan functionaliteit overnemen van een basisklasse in objectgeoriënteerde talen. Maar dit is uiteraard niet nuttig zijn voor het vervoer departement admin persoon die geen technische achtergrond heeft. H.D., bijna iedereen dat de zaken in een uitrol MOSS.

Met behulp van een wit bord is dubieus. Ik heb het idee van een inhoudstype en getekende briljant gepresenteerd (of zodat ze lijken) foto's van inhoudstypen en wat ze doen voor u in termen van zoek en hoe zij kunnen worden uitgebreid, etc. In het einde, het voelt alsof sommige lampen hebt ingeschakeld, maar het resulterende beeld wit bord is een puinhoop.

Dit leidde ons naar onze huidige en zo ver meest effectieve landing plaats: een MOSS sandbox-website is geconfigureerd om aan te tonen deze functies.

Met behulp van de sandbox-site, We laten zien:

  • Inhoudstypen:
    • Het creëren van een CT met meerdere gegevenstypen (tekst, datum, keuze, Boolean, opzoeken, etc).
    • Een CT uit te breiden door het creëren van een nieuwe CT op basis van een ouder.
    • Documenten zoeken via CT metagegevens.
  • Documentbibliotheken:
    • Een enkele CT koppelen aan een bibliotheek.
    • Wat gebeurt er als wij een document naar de bibliotheek uploaden?
    • Meerdere CT's koppelen aan een documentbibliotheek.
    • Wat gebeurt er als wij een document naar de bibliotheek uploaden?
    • Filteren en sorteren via kolomkoppen in een doc-lib.
    • Bibliotheek documentweergaven:
      • Sorteren
      • Groeperen
      • "Quick entry" (gegevens bladweergave)
      • "Niet-gecodeerde gegevens" (om te helpen met de migratie naar MOSS uit andere inhoudsbronnen; meer hierover hieronder).

De sandbox-Site:

We onze sandbox-site een permanente functie in de ontwikkelomgeving moet worden gebruikt voor opleidingsdoeleinden lang nadat wij het project ontworpen en opgenomen van verschillende artefacten, zoals wordt beschreven:

Inhoudstypen:

Hebben we de volgende inhoudstypen gedefinieerd: Factuur, Inkooporder, Servicefactuur.

Wij hebben gekozen factuur en aankoop volgorde omdat ze min of meer universeel onder
stond entiteiten. Iedereen in zaken begrijpt dat een factuur is een aanmaning tot betaling aan een klant voor een bedrag afgegeven op een bepaalde datum worden betaald volgens sommige Betalingscondities. Dit leidt tot een natuurlijke definitie van een CT die we genaamd 'opleiding factuur" (te onderscheiden van een ander soort factuur). De inkooporder is ook gemakkelijk gedefinieerd. Wij ook een 'Training Servicefactuur gemaakt" door het creëren van een nieuwe CT op basis van de "opleiding factuur" CT en toegevoegde slechts één kolom, "verleende diensten".

Met de bovenstaande, Wij kunnen nu laten zien van sommige zeer belangrijke eigenschappen van CT's zonder vast te lopen proberen uit te leggen van een abstract begrip eerst; iedereen begrijpt al wat we bedoelen met "factuur" en "inkooporder" en kunnen in plaats daarvan te concentreren op de mechanica van de CT zelf.

Aangepaste lijsten:

CT met kolommen van het type "lookup" Wijs een aangepaste lijst of documentbibliotheek. We gebruiken dit uitgebreid en voor de sandbox, we gemaakt een aangepaste lijst met klanten ondersteuning. We pakte klanten omdat het is een eenvoudig concept te begrijpen en gemakkelijk om aan te tonen. De factuur CT heeft een kolom, "klant" dat wordt gedefinieerd van het type "opzoeken" die punten op deze lijst.

We gemaakt een soortgelijke aangepaste lijst als u wilt "leveranciers beheren" voor de inkooporder"" CT.

Documentbibliotheken:

We twee documentbibliotheken gemaakt: "Facturen" en 'Gemengde documenten'.

We geconfigureerd de facturen documentbibliotheek beheren alleen documenten van CT type 'Factuur'.

We de gemengde documenten"geconfigureerd" bibliotheek voor het beheren van alle drie CT.

Verschillende weergaven maken die Toon sorteren, filteren, fiche en groeperen.

Zoek:

We twee nieuwe beheerde eigenschappen gedefinieerd en toegewezen hen aan factuurnummer en klant.

We een nieuwe aangepast voorschot zoekwebsite gemaakt en is gewijzigd zodat gebruikers om te zoeken naar "facturen" met behulp van deze twee toegewezen eigenschappen.

Het XSLT-bestand te wijzigen zodat het nummer van de factuur en klant, Wanneer presenteren, worden weergegeven in een HTML-tabel in een felle kleur. Het doel hier is om aan te tonen dat het mogelijk dergelijke opmaak is.

Alle samenstellen:

Wij regelen voor key-users om deel te nemen in een demo.

Wij volgen dit eenvoudige script:

  1. Beschrijven de betekenis en het doel van een CT, met behulp van facturen en inkooporders als voorbeelden.
  2. Toon de factuur CT definitie terwijl het tegelijkertijd verzekeren dat ze niet hoeft te gebruiken die schermen zelf, net pick-up de concepten.
  3. Ga naar de documentbibliotheek voor facturen.
  4. Een document uploaden.
  5. Aantonen dat de klant vervolgkeuzelijst echt is afkomstig uit een aangepaste lijst.
  6. Een nieuwe klant toevoegen aan de klantenlijst en vervolgens de recent geüploade factuur de meta-gegevens bijwerkt met de nieuwe klant.
  7. Schakel over naar de "gemengde documenten" bibliotheek en upload een document. Uitleggen hoe het systeem vraagt voor een documenttype.
  8. Ga terug naar de documentbibliotheek voor facturen en Toon hoe sorteervolgorde te klikken op de naam van een kolom wijzigt.
  9. Tonen kolomniveau filteren.
  10. Toon verschillende weergaven die blijk geven van meerdere niveaus sorteren, filteren en groeperen.
  11. De gegevens vel weergeven.
  12. Het doel van een "niet-gecodeerde documenten wordt uitgelegd" weergave.
  13. Overschakelen naar de aangepaste geavanceerde zoekopdracht.
  14. Door nu, het recent geüploade document moet zijn gecrawld en geïndexeerd, dus uit te voeren een zoekopdracht die aantoont kunnen vinden die factuur via de toegewezen eigenschap.
  15. Wij laten zien dat het verschil tussen zoeken via toegewezen eigenschappen vs. gewoon een tekst zoeken.

Op dit punt, We zijn min of meer gedaan met de demo. Het schijnt om te nemen over 30 Aan 45 minuten, afhankelijk van hoeveel vragen mensen vragen.

We sturen ze vervolgens terug naar hun bureaus met "huiswerk". Dit bestaat uit een eenvoudige excel-spreadsheet waar wij vragen hen om te definiëren voor ons wat ze denken dat ze nodig hebben in termen van CT's, beide op een hoog niveau (alleen naam en doel) Naast kolommen en het soort gegevens zou zij slaan in de kolom. Niet vragen wij hen naar kolomgegevenstypen definiëren in termen van MOSS, maar zakelijke termen.

In samenvatting:

We hebben een sandbox-omgeving die we gebruiken kunnen om aan te tonen enkele kernfuncties MOSS waarvan beroep zijn ondernemingswijde gemaakt.

Wij zijn gemakkelijk te begrijpen en gemeenschappelijke bedrijfseenheden gemodelleerd zodat gebruikers zich op MOSS concentreren kunnen en niet op de entiteiten verzanden / voorbeelden zelf.

Zakelijke gebruikers lopen van scripties sessies met "huiswerk" in de vorm van excel-documenten die ze nu bevoegd zijn om te vullen en gebruiken voor het ontwerpen van hun eigen eerste-cut inhoudstypen.

Tot slot, Als we uit te demo's na verloop van tijd voeren, leden van het team van de cliënt zelf worden beter in staat om uit te voeren, Ken de demo's zelf en over het algemeen vrijmaken van de rest van ons omhoog werken aan meer complexe thema 's, zoals global taxonomie, complexe workflows, BDC en dergelijke.

Leren behendig // Scrum

Ik vroeg voor sommige advies vandaag op goede middelen om aan de slag met het leren van Agile en Scrum. Hier is een samenvatting van de reactie. Ik vertrouw erop dat de bronnen maar ik weet niet dat dit uitgebreid is (Ik weet zeker dat er geen).

Ik kan sommige van deze onjuist transcriptie.

Meerdere mensen antwoorden gegeven en Agile Project Management door Ken Scwaber is de consistente "eerste duik" aanbeveling.

Persoonlijkheden:

  • Ken Schwaber
  • Mike Cohn

Boeken:

  • Agile projectmanagement met Scrum door Ken Schwaber.
  • Lean Softwareontwikkeling: Een behendige Toolkit voor Software Development Managers door Mary en Tom Poppendieck.
  • "alles wat door Mike Cohn"
  • Agile retrospectieven door Ken Schwaber, Diana Larsen, Esther Derby.

Koppelingen:

MOSS Geavanceerd zoeken aanpassen — Geval toe doet in Geavanceerd zoeken XSLT

Ik wijzigen Geavanceerd zoeken XSLT heel vaak niet, zodat het lijkt alsof ik ben klein heuvels telkens klimmen.

Mijn nieuwste les is dit: Geval van belang wanneer wordt verwezen naar een kolom. In mijn Geavanceerd zoeken, Ik heb kolommen gedefinieerd als dit:

<wortel xmlns:XSi="http://www.w3.org/2001/XMLSchema-instance">
<
Kolommen>
<
Kolom Naam="GafTrainingInvoiceNumber" />
<
Kolom Naam="GafTrainingInvoiceLocation" />
<
Kolom Naam="WorkId"/>
<
Kolom Naam="Rang"/>
<
Kolom Naam="Titel"/>
<
Kolom Naam="Auteur"/>
<
Kolom Naam="Grootte"/>
<
Kolom Naam="Pad"/>
<
Kolom Naam="Beschrijving"/>
<
Kolom Naam="Schrijven"/>
<
Kolom Naam="SiteName"/>
<
Kolom Naam="CollapsingStatus"/>
<
Kolom Naam="HitHighlightedSummary"/>
<
Kolom Naam="HitHighlightedProperties"/>
<
Kolom Naam="ContentClass"/>
<
Kolom Naam="IsDocument"/>
<
Kolom Naam="PictureThumbnailURL"/>
</
Kolommen>
</
wortel>

De XSLT die wordt weergegeven de locatie van de factuur nummer en factuur geweest:

<p>
Opleiding factuurnummer: <XSL:waarde-van Selecteer="GafTrainingInvoiceNumber"/>
<
BR></BR>
Opleiding factuur locatie: <XSL:waarde-van Selecteer="GafTrainingInvoiceLocation"/>
</
p>

Echter, het selecteren heeft om te verwijzen naar de eigenschap in alle kleine letters, Als in:

<p>
Opleiding factuurnummer: <XSL:waarde-van Selecteer="gaftraininginvoicenumber"/>
<
BR></BR>
Opleiding factuur locatie: <XSL:waarde-van Selecteer="gaftraininginvoicelocation"/>
</
p>


Totdat ik gecorrigeerd die, Zoekresultaten toonden de etiketten (dwz. "Opleiding factuurnummer") maar geen gegevens.

MOSS: Functioneel voorbeeld – aangepast gegevenstype

Bedrijfsscenario:

Ondernemingswijde uitvoering van MOSS voor productiebedrijf met 30+ sites en een paar dozijn stafafdelingen.

Zakelijke doel:

Ondanks een veelheid van business groups (afdelingen, locaties, etc), bepaalde gegevens moeten worden gehandhaafd op een mondiaal niveau. Bijvoorbeeld, een gezaghebbende hoofdlijst van alle fysieke locaties van het bedrijf (bijvoorbeeld. productiefaciliteiten, magazijn locaties, verkoopkantoren) moet worden gehandhaafd op een centrale locatie.

Technisch probleem:

De taxonomie van de onderneming werd uitgevoerd met behulp van meerdere siteverzamelingen. Wij hadden gewild de gezaghebbende lijst van fysieke locaties maken in een aangepaste WSS-lijst. Vervolgens, Wanneer we die nodig is om een kolom in een inhoudstype (of een kolom toegevoegd aan een lijst of doc bibliotheek) die opgenomen corporate locaties, We zouden een kolom met behulp van de "lookup maken" datatype en punt aan dit master lijst.

Helaas, opzoeken datatypes moet toegang hebben tot een bronlijst 'lokaal" Wat betekent dat onze gezaghebbende lijst niet meerdere siteverzamelingen kunnen omvatten.

Technische oplossing:

Uitvoering van een nieuwe aangepaste gegevenstype ten uitvoer gelegd op basis van SPField en vertegenwoordigd als een DropDownList in de UI waarvan ListItems vanuit de hoofdlijst WSS vullen.

We hebben een nieuwe siteverzameling genoemd gemaakt "http://localhost/EnterpriseData". Er, we gemaakt een aangepaste lijst met de naam 'Corporate locaties'. Deze lijst gebruikt enkel de standaard "titel" veld bevatten de lijst van werkelijke corporate locaties.

Een volgt verschillende discrete stappen voor het maken van een aangepast gegevenstype in WSS. Ze zijn:

  1. Een klasse die van SPField overerft definiëren (Men kan erven van andere velden indien nodig).

Hier is de code voor dat:

openbare klasse XYZZYCorporateLocationField : SPFieldText
{
openbare XYZZYCorporateLocationField
(SPFieldCollection velden, tekenreeks typeName, tekenreeks displayName)
: Base(velden, typeName, displayName) { }

openbare XYZZYCorporateLocationField
(SPFieldCollection velden, tekenreeks displayName)
: Base(velden, displayName) { }

openbare overschrijven BaseFieldControl FieldRenderingControl
{
Toevoegen
{
BaseFieldControl controle = Nieuw XYZZYCorporateLocationFieldControl();
controle. FieldName = Dit.InternalName;
terugkeer controle;
} //Toevoegen
} // fieldrenderingcontrol

openbare overschrijven tekenreeks GetValidatedString(object waarde)
{
Als (Dit.Vereist || waarde. ToString().Is gelijk aan(Tekenreeks.Leeg))
{
gooien Nieuw SPFieldValidationException ("Departement is niet toegewezen.");
}
terugkeer Base.GetValidatedString(waarde);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Een andere klasse die van het basisveld besturingselement overerft definiëren, Als in:

openbare klasse XYZZYCorporateLocationFieldControl : BaseFieldControl
{
beschermd DropDownList XYZZYCorporateLocationSelector;

beschermd overschrijven tekenreeks DefaultTemplateName
{
Toevoegen
{
terugkeer "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

openbare overschrijven object Waarde
{
Toevoegen
{
EnsureChildControls();
terugkeer Dit.XYZZYCorporateLocationSelector.SelectedValue;
} // Toevoegen
instellen
{
EnsureChildControls();
Dit.XYZZYCorporateLocationSelector.SelectedValue = (tekenreeks)Dit.ItemFieldValue;
} // instellen
} // object waarde overschrijven

beschermd overschrijven VOID CreateChildControls()
{

Als (Dit.Veld == Null || Dit.ControlMode == SPControlMode.Weergave)
terugkeer;

Base.CreateChildControls();

Dit.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");

Als (Dit.XYZZYCorporateLocationSelector == Null)
gooien Nieuw Uitzondering("FOUT: Kan niet laden. ASCX bestand!");

Als (!Dit.IsPostBack de pagina.)
{

met behulp van (SPSite site = Nieuw SPSite('http://localhost/enterprisedata"))
{
met behulp van (SPWeb Web = site. OpenWeb())
{

SPList currentList = web. Lijsten['Corporate locaties"];

foreach (SPItem XYZZYCorporateLocation in currentList.Items)
{
Als (XYZZYCorporateLocation["Titel"] == Null) «««;

tekenreeks Krijgt;
Krijgt = XYZZYCorporateLocation["Titel"].ToString();

Dit.XYZZYCorporateLocationSelector.Items.Add
(Nieuw ListItem(Krijgt, Krijgt));

} // foreach

} // met behulp van spweb web = site.openweb()
} // gebruik van spsite site = nieuwe spsite('http://localhost/enterprisedata")

} // Als niet een terugsturen

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

De bovenstaande code implementeert in principe de logica voor het vullen van de DropDownList met waarden uit de WSS aangepaste lijst attractiepark http://localhost/enterprisedata en met de naam "Corporate afdelingen".

Ik heb beide klassen gedefinieerd in een enkele .cs-bestand, gecompileerd het en zet het in de GAC (sterke vereist, Natuurlijk).

  1. Uitvoering van een besturingselement sjabloon (.AScX) zoals:

<%@ Controle Taal= "C#" Erft="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Versie = 12.0.0.0, Culture = neutral,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Always" %>
<%
@ Registreren Tagprefix"wssawc =" Namespace="Microsoft.SharePoint.WebControls" Vergadering="Microsoft.SharePoint, Versie = 12.0.0.0, Cultuur = neutraal, PublicKeyToken = 71e9bce111e9429c" %> <%@ Registreren Tagprefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Vergadering="Microsoft.SharePoint, Versie = 12.0.0.0, Cultuur = neutraal, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID"XYZZYCorporateLocationFieldControl =" RUNAT= "server">
<Sjabloon>
<ASP:DropDownList ID"XYZZYCorporateLocationSelector =" RUNAT= "server" />
</Sjabloon>
</
SharePoint:RenderingTemplate>

Het bovenstaande wordt opgeslagen in c:\Program filescommon filesmicrosoft sharedweb server extensions12controltemplates.

  1. Tot slot, We creëren een XML-bestand op te slaan in de... 12XML directory. Dit is CAML waarin onze aangepaste gegevenstype en voor mijn voorbeeld, ziet er als volgt:

<?XML Versie="1.0" codering="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
Veld Naam="TypeName">CorporateLocations</Veld>
<
Veld Naam="ParentType">Tekst</Veld>
<
Veld Naam="TypeDisplayName">Corporate locaties</Veld>
<
Veld Naam="TypeShortDescription">Alle Corporate XYZZY locaties met inbegrip van de productie- of andere voorzieningen.</Veld>
<
Veld Naam="UserCreatable">WAAR</Veld>
<
Veld Naam="ShowInListCreate">WAAR</Veld>
<
Veld Naam="ShowInDocumentLibraryCreate">WAAR</Veld>
<
Veld Naam="ShowInSurveyCreate">WAAR</Veld>
<
Veld Naam="ShowInColumnTemplateCreate">WAAR</Veld>
<
Veld Naam="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Versie = 1.0.0.0, Cultuur = neutraal, PublicKeyToken = b0b19e85410990c4</Veld>
<
RenderPattern Naam="DisplayPattern">
<
Schakelaar>
<
Expr>
<
Kolom />
</
Expr>

<Geval Waarde=""/>

<Standaard>
<
HTML>
<![CDATA[
<span stijl = "kleur:Red"><b>]]>
</
HTML>

<
Kolom SubColumnNumber="0" HTMLEncode="WAAR"/>

<HTML><![CDATA[</b></span>]]></HTML>

</
Standaard>
</
Schakelaar>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
Dit XML-bestand wordt het aangepaste gegevenstype toegevoegd aan de WSS "bibliotheek" en komt overeen met het op tegen de GAC hadden vergadering.

Na het verplaatsen van al deze stukjes op zijn plaats, iisreset op de server en het moet alle gaan werken mooi.

WSS: Techniek voor het maken van CAML Velddefinities.

Aanvullende categorie: CAML

Hier is een grote terbeschikkingstelling door een kerel met de naam "craig" op een techniek voor het vinden van CAML definities voor veld inhoudstypen gebaseerd op echte live definities van een site.

Zijn post zegt het al. In het kort:

  1. Een inhoudstype maken.
  2. Het koppelen aan een lijst.
  3. Open de lijst met SharePoint Designer.
  4. Exporteren naar een 'personal webpakket'.
  5. Wijzig de naam in een CAB-bestand.
  6. Uitpakken van het manifest.
  7. Vind uw inhoudstype en bijbehorende CAML.

WSS: Samenvatting stappen om nuttige functies/elementen/etc. IntelliSense in VS 2005

Extra categorieën: Visual Studio 2005

Nuttige intellisense inschakelen voor functies, elementen, enz in visuele studio 2005:

  1. Toegang tot een WSS-server.
  2. Navigeer naar "c:\Program filescommon filesmicrosoft sharedweb server extensions12TEMPLATEXML"
  3. Open een ander windows Verkenner naar: "C:\Program FilesMicrosoft Visual Studio 8XmlSchemas"
  4. Kopieer de volgende bestanden uit de WSS-server naar uw VS 2005 schema's directory:
    1. WSS.XSD
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Start opnieuw op VS 2005
  6. Een nieuw XML-bestand aan een project toevoegen.
  7. Klik in de hoofdtekst van het XML-bestand.
  8. In het deelvenster Eigenschappen, Klik op "schema 's" en kies "wss.xsd" van de keuzes. (Het is niet nodig om te selecteren andere xsd omdat ze worden verwezen vanuit wss.xsd).

IntelliSense is nu ingeschakeld voor dat XML-document.

Zie Hier voor meer informatie over dit onderwerp en voor instructies over hoe WSS intellisense automatisch koppelen aan een XML-bestand.

WSS examen 70-541, Microsoft Windows SharePoint Services 3.0 – Ontwikkeling van toepassingen

Ik nam en de hierboven genoemde test vanmorgen doorstaan. Ik vond het examen moeilijk en eerlijk.

Er is een relatieve gebrek aan informatie over dit examen op het web. Ik ben niet zeker waarom.

Ik uiteraard gewoon te krijgen in elk detail over het examen dat ik nam, maar ik denk dat ik kan gerust zeggen de volgende:

  1. Vertrouwen van deze link: http://www.microsoft.com/learning/exams/70-541.mspx.

    Het vindt u wat u moet weten om te passeren van het examen en het is, IMO, zeer nauwkeurig.

  2. De koppeling ook beveelt Binnen Microsoft Windows SharePoint Services 3.0 door Ted Pattison & Daniel Larson. Dit boek behandelt bijna alle van de onderwerpen die de test adressen. Ik vond het geweldig in en van zichzelf dan eenvoudige examen prep. Het biedt grote voorbeelden en really got me denken over enkele nieuwe en interessante dingen te proberen. Als u wilt een paar stukjes in het boek overslaan, net kruisverwijzing van het boek TOC met de items in de koppeling van bovenaf.
  3. Niets verslaat daadwerkelijke hands-on ervaring. Hebt u tijd en interesse, volgen met de voorbeelden in het boek en vervolgens experimenteren met hen. U zult hebben een gemakkelijkere tijd op het examen evenals echt leren WSS toepassing programmeren.

</einde>Abonneren op mijn blog!