Ràpid i senzill: La provisió d'un lloc Web utilitzant el Model d'objectes de SharePoint en c#

He intentat buscar un petit codi fragment que mostra com es crea un nou SPWeb en una col·lecció de llocs. No trobo com ràpidament o fàcilment com jo esperava així pensava que vols bufetada junts una petita entrada sobre el tema.

Aquest codi crea un nou lloc Wiki:

 SPSite siteCollection;

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

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy títol",
        "xyzzy Descripció", 1033, SPWebTemplate.WebTemplateWIKI, fals, fals);

Les meves cerques inicials ha fallat perquè jo estava buscant frases com "provisió d'un lloc web utilitzant el model d'objectes de sharepoint" i similars.

Si vostè Cerca per a "Webs.Add()", hi trobareu una sèrie d'entrades de blog molt útils, Articles MSDN i documentació SDK que entraré en profunditat sobre aquest tema. Definitivament recomano aquest lloc.

</final>

Subscriure's al meu blog.

Etiquetas de Technorati:

Integrar els fluxos de treball de dissenyador de SharePoint amb serveis Web

He estat jugant al voltant amb accions de costum per al dissenyador de SharePoint per a una mica de temps (veure aquí per a algunes coses detallada, Si que t'interessi).

En el meu projecte actual, hem de fer alguns bastant pesat alçar i volem utilitzar de flux de treball SPD declarativa per gestionar el procés de direcció associades.

Llarga història curta, Això és totalment possible. Que va estendre el meu projecte de Codeplex per invocar un "servei d'ajudant" i ara podem invocar un servei web directament des d'un flux de treball SPD.

Aquí és la signatura:

 públic corda Despatx(
        GUID WebID, // Aprovat per l'ambient de temps d'execució
        GUID SiteID, // Aprovat per l'ambient de temps d'execució
        corda ListID, // Aprovada per les RTE (no sé per què això és una cadena, no un GUID)
        Int ListItemID, // Aprovada per les RTE.
        corda XmlMessage) // Aprovada per l'usuari com declarat el SPD.

Això aprofita el fet que puguem aconseguir informació importants de flux de treball, com el lloc, Llista d'ID, etc. Això està ben documentada en diversos llocs per a aquells de vostès interessaven a crear accions personalitzades pròpies. La idea és extreure la corda XML proporcionat per l'usuari per enviar un procediment adequat. Coses divertides!

Tristament, Això és òbviament un bitllet senzill a "Loosey Goosey" anti-patró terra, però és millor que colpejar una paret de maó 🙂

És un anti-patró si ho fa tot i que vostè sap que és un anti-patró?

Espero acabar amb això dins Codeplex en el futur pròxim. Si estàs interessat en mi fer-ho, donar-me ficar (correu electrònic o deixa un comentari) i seré més entusiasta que en fer-ho 🙂

</final>

Subscriure's al meu blog.

Etiquetas de Technorati: ,

Diumenge Funny: “Em pregunto si la contrasenya és …”

Recentment he comprat dinar pel meu germà (com de costum) i acabem parlant de les coses divertides que vam fer a les nostres respectives escoles. A la meva alma mater, Lafayette College, el suport acadèmic Departament tenia una manera molt inclusiva respecte. Ens van donar un munt de corda i va aprofitar que de vegades.

Dos meus records favorits es relacionen amb el meu bon amic, Gabe. Va ser el terrible error de dient la gent el seu primer any, que "jo sóc un estudiant de primer any, però els I tenen segon peu" a causa de les diverses classes de col. locació avançada que havia pres, etc. Molts de nosaltres de la mateixa manera es van situar però no parlem sobre això tant. Seu any sènior, Quan ens va presentar a la gent, diríem "aquest és Gabe. Ell és un alt, però ell té el segon peu ".

L'escola tenia alguna estació de treball de sol/servidors que X-Window. Tenien monitors de gegants i els enginyers utilitzat per CAD i altres coses enginyer avorrit. Persones ens CS utilitzat que aprengueu a programar i, clar, jugar jocs.

Nosaltres no com els enginyers informàtics-impotent per gaire així que un dels nostres coses preferides per fer seria per telnet al quadre estaven en i executar X-ull en ells. Això es desplegarà un parell d'ulls que seguí el ratolí al voltant de la pantalla. Podria aparèixer encara més i han literalment una dotzena o més de les aplicacions de X-ull corrent. Intenta no riure en veu alta quan un enginyer desgraciat està intentant tancar X-ull després de X-ull i murmurant entre dents al respecte 🙂

També hem jugat X-caminada a les caixes. Fer-ho, havia de descarregar la font, obtenir diverses dependències on podria trobar-los i construir-lo. No era un sofisticat programador C, però he pogut llegir arxius de capçalera. Jo estava mirant a través d'aquests i va trobar les directives com "#DEFINE MAX_TORPEDO_DISTANCE 10". Jo jugava amb que augmenten la gamma i el poder per fases i torpedes, re-construir-lo i llavors destruït Gabe la propera vegada que juguem.

Gabe també era un gran fan d'un programa de televisió anomenat De Blake 7. Mai ho havia vist, però que no m'impedeix insistint que el Dr.. Qui és l'espectacle superior. Els arguments aconseguirien s'escalfa a vegades 🙂

Un dia, ' m va ocórrer que probablement podria endevinar la seva contrasenya d'UNIX. Vaig asseure al seu costat un dia i anunciar en un to fort, "Vaig a endevinar la seva contrasenya ara mateix, Gabe." "Sí, dret" era la seva resposta. Després es registra, introduir el seu identificador d'usuari, van tornar a enfrontar-s, escriure i dir en veu alta, "Em pregunto si és B-L-A-K-E-7" ? Mecanografia ha mai pagar tan ben bé com ho va fer aquell dia.

Setmana que ve (o aviat): Més entremaliadures de sala d'informàtica de la Universitat.

Té alguna per compartir? Deixar un comentari o e-mail me i vaig a publicar-los aquí.

</final>

Subscriure's al meu blog.

Etiquetas de Technorati:

Anunci públic menor: Windows Viure Seguretat escenes i Contacting espai propietaris

Vaig rebre un grapat de missatges d'individus mitjançant el built-in "enviar un missatge" funció de Microsoft proporciona amb espais en directe (que també acull el meu blog) cada mes.

Aproximadament un terç del temps, els usuaris tindran assegurat el seu compte espais en directe que no puc respondre. Això és alguna classe d'antispam característica que suposo.

</final>

Explicació senzilla: “Valor no cau dins de la gamma prevista.”

ACTUALITZACIÓ: Un cartell anònim va deixar un gran comentari sobre noms interns. Assegureu-vos de llegir-lo.

Quan es treballa amb auriculars d'esdeveniment i un altre codi que fa referència a elements de la llista del SharePoint mitjançant el model d'objecte, Jo sovint cometen errors que generen aquest error en temps d'execució:

Error en carregar i corrent d'auricular d'esdeveniment Conchango.xyzzyEventReceiver en xyzzy, Versió 1.0.0.0 de =, Cultura = neutral, PublicKeyToken = 0dc50a750396c3ac. Informació addicional està per sota. : Valor no cau dins el rang esperat.

Crec que això és un error bastant genèric potencialment causat moltes maneres diferents. No obstant això, una explicació senzilla és que estic referenciant un camp incorrectament. Si el nom del camp és "Data de venciment", Em cal referència a ell com això en un auricular d'esdeveniment:

propietats.Element de llista["Data de venciment"]

Quan em incorrectament o utilitzar el cas malament quan fa referència a l'àmbit, SharePoint genera el damunt esmentat runtime error. Per exemple, això està malament:

propietats.Element de llista["data de venciment"]

</final>

Subscriure's al meu blog.

Etiquetas de Technorati:

Punta ràpida de l'usuari final: Ordena les visualitzacions d'una biblioteca de documents, Llista, etc.

Podem, hauria i crear moltes visualitzacions a les llistes del SharePoint (biblioteques de documents, llistes de costum, etc). Sempre llistes del SharePoint vistes disponibles per ordre alfabètic. No podem canviar aquest ús de la funcionalitat de la caixa. Si es pot fer mitjançant la personalització (i no estic segur que pot), és molt tècnic per al usuari final típic.

Si vol controlar l'ordre en que SharePoint llistes disponibles visites, simplement posa davant un nombre o la lletra amb el nom de visualització, com a:

1 – Els tipus de Material
2 – Tots els Documents
3 – Data de venciment

-o-

A – Els tipus de Material
B – Tots els Documents
C – Data de venciment

També he creat vistes amb l'objectiu és estrictament per alimentar un KPI. He estat seguint aquesta Convenció de nomenclatura:

Z_KPI_[Descripció]

Que provoca el meu "KPI" vistes a aparèixer a la part inferior de la llista.

</final>

Subscriure's al meu blog.

Etiquetas de Technorati: ,

Diumenge Funny: “Quan jo era un nen petit”

Com un pare, en algun lloc al llarg de la línia que vaig descobrir la "Quan jo era un nen petit" Truc.

El meu fill, probablement quatre o cinc en el moment, estava jugant un globus i agrada als nens més petits que juguen amb globus, es va ficar. Estava molt molest. El món s'havia arribat a la seva fi. Jo li deia, "Quan jo era nen petit, Tenia un globus i que es va ficar i, finalment,, Tinc un nou globus." Semblava que l'ajudi a fer front a la pèrdua i el va portar a un divertit parlar el que era quan jo era un nen petit.

Allò funcionava bé com una tècnica de consol i he utilitzat una diverses vegades durant el següent període de temps. Ficar en problemes una vegada quan seu monstre ramader 3 criatura va morir. Vaig parlar sobre com el meu gos, Príncep, havia mort en un accident de cotxe. Aquesta vegada, la seva resposta va ser, "Ara em sento dolents dues coses!" Jo shied Away de utilitzant la "quan era un nen petit" tècnica per consolar-se després d'allò.

Abans de l'incident del gos mort, No obstant això, Jo també havia començat a utilitzar la tècnica per convèncer-lo per fer tasques. "Quan jo era un nen petit, Havia de sortir i fer el diari", "netejar la meva habitació", "aconseguir la mare la seva tassa de cafè", etc.

Això també va ser força reeixida una estona, però va començar a cada vegada més rebel·lar-se contra la tirania de la meva infantesa. Un esdeveniment, en particular, van marcar la fi. Li vaig dir a portar les llaunes d'escombraries de vorera a garatge. Va argumentar i em va respondre, "Quan jo era un nen petit, Vaig haver de recuperar les escombraries al garatge." Va respondre, "Oh sí! Bé quan eres un nen petit, allò era estúpid!".

</final>

Subscriure's al meu blog.

Etiquetas de Technorati:

Vistes i columnes en llistes i les biblioteques de Document no es pot protegir

ACTUALITZACIÓ (02/29/08): Aquest nou projecte de codeplex sembla proporcionar un mètode per assegurar columnes individuals: http://www.codeplex.com/SPListDisplaySetting. Si teniu qualsevol experiència treballant amb ell, Si us plau deixar un comentari.

Cartells fòrum amb freqüència una pregunta com aquesta: "Tinc una visió director i i una visió personal d'una llista. Com segura la vista d'administrador per tal que el personal no es pot utilitzar?"

Ells també amb freqüència una pregunta relacionats: "Vull assegurar una columna de metadades específics per tal que només els gestors poden editar aquesta columna, mentre que altres pot no fins i tot veure-ho."

Aquestes respostes s'aplica a ambdós WSS 3.0 i MOSS:

  • SharePoint no proporciona suport d'out-of-the-box per assegurar visites.
  • SharePoint no proporciona suport d'out-of-the-box de columnes de seguretat.

Hi ha diverses tècniques podeu seguir per complir amb aquests tipus de requisits de seguretat. Heus aquí el que puc pensar:

  • Utilitzar seguretat de nivell d'element de sortida-of-the-box. Vistes sempre respecten la configuració de seguretat de nivell d'element. Auriculars d'esdeveniment i/o flux de treball pot automatitzar l'assignació de seguretat.
  • Utilitzar opinions personals per a "el privilegi" vistes. Aquestes són prou fàcils de configurar. No obstant això, a causa de la seva personal"" Natura, Aquests han de ser configurat per a cada usuari. Utilitza la configuració de seguretat estàndard per impedir qualsevol més creant una opinió personal.
  • Utilitzar una part de web de visualització de dades i implementar algun tipus de solució d'Estiba de seguretat AJAXy.
  • Registre de la seva pròpia funcionalitat d'exhibició de llista i incorporar Estiba de seguretat en el nivell de columna.
  • Modificar les formes d'entrada de dades i utilitzar JavaScript en relació amb el model de seguretat per implementar la retallada de la seguretat de nivell de columna.
  • Utilitzar un formulari InfoPath per a l'entrada de dades. Retallada de seguretat de nivell de columna mitjançant trucades de servei web del SharePoint i condicional amaga els camps com calgui posar en pràctica.
  • Roll el seu propi funció d'entrada de dades d'ASP.NET que implementa la retallada de seguretat de nivell de columna.

Cap d'aquestes opcions no és realment allò gran, però no hi ha com a mínim un camí a seguir si vostè necessita, fins i tot si és difícil.

NOTA: Si se n va algun d'aquests camins, Your say forget about "accions-> Obrir amb Explorador de Windows". Vostè vol estar segur que vostè provar amb aquell tret per assegurar-se que no funciona com una porta del darrere"" i derrotar el seu esquema de seguretat.

Si vostè té altres idees per o experiències amb assegurar columnes o vistes, Si us plau Rebi per email o deixar un comentari i vaig a actualitzar aquest anunci segons s'escaigui.

</final>

Subscriure's al meu blog.

Etiquetas de Technorati:

Punta ràpida: Números de versió de BDC ADF són el seu amic

Si vostè està mà-codificació ADF arxius i fent un munt de codi/importació/prova cicles, Utilitzi el nombre de versió per fer més fàcil la seva vida.

No m'agrada admetre-ho, però fins que aquesta setmana, Sempre es va suprimir l'ADF i tornar a importar-lo. Això seria trencar la meva columnes de dades de negoci i fer-me tornar a ells de filferro. Tot innecessària.

Arxivi això sota "és obvi una vegada que vegi això".

Exemple:

<LobSystem
xmlns:XSi="http://www.w3.org/2001/XMLSchema" XSi:schemaLocation="http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Tipus="WebService" Versió="1.2.0.0" Nom="xyzzyDocumentReview" xmlns="http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Canviar d'aquella versió i re-import i la columna de dades de negoci existents utilitza la versió actualitzada automàticament amb cap configuració addicional requerit.

</final>

Subscriure's al meu blog.

Etiquetas de Technorati:

Solució: Selector de BDC Mostra només una columna de resultats

En el meu intents en curs a proporcionar un columna de cerca més útil utilitzant BDC, Em va colpejar una paret amb el selector BDC. Si no ho veig, el Batan Obridor de BDC és similar a un Batan Obridor de gent, excepte que funciona amb columnes de tipus "dades de negoci".

Accedeix el Batan Obridor de fent clic a la icona de llibre obert d'una columna de dades de negoci, com es Mostra:

imatge

La imatge de dalt Mostra una columna de dades de negoci anomenada "Id de Document mestre". La columna està connectada, Via BDC, a un servei web. El servei web torna dues columnes d'informació: ID de document i títol. El propòsit de negoci aquí és oferir una "aquest document es basa en" funció. Usuaris Seleccioneu un mestre"" document i quan salven, un auricular d'esdeveniment Copia els camps de dades meta del Màster referenciat.

Per defecte, el Batan Obridor de BDC aquest aspecte quan busco un document del qual ID = "38":

clip_image002

Això és útil, però no suficient. La gent no pensa en termes d'IDs, van pensar en termes de títols i/o altres dades de metadades. El selector li permet buscar en altres columnes (e. g. Títol) però no es mostrarà la llista actual dels títols que s'ha trobat, només les seves DocId és com es mostra aquí:

clip_image002[1]

(La captura de pantalla no és tan gran, perquè no agafar una recerca que retorna resultats vàlids, però es pot veure que si que havia trobat alguns resultats, això només seria han demostrat de DocId, no títols).

He buscat alta i baixa per la resposta a això i fallava. El meu col lega, el venerable Jonathan Bradshaw, tenia davant i resoldre aquest problema. Quan he d'arribar a ell per ajuda, ell em va assenyalar en la direcció correcta.

Configurar el selector per mostrar columnes múltiples via "ShowInPicker" propietat a l'ADF:

<Propietat Nom="ShowInPicker" Tipus="System.boolean">True</Propietat>

Amb més detall:

  <!-- Títol -->
  <TypeDescriptor TypeName="System.string" Nom="Títol" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Títol</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Propietats>
      <Propietat Nom="DisplayByDefault" Tipus="System.boolean">True</Propietat>
      <Propietat Nom="ShowInPicker" Tipus="System.boolean">True</Propietat>
    </Propietats>
  </TypeDescriptor>

Definir aquesta propietat introduir un problema menor. Tan aviat com s'estableix una vegada, cal posar-lo per a cada columna que vulgueu mostrar. En el meu cas, Selector BDC mostrava DocId per defecte. No obstant això, una vegada que afegia "ShowInPicker" per títol, Ell ja no es mostren. Que resolia explícitament establint la propietat ShowInPicker per a Doc ID.

Aquí és el resultat:

imatge

(Vaig a explicar el estrany aspecte "168 – CamlSchema.xsd" construcció en un futur bloc. En poques paraules, és una cadena concatenades que té en compte un mica millor experiència d'usuari).

Clar, Després d'haver escrit aquesta entrada del bloc, Només feia una recerca de "ShowInPicker" i trobar nombrosos hits, incloent-hi aquest: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Explica el significat d'aquesta propietat, juntament amb algunes altres bones coses BDC.

</final>

Subscriure's al meu blog!

Etiquetas de Technorati: