<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blog.aspnet.sk/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>uXo-weBlog</title><link>http://blog.aspnet.sk/uxo/default.aspx</link><description>JA blogujem,
      TY bloguješ,
           MY blogujeme...
                 ... na aspnet.sk</description><dc:language>sk-SK</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Začíname programovať WebParty pre SharePoint</title><link>http://blog.aspnet.sk/uxo/archive/2009/04/19/za-237-name-programova-webparty-pre-sharepoint.aspx</link><pubDate>Sat, 18 Apr 2009 23:34:30 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:105156</guid><dc:creator>uXo</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/uxo/rsscomments.aspx?PostID=105156</wfw:commentRss><comments>http://blog.aspnet.sk/uxo/archive/2009/04/19/za-237-name-programova-webparty-pre-sharepoint.aspx#comments</comments><description>&lt;p&gt;Po dlhšom čase som si konečne našiel čas aj na blog. Každý kto už aspoň trochu pričuchol k programovaniu pre SharePoint mi dá zapravdu, že s vývojárskou dokumentáciou to v tomto smere nie je práve ružové. &lt;/p&gt;  &lt;p&gt;WebParty pre SharePoint sú podobné s tými v ASP.NET, tvoríme všsk iba samotné WebParty, Zóny nam predkladá priamo SharePoint.Pred tým, než začneme je dôležité mať nainštalovaný SharePoint (bohužiaľ funguje iba na Win Server), Visual Studio 2005/2008 a Visual Studio extensions for Windows SharePoint Services (&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7BF65B28-06E2-4E87-9BAD-086E32185E68&amp;amp;displaylang=en" target="_blank"&gt;link&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt;Vo Visual Studio nám medzi projektmi pribudla položka &amp;quot;SharePoint&amp;quot;, z ktorej vyberieme projekt typu &amp;quot;Web Part&amp;quot;. V sekcií &amp;quot;usingov&amp;quot; resp. vo VB.NET &amp;quot;importov&amp;quot; si môžme všimnúť naimportované nové Namespaces SharePoint, ktoré nám umožňujú pripojenie k Listom Sharepointu a jeho ďalším súčastiam. Nadeklarujeme si objekty, s ktorými budeme pracovať (textbox tb_meno, label lbl_pozdrav, button btn_pozdravit) následovne: &lt;/p&gt;  &lt;p&gt;namespace WP_Hello_World    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [Guid(&amp;quot;7b42fda9-d28e-4a40-9651-ca8b0cd677b4&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TextBox tb_meno;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Label lbl_pozdrav;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Button btn_pozdravit; &lt;/p&gt;  &lt;p&gt;V následujúcom kroku musíme prepísat metódu CreateChildControls(), v ktorej vytvoríme instancie komponent a priradíme im properties a handlery. Každý ovládací prvok musíme pridať aj do kolekcie prvkov: &lt;/p&gt;  &lt;p&gt;protected override void CreateChildControls()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.CreateChildControls(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tb_meno = new TextBox();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tb_meno.Width = 150;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Controls.Add(tb_meno);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lbl_pozdrav = new Label();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Controls.Add(lbl_pozdrav);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; btn_pozdravit = new Button();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; btn_pozdravit.Text = &amp;quot;Pozdrav !&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; btn_pozdravit.Click += new EventHandler(btn_pozdravit_Click);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Controls.Add(btn_pozdravit);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;Tlačítku sme pridali handler na spracovanie kliknutia, ktorý môže vyzerať napríklad takto: &lt;/p&gt;  &lt;p&gt;void btn_pozdravit_Click(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lbl_pozdrav.Text = &amp;quot;Ahoj &amp;quot; + tb_meno.Text + &amp;quot; !&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;Už nám chýbajú posledné riadky kódu. Predpokladáte správne, musíme naše ovládacie prvky vykresliť. Prepíšeme teda metódu Render(), v ktorej za pomoci HtmlTextWriteru vygenerujeme ovládacie prvky na správnych miestach: &lt;/p&gt;  &lt;p&gt;protected override void Render(HtmlTextWriter writer)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.Write(&amp;quot;Meno: &amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tb_meno.RenderControl(writer);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.Write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; btn_pozdravit.RenderControl(writer);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.Write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lbl_pozdrav.RenderControl(writer);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;Prvý WebPart máme napísaný a pripravený. Teraz ho musíme umiestniť na Sharepoint. Tento proces sa nazýva Deploy a pri prvom deploy stačí vo Visual Studio vybrať Deploy z ponuky Build. Spustíme SharePoint a prepneme Site do módu editácie. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.aspnet.sk/blogs/uxo/WP1_2BF3718E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="WP1" border="0" alt="WP1" src="http://blog.aspnet.sk/blogs/uxo/WP1_thumb_6BBD5813.jpg" width="244" height="156" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Vyberieme si kontajner vloženia WebPartu a dáme pridať nový. Z ponuky vyberieme náš nový WebPart. Keďže sme ho v Solution nepremenovali, nájdeme ho pod názvom WebPart1. Opustíme mód editovania a môžme používať náš nový WebPart.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.aspnet.sk/blogs/uxo/WP2_32A67B11.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="WP2" border="0" alt="WP2" src="http://blog.aspnet.sk/blogs/uxo/WP2_thumb_649E1B9B.jpg" width="755" height="223" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Zájdime trochu ďalej a vylepšime si náš WebPart o DropDownList so všetkými používateľmi na SharePointe. Predsa len vytvárať WebParty, ktoré nevyúživajú SharePoint, jeho listy a najmä údaje v ňom uložené je asi zbytočné. Nahraďme teda textbox tb_meno za ddl_pouzivatelia. V metóde CreateChildControls() sa pripojíme k SharePointu a naplníme DropDownList loginom ako zobrazovacím textom a ID používateľa použijeme ako unikátne value. Všetky triedy z Namespace SharePoint začínaju na SP, čím ich ľahko identifikujeme a rozlíšime v kóde. Pomocou triedy SPSite sa pripojime k SharePointu ako takému a k “sajte”, s ktorou chceme ďalej pracovať. SPWeb slúži na otvorenie už samotného webu, ktorý obsahuje požadované Listy a údaje. Pokiaľ je site a web totožný, pri vytváraní instancie triedy SPWeb nepoužívame žiadne parametre. Následne prejdeme kolekciu SiteUsers, ktorá obsahuje všetkých používateľov na konkrétnej “sajte”.&lt;/p&gt;  &lt;p&gt;ddl_pouzivatelia = new DropDownList();    &lt;br /&gt;SPSite site = new SPSite(&amp;quot;&lt;a href="http://win-9bvdun022kr/&amp;quot;);"&gt;http://win-9bvdun022kr/&amp;quot;);&lt;/a&gt;     &lt;br /&gt;SPWeb web = site.OpenWeb();     &lt;br /&gt;foreach (SPUser u in web.SiteUsers)     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ListItem pouzivatel = new ListItem();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; pouzivatel.Text = u.LoginName;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; pouzivatel.Value = u.ID.ToString();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ddl_pouzivatelia.Items.Add(pouzivatel);     &lt;br /&gt;}     &lt;br /&gt;web.Close();     &lt;br /&gt;site.Close();     &lt;br /&gt;Controls.Add(ddl_pouzivatelia);&lt;/p&gt;  &lt;p&gt;Na záver ukončíme spojenie so SharePointom. Upravíme aj udalosť kliknutia následovne:&lt;/p&gt;  &lt;p&gt;void btn_pozdravit_Click(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPSite site = new SPSite(&amp;quot;&lt;a href="http://win-9bvdun022kr/&amp;quot;);"&gt;http://win-9bvdun022kr/&amp;quot;);&lt;/a&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPWeb web = site.OpenWeb();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPUser u = web.SiteUsers.GetByID(Convert.ToInt32(ddl_pouzivatelia.SelectedValue)); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lbl_pozdrav.Text = &amp;quot;Ahoj &amp;quot; + u.Name + &amp;quot; !&amp;quot;; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; web.Close();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; site.Close();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Opäť sa pripojíme na SharePoint a tentokrát do instancie triedy SPUser nájdeme konkrétneho používateľa na základe jeho unikátneho ID vybraného z DropDownListu. Do pozdravu vypíšeme tentokrát meno používateľa. V poslednom kroku nezabudnite vyrenderovať novýovládací prvok v metóde Render().&lt;/p&gt;  &lt;p&gt;Pokiaľ sa pokúsite urobiť publish webpartu, Visual Studio vygeneruje nezmyselnú chybu. Rieši sa to tak, že sa dá Rebuild Solution a následne sa nová DLL knižnica skopíruje do priečinka Windows/Assembly, čím sa nahradí pôvodný webpart. Teraz je potrebné zavolať z príkazového riadku iisreset, aby sa SharePoint naštartoval nanovo už s novou verziou WebPartu. Žiaľ publish funguje iba prvýkrát.&lt;/p&gt;  &lt;p&gt;Prajem Vám veľa funkčného kódu ;)&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=105156" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/uxo/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blog.aspnet.sk/uxo/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category></item><item><title>Pridelovanie a odstranovanie prav na urovni SPListItem</title><link>http://blog.aspnet.sk/uxo/archive/2008/05/27/pridelovanie-a-odstranovanie-prav-na-urovni-splistitem.aspx</link><pubDate>Tue, 27 May 2008 12:59:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:9909</guid><dc:creator>uXo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/uxo/rsscomments.aspx?PostID=9909</wfw:commentRss><comments>http://blog.aspnet.sk/uxo/archive/2008/05/27/pridelovanie-a-odstranovanie-prav-na-urovni-splistitem.aspx#comments</comments><description>&lt;p&gt;Tak dnes som riesil zaujimavy problem, ako nastavit prava konkretnym polozkam SPListu bez ohladu na dedenie prav samotneho SPListu.&lt;/p&gt;
