marți, 11 noiembrie 2008
WSS 3.0 Visual Studio 2008 Extensions
- Visual Studio 2005
- Visual Studio 2008
Daca insa incercati sa le instalati pe o masina de dezvoltare, si nu pe serverul unde este instalat Windows Sharepoint Services 3.0, va da urmatoarea eroare: "This product can only be installed if Windows SharePoint Services 3.0 has been installed first."
Daca v-ati lovit de problema si nu ati rezolvat-o inca, atunci e bine sa stiti ca exista un truc foarte simplu care va permite instalarea VSeWSS si pe masina voastra de dezvoltare: cu ajutorul regedit-ului asigurati-va ca exista calea de mai jos (daca nu, creati-o) si adaugati aici cheia si valoarea specificate mai jos:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0]
"Sharepoint"="Installed"
Dupa instalare e bine sa instalati in GAC assembly-urile (cel putin Microsoft.SharePoint.dll) localizate in
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI\
luni, 13 octombrie 2008
WSS 3.0 VPC
- Windows Server 2003
- Windows SharePoint Services 3.0 (SP1)
- Visual Studio 2008 + Visual Studio 2008 WSS Extensions
- 10 Hands on Labs pentru a invata SharePoint.
... poate fi downloadat AICI si expira pe 30 Septembrie 2009 (1 an, deci timp suficient de studiu si joaca cu el).
Pentru studiu mai puteti downloada AICI cateva webcast-uri si demo-uri in format PowerPoint.
marți, 3 iunie 2008
SharePoint Developer Portal

miercuri, 9 ianuarie 2008
How tos: configurare SharePoint 2007 pentru ASP.NET Ajax
incepand cu Service Pack 1 pentru AJAX.NET. Pentru aceasta insa trebuie urmati pasii:
- Downloadati si instalati
ASP.NET 2.0 AJAX Extensions 1.0 pe server-ul unde esta instalat SharePoint 2007 (daca SharePoint-ul s-a instalat intr-un webfarm, atunci ASP.NET Ajax Extensions trebuie instalat pe fiecare server); - Modificati web.config-ul
de la website-ul(urile) din SharePoint pentru care vreti sa activati Ajax (voi detalia
mai jos); - Adaugati ScriptManager-ul la nivel de master.page
Modificarea web.config-ului
Mai intai trebuie sa identificati website-ul din SharePoint pentru care doriti adaugarea
suportului pentru AJAX, retineti portul si deschideti web.config-ul din locatia
file:////[servername]/c$/Inetpub/wwwroot/wss/VirtualDirectories/[PortNumber]/web.config - daca accesati pe retea serverul unde este instalat MOSS 2007
sau
c:\Inetpub\wwwroot\wss\VirtualDirectories\[PortNumber]\web.config - daca accesati direct serverul unde este instalat MOSS 2007
si:
1. Adaugati un element nou <sectionGroup> in interiorul tag-ului <configSections>:
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
2. Adaugati tag-ul <controls> in interiorul <system.web>/<pages>:
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
3. Adaugati urmatoarele inregistrari in tag-ul <assemblies> din sectiunea
<compilation>:
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
4. Adaugati urmatoarele linii la sfarsitul sectiunii <httpHandlers>:
<httpHandlers>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
5. Adaugati urmatoarea linie la sfarsitul sectiunii <httpModules>:
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
6. Inregistrati toate controalele din System.Web.Extensions ca SafeControls in
interiorul sectiunii <SharePoint>/<SafeControls>:
<SafeControls>
<SafeControl Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TypeName="*" Safe="True" />
</SafeControls>
7. In final adaugati urmatoarea sectiune la sfarsitul web.config-ului, chiar inainte de tag-ul </configuration>:
<system.web.extensions>
<scripting>
<webServices>
<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
<!--
<authenticationService enabled="true" requireSSL = "truefalse"/>
-->
<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and writeAccessProperties attributes. -->
<!--
<profileService enabled="true"
readAccessProperties="propertyname1,propertyname2"
writeAccessProperties="propertyname1,propertyname2" />
-->
</webServices>
<!--
<scriptResourceHandler enableCompression="true" enableCaching="true" />
-->
&nbs
</scripting>
</system.web.extensions>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
</system.webServer>
Adaugati ScriptManager-ul
E bine stiut ca pentru a putea folosi UpdatePanel-ul si celelalte controale din ASP.NET Ajax
Extension trebuie ca la inceputul paginii sa fie adaugat un tag <asp:ScriptManager...>, iar acesta nu poate exista in pagina decat maxim odata. Varianta cea mai simpla e sa adaugam ScriptManager-ul in interiorul webpart-ului nostru, insa solutia nu merge... Ce se intampla daca in aceeasi pagina adaugam mai multe instante ale webpart-ului nostru? Bineinteles ca se vor crea mai multe instante ale ScriptManager-ului si aplicatia va crapa.
Exista insa doua solutii care elimina aceasta problema:
1. Modificam master page-ul din SharePoint si adaugam tag-ul
<asp:ScriptManager...> la inceputul acestuia. Acesta poate fi deschis fie cu
SharePoint Designer 2007, sau chiar cu notepad-ul, din view-ul
http://[moss_server]/_catalogs/masterpage/Forms/AllItems.aspx iar tag-ul
ScriptManager trebuie adaugat imediat dupa <form>.
2. O varianta mult mai flexibila si la indemana tuturor o reprezinta SmartPart-ul... Pentru aceasta trebuie downloadat si instalat Return of SmartPart (gasiti un document Word in interiorul arhivei care va explica cum se instaleaza si cum se foloseste). Acest modul contine un webpart numit AJAXSmartPart si care poate fi folosit pentru controalele care folosesc
AJAX.
Aruncand un ochi cu reflector-ul lui Roeder in assembly-ul SmartPart-ului, la tip-ul AJAXSmartPart, vedem ca la initializarea controlului se obtine instanta curenta din pagina de ScriptManager, iar daca nu exista se creeaza si se adauga. Asa ca folositi-l cu incredere ;-)