Artykuły dla tagu LINQ

freeimages.com
cze 18 2015
0

Implementacja dynamicznego doczytywania treści w kontrolce ListView

W architekturze WinRT możemy korzystać z dwóch bardzo przyjemnych kontrolek do prezentacji danych - ListView oraz GridView. Obie te kontrolki mają duże możliwości konfiguracyjne, posiadają sporo zdarzeń i można je również fajnie ostylować. Jednym słowem jest naprawdę dobrze;-)

Naszą piękną, idealistyczną sielankę może jednak w łatwy sposób zakłócić, pewien dość prozaiczny problem, który nazywa się nadmiar danych. Tego rodzaju sytuacja zasadniczo nie ma żadnych pozytywów. Nasza aplikacja pochłonie duże ilości pamięci, może zacząć się zacinać, a dodatkowo jeśli dane pochodzą z zewnątrz, niepotrzebnie pobierzemy dane, które być może nigdy nie zostaną wyświetlone...

W praktyce okazuje się, że można jednak łatwo wybrnąć z tej sytuacji - wystarczy bowiem w zbindowanej kolekcji zaimplementować interfejs ISupportIncrementalLoading i życie znów stanie się piękne;-)

freeimages.com
kwi 29 2015
0

Enum jako flaga

Enum jest bardzo pożyteczną konstrukcją, której używam praktycznie w każdym, nawet najmniejszym projekcie. Enumeracja ma praktycznie same zalety - przede wszystkim pozwala na definiowanie stałych wartości, które później można łatwo użyć w dowolnym miejscu w naszym kodzie. Jak na razie wszystko jest jasne i oczywiste. Mniej znaną właściwością enumów jest praca w trybie flagi, dzięki czemu enumeracja dostaje dodatkowego kopa;-) Przykład umieszczony w dalszej części tekstu pokaże jakie może to przynieść korzyści.

sxc.hu
lut 23 2014
0

Mockowanie obiektów w praktyce z biblioteką Moq

W procesie tworzenia oprogramowania, czymś naturalnym jest pisanie kodu, który będzie składał się z zależności w postaci łańcucha wywołań wielu różnych obiektów. Dzieje się tak często, ponieważ wielokrotnie wykonanie pozornie prostej czynności przez użytkownika, jest poprzedzone szeregiem złożonych operacji w logice biznesowej aplikacji. Co zrobić zatem w przypadku, gdy chcemy przetestować funkcjonalność na końcu tego łańcucha zależności? Czy musimy tworzyć konkretne instancje wszystkich obiektów po drodze i liczyć na łut szczęścia, że za każdym razem uda nam się choćby dojść do naszej konkretnej metody? Otóż nie. Są lepsze rozwiązania, a jednym z nich jest tzw. Mockowanie obiektów (zaślepianie obiektów).

Dziś mam zamiar zaprezentować Wam w praktyce działanie bardzo prostej biblioteki Moq, która będzie symulować pracę niektórych struktur w naszej aplikacji.

maj 27 2012
0

Operacje na kolekcjach w C# z użyciem LINQ

Ponad dwa lata temu, popełniłem wpis na temat operacji na kolekcjach w C#. Post ten ku mej uciesze, wciąż cieszy się sporą popularnością, dlatego też postanowiłem napisać niejako jego kontynuację.

Gdy dwa lata temu pisałem tamten wpis, wciąż dominującą wersją frameworka .Net, była ta oznaczona wersją 2.0. Dziś sytuacja się trochę zmieniła i przynajmniej w moim odczuciu, coraz więcej osób korzysta z wersji 3.5 i 4.0, a na horyzoncie jest już .Net 4.5, który pojawi się w pełni wraz z Windowsem 8 i Visual Studio 11. Nowsze wersje frameworka wprowadziły wiele istotnych zmian w tym oczywiście tytułowy LINQ. Na temat LINQ pisałem już kilkukrotnie, dziś chciałbym jednak przedstawić wykorzystanie tej technologii w kontekście kolekcji, ponieważ takie połączenie zapewnia im właściwie drugie życie i zdecydowanie zwiększa ich użyteczność.

kwi 07 2012
0

LINQ i DataContext - wycofywanie zmian w bazie

Ostatnimi czasy rozpocząłem naukę programowania pod Windows Phone 7. Szybko okazało się, że przy pisaniu jednej z testowych aplikacji, warunkiem koniecznym jej dalszego rozwoju stał się dostęp do bazy danych. Programowanie na platformę mobilną wiążę się jednak z wieloma ograniczeniami w stosunku do programowania aplikacji desktopowych i oczywiście nie ominęły one również samej bazy danych.

W przypadku Windows Phone, możemy korzystać zatem tylko z SQL Server CE i wykorzystywać w tym celu wyłącznie LINQ to SQL współpracujące z DataContext. Cały ten mechanizm jest jednak dużo bardziej ograniczony, aniżeli możliwości do których przyzwyczaiły nas klasyczne zapytania wyrażone językiem T-SQL.

Dla mnie osobiście, największą bolączką jest brak mechanizmu, który w prosty sposób pozwala na wycofywanie wprowadzonych zmian. Dlaczego o tym wspominam? Ano dlatego, że transakcje wykonywane na kontekście danych, zapisywane są do bazy danych dopiero w momencie wykonania metody SubmitChanges. Jest to podejście stricte transakcyjne i w gruncie rzeczy sprawdzą się nawet dobrze w tym systemie. Niestety mimo, że istnieje metoda która symuluje commit, brakuje tutaj metody typu rollback. Prowadzi to do tego, że nawet jeśli nie zatwierdzimy zmian od razu, to zostaną one zapisane przy dowolnym późniejszym commicie (chyba że wyłączymy aplikację, ale chyba nie o to chodzi). Jest to odrobinę dziwne, ale na szczęście istnieje pewne obejście tego problemu, którym zaraz się Wami podzielę.

wrz 29 2010
0

LINQ to Object w praktyce

Niejednokrotnie tworząc własne kolekcje danych, chcielibyśmy mieć swobodę ich edycji, filtrowania i przeszukiwania. Podstawowe operacje dostarczone przez interfejs kolekcji, nie rozpieszczają użytkowników. W takim momencie, każdy programista z zazdrością spogląda na kolegę, który zajmuje się bazą danych i który dzięki zapytaniom, może właściwie w dowolny sposób manipulować posiadanymi danymi. Jednak jeśli jesteś programistą .Net i korzystasz z tego Frameworka w wersji co najmniej 3.5 - to mam dla Ciebie dobrą wiadomość, a jest nią technologia LINQ. Zanim jednak zasiądziemy do LINQ, przygotujemy nieśmiertelną klasę Person, na której będziemy eksperymentować, zapoznamy się ze zmiennymi i obiektami deklarowanymi za pomocą słowa kluczowego var oraz poznamy wyrażenia lambda.