ASP. NET.NET, asp, datagrid, web formsprzemek Niedawno miałem zadanie napisania szybko aplikacji w ASP .NET Web Forms, w której miała być zaimplementowana funkcjonalność edycji wielu wierszy na raz w kontrolce DataGrid. Niestety standardowe podejście do tematu powoduje, że natrafiamy na problem. Problem polega na tym, że standardowo można edytować tylko jeden wiersz w kontrolce DataGrid. Poniżej przykład standardowego kodu, który umożliwia wyświetlenie danych oraz ich edycje: Poniżej to c...
Strona głównaUżytkownik
przemekwa | użytkownik
Sztuka programowania 3609 dni, 12 godzin, 27 minut temu 131 źrodło rozwiń
„Linq to Object” jest bardzo dobrze wyposażonym mechanizmem. Posiada wiele metod, które generalnie pokrywają 70% potrzeb podczas projektowania aplikacji. Jednak czasami potrzebujemy tych 30%, których nie ma. Poniżej pokazuje jak napisać własną metodę rozszerzeń (extension method) do Linq To Object na przykładzie autorskiej metody SplitIntoParts. Aby napisać dobrą metodę rozszerzeń należy spełnić kilka warunków...
Sztuka programowania 3619 dni, 5 godzin, 27 minut temu 183 źrodło rozwiń
Przy okazji codziennej prasówki natknąłem się na ten artykuł na temat wydajności pętli for w JavaScript'cie dla różnych przeglądarek. W skrócie chodzi o to czy powinniśmy pisać pętlą for tak...
Sztuka programowania 3621 dni, 12 godzin, 21 minut temu 437 źrodło rozwiń
Simple.Data, biblioteka o której wspomniałem w poprzednim wpisie, dostarcza nam możliwość dynamicznego operowania na bazie danych. Co, jeśli chcemy zmapować wyciągnięte dane np. na konkretny ViewModel?
Od razu po Nowym Roku wracamy z mocnym uderzeniem: na warsztacie tym razem znalazło się programowanie funkcyjne! Mój gość to Michał Łusiak – programista, prelegent, blogger. Możecie go znaleźć również na Twitterze: @mlusiak. W temacie programowania funkcyjnego rozprawiamy o tym po co odchodzić od “standardowego” obiektowego podejścia, jakimi językami warto się zainteresować a nawet: jak zacząć z F# nie mając możliwości jego komercyjnego zastos...
Sztuka programowania 3628 dni, 19 godzin, 42 minuty temu 242 źrodło rozwiń
Tuż przed końcem roku Michał opublikował post na temat swojego teamu. Szczerze, jak jeszcze nie czytaliście, to przeczytajcie a potem wróćcie tutaj :) No już to tylko 5-8min, nie pożałujecie :) Ok, już po lekturze? Super. To teraz wróćcie z powrotem i jeszcze raz przeczytajcie akapit poświęcony Feedbackowi. Śmiało, to tylko 2 min czytania. Już? Super. To teraz zapamiętajcie to co przeczytaliście u Michała. Bo feedbac...
W C# możemy tworzyć własne konwersji obiektów. Przy użyciu słów kluczowych Explicit i Implicit możemy przeprowadzić konwersję typów referencyjnych na wartościowe i odwrotnie. Na początek podstawy. Konwersje Implicit nie wymagają żadnych dodatkowych słów kluczowych, ponieważ kompilator dopuszcza tylko takie konwersje, które są bezpieczne (czyli na przykład takich, w których nie ma utraty precyzji). Przykład poniżej: int i = 1234; double d = i;...
Sztuka programowania 3628 dni, 19 godzin, 42 minuty temu 196 źrodło rozwiń
Dzisiaj przekraczamy kolejne granice: poruszamy temat “miękki”! Rozmawiam z Rafałem Barszczewskim, a tematem naszych wywodów jest prowadzenie zespołu programistycznego – bycie team leaderem. Rafał od wielu lat pełni taką rolę w pracy zawodowej. Doświadczeniami i refleksjami dzieli się między innymi na swoim blogu. Mówimy między innymi o motywowaniu programistów, jak i ich krytykowaniu. O tym, jak zespół może podnosić swoje kompetencj...
W moich zamierzeniach ten temat miał być omówiony w jednej części, ale duża ilość komentarzy, pytań i uwag spowodowała, że powstała część druga. Istnienie drugiej (nieplanowanej) części posta mogłoby sugerować, że chcę się wycofać z części poglądów, które przedstawiłem w części pierwszej. Częściowo tak, ale nie w tę stronę co myślicie. Rzeczywiście zmieniłem zdanie, od dzisiaj będę pisał ToString() jeszcze częściej, tzn. dla każdej swojej klasy i struktury, nawet jeżeli tworzyłbym bibliotekę dla klienta...
Sztuka programowania 3637 dni, 19 godzin, 14 minut temu 289 źrodło rozwiń
Pomimo stosowania TDD każdemu z nas od czasu do czasu zdarza się debugować kod. Czy to lubimy, czy nie, czasem po prostu nie ma innego wyjścia. Ułatwiajmy sobie (i osobom, które odziedziczą kiedyś ten kod) debugowanie przez dodawanie ToString() do wszystkich swoich klas.
Sztuka programowania 3645 dni, 19 godzin, 18 minut temu 314 źrodło rozwiń
Gdy przychodzi czas na stworzenie aplikacji to najpierw staram się przemyśleć co ona ma robić i co z czym się łączy. Gdy obraz jest już w miarę wyraźny to zanim zacznę kodować jakieś prototypy i abstrakcje, przeglądam poniższą listę wzorców projektowych. Są ku temu dwa powody. Po pierwsze sprawdzam czy do mojego rozwiązania można dopasować jakieś wzorzec. Nie znam na pamięć wszystkich wzorców a czasem te mniej popularne (o których się normalnie nie pamięta) się przydają. Po drugie robię to aby trochę s...
Sztuka programowania 3648 dni, 17 godzin, 23 minuty temu 3425 źrodło rozwiń
Kolekcje z System.Collections.Generic są wszystkim dobrze znane. Czasami jednak zachodzi potrzeba skorzystania z typów immutable. Ogólnie o tych obiektach pisałem tutaj. Szczególnie w środowisku wielowątkowym są one przydatne. Jak można przeczytać we wspomnianym poście, obiekty takie nigdy nie mogą zostać zmienione a modyfikowanie stanu polega na tworzeniu nowej instancji. Ktoś mógłby zasugerować, że mamy w końcu ReadOnlyCollection. Niestety, interfejs uniemożliwia modyfikacje tej kolekcji wyłącznie ...
Dołączę do grona piszących o nowościach w C# 6. Jedną z nich jest słowo kluczowe „nameof”. Po zainstalowania Visual Studio 2015 (do czego gorąco zachęcam) będzie można je sprawdzić w praktyce. Nameof zwraca w postaci stringa nazwę argumentu, który przekazujemy do metody nameof. Na początek praktyczny przykład zastosowania tego słówka kluczowego w WPF-ie. Podczas bindowania właściwości z zastosowaniem interfejsu INotifyPropertyChanged musimy...
Sztuka programowania 3653 dni, 19 godzin, 52 minuty temu 592 źrodło rozwiń
VS 2015 usprawnił, moim zdaniem znaczącą sposób analizy kodu. Sam sposób podpowiedzi również został poprawiony i coraz bliżej im do Resharper, a w pewnych sprawach, jak zobaczymy, daje potencjalnie większe możliwości. Zacznijmy od przykładu pokazanego w prezentacji VS 2015. Załóżmy, że chcemy zaimplementować interfejs ISerializable:class Sample :ISerializable { } Jeśli tylko namespace zawierający ISerializable nie został dołączony, naciskamy ctrl+. i wyświetli się następujące menu: Nowością jest ...
Czwarty odcinek to badanie nowych gruntów: wyjście poza .NET! Moim gościem jest Sławomir Sobótka: założyciel firmy Bottega IT Solutions, trener, blogger, architekt. Wywodzi się ze środowiska Javy i można go spotkać na bardzo wielu konferencjach i grupach związanych z tą właśnie technologią. Rozprawiamy o Domain Driven Design, a Sławek jest jednym z najbardziej rozpoznawalnych polskich ekspertów w tym obszarze. Podczas rozmowy opowiada nam jakie korzyś...
Dużo w ostatnim czasie piszę o aplikacjach uniwersalnych, a wcześniej również sporo było tekstów o WPF. Co łączy oba tematy? Oprócz XAMLa który pojawia się w obu tych technologiach, pewnym dość istotnym łącznikiem jest wzorzec architektoniczny MVVM. MVVM pozwala na rozbicie logiki naszej aplikacji na pewne określone elementy. Mamy widoki, modele oraz tajemniczy element ViewModel. ViewModel to klasa, która zawiera uporządkowane i wypełnione danymi klasy modelu, pasujące do pewnego określonego widoku. Inny...
Sztuka programowania 3658 dni, 20 godzin, 10 minut temu 514 źrodło rozwiń
C#, Narzędzia progamistyczne.NET Często podczas pracy firmach finansowych przychodzi czas na typowe zadanie zamiany liczby z postaci cyfrowej na postać liczbową w języku polskim. Szukałem w internecie gotowej implementacji takiego algorytmu, sprawdzonego i przetestowanego z otwartymi kodami i… okazało się, że nic nie znalazłem do C#. Nie było nigdzie implementacji takiego konwertera w .NET dlatego poniżej zrobiłem własną implementację. Poniżej warunki t...
Jeśli jeszcze nie ściągneliście VS 2015, to zapraszam: http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx Smart Unit Tests to sposób automatycznego wygenerowania scenariuszy dla testów jednostkowych. Wiele o tym już na blogu jak i w artykułach na MSDN pisałem, a konkretnie o Pex & moles. Chciałbym dzisiaj jednak zaprezentować wbudowaną funkcję w VS 2015. Nie wymaga ona instalacji zewnętrznych narzędzi. Na początku od razu poważna wada.. Póki co, wspierany jest wyłącznie ...
Z jednej z prezentacji nt. GIT-a dowiedziałem się, że posiada on coś co nazywa się Interactive staging. Pomyślałem, że czegoś takiego brakuje mi w codziennej pracy z duetem SVN/Tortoise SVN. Jak się jednak okazało i w Tortoise SVN od ostatniej wersji jest odpowiadająca temu funkcjonalność.
Jak wiemy Microsoft powołał projekt udostępnienia kodu źródłowego .NET-a. O czym można poczytać na tym blogu .NET. Są tam opisane szczegóły dotyczące motywów działania, jak i planów na przyszłość, które są obiecujące. Zachęcam do przeglądania tego udostępnionego kodu i nauki programowania poprzez podpatrywanie rozwiązań stosowanych przez kolegów z zespołu tworzącego .NET. Osobiście od jakiegoś czasu używam poniższych stron do badan...