Dzisiaj krótko o tym, jak poprawić wydajność pobierania danych z wykorzystaniem Entity Framework. Entity Framework ma wbudowany mechanizm śledzenia zmian na obiektach. Dzięki niemu Entity Framework wie, który obiekt jest nowy i że trzeba go dodać do bazy, co można zaktualizować, jakie referencje usunąć, zmienić, itp. Ficzer niby fajny, ale często przeszkadza – szczególnie, jeżeli dane chcemy jedynie pobrać i wiemy, że nie będziemy ich modyfikować.
Bazy danych i XML 4337 dni, 19 godzin, 40 minut temu 196 źrodło rozwiń
This post is secod part of my Back to basics: on testing series.Developers writing tests People new to software, or coming from organizations where all testing is done by dedicated people often find the idea of developers doing testing bizarre. After all, we're the highly trained, educated professionals. We get payed to do the hard bits. Clicking around the UI to see if a label is misaligned or an app crashed surely ...
Sztuka programowania 4338 dni, 17 godzin, 49 minut temu 61 źrodło rozwiń
Dzisiaj będzie o długu technologicznym, czyli o sprytnie ukrywającym się koszcie projektu. Koszcie, który z czasem potrafi zabić najlepsze projekty a nawet firmy. „As an evolving program is continually changed, its complexity, reflecting deteriorating structure, increases unless work is done to maintain or reduce it.” Meir „Manny” Lehman 1980 Parafrazując ciągle zmieniający się program zwiększa swoją złożoność o ile nie pochylimy się nad kodem aby ją zmniejszyć. Pisanie programów jest ł...
No i stało się! Microsoft całkowicie zmienił obowiązujące ścieżki certyfikacji, a co za tym idzie, mój plan aby przygotować się do starego MCPD Web Developer 4 wziął w łeb... W sumie można się było tego spodziewać, w końcu Visual Studio 2012, a wraz z nim nowa wersja Frameworka, zostały wydane w zeszłym roku. Jednak szczerze mówiąc, w momencie gdy podejmowałem decyzję o rozpoczęciu przygotowań do zdobycia certyfikatu (a właściwie w momencie gdy zmieniłem pracę, i okazało się, że mogę się certyfikować na...
Witajcie, Chciałbym Was wszystkich zaprosić do “przygody”, która będzie trwać kilka następnych miesięcy, a będzie związana z poznaniem technologii chmury firmy Microsoft zwanej Windows Azure. Dzisiejszy wpis to inauguracja szkolenia, którego ramy zostaną przedstawione kilka linijek niżej, a do którego idealnym wstępem jest wpis, który poczynił Mariusz Kędziora, który w bardzo przystępny sposób opisuje czym chmura i technologie z nią związane są – link tutaj. Wstęp Dla osób, które nie zrozumiały przek...
Programowanie rozproszone 4341 dni, 18 godzin, 11 minut temu 63 źrodło rozwiń
Opisywałem już mechanizm konwersji zdarzeń .NET do IObservable. W RX istnieje dodatkowo nowy mechanizm, mający na celu zastąpić standardowe zdarzenia .NET – przynajmniej w części przypadków. Zastanówmy się, co jest złego tak naprawdę w obsłudze zdarzeń w .NET? 1. Dość często programiści zapominają usunąć zdarzenie co może skutkować memory leak. Czasami jest ciężko zdefiniować moment, w którym należy usunąć zdarzenie. Pewnym rozwiązaniem problemu może być zastosowanie wzorca weak event pattern ale jak w...
Sztuka programowania 4341 dni, 18 godzin, 11 minut temu 41 źrodło rozwiń
Niedawno tworząc szablon kontrolki w WPF natknąłem się na pewien problem. Chcąc odwołać się z szablonu do właściwości kontrolki standardowo użyłem rozszerzenia TemplateBinding. Kod się skompilował ale po uruchomieniu aplikacji pojawił się wyjątek. Oto uproszczona postać szablonu...
Kilka postów wcześniej, pokazałem jak narysować linię za pomocą RX oraz przechwytywania zdarzeń. Dla przypomnienia udało nam się narysować prostą linie z punktu (0,0) do aktualnej pozycji kursora:publicclass MyCanvas : Canvas { private Point _endPoint; public MyCanvas() { var eventsSource = Observable.FromEventPattern
Sztuka programowania 4341 dni, 18 godzin, 11 minut temu 31 źrodło rozwiń
Tworząc duże projekty niejednokrotnie musiałem stworzyć szereg małych klas, których głównym zadaniem było chwilowe przechowywanie określonych danych i przekazywanie ich pomiędzy obiektami. Nie niosły one więc ze sobą żadnej wartości dodanej, a sam ich żywot był raczej krótki. Kilka, kilkanaście klas tego typu, potrafi dość w skuteczny sposób zabałaganić nawet najlepiej zorganizowany projekt. Jeśli wrócimy do niego za jakiś czas, zaczniemy sobie z pewnością zadawać pytanie - po co ta, czy tamta klasa? ...
Architektura 4342 dni, 12 godzin, 19 minut temu 149 źrodło rozwiń
Kilka tygodni temu na devPytaniach pojawiło się pytanie “Jak motywować programistę?“. Wtedy się nie udzieliłem, ale właśnie naszły mnie refleksje poniekąd w tym temacie. Opiszę na swoim przykładzie.
There is one nice ‘feature’ of git that i found recently : creating git custom commands. It is useful, when I want to automate some repetetive tasks.
W dzisiejszym wpisie znów wracamy do tematu RX. Postaram się wyjaśnić jak można ze sobą połączyć kilka IObservable. W RX istnieje naprawdę wiele metod umożliwiających wykonanie tego i na początku może wydawać się to dość skomplikowane, ze względu na liczbę sposobów w jaki można to wykonać. 1. Observable.Amb – zawsze zwraca wyłącznie tą sekwencje, która została jako pierwsza wygenerowana. Jeśli zatem mamy MouseMove i MouseUp wtedy zostanie zwrócone te zdarzenie, które jako pierwsze miało miejsce. Przykł...
Sztuka programowania 4343 dni, 17 godzin, 56 minut temu 38 źrodło rozwiń
W poprzednim poście - ASP.NET MVC - zabezpieczenie przed Cross-Site Request Forgery - opisałem podstawowy mechanizm zabezpieczania się przed Cross-Site Request Forgery. Ma on jednak pewne ograniczenia. Zwykle 'AntiForgeryToken' przesyłany jest tylko razem z żądaniem typu POST - raczej nie stosuje się żądań typu GET do zatwierdzania formularzy. Typowy kontroler posiada najczęściej wiele akcji POST, jeśli więc chcielibyśmy aby w naszej aplikacji wszystkie formularze były zabezpieczone przed CSRF, musieliby...
Programiści niskopoziomowi często narzekają na brak pewnych możliwości w C# znanych im z C++ (często ze względu na brak znajomości ich odpowiedników w C#. Po dzisiejszej rozmowie z kolegą na ten temat stwierdziłem, że pokażę jak wykorzystać takie funkcje jak memset, a przy okazji jak pisać biblioteki DLL w C++ dla C# i jak z nich korzystać. Sprawdzimy także, czy zastosowanie takich bibliotek przyśpieszy działanie...
Sztuka programowania 4345 dni, 13 godzin, 56 minut temu 317 źrodło rozwiń
Mads Kristensen odwalił kawał dobrej roboty tworząc Web Essentials. Jest to pierwsze narzędzie wspierające analizę JS, kompilowanie LESS, minimalizację CSS i JS i wiele innych rzeczy, które naprawdę mnie nie wkurza. I w większości przypadków działa. No właśnie, w większości. Dwa dni temu zacząłem przepisywać swój nowy projekt z CSS na LESS – by się go nauczyć, pobawić i w ogóle. Jednak z miejsca natrafiłem na problem, którego za nic nie mogłem obejść – przynajmniej do póki się nie zorientowałem, dlaczego...
Co wyświetli poniższy fragment kodu?internalclass Program { publicstaticvoid Main() { var timer =new Timer(TimerCallback, null, 0, 1000); Console.ReadLine(); } privatestaticvoid TimerCallback(Object o) { Console.WriteLine("Callback: "+ DateTime.Now); } } Powyższy konstruktor uruchamia timer i spodziewalibyśmy się, że na ekranie po prostu będą wyświetlane kolejne callbacki. W praktyce jednak dokonywana jest pewna optymalizacja, która ma fatalne efekty. Można zauwa...
Sztuka programowania 4346 dni, 6 godzin, 59 minut temu 102 źrodło rozwiń
Ostatnio zetknąłem się z problemem dotyczącym wykorzystania transakcji natywnych SQL Servera z poziomu pakietu SQL Server Integration Services (SSIS). Abstrahując od tego, czy jestem zwolennikiem zaszywania kodu T-SQL w pakietach SSIS, czy nie, problem wydał mi się dobrym materiałem na wpis na blogu :-)
Bazy danych i XML 4346 dni, 6 godzin, 59 minut temu 53 źrodło rozwiń
autor: "New year. New certifications. New you." - przeczytałem wczoraj w emailu. Dlaczego ? Ano w zeszłym roku zostało wydane Visual Studio 2012 (a z nim .NET 4.5), Windows 8 z nowym App Store'm, pojawił się więc idealny moment na zmiany w dotychczasowych ścieżkach Microsoft'u. Przyjrzyjmy się więc, co się zmieniło... Nadeszła kolejna certyfikatowa rewolucja. Microsoft postanowił odejść od przyznawanego od kilku lat tytułu Microsoft Certified Professional Developer (MCPD) i powrócił do tytułu podobnego...
Jako osoba często prezentująca postanowiłem co jakiś czas dzielić się interesującym tip&trickiem usprawniającym proces prezentacji Dzisiejszy wpis będzie dotyczył prezentowania kodu, co dzieje się najczęściej w obecności Visual Studio. Problem jaki się pojawia to wielkość czcionki, którą wykorzystujemy. Na co dzień podczas pisania aplikacji pewnie mało osób wykorzystuje dużą czcionkę bo niewiele kodu zmieści się wtedy na ekranie. Jednak podczas prezentacji sytuacja ta jest zupełnie inna. Musimy zape...
autor Git jest the best – to wie chyba każdy kto czyta tego bloga. Może niekoniecznie się z tym zgadza, ale przynajmniej wie:). Wydaje mi się, że to jedyny kawałek softu, na który nigdy nie narzekałem… Aż do niedawna. Przyszło mi pracować przy wieloletnim projekcie, którego repozytorium liczone było w gigabajtach. Za pomocą Git-TFS ściągnąłem sobie historię, a tam, jak się można domyślić, cały TfuFSowy syf. Czyli na przykła...