|
Przed przystąpieniem do pisania zapytań w LINQ należy stworzyć klasę, która opisuję strukturę danych dostępną na portalu z listą Employees. Klasę tę można wygenerować stosując jedną z dwóch metod:
1. Wykorzystać narzędzie SPMetal.exe dostarczane łącznie z SharePoint 2010
Wspomniana aplikacja jest bardzo przydatnym narzędziem, które dostarcza podstawową funkcjonalność tworzenia modelu danych. Dużo większe możliwość (podobne do LINQ to Entity) dostarczają rozwiązania firm trzecich. Do plusów SPMetal należą między innymi:
- generuje model danych na podstawie strony SharePoint w dwóch językach C# i VB,
- daje możliwość konfiguracji za pomocą XML, które obiekty strony mają być zmapowane,
- jest prosty w obsłudze.
Aby ściągnąć całą strukturę danych z portalu SharePoint należy wywołać aplikację SPMetal z parametrami:
spmetal.exe /web:http://os-stg /code:C:\PortalSite.cs
Aplikacja SPMetal.exe znajduje się w katalogu:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN
Taki sposób ściągania struktury danych jest wygodny ale niestety tworzy klasę zawierającą wszystkie obiekty znajdujące się na stronie. Istnieje jednak możliwość konfiguracji SPMetal w ten sposób aby zbudować klasę obrazującą jedynie niektóre obiekty. Przykładowy XML dla listy Employees przedstawiany jest poniżej:
<Web AccessModifier="Internal" xmlns="http://schemas.microsoft.com/SharePoint/2009/spmetal">
<List Name="Employees">
<ContentType Name="Contact" Class="ContactUser" />
</List>
<ExcludeOtherLists></ExcludeOtherLists>
</Web>
Dla prostoty użycia narzędzia SPMetal można stworzyć plik *.bat który będzie uruchamiał aplikację z odpowiednimi parametrami. Zawartość takiego pliku dla aktualnego przykładu wygląda następująco:
@SET SPMETAL="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\SPMetal.exe"
%SPMETAL% /web:http://os-stg /code:EmployeesList.cs /language:csharp /parameters:SPMetal.xml
pause
gdzie:
SPMetal.xml to jest plik z konfiguracją przedstawioną powyżej.
2. Wykorzystać narzędzia DSL firm trzecich
Aby uprościć jeszcze bardziej proces tworzenia modelu danych można użyć dodatków do Visual Studio firm trzecich, które umożliwiają tworzenie modelu danych w identyczny sposób jak się tworzy model danych w LINQ to Entity.
Natrafiłem pisząc tego posta na dwa takie rozwiązania: LINQ to SharePoint DSL Extension for Visual Studio 2010 i VisualTools for SharePoint. Pierwsze wymienione rozszerzenie jest darmowe dlatego w dalszej części zaprezentuje metodę działania w oparciu o ten dodatek. Po ściągnięciu i zainstalowaniu dodatku do Visual Studio (do dodatku można ściągnąć również bardzo dobrą i obszerną dokumentację) możliwe jest utworzenie nowego typu pliku. Dodawanie nowego pliku do projektu dobywa się poprzez kliknięcie prawym klawiszem myszki na projekcie i z menu rozwijanego wybranie Add -> New Item ... .
|