Serwis RSS Allegro posiada kilka pól, po których możemy wyszukiwać. Niestety nie została udostępniona żadna dokumentacja. Skupmy się na pozostałych możliwościach, poza wyszukiwaniem po tytule. Niestety serwis RSS nie daje możliwości implementacji innych metod niż Where. Nie została udostępniona opcja sortowania, omijania rekordów, czy wybierania niektórych kolumn. Nic nie stoi na przeszkodzie, żeby je zaimplementować, jeśli w przyszłości zostaną dodane!PayU PayU jest polem ...
Strona głównaUżytkownik
Jakub Maguza | użytkownik
Sztuka programowania 2681 dni, 21 godzin, 57 minut temu 42 źrodło rozwiń
Najpotrzebniejszą metodą w naszym providerze LINQ to Allegro będzie Where. To dzięki niej zdeterminujemy zapytanie wysyłane do serwisu RSS.Plan działania Na początek przypominam, że typ Expression jest typem nadrzędnym i dziedziczą z niego różne wyrażenia, np.: MethodCallExpression czy BinaryExpression. Jak wspomniałem we wcześniejszym poście, z serwisem Allegro będziemy komunikować się poprzez wysłanie zapytania HTTP. Ostatni wpis zakończyłe...
Daj się poznać 2017 2723 dni, 41 minut temu 126 źrodło rozwiń
Pierwszym krokiem w implementacji naszego providera LINQ to Allegro będzie zaimplementowanie interfejsu IQueryable
Daj się poznać 2017 2739 dni, 13 godzin, 25 minut temu 114 źrodło rozwiń
W poprzednim wpisie wybrałem Allegro RSS jako moje źródło danych. Do interpretacji użyję Linq to XML. Po wygenerowaniu zapytania Allegro zwraca nam plik XML z wynikami. I już na początku przeczuwam, ze coś jest nie tak…
Daj się poznać 2017 2740 dni, 17 godzin, 39 minut temu 51 źrodło rozwiń
To API or not to API. Słabe to było… Allegro posiada kilka metod pozwalających na łączenie się z ich bazą danych. Ja znam trzy – jedną niedopracowaną, jedną niekompletną i jedną bardzo… Prostą! Dwie pierwsze to dwa rodzaje API dostępne na zewnątrz. Jedno SOAP i jedno REST. Rest musimy odrzucić od razu, ponieważ posiada zbyt mało metod. Na ten moment to 4 metody i żadna nie nadaje się do wyszukiwania produktów. API SOAP jest, posiada nawet potrzebne nam metody, ale… Jes...
Daj się poznać 2017 2740 dni, 17 godzin, 39 minut temu 76 źrodło rozwiń
Skoro już wiemy jak jest zbudowany LINQ, sprawdźmy dwie metody Where i Select, które wchodzą w jego skład. Chciałbym wspomnieć, że implementacje które pokażę, mogą się nieco różnić (np. sprawdzaniem null referenece), ale sens jest zachowany.Where Nie prowadzę żadnych statystyk, ale wydaje mi się, że ta jest najpopularniejsza. Wybiera z kolekcji tylko te elementy, które spełniają podane przez nas warunki. Kolekcją może być m.in List
Daj się poznać 2017 2741 dni, 22 godziny, 3 minuty temu 95 źrodło rozwiń
dspannonymous methods, annonymous types, extension methods, generics, LambdaExpressions, LINQ, object initializer, varkubaGdzie są te fjuczery? Tyle postów pisałem tylko o rzeczach, na których LINQ został zbudowany. Ale gdzie one są? Tyle dodatków do języka dla jednego prostego zapytania?
Daj się poznać 2017 2743 dni, 12 godzin, 34 minuty temu 94 źrodło rozwiń
Leniwy czy opóźniony? Po ostatnim wpisie pojawiły się pytania, dlaczego użyłem nazwy Deferred Execution a nie Lazy Loading. W tym wpisie wyjaśnię jak ja widzę te dwa koncepty. Aby zobrazować przedstawione zagadnienie, przygotowałem program, który pomoże pokazać co i kiedy się dzieje. Cały kod można znaleźć pod tym linkiem. Przedstawiłem tam trzy koncepty tworzenia danych. Jeden normalny, drugi na bazie Lazy Loading i trzeci, o którym mówiłem w poprzed...
Daj się poznać 2017 2743 dni, 12 godzin, 34 minuty temu 186 źrodło rozwiń
Dziwny tytuł… Żeby było jasne, post będzie o deferred execution i słowie kluczowym yield. Nasze komputery z dnia na dzień stają się coraz szybsze i mocniejsze. Minęły już czas, kiedy do przenoszenia danych wystarczyła dyskietka. Dyski stają się coraz większe, a dane zapisane w plikach coraz obszerniejsze. Pamięć ram nie idzie do przodu tak szybko. Wyobraźmy sobie sytuację: Wielka firma, pada ogromna baza danych. Na szczęście udało się ściągnąć logi o...
Daj się poznać 2017 2744 dni, 1 godzinę, 21 minut temu 82 źrodło rozwiń
Jedna lambda, dwie możliwości W jednym z poprzednich wpisów wspominałem, że .NET nie wie nic o wyrażeniach lambda. Pisałem, że kompilator C# prawie zawsze zamienia je na instancyjne metody. No właśnie, co się dzieje w pozostałych przypadkach? Drugim przypadkiem jest tworzenie expression trees. ‚Lambdy’ zamieniają się w ‚drzewa’, kiedy ich deklaracje opakujemy w słowo kluczowe Expression:Expression
Daj się poznać 2017 2746 dni, 12 godzin, 36 minut temu 80 źrodło rozwiń
C# dynamicznie typowany? Ale tytuł, jak z najgorszych portali z wiadomościami. Od razu odpowiem: NIE! C# nie jest dynamicznie typowanym językiem. Jest statyczny. Sytuację zmieni trochę słowo kluczowe dynamic w czwartej wersji języka, ale poza tym wszystko pozostaje prawie tak jak było do tej pory. Dlaczego prawie? Zmieniła się jedna rzecz. Słowo kluczowe var wprowadziło możliwość typowania niejawnego, ale ciągle statycznego! W przypadku typów standardowych, zyskujemy tylko n...
Daj się poznać 2017 2749 dni, 1 godzinę, 4 minuty temu 146 źrodło rozwiń
Wybrakowany obiekt Kiedy odpytujemy bazę danych, nie zawsze chcemy, żeby ta zwróciła nam całą tabelę. Czasem z tabeli samochód wystarczy nam marka, model i numer rejestracyjny. Co, jeśli chcemy zapisać takie dane do obiektu? Przed wprowadzeniem typów anonimowych, mogliśmy np. stworzyć klasę, która posiadałaby owe pola. Powyższe podejście jest warte rozpatrzenia, jeśli takiego obiektu będziemy używać często. Co jednak, jeśli chcemy go użyć tylko raz? Z pomocą pr...
Daj się poznać 2017 2750 dni, 1 godzinę, 22 minuty temu 61 źrodło rozwiń
Że co? A no właśnie. Jak się okazuje, wyrażenia lambda to czysto językowa sprawa. Jeśli nie wiesz jak działa kompilacja kodu w .NET i C#, zapraszam tutaj.
Daj się poznać 2017 2749 dni, 1 godzinę, 4 minuty temu 268 źrodło rozwiń
CIL, MSIL, IL? Co to takiego? Okazuje się, że jedno i to samo. Najpierw był MSIL jako „Microsoft Intermediate Language”, ale później, ze względu na standaryzację, został przemianowany na CIL – „Common Intermediate Language”. W niektórych źródłach możemy spotkać także samo IL, czyli po prostu „Intermediate Language”.
Daj się poznać 2017 2759 dni, 1 godzinę, 48 minut temu 72 źrodło rozwiń
IsNullOrEmpty(„”) vs „”.IsNullOrEmpty W metodach rozszerzających jest jeszcze jedna ciekawa rzecz, o której nie wspomniałem w poprzednim poście. Oczywiście nie jest to kamień milowy w programowaniu, ale może ułatwić czytelność kodu. Znacie metodę String.IsNullOrEmpty()? Zastanawialiście się kiedyś dlaczego jest zadeklarowana jako statyczna w klasie String, a nie jako metoda instancyjna? Która linijka jest bardziej czytelna?string test = "something"; test = null;
Daj się poznać 2017 2775 dni, 22 godziny, 34 minuty temu 145 źrodło rozwiń
Nie w rozszerzeniu życia i jego namiętności leży szczęście, ale w wyrzeczeniu się ich. Jakiś losowy cytat o rozszerzaniu z googla, nie mający nic wspólnego z tematem. W dzisiejszym odcinku przyjrzymy się metodom rozszerzającym. Metody rozszerzające, jak większość rzeczy z tej serii, zostały wprowadzone w jednym celu – aby usprawnić LINQ. To, że możemy ich używać w innym celu, to tylko miły dodatek. Są one w zasadzie metodami statycznymi, które można wywoływać jakby były m...
Daj się poznać 2017 2779 dni, 1 godzinę, 41 minut temu 78 źrodło rozwiń
Ale jak, ale gdzie?!?!? Wspominałem wcześniej o delegatach wbudowanych w język C#. W dzisiejszym wpisie zaprezentuję delegaty...
Daj się poznać 2017 2786 dni, 17 godzin, 58 minut temu 114 źrodło rozwiń
I wyrażenia lambda! Trzeci wpis z tej mini-serii. Tym razem już o wyrażeniach lambda. Zostały one wprowadzone w trzeciej wersji języka C#. We wpisie o metodach anonimowych, przedstawiłem dwa przykłady rozwiązujące ten sam problem. Pierwszy – używający tylko delegatów, drugi – wykorzystujący metody anonimowe, a teraz czas na trzeci, w którym znajdziemy wyrażenia lambda.
Daj się poznać 2017 2789 dni, 6 godzin, 37 minut temu 71 źrodło rozwiń
… potem były metody anonimowe… Drugi wpis poprzedzający wyrażenia lambda. Krótki i dość prosty. Microsoft w C#2 postanowił usprawnić trochę tworzenie delegatów. Metody anonimowe nie dość, że skracają kod, dają nam również możliwość sprawdzenia ich wnętrzności bez przewijania plików i próby odnalezienia implementacji. Wszystko mamy w jednym miejscu. Nie musimy deklarować metod formalnie (implicitly).
Daj się poznać 2017 2794 dni, 7 godzin, 1 minutę temu 89 źrodło rozwiń
Zaczęło się od delegata… Jest to pierwszy wpis, prowadzący do Lambda expressions. Zaczynamy od delegates, ponieważ od tego zaczął microsoft. Jeśli znasz język C, delegaty można porównać do wskaźników. Są one jakby jedno-metodowym interfejsem, który wskazuje jak mają wyglądać funkcje przypisane do nich. Sygnatura delegata wskazuje jednoznacznie, jakie sygnatury muszą posiadać metody których chcemy wraz z nim użyć. Jeśli zdefiniujemy go w taki sposób:delegate void DateTimeShower(Date...
Daj się poznać 2017 2805 dni, 1 godzinę, 5 minut temu 87 źrodło rozwiń