Arkiv

Posts Tagged ‘.net’

AD integrasjon i SharePoint uten MySites

21/10/2009 astrand Kommentér

I et prosjekt jeg arbeider på, hadde vi krav om å hente ut AD informasjon om brukerne av løsningen, men MySites skulle ikke benyttes (ihvertfall ikke enda.). Profiles er jo en glimrende del av SharePoint som gir enorme muligheter for mer community rettede løsninger og interaksjon/integrering med AD. Både sett fra brukerens side og organisasjonen er ser jeg stort sett bare fordeler med å ha MySites tilgjengelig.

Uten MySites blir det ofte veldig kronglete å hente/oppdatere data fra AD fra et SharePoint grensesnitt. Dog finnes det mange gode løsninger som gjør AD felter og informasjon tilgjengelig. Det er dog ikke alt som er like enkelt å lagre tilbake til AD takket være diverse policy instillinger (som ofte varierer fra selskap til selskap), men en custom liste med de nødvendige feltene retter fort opp det.

For å koble til AD lagde jeg et eget AD query objekt og et eget ADBruker objekt som passet mine behov. Å hente ut data fra AD brukte jeg System.DirectoryServices, med DirectoryEntry og DirectorySearch som grunnlag. Herfra og ut ble det ganske enkelt. ADBruker objektet mitt hentet ut alle feltene til den angitte brukeren. Ved å lage en egen metode for oppdatering og angi hvilke felter en bruker kunne oppdatere var det eneste som gjenstod å lage et brukerinterface (skjema) for brukerne.

Mitt utgangspunkt var å knytte AD informasjon fra brukeren til opprettet innhold i SharePoint. Alle elementene som ble opprettet i en liste skulle merkes med en verdi som ble hentet fra AD. Basert på denne verdien skulle det så gå mail til riktig person for videre bearbeidelse.

Jaja, lang historie kort. Her er koden jeg brukte.

Koden:
ADQuery
ADUser

Categories: SharePoint Merkelapper:,

Hvordan få tak i SharePoint WebPart Property Attributes i en usercontrol

18/05/2009 astrand Kommentér

Jeg pleier å lage usercontrols når jeg utvikler i SharePoint, som ofte gir et lite fleksibelt resultat.
Noe av styrken til webparts er jo at man kan definere attributter og dermed lage de (realtivt) generelle og benytte seg av innebygget funksjonalitet (f.eks. Personalisering).

Ved å legge selve logikken ut i en usercontrol tenker mange at man da går glipp av all denne funksjonaliteten, men det er ganske feil.

Ved å definere opp variabler i usercontrolen, som mottar WebPartens attributter går det hele veldig pent for seg.
Et lite eksempel:

      public override void CreateChildControls()
      {
            base.CreateChildControls();
            UserControl uc = (UserControl)Page.LoadControl(@”/UserControl/testUC.ascx”);
            uc.testValue = “Bananas”; //Her henter du webparten sine attributter.
            Controls.Add(uc);
      }

Inne i usercontrolen må du da legge til:
        public string TestValue

Categories: SharePoint Merkelapper:,

SharePoint WebPart Property Attributes

18/05/2009 astrand Kommentér

Fant en god artikkel om hvordan man bruker atributter i SharePoint webparts, så webpartene kan utvikles mer generelt.

Posten (som jeg har hentet fra http://joeshepherd.spaces.live.com/blog/cns!9AE2097A4A610B63!302.entry) har jeg kopiert hit, så jeg har den i “arkivet”.

I wanted to put this information out there because it was not well published when I was building WebParts for the first time. When you build a WebPart in MOSS 2007 you have the ability to expose the public properties of the WebPart in the editor pane of the WebPart page. This allows you to set some administrative values for the WebPart behind the scenes. In order to make this happen you have to tag the property as being Web Browsable. Unfortunately most of the documentation only gives information on the WebBrowsable and Personalizable attributes. However there are a few others that you might find valuable to know about. Some of the other attributes are listed below along with explanations and links to further resources.

WebBrowsable [WebBrowsable(True)]
“Indicates whether the designated property of a Web Parts control is displayed in a PropertyGridEditorPart object.” (MSDN) http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webbrowsableattribute.aspx

WebPartStorage [WebPartStorage(Storage.Personal)]
This attribute specifies what type of storage options the WebPart will make use of. The most common is Storage.Personal. “This property can be personalized by individual users. Its WebPartStorageAttribute value is Storage.Personal, which specifies that the property can be stored on a per-user basis. Only users with the Personalize Web Part pages right can set this property.” (MSDN) http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.webpartstorageattribute.aspx

Personalizable [Personalizable(true)]
Allows users the ability to personalize settings for the WebPart. http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.personalizableattribute.aspx

WebDispayName [WebDisplayName(string)]
Defines the Friendly Name for a property of a WebPart control. This is the name that will show up in the editor screen. http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webdisplaynameattribute.aspx

WebDescription [WebDescription(string)]
Defines the string value to use as a ToolTip for a property of a Web Parts control. (MSDN) http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webdescriptionattribute.aspx

SPWebCategoryName [SPWebCategoryName(string)]
Defines the friendly or localized name of the category of a property in the CustomPropertyToolPartcontrol inside the ToolPane. http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.spwebcategorynameattribute.aspx

ConnectionProvider [ConnectionProvider(string)]
Identifies the callback method in a server control acting as the provider in a Web Parts connection, and enables developers to specify details about the provider’s connection point. (MSDN) This is used to create connectable WebParts. http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.connectionproviderattribute.aspx

ConnectionConsumer [ConnectionConsumer(string)]
Identifies the callback method in a server control acting as the consumer in a Web Parts connection, and enables developers to specify details about the consumer’s connection point. (MSDN) This is used to create connectable WebParts. http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.connectionconsumerattribute.aspx

Below is an example of how to use these attributes in your WebPart code.
[WebBrowsable(true),
Personalizable(false),
WebPartStorage(Storage.Personal),
WebDisplayName("User Name(Domain\\username)"),
WebDescription("User to display in the WebPart."),
SPWebCategoryName("Options")]
public string UserLoginName
{
    get { return _loginName; }
    set { _loginName = value; }
}

Happy coding!

Categories: SharePoint Merkelapper:,

Sharepoint 2007 Form Based Authentication

24/02/2009 astrand Kommentér

Fant en virkelig god oversikt over hvordan man kan implementere og feilsøke flere forskjellige authentication providers som både kommer som standard i windows, men også endel andre. Deriblandt ADSF.

http://blogs.msdn.com/harsh/archive/2007/01/10/forms-based-authentication-in-moss.aspx

Categories: Uncategorized Merkelapper:,

Update et liste element uten å lage ny versjon

09/02/2009 astrand Kommentér

Normalt er versjonshåntering og historikk et stort salgsargument for å ta i bruk SharePoint, men det er ikke alltid man ønsker å lage en ny versjon av et element i en liste.

Normalt sett bruker jeg følgende kode for å oppdatere og å lage en ny versjon av liste elementet:

SPList list = web.Lists["myList"];
SPListItem item = list.Items[0];

item["myField"] = “my value”;

item.Update();
list.Update();

Men nå skulle oppdatere et element uten å lage en ny versjon, ble jeg litt svar skyldig.
Etter litt frem og tilbake på msdn, fant jeg frem til en nydelig funksjon som er tilgjengelig på liste elementet i SharePoint.

SPList list = web.Lists["myList"];
SPListItem item = list.Items[0];

item["myField"] = “my value”;

item.SystemUpdate(false);
list.Update();

Ved å bruke SystemUpdate funksjonen oppdaterer ikke SharePoint liste elementet sine Modified felter (Modified, Modified by osv.) ved å sende inn false, som argument til funksjonen. Som standard sendes det inn true, og da opprettes det nye versjoner av elementet.

Det eneste som deretter gjenstod var å redigere workflow’en slik at det nye elementet i listen automatisk godkjent for publisering.

Categories: SharePoint Merkelapper:,

Value does not fall within the expected range

05/02/2009 astrand Kommentér

Denne SharePoint feilmeldingen ender man veldig fort opp med når man skal hente ut verdier fra lister.

Det aller første du bør trippelsjekke er at du reffererer til riktig felt. Alle feltnavn er case sensitive.
Gå til Listen du ønsker å bruke, klikk deg inn på List settings, og klikk på alle feltene du ønsker å bruke.
I url’en du da kommer til, vil kolonnens egentlige og virkelige navn vises. Bruk dette navnet i koden.

Når du ellers henter ut verdier fra lister, er det veldig fornuftig å bruke foreach løkker. Da ungår man å reffere til kolonner eller elementer som ikke eksisterer.

.NET 3.5, LINQ, Popfly, facebook og mye mer

25/11/2007 astrand Kommentér

Jeg var på et herlig “vekkende” seminar her i forrige uke, med Jonas Follesø som virkelig viste frem det ypperste av hva Microsoft sin .net 3.5 platform har å by på.

Det er enda flere bruksområder enn de han presenterte, men her var det de enorme mulighetene som ligger i teknologien og hvordan vi som utviklere lager ting som andre kan benytte seg av.

Det reiser selvsagt endel spørsmål, spesiellt omkring oppetid hos de leverandørene vi benytter oss av i våre applikasjoner, men det er en annen post.

I seminaret ble det laget en enkel community webside, Divebook, som benytter seg av både LINQ, .net 3.5, Silverlight og som i tillegg integreres i facebook, popfly, wikipedia og VirtualEarth for å nevne noe.

Alt materiell ligger tilgjengelig på Jonas’ sin blogg og der kan du også laste ned kildekode og surfe på en haug med refferanser.

Mye av det som kommer fra Redmond om dagen er fakstisk enormt bra. .net 3.5 og visual studio 2008 er enorme oppgraderinger for oss som utviklere, så her er det mye å hente.

Eneste som mangler nå er at jeg faktisk får tid til å sette meg ned å leke litt med det….

Jada, .net ER tingen

27/10/2007 astrand Kommentér

Da har endelig thesilentgroup kommet med en ny utgave av Fluorine, som virkelig rocker flex og flash utvikling med .net. (noe som amfphp har hatt monopol på lenge nok.)

Med flash 9 eller viktigst as3 har dette virkelig begynt å ta av.

Jeg har akkurat sittet med en større løsning på flash, som krevde mye som frem til lanseringen av FluorineFX har måttet løses enten med diverse xml og html sider innimellom flashløsningen og som amfphp utviklere har fått til lekende enkelt , men som vi nå løste på bortimot halve utviklingstiden (for back end løsningen) og flash utviklingen gikk som en drøm.

Dette bør absolutt sjekkes ut, hvis du sitter med flash backend.

Categories: Internett, Teknologi Merkelapper:, ,