Web Service z Umbraco wariant drugi

Posted on

programming2

Witam

Tym razem wykonamy znów Web Service dla Umbraco, ale tym razem użyjemy innych metod i narzędzi. Naszym celem znów będzie wyświetlenie typów dokumentów dziedziczących po głównym węźle.

Tym razem korzystamy z Visual Studio C# Express Edition.

Tworzymy nowy projekt Class Library.

Wklejamy kod :

</pre>
[RestExtensionMethod()]
public static System.Xml.XPath.XPathNodeIterator Umbraco2()   //wywolujemy : /Base/myAlias/Umbraco2
{
XmlDocument xmldoc = new XmlDocument();
Document doc = new Document(1047);       //ten sam dokument co wczesniej - numer można sprawdzić w Umbraco.
if (doc.HasChildren)
{
Document[] children = doc.Children;
XmlElement xeData = xmldoc.CreateElement("data");

foreach (Document childDoc in children)
{
//result2.Add(childDoc.Text);
XmlElement xeProperty = xmldoc.CreateElement("Property");         //doc.getProperty(childDoc.Text).PropertyType.Alias.ToLower());
xeProperty.InnerText = childDoc.Text;
xeData.AppendChild(xeProperty);

//Response.Write(childDoc.Text);
}
xmldoc.AppendChild(xeData);
return xmldoc.CreateNavigator().Select("//data");
}
return null;
}

Oczywiście widzimy dużo czerwieni, więc dodajemy Referencje do plików : Umbraco.dll oraz Umbraco.Core.dll a także, cms.dll i businesslogic.dll. Sekcja using powinna wyglądać następująco (pomijając zbędne wpisy jak linq ) :

</pre>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Umbraco.Web.BaseRest;
using System.Xml;
using umbraco.cms.businesslogic.web;

Po skompilowaniu kodu, w katalogu projektu przechodzimy do katalogu z plikami wynikowymi „bin” i szukamy pliku dll z nazwą naszego projektu. Kopiujemy plik i umieszczamy go w katalogu bin w folderze Umbraco, który mamy już dodany do IIS Express lub zamierzamy dopiero dodać. Odpalamy w przeglądarce nasze Umbraco (powinniśmy wcześniej dodać stronę do IIS Express) i dopisujemy po uruchomieniu się naszej instancji Umbraco w wyszukiwarce frazę : /Base/myAlias/Umbraco2. Cały link u mnie ma postać : http://localhost:81/Base/myAlias/Umbraco2

I to wszystko. Należy tutaj wspomnieć, że w tym przypadku nie ma żadnego dziedziczenia. Dlatego poprzez składnik /Base w adresie przeglądarki internetowej nasza klasa jest łączona z oprogramowaniem Umbraco. Jest to swego rodzaju proxy. W celu przećwiczenia lub zapoznania się z innymi funkcjami Umbraco, do których możemy mieć dostęp z poziomu Visual Studio odsyłam do strony http://our.umbraco.org/wiki/reference/ Cały kod :

</pre>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Umbraco.Web.BaseRest;
using System.Xml;
using umbraco.cms.businesslogic.web;

namespace BlogTest
{
[RestExtension("myAlias")]
public class test
{
[RestExtensionMethod()]
public static System.Xml.XPath.XPathNodeIterator Umbraco2()   //wywolujemy : /Base/myAlias/Umbraco2
{
XmlDocument xmldoc = new XmlDocument();
Document doc = new Document(1047);
if (doc.HasChildren)
{
Document[] children = doc.Children;
XmlElement xeData = xmldoc.CreateElement("data");

foreach (Document childDoc in children)
{
//result2.Add(childDoc.Text);
XmlElement xeProperty = xmldoc.CreateElement("Property");         //doc.getProperty(childDoc.Text).PropertyType.Alias.ToLower());
xeProperty.InnerText = childDoc.Text;
xeData.AppendChild(xeProperty);

//Response.Write(childDoc.Text);
}
xmldoc.AppendChild(xeData);
return xmldoc.CreateNavigator().Select("//data");
}
return null;
}
}
}

Zalety :

– Szybko i łatwo się piszę takie aplikacje oraz szybciej się wdraża niż w poprzednim przypadku

– Nie trzeba łączyć Umbraco z projektem Visual Studio – wystarczy napisać dll i wysłać do klienta.

Wady :

– Trzeba tworzyć plik dll, a w samym kodzie należy zadbać o formatowanie wyników, gdyż nie mamy żadnego wsparcia od strony przeglądarki czy technologii ASP.NET – generujemy sami plik XML z danymi.


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *