Piszę aplikację, która pobiera kanały RSS nazaplanowane codziennie i zapisuje zawartość każdego kanału jako dane XML w bazie danych SQL Server 2005. Chcę wyświetlać zagregowane elementy, posortowane według daty, na przykład z zapisanych danych kanałów w mojej aplikacji w Asp.Net GridViews.
Moje pytanie brzmi: czy powinienem używać LINQ do XML do kwerendy na dane kanału, biorąc pod uwagę, że już używam LINQ do SQL w aplikacji, czy powinienem agregować dane za pomocą zapytania SQL w procedurze przechowywanej, biorąc pod uwagę, że SQL Server 2005 ma potężną obsługę obsługi XML ?
Jestem względnie nowy zarówno dla SQL Server 2005, jak i LINQ, więc nie mogę naprawdę zobaczyć, jakie są względne zalety któregokolwiek z tych rozwiązań, czy też faktycznie nie są one tym samym.
Odpowiedzi:
1 dla odpowiedzi № 1Cóż, myślę, że to naprawdę zależy od tego, gdzie jesteśwolą pisać kod. Osobiście mam dużo więcej komfortu w języku C # niż w T-SQL, więc zrobię to w LINQ do XML (i rzeczywiście zrobiłem to dokładnie dla kanału RSS przed.) To może być całkiem proste tak czy inaczej, ale nie widzę tak naprawdę wiele korzyści w robieniu tego w bazie danych, chyba że "prawdopodobnie będziesz mieć wielu klientów, którzy wszyscy chcą tego samego XML." Debugowanie itp. dąży (IMO) do łatwiejszego w C #, i testy jednostkowe są łatwiejsze do napisania.