&lt;p&gt;Ako teda na to... Najprv sa pripojime na pozadovany site a list:&lt;/p&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;
&lt;p&gt;SPSite&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; site &lt;font size="2"&gt;= &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;SPSite&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;a href="http://moss/"&gt;http://moss/&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;);&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;SPWeb&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; web = &lt;font size="2"&gt;site.OpenWeb();&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;SPList&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; list = &lt;font size="2"&gt;web.Lists[&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;nazov_listu&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;];&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;vytiahneme pozadovany prvok z listu:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;
&lt;p&gt;SPListItem&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; i = list.Items[GUID];&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;vyberieme uzivatela, ktoremu chceme pridelit prava:&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;
&lt;p&gt;SPUser&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; u = web.SiteUsers.GetByID(ID);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;nadefinujeme typ prav a pridelime ich uzivatelovi:&lt;/font&gt;&lt;/p&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;
&lt;p&gt;SPRoleDefinition&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rd = web.RoleDefinitions.GetByType(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;SPRoleType&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Contributor);&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;SPRoleAssignment&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; ra = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;SPRoleAssignment&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(u.LoginName, u.Email, u.Name, u.Notes);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;ra.RoleDefinitionBindings.Add(rd);&lt;/p&gt;
&lt;p&gt;Typ Contributor ma prava na citanie,zapisovanie a editaciu, pozor nie su to admin prava! Tento user napr. nebude moct pridelovat dalsie prava k polozke. V dalsom kroku zastavime dedenie prav z listu a povolime tzv. nie bezpecne upravy, to vsak neznamena,ze su nebezpecne ;)&lt;/p&gt;&lt;font size="2"&gt;i.BreakRoleInheritance(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;web.AllowUnsafeUpdates = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;
&lt;p&gt;site.AllowUnsafeUpdates = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;&lt;/font&gt;
&lt;p&gt;Dalsi krok nie je nevyhnutny. Pokial ale chceme zmazat vsetky predchadzajuce prava, ci uz rucne, programovo pridane alebo zdedene, napiseme tuto cast kodu:&lt;/p&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;SPRoleAssignmentCollection&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; rac = i.RoleAssignments;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;for&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp;x = (i.RoleAssignments.Count - 1);&amp;nbsp;x &amp;gt;= 0; x--)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;i.RoleAssignments.Remove(i.RoleAssignments[x].Member);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Poslednou castou je pridelenie uzivatela s pravami k danej polozke, update polozky na server&amp;nbsp;a opatovny zakaz &amp;quot;nie bezpecnych uprav&amp;quot;:&lt;/p&gt;&lt;font size="2"&gt;
&lt;p&gt;i.RoleAssignments.Add(ra);&lt;/p&gt;
&lt;p&gt;i.Update();&lt;/p&gt;web.AllowUnsafeUpdates = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;site.AllowUnsafeUpdates = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Vela stastia v badani uskali v MOSSe ;)&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=9909" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/uxo/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blog.aspnet.sk/uxo/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category></item><item><title>Veľké listy v Microsoft Office SharePoint Server 2007 (MOSS)</title><link>http://blog.aspnet.sk/uxo/archive/2008/05/26/ve-k-233-listy-v-microsoft-office-sharepoint-server-2007-moss.aspx</link><pubDate>Mon, 26 May 2008 12:06:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:9795</guid><dc:creator>uXo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/uxo/rsscomments.aspx?PostID=9795</wfw:commentRss><comments>http://blog.aspnet.sk/uxo/archive/2008/05/26/ve-k-233-listy-v-microsoft-office-sharepoint-server-2007-moss.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Konecne sa urcite zalezitosti utriasli a nasiel sa nejaky ten cas aj na blogovanie. V najblizsej dobe sa budem asi viac venovat SharePointu a aj preto, ze je to cierna diera MS, skratka dokumentacie pre developerov je viac ako malo.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Podla MS by&amp;nbsp;root list nemal mat viac ako 2000 poloziek. Viac poloziek je mozne zadat vnorenim priecinkov/listov, teda napr. root by mal 1990 poloziek a zvysnych 10 by boli dalsie listy opat po 2000 poloziek. Maximalny pocet poloziek aj s vnorenymi je stanovevny na 5&amp;nbsp;000&amp;nbsp;000. Mozu sa vytvarat aj vacsie listy avsak treba mat na ne vlastny interface na manazovanie dat, teda nepouzivat defaultne MOSS zobrazovania listov,ale napisat si vlastne ci uz aspx alebo webparty.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MS urobil niekolko testov s pracou s velkymi listmi a ja som niektore tiez odskusal.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Rozhodne nepouzivajte na citanie listov tieto metody:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;- Nacitavanie do default List viewerov MOSS&lt;/li&gt;
&lt;li&gt;- SPList + foreach&lt;/li&gt;
&lt;li&gt;- SPList + DataTable&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Tieto 3 sposoby su niekolko desiatok nasobne pomalsie ako vsetky ostatne.&lt;/p&gt;
&lt;p&gt;Pozrime sa teda na ostatne moznosti:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;- SPList + SPQuery&lt;/li&gt;
&lt;li&gt;- SPListItem + DataTable&lt;/li&gt;
&lt;li&gt;- Lists Web Service&lt;/li&gt;
&lt;li&gt;- Search&lt;/li&gt;
&lt;li&gt;- PortalSiteMapProvider&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pomerne dolezite je aj indexovat alebo neindexovat stlpce, podla ktorych sa urcuju kriteria vo &amp;quot;WHERE&amp;quot;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hodnotenie:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;- &lt;b&gt;SEARCH&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Tato metoda bola jedna z najrychlejsich, ma vsak jeden problem. Nedokaze vratit data, kym neboli vsetky zindexovane. Zvlastne, ale tato metoda je rychlejsia, ak v klauzule WHERE je defaultne ID a nie indexovany stlpec.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;- &lt;b&gt;SPList, SPListItem&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Osobne sa mi tieto moznosti zdaju najlepsie aj ked opat maju jednu chybicku. Pri prezerani vstekych dat,teda aj vnorenych listov je do atributu ViewAttributes SPQuery potrebne zakomponovat Scope=&amp;quot;Recursive&amp;quot; a mozu byt pouzite iba na pc, na ktorom moss bezi s vynimkou WebService, ktore tu tiez spadaju, ale su o nieco pomalsie, no pouzitelne. Tieto metody su rychlejsie, ak sa do klauzuly WHERE vlozi indexovany stlpec.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;- &lt;b&gt;PortalSiteMapProvider&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Bezkonkurencne najrychlejsia metoda pristupu k datam. Das a pouzit iba cez browser v desktop aplikaciach nie, pretoze pracuje na principe cashovania dat. Prve nacitanie je vzdy o nieco dlhsie,ale ostatne su v niekolkych milisekundach. PSMP si vie odkontrolovat,ci sa data v liste zmenili a musi ich nanovo cashovat,alebo nie. Defaultne nastaveny site collection object na cash je 100MB. Opat tak ako pri Search je lepsie pouzit vo WHERE defaultne ID ako indexovany stlpec. Osobny nazor: Je to sice velmi rychla metoda,ale dost nepouzitelna ak sa data casto menia a nie k dispozicii stroj s velkou RAM na ulozenie cashov.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Na zaver este jeden link, kde je problematika specifikacie serveru na rychlost mossu: &lt;a href="http://technet.microsoft.com/en-us/library/cc262787.aspx"&gt;http://technet.microsoft.com/en-us/library/cc262787.aspx&lt;/a&gt;&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=9795" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/uxo/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blog.aspnet.sk/uxo/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category></item><item><title>Pár viet na úvod...</title><link>http://blog.aspnet.sk/uxo/archive/2007/06/07/p-225-r-viet-na-250-vod.aspx</link><pubDate>Thu, 07 Jun 2007 20:22:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:14</guid><dc:creator>uXo</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/uxo/rsscomments.aspx?PostID=14</wfw:commentRss><comments>http://blog.aspnet.sk/uxo/archive/2007/06/07/p-225-r-viet-na-250-vod.aspx#comments</comments><description>&lt;p&gt;Pozdravujem všetkých,&lt;/p&gt;&lt;p&gt;
samozrejme na úvod musím zablahoželať Spigimu k úspešnému dotiahnutiu nového portálu a taktiež mu poďakovať za pridelenie weblogu. Pasujem sa s rovnakým problémom ako ostatní kolegovia, teda nedostatok času, preto dúfam, že si nájdem čas, čo najčastejšie prispieť niečím zaujímavým z IT, respektíve niečím na odreagovanie. &lt;img src="http://blog.aspnet.sk/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;/p&gt;&lt;p&gt;Nemožem sa pochváliť ako moji &amp;quot;kolegovia&amp;quot;&amp;nbsp;&lt;img src="http://blog.aspnet.sk/emoticons/emotion-10.gif" alt="Embarrassed" /&gt; nejakými vysokými znalosťami v tomto obore, momentálne som ešte stále študentom nemecko-slovenského bilingválneho gymnázia v Poprade s výhliadkou na štúdium v Nemecku. (Uvidíme, čo na to matura &lt;img src="http://blog.aspnet.sk/emoticons/emotion-16.gif" alt="Zip it!" /&gt; ) Problematike .NET Frameworku a hlavne ASP.NET sa venujem asi tak 2-3 roky, počas ktorých sa mi podarilo nazbierať nejaké tie skúsenosti, ktoré sa vám budem snažiť sprostredkovať ďalej.&lt;/p&gt;&lt;p&gt;Teším sa na vaše ohlasy, pripomienky a názory &lt;img src="http://blog.aspnet.sk/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;
		&lt;script src="http://connect.facebook.net/en_US/all.js#xfbml=1"&gt;&lt;/script&gt;&lt;fb:like href="" show_faces="true" width="450" font=""&gt;&lt;/fb:like&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=14" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/uxo/archive/tags/others/default.aspx">others</category></item></channel></rss>