Blog » Snippety do XML - co i jak
Aktualna ocena: 5 (0)

Snippety do XML - co i jak

 
Snippety do XML - co i jak
Pisząc kod często używamy takich samych fragmentów kodów. Nie chodzi o to, że w jednym projekcie dublujemy kod ale o sytuację gdy kod z jednego projektu przydaje się w wielu innych. Jest wiele technik wsparcia takich sytuacji, a jedną z nich jest tworzenie Snippet’ów. Kawałki kodu, o których mowa tworzy się różnie w zależności od przeznaczenia. Pokażę jak stworzyć Snippet’y w XML’u, które bardzo przydają się przy pisaniu rozwiązań pod SharePoint'a.

Snippet jest to stały fragment/kawałek kodu, który można "cytować" w wielu miejscach bez dodatkowego nakładu pracy. Dario-G w jednym ze swoich postów C# Snippet opisał sposób tworzenia Snippet’ów dla kodu w C#, więc ja postaram się pokazać jak tworzyć Snippet'y dla kodu XML. Moje zainteresowanie tematem wzięło się przy okazji tworzenia rozwiązań  pod SharePoint'a. Tak się składa, że pisząc w tej technologii często używa się XML’a. Inaczej niż ma to miejsce w przypadku C#, Visual Studio nie zawiera Snippet'ów do XML'a. W zależności od wersji Visual Studio Snippet'y umieszcza się w katalogu:
           $:\Program Files\Microsoft Visual Studio 8\Xml\1033\Snippets - dla Visual Studio 2005
           $:\Program Files\Microsoft Visual Studio 9.0\Xml\1033\Snippets - dla Visual Studio 2008
Czasami może się zdarzyć że Visual Studio nie wyświetli nowo wgranych Snippet’ów więc najpierw trzeba spróbować zrestartować Visual Studio. Jeśli to nie pomoże zaimportować kawałki kodu możemy wykorzystując narzędzie Code Snippets Manager (Menu Tools).
Tworzenie własnych Snippet'ów nie jest trudne, wymaga napisania kawałka kodu XML i zapisania tego pliku z rozszerzeniem *.snippet. Wychodząc z zasady, że jeden przykład jest warty więcej niż tysiąc słów zamieszczam poniżej przykładową strukturę pliku XML odpowiedzialnego za funkcjonalność Snippet'u.

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Author>Michał Nikołajuk</Author>
      <Title>Feature with Receiver</Title>
      <Description>Kod potrzebny do napisania funkcji Z ReveiverAssembly oraz ReceiverClass</Description>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
        <SnippetType>SurroundsWith</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>guid</ID>
          <ToolTip>Unikalny identyfikator - GUID</ToolTip>
          <Default>003BA372-EABD-4e75-9275-F11E757B3AED</Default>
        </Literal>
        <!-- Reszta pól -->
      </Declarations>
      <Code Language="XML">
        <![CDATA[         
          <Feature  Id="$guid$"
                    Title="$title$"
                    Description="$description$"
                    Version="$version$"
                    Scope="$scope$"
                    Hidden="$hidden$"
                    ImageUrl="$imageUrl$"
                    ReceiverAssembly="$nameAssembly$,
                    ReceiverClass="$receiverClass$"
                    xmlns="
http://schemas.microsoft.com/sharepoint/">
                   
            <!-- Wewnętrzne elementy które składają się na funkcję -->
            <ElementManifests>
              <ElementManifest Location="element.xml" />
            </ElementManifests>
          </Feature>     
      ]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>


W pliku XML do głównych sekcji zaliczamy:
<Header> </Header> sekcja służy do umieszczania informacji o autorze oraz definiujemy w niej  właściwości ogólne  Snippet'u. W sekcji możemy ustawić właściwości, nie wszystkie są wymagane:
  • Author - autor,
  • Title - nazwa wyświetlana w Visual Studio,
  • Description - opis pokazywany w Visual Studio po najechaniu na Snippet,
  • HelpUrl - adres pod którym możemy znaleźć więcej szczegółów na temat tego Snippet'u,
  • Keywords - słowa kluczowe według których można skategoryzować zbiór kawałków kodu,
  • SnippetType - sposób w jaki wstawiamy Snippet w Visual Studio.
<Declarations></Declarations> deklarujemy zmienne, które będą do uzupełnienia podczas wstawiania Snippet'u. Po wstawieniu kawałka kodu w Visual Studio za pomocą klawisza Tab możemy przechodzić pomiędzy zmiennymi i ustawiać ich wartość. Przykładowy węzeł opisujący jedną zmienną:
 
<Literal>
          <ID>guid</ID>
          <ToolTip>Unikalny identyfikator - GUID</ToolTip>
          <Default>003BA372-EABD-4e75-9275-F11E757B3AED</Default>
</Literal>
 
gdzie:
ID - nazwa kodowa zmiennej, używana w sekcji <Code></Code>,
ToolTip - opis który pojawi się przy najechaniu kursorem na miejsce wstawienia zmiennej,
Default - wartość domyślna zmiennejSnippet'u.
 
<Code></Code> kod który będzie wstawiony w Visual Studio. Kod który wpiszemy w tej sekcji będzie łączony z zadeklarowanymi w sekcji Declarations zmiennymi  tworząc kawałek kodu . W tej sekcji często pojawia się wyrażenie tekstowe typu: $guid$. W środku $....$ umieszczamy nazwę kodową zmiennej zdefiniowanej w węźle Literal.
 
Gdy już stworzymy własny Snippet i przekopiujemy go do odpowiedniego katalogu to w Visual Studio znajdziemy go w menu wywołanym prawym kliknięciem myszki na obszarze roboczym.
 

W poście nie opisałem dokładnie wszystkich węzłów, które można użyć przy tworzeniu Snippet'a. W linkach na końcu postu podaje adres strony z MSDN gdzie znajdują się dokładne opisy każdego węzła.
Tak jak już wspomniałem zająłem się tworzeniem Snippet'ów bo skracało to czas w jaki mogłem napisać rozwiązanie pod SharePoint. Ucząc się definiować kawałki kodu stworzyłem zbiór 18 Snippet'ów, zawierających 14 najczęściej używanych XML'i i 4 kawałki kodu w C#. Jestem pewien, że będą pomocne każdemu programiście SharePoint, można je pobrać.
 




Linki:
Opis wszystkich węzłów w pliku snippet'u.
 

Dodany: 2009-05-02 22:52:40 przez Michał Nikołajuk | Wypowiedzi: 5
Dodaj do MySpace Dodaj do Twitter Dodaj do Yahoo Bookmarks Dodaj do Facebook Dodaj do Google Bookmarks Dodaj do Yahoo MyWeb
Komentarze
karla
car insurance lymki auto insurance gzsvp cheap health insurance 0937 home insurance 1900
2010-03-19 07:33:03
kola
Z tym dodawaniem poprzez Snippet Manager to bywa różnie. Czasami VS załapuje snippety od razu po wgraniu do odpowiedniego katalogu. Ale ogólnie dobra uwaga, że jeśli nie widzimy snippetów to trzeba zadziałać z SM.
2009-05-27 00:08:43
marcin
Fajne snippety
Podeślę Ci moje . Przy okazji
skopiowałem Twoje snippety w miejsce C:\Users\marcin\Documents\Visual Studio 2008\Code Snippets\XML\SharePoint
i
C:\Users\marcin\Documents\Visual Studio 2008\Code Snippets\Visual C#\SharePoint
i tez działa
P.S. należy nacisnąć w Snippet Manager ADD i wskazać te katalogi
2009-05-25 23:06:17
Awatar
Kola
Udostępniłem całą paczkę snippetów. Powinny mu się przydać ;)
Ogólnie to dzięki za wenę ;)
2009-05-03 20:51:41
dario-g
Fajny snippecik. Podesłałem kumplowi, który w SharePoint'cie grzebie :)
2009-05-03 20:47:12
Zostaw komentarz Subskrybuj



 Security code