Strona głównaUżytkownik

Jakub Maguza | użytkownik

Jakub Maguza
Jakub Maguza
510,4
2656 dni, 15 godzin, 2 minuty temu
3 marca, 2017
dotnetomaniak.pl

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 ...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o dodatkowych funkcjonalnościach - jakubmaguza.pl

Sztuka programowania 2669 dni, 15 godzin, 14 minut temu Jakub Maguza 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...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o implementacji Where - jakubmaguza.pl

Daj się poznać 2017 2710 dni, 17 godzin, 58 minut temu Jakub Maguza 126 źrodło rozwiń

Pierwszym krokiem w implementacji naszego providera LINQ to Allegro będzie zaimplementowanie interfejsu IQueryable

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o implementacji IQueryable - jakubmaguza.pl

Daj się poznać 2017 2727 dni, 6 godzin, 43 minuty temu Jakub Maguza 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…

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o interpretacji Allegro XML z LINQ to XML - jakubmaguza.pl

Daj się poznać 2017 2728 dni, 10 godzin, 57 minut temu Jakub Maguza 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...

Tagi: Allegro, API, rss feed
Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o wyborze połączenia z Allegro - jakubmaguza.pl

Daj się poznać 2017 2728 dni, 10 godzin, 57 minut temu Jakub Maguza 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

Tagi: Linq
Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o Where i Select z LINQ - jakubmaguza.pl

Daj się poznać 2017 2729 dni, 15 godzin, 21 minut temu Jakub Maguza 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?

Ten w którym LINQ bierze wszystko - jakubmaguza.pl

Daj się poznać 2017 2731 dni, 5 godzin, 51 minut temu Jakub Maguza 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...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o różnicy między Lazy Loading i Deferred Execution - jakubmaguza.pl

Daj się poznać 2017 2731 dni, 5 godzin, 51 minut temu Jakub Maguza 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...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o odroczonej egzekucji (yield return) - jakubmaguza.pl

Daj się poznać 2017 2731 dni, 18 godzin, 39 minut temu Jakub Maguza 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

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o expression trees - jakubmaguza.pl

Daj się poznać 2017 2734 dni, 5 godzin, 54 minuty temu Jakub Maguza 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...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o var, czyli typowaniu niejawnym - jakubmaguza.pl

Daj się poznać 2017 2736 dni, 18 godzin, 22 minuty temu Jakub Maguza 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...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o typach anonimowych - jakubmaguza.pl

Daj się poznać 2017 2737 dni, 18 godzin, 40 minut temu Jakub Maguza 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.

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten, w którym .NET nie wie nic o wyrażeniach lambda - jakubmaguza.pl

Daj się poznać 2017 2736 dni, 18 godzin, 22 minuty temu Jakub Maguza 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”.

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o kompilacji kodu - jakubmaguza.pl

Daj się poznać 2017 2746 dni, 19 godzin, 6 minut temu Jakub Maguza 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;

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o ciekawostce z metod rozszerzających - jakubmaguza.pl

Daj się poznać 2017 2763 dni, 15 godzin, 51 minut temu Jakub Maguza 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...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o metodach rozszerzających - jakubmaguza.pl

Daj się poznać 2017 2766 dni, 18 godzin, 59 minut temu Jakub Maguza 78 źrodło rozwiń

Ale jak, ale gdzie?!?!? Wspominałem wcześniej o delegatach wbudowanych w język C#. W dzisiejszym wpisie zaprezentuję delegaty...

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten z przykładami z delegatów i wyrażeń lambda - jakubmaguza.pl

Daj się poznać 2017 2774 dni, 11 godzin, 15 minut temu Jakub Maguza 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.

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o wyrażeniach lambda - jakubmaguza.pl

Daj się poznać 2017 2776 dni, 23 godziny, 55 minut temu Jakub Maguza 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).

Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o metodach anonimowych - jakubmaguza.pl

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...

Tagi: delegaty, dsp2017
Źródło: jakubmaguza.pl
Dziel się z innymi:
Ten o delegatach - jakubmaguza.pl

Daj się poznać 2017 2792 dni, 18 godzin, 23 minuty temu Jakub Maguza 87 źrodło rozwiń

1 2