Simplă şi rapidă: Asigurarea unui Site Web utilizând modelul de obiecte SharePoint în C#

I tried cercetare pentru un pic fragmentul de cod care ar arăta cum puteţi crea un SPWeb noi într-o colecţie de site-ul. Eu nu-l găsiţi rapid sau uşor, aşa cum am aşteptat Deci m-am gândit eu ar hârşti împreună un pic de intrare pe această temă.

Acest cod creează un nou site Wiki:

 SPSite siteCollection;

    siteCollection = noi SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy titlu",
        "xyzzy Descriere", 1033, SPWebTemplate.WebTemplateWIKI, fals, fals);

Căutările iniţială nu a reuşit pentru că am fost în căutarea pentru expresii ca "prestare de un site web folosind modelul de obiecte sharepoint" şi ca.

Dacă vă căutare pentru "Webs.Add()", veţi găsi un număr de intrări de blog foarte util, MSDN articole şi documentaţia SDK, care merge în profunzime pe acest subiect. Recomand cu siguranta acest site.

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Integra fluxuri de lucru SharePoint Designer cu servicii Web

Am fost joc în jurul cu acțiuni particularizate pentru SharePoint Designer de ceva timp (a se vedea aici pentru unele chestii detaliate, în cazul în care vă interesează).

În proiectul meu curent, avem nevoie pentru a face unele destul de grele ridicare şi vrem să utilizaţi declarativ SPD flux de lucru pentru a gestiona procesul de afaceri asociate.

Poveste lungă scurt, Acest lucru este în întregime posibil. Am extins proiectul Codeplex meu pentru a invoca un ajutor de serviciu"" şi acum putem invoca un serviciu web direct de la un flux de lucru SPD.

Aici este semnătura:

 publice şir Dispecer(
        GUID-ul WebID, // A trecut de runtime mediu
        GUID-ul SiteID, // A trecut de runtime mediu
        şir ListID, // A trecut de RTE (nu ştiu de ce acest lucru este un şir de, nu un GUID)
        int ListItemID, // A trecut de RTE.
        şir XmlMessage) // A trecut de către utilizator, a declarat în SPD.

Aceasta foloseste faptul că putem obţine informaţii importante de flux de lucru, ca site-ul, lista ID, etc. Acest lucru este bine documentat în mai multe locuri pentru cei dintre voi interesaţi în crearea propriile acțiuni particularizate. Ideea este de a extrage şirul XML furnizate de utilizator pentru a transporta o procedură corespunzătoare. Chestii Fun!

Din păcate, Acest lucru este, evident, un bilet pentru a "Loosey nating" anti-model de teren, but it’s better than hitting a brick wall 🙂

Este un anti-model dacă o faci chiar dacă ştiţi că este un anti-model?

Sper să încheie acest lucru în interiorul Codeplex în viitorul apropiat. Dacă sunteţi interesat de mine acest lucru, da-mi împungere (e-mail sau lăsaţi un comentariu) and I’ll be that more enthusiastic about doing it 🙂

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags: ,

Funny duminică: “Mă întreb dacă parola ta este …”

Recent am cumparat masa de prânz pentru fratele meu (ca de obicei) şi am ajuns să vorbesc despre lucruri amuzante pe care am făcut-o la colegii noştri respectiv. La meu alma mater, Colegiul Lafayette, sprijinul academice Departamentul IT a avut o modalitate foarte inclusive despre l. Ne-au dat o mulţime de frânghie şi am profitat de faptul că uneori.

Două amintirile mele preferate se referă la bunul meu prieten, Gavrilas. El a făcut greşeala teribil de a spune oamenilor său an de facultate, că "eu sunt un student în anul întâi, dar am al doilea de studentie în picioare" datorită diferitelor clase de avansate de plasare a luat, etc. Mulţi dintre noi s-au situat în mod similar, dar noi nu vorbim despre asta atât de mult. Ultimul an, Când l-am introdus la oameni, ne-ar spune "Acesta este gavrilescu. El este un Senior, dar el are al doilea de studentie în picioare ".

Colegiul a avut unele soare staţii de lucru/servere care rulează X-Window. Aveau monitoare gigantice şi inginerii le-a folosit pentru CAD şi alte chestii plictisitoare de inginer. Am CS oameni le-a folosit pentru a afla de programare şi, desigur, pentru a juca jocuri.

Nu am ca inginerii calculator-neajutorat prea mult deci unul din lucrurile noastre preferate a face ar fi să telnet la caseta de ei au fost pe şi a alerga X-ochi pe ele. Acest lucru ar pop sus o pereche de ochi care a urmat mouse-ul în jurul pe ecran. Ai putea pop sus şi mai mult şi au literalmente o duzină sau mai multe din X-ochi aplicaţiile rulează. Try not to laugh out loud when a hapless engineer is trying to close X-eye after X-eye and muttering under his breath about it 🙂

Ne-am jucat, de asemenea, X-trek pe acele cutii. Pentru a face acest lucru, ai avut de a descărca sursa, obţine diferite dependenţe, oriunde te-ai putea găsi-le şi de a construi o. Nu am fost un programator C sofisticate, dar am putut citi fisiere antet. Am fost în căutarea prin intermediul acestor şi a găsit directivelor ca "#DEFINE MAX_TORPEDO_DISTANCE 10". Am jucat în jurul cu care cresc intervalul şi putere pentru fazele şi torpile, Re-construit-o şi apoi distrus Gabe data viitoare ne-am jucat.

Gavrilescu a fost, de asemenea, un mare fan de un show TV numit Blake pe 7. Niciodată nu am văzut-o, dar care nu împiedică mine insistând că Dr. Cine este Arată superioară. The arguments would get heated at times 🙂

Într-o zi, Aceasta a avut loc la mine că am putea ghici, probabil, sa parola UNIX. Am aşezat alături de el într-o zi şi a anunţat într-un ton puternic, "Am de gând pentru a ghici parola chiar acum, Gabe." "da, dreptul de" a fost răspunsul lui. Apoi am logat, său user identitate a intrat, întors să-l facă faţă, tastat şi a spus cu voce tare, "Mă întreb dacă este B-L-A-K-E-7" ? Touch tastând a mai achitat ca generozitate aşa cum a făcut în acea zi.

săptămâna viitoare (sau în curând): Mai multe calculator antics de cameră la Colegiul.

Ai orice pentru a partaja? Lăsaţi un comentariu sau e-mail mine şi eu le vom publica aici.

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Anunţ Public minore: Setările de securitate vii Windows şi proprietarii de spaţiu de contactare

Primesc o mână de mesaje de la persoane fizice prin intermediul built-in "trimite un mesaj" funcţia Microsoft oferă spaţii vii (care găzduieşte, de asemenea, blog-ul meu) în fiecare lună.

Aproximativ o treime din momentul, utilizatorii au asigurat contul lor viu spatii, astfel încât nu poate răspunde. Aceasta este un fel de caracteristică de anti-spam presupun.

</scop>

Explicaţie simplă: “Valoarea nu se încadrează în intervalul de aşteptat.”

ACTUALIZARE: Un anonim poster a lăsat un comentariu mare despre numele de interne. Asiguraţi-vă că să-l citiţi.

Atunci când se lucrează cu receptoare de eveniment şi alt cod care face referire la elemente de listă SharePoint prin modelul de obiect, Fac frecvent greseli care generează această eroare la rulare:

Eroare de încărcare şi rulează eveniment receptorul Conchango.xyzzyEventReceiver în xyzzy, Versiunea = 1.0.0.0, Cultură = neutră, PublicKeyToken = 0dc50a750396c3ac. Informații suplimentare despre este de mai jos. : Valoarea nu se încadrează în intervalul de aşteptat.

Cred că aceasta este o destul de generic de eroare care este potenţial cauzat multe moduri diferite de. Cu toate acestea, o explicaţie simplă este că eu sunt corelarea un câmp incorect. Dacă numele de domeniu este "Scadenta", Eu trebuie să referinţă ca aceasta într-un receptor de eveniment:

proprietăţi.ListItem["Scadenta"]

Când am misspell sau de a folosi cazul greşit atunci când câmpul de referinţă, SharePoint generează mai sus menţionat eroare de execuţie. De exemplu, Acest lucru este greşit:

proprietăţi.ListItem["scadenta"]

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Sfat rapid de utilizatorul final: Sortare vizualizări într-o bibliotecă de documente, Lista, etc.

Putem, ar trebui să şi de a crea mai multe vizualizări în listele SharePoint (biblioteci de documente, liste particularizate, etc). SharePoint intotdeauna listele disponibile vederi în ordine alfabetică. Nu putem schimba acest lucru folosind din box funcţionalitate. Dacă se poate face prin personalizare (şi eu nu sunt sigur că se poate), este departe de a tehnice pentru dumneavoastră tipic utilizatorului final.

Dacă doriţi să controlaţi ordinea în care SharePoint listele disponibile views, adaugă pur şi simplu un număr sau o scrisoare cu numele de vedere, ca şi în:

1 – De tip de Material
2 – Toate documentele
3 – Data scadenţei

-sau-

ADRIAN – De tip de Material
B – Toate documentele
C – Data scadenţei

Am creat, de asemenea, vedere al căror scop este strict pentru a alimenta un KPI. Am fost următoarele această convenție de denumire:

Z_KPI_[Descriere]

Care sunt cauzele meu "KPI" vedere să apară în partea de jos a listei.

</scop>

Aboneaza-te la blog-ul meu.

Funny duminică: “Când am fost un băiat mic”

Ca un părinte, undeva-a lungul liniei am descoperit "când am fost un băiat mic" truc.

Fiul meu, probabil, patru sau cinci, în timp, jucam un balon şi place cel mai puţin băieţi care joaca cu baloane, El mi-a venit l. El a fost foarte supărat. Lumea a ajuns la final. I-am spus să-l, "când eram mic băiat, Am avut un balon şi ea mi-a venit si eventual, Am primit un balon de noi." Acesta părea pentru a ajuta-l să facă faţă cu pierderea lui şi a condus la o distracţie vorbesc despre ce a fost ca atunci când am fost un băiat mic.

Că a lucrat bine ca o tehnica de consolare şi am folosit-o o de mai multe ori în următoarea perioadă de timp. Am făcut a lua into păstrăv o dată când lui monstru fermier 3 creatură a murit. Am vorbit despre cum cainele meu, Prințul, a murit într-un accident de masina. de data aceasta, Răspunsul lui a fost, "Acum mă simt rău despre două lucruri!" Am shied departe folosind "atunci când am fost un băiat mic" tehnica pentru consolare după aceea.

Înainte de incidentul de câine mort, cu toate acestea, De asemenea, am început să folosească tehnica pentru a convinge-l pentru a face treburile. "Când am fost un băiat mic, Am avut de a ieşi şi de a lua ziarul", "camera curata", "get mami ei ceaşcă de cafea", etc.

Acest lucru a fost destul de succes pentru un timp, dar el a început să tot mai revolte împotriva tiraniei copilariei mele. Un eveniment, în special, marcat sfârșitul. I-am spus să aducă cutii de gunoi de la marginea trotuarului înapoi la garaj. El a susţinut şi am răspuns, "Când am fost un băiat mic, A trebuit să iau gunoi înapoi la garaj." El a răspuns, "Oh da! Ei bine, atunci când au fost un băieţel, Asta a fost prost!".

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Opinii şi coloane pe listele și bibliotecile de documente nu poate fi asigurat

ACTUALIZARE (02/29/08): Acest nou proiect de codeplex pare să ofere o metodă pentru asigurarea coloanele individuale: http://www.codeplex.com/SPListDisplaySetting. Dacă aveţi orice experienţă de lucru cu ea, vă rugăm să lăsaţi un comentariu.

Postere forum frecvent cere o întrebare ca aceasta: "Am o vedere de managerul şi şi vedere personal o listă. Cum pot securiza vizualizarea manager, astfel încât personalul nu pot folosi?"

De asemenea, frecvent cere o întrebare legate: "Vreau să asigure o coloană de metadate specifice, astfel încât numai managerii pot edita acea coloană în timp ce alţii nu pot vedea chiar ea."

Aceste răspunsuri se aplică atât AAC 3.0 şi MOSS:

  • SharePoint nu oferă suport de out-of--box pentru securizarea views.
  • SharePoint nu oferă suport de out-of--box pentru coloanele de securitate.

Există mai multe tehnici o puteţi urma pentru a îndeplini aceste tipuri de cerințele de securitate. Aici este ceea ce pot să cred că:

  • Utilizează securitatea la nivel de element de out-of--box. Vedere respecta întotdeauna configurare de securitatea la nivel de element. Eveniment receptoare şi/sau flux de lucru poate automatiza cesiune de securitate.
  • Utilizaţi vizualizări personale pentru "privilegiat" vizualizari. Acestea sunt destul de uşor de configurat. Cu toate acestea, din cauza lor personale"" natura, Acestea trebuie să fie configurat pentru fiecare utilizator. Utilizarea standard de securitate de configurare pentru a împiedica pe altcineva de la crearea o vizualizare personală.
  • Utilizaţi o parte de web date Vezi şi pune în aplicare un fel de soluţie de tundere AJAXy de securitate.
  • Roll propria funcţionalitate de afişare listă şi să includă tunderea de securitate la nivel de coloană.
  • Modifica date forme de intrare şi de a folosi JavaScript în legătură cu modelul de securitate să implementeze securitatea la nivel de coloană tunderea.
  • Utilizaţi un formular InfoPath pentru introducerea datelor. Punerea în aplicare a tăia securitatea la nivel de coloană prin intermediul web serviciu chemare la spre SharePoint şi condiţional ascunde câmpuri în funcţie de necesităţi.
  • Roll propria ASP.NET date intrare funcţia care implementează tunderea de securitatea la nivel de coloană.

Dintre aceste opţiuni niciunul nu într-adevăr mare, dar există cel puţin o cale de urmat în cazul în care aveţi nevoie pentru a, chiar dacă este greu.

NOTĂ: Dacă te duci în jos oricare dintre aceste căi, nu uitaţi despre "acţiuni-> Deschide cu Windows Explorer". Doriţi să vă asiguraţi că vă testaţi cu această caracteristică pentru a vă asigura că nu funcţionează ca un "back door" şi înfrângerea schema de securitate.

Dacă aveţi alte idei pentru sau experienţe cu asigurarea coloane sau views, vă rog e-mail-mă sau lăsaţi un comentariu şi voi actualiza această postare după caz.

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Iute Vîrf: Numerele de versiune BDC ADF sunt prietenul tău

Daca tu esti parte de codificare ADF fişiere şi de a face o mulţime de cicluri de import un cod/test, utilizaţi numărul de versiune pentru a face viaţa mai uşoară.

Urasc sa recunosc, dar până la această săptămână, Am fost întotdeauna ştergerea ADF şi re-importul de l. Acest lucru ar sparge coloane de date mea de afaceri şi mă re-sârmă le face. Toate inutile.

Fişier aceasta sub "este evident o dată tu a vedea it".

Exemplu:

<LobSystem
xmlns:XSi="http://www.w3.org/ 2001/XMLSchema-exemplu" XSi:schemaLocation="http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Tip="WebService" Versiunea="1.2.0.0" nume="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalog">

Schimba acea versiune şi re-importul şi coloana de date de afaceri existente utilizează versiunea actualizată automat cu nici o configurare suplimentare necesare.

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Soluție: Alegere BDC afişează numai o coloană rezultatelor

În încercările mele pe-merge la furnizarea de un coloană de căutare mai util utilizează BDC, Am lovit un perete cu selectorul de BDC. Dacă nu aţi vedea it, selectorul BDC este similar cu o alegere de oameni, cu excepţia faptului că funcţionează cu coloane de tip "date de afaceri".

Accesaţi selectorul făcând clic pe pictograma carte deschisă de o coloană de date de afaceri ca:

imagine

Imaginea de mai sus arată o coloană de date de afaceri numit "Master Document Id". Acea coloană este conectat, Via BDC, la un serviciu web. Serviciul web întoarce două coloane de informaţii: Document ID şi titlul. Afaceri scopul aici este de a oferi o "acest document este bazat pe" funcţia. Utilizatorii selectați un maestru"" document şi salvaţi-le atunci când, un receptor de eveniment copiază meta câmpurile de date la care se face referire maestru.

În mod implicit, selectorul BDC arata acest lucru atunci când am de căutare pentru un document al cărui ID = "38":

clip_image002

Care este util, dar nu suficient de bun. Oamenii nu gândesc în termeni de ID-uri, ei cred în titluri sau alte date meta. Târnăcop vă permite să căutaţi pe alte coloane (ex. Titlul) dar nu va afişa lista reale de titluri a găsit, doar lor DocId's așa cum se arată aici:

clip_image002[1]

(Ecran shot nu este atât de mare, pentru că am nu alegeţi o căutare care returnează niciun rezultat valid, dar puteţi vedea că dacă acesta a găsit unele rezultate, Acesta ar fi arătat numai DocId lui, nu titluri).

Am căutat de înaltă şi joasă pentru răspunsul la acest lucru şi nu a reuşit. Colegul meu, Venerabilul Jonathan Bradshaw, a cu care se confruntă şi a rezolvat această problemă. Când am ajuns la el pentru ajutor, El a subliniat mine în direcţia cea bună.

Configuraţi selectorul pentru a afişa mai multe coloane via "ShowInPicker" proprietate în ADF:

<Proprietate nume="ShowInPicker" Tip="System.boolean">adevărat</Proprietate>

În mai multe detalii:

  <!-- Titlul -->
  <TypeDescriptor TypeName="System.string" nume="Titlul" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Titlul</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Proprietăţi>
      <Proprietate nume="DisplayByDefault" Tip="System.boolean">adevărat</Proprietate>
      <Proprietate nume="ShowInPicker" Tip="System.boolean">adevărat</Proprietate>
    </Proprietăţi>
  </TypeDescriptor>

Setarea acestei proprietăți să introducă o problemă minoră. De îndată ce aţi stabilit-o o dată, ai nevoie să-l setaţi pentru fiecare coloană pe care doriţi să arate. În cazul meu, Selector de BDC a arătat DocId implicit. Cu toate acestea, după ce am adăugat "ShowInPicker" titlu, DocId nu mai este afişată. I solved that by explicitly setting the ShowInPicker property for Doc ID.

Aici este rezultatul:

imagine

(Sa-ti explic ciudat "168 – CamlSchema.xsd" construction in a future blog post. În scurt, Acesta este un şir concatenat care permite o puţin mai bună experienţă de utilizator).

desigur, având în scris această intrare în blog, Tocmai am făcut o căutare pentru "ShowInPicker" şi a găsit numeroase hit-uri, inclusiv: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</scop>

Aboneaza-te la blog-ul meu!

Technorati Tags: