niedziela, 23 września 2012

NDepend na straży jakości kodu źródłowego [PL]

W ostatnim czasie zapoznawałem się trochę bliżej z narzędziem o nazwie NDepend. Przez ten czas na pewno nie stałem się ekspertem w korzystaniu z NDepend, chciałbym jednak podzielić się moimi subiektywnymi odczuciami na jego temat. Nie będę tutaj wymieniał jego funkcji (można to znaleźć na stronie producenta lub w wielu innych wpisach), nie będę pisał jak zainstalować (bo to proste, choć mi się nie podobało - lubię instalować a nie rozpakowywać :) ), nie będę się zastanawiać czy warto tego narzędzia używać (niech każdy wyrobi sobie własne zdanie, licencja jest odpłatna). Skupię się natomiast na elementach, które ja bym wykorzystał, które mi się spodobały lub które nie wywarły najlepszego wrażenia. Zapraszam do lektury.

piątek, 20 lipca 2012

OPC dla Androida? [PL]

Ostatnio otrzymałem maila o treści zbliżonej do: "Jestem studentem i mam teraz praktyki w firmie związanej z przemysłem. Moim zadaniem jest nawiązanie komunikacji z serwerem OPC, czyli muszę zrobić klienta OPC. Aplikacja ma być na Androida. Mam duży problem z nawiązaniem łączności, nie wiem jakich bibliotek używać, niekoniecznie muszą być darmowe. Byłbym bardzo wdzięczny za pomoc za jakieś informacje jak mógłbym to zrealizować." Postanowiłem zamiast bezpośredniej odpowiedzi, opublikować krótkiego posta na blogu (a może się jeszcze komuś przyda??).

niedziela, 25 marca 2012

Wprowadzenie do Managed Add-in Framework (MAF, System.Addin) (spis treści) [PL]

W ramach zakończenia cyklu poświęconego Managed Add-in Framework (MAF, System.Addin) i aby ułatwić czytanie, przygotowałem spis artykułów związanych z tym tematem. Zapraszam do przeczytania całego cyklu:

piątek, 23 marca 2012

[MAF 06] MAF podsumowanie, czyli wady i zalety [PL]

W ramach zakończenia serii wpisów związanych Managed Add-in Framework (MAF / System.AddIn) ([1], [2], [3], [4], [5]) chciałbym dodać jeszcze kilka słów w ramach podsumowania.

poniedziałek, 19 marca 2012

Reactive Extensions (Rx) v2.0 Beta już dostępna [PL]

Na tym blogu pojawiło się już trochę informacji na temat Reactive Extensions (Rx), dlatego dla zainteresowanych mam informację, że niedawno udostępniona została wersja beta kolejnej odsłony Reactive Extensions.

poniedziałek, 12 marca 2012

[MAF 05] Managed Add-in Framework (System.AddIn), a bezpieczeństwo wywołania obcego assembly [PL]

W ramach kontynuacji serii wpisów związanych Managed Add-in Framework (MAF / System.AddIn) ([1], [2], [3], [4]) chciałbym pokazać przykład pokazujący, w jaki sposób MAF rozwiązuje problem z izolacją ładowanych wtyczek, tak by nie pozwolić na uruchomienie niebezpiecznego kodu.

sobota, 10 marca 2012

Prezentacja: „Rozszerzalne aplikacje w .NET (czyli MAF i MEF)” [PL]

Niedawno uczestniczyłem w Study Group poświęconej architekturze aplikacji organizowanym przez Łódzką grupę profesjonalistów IT & .NET, gdzie przedstawiałem prezentację p.t. "Rozszerzalne aplikacje w .NET (czyli MAF i MEF)". Tych, którzy chcieliby się zapoznać z prezentacją lub kodem źródłowym, który powstał podczas prezentacji, zapraszam do obejrzenia mojej prezentacji umieszczonej na portalu SlideShare.

piątek, 9 marca 2012

[MAF 04] Managed Add-in Framework (System.AddIn) – przykład z kompatybilnością [PL]

W ramach kontynuacji serii wpisów związanych Managed Add-in Framework (MAF / System.AddIn) ([1], [2], [3]) chciałbym pokazać przykład pokazujący, w jaki sposób MAF rozwiązuje problem z kompatybilnością wtyczek po zmianie kontraktu.

niedziela, 4 marca 2012

[MAF 02] Przykład prostej aplikacji z obsługą wtyczek z wykorzystaniem Managed Add-in Framework (System.AddIn) [PL]

W poprzednim wpisie przybliżyłem czytelnikom teorię związaną z MAF-em (patrz: "[MAF 01] Rzut okiem na Managed Aadd-in Framework (System.AddIn)"), w tym wpisie chciałbym przedstawić prosty przykład aplikacji z obsługą wtyczek z wykorzystaniem Managed Aadd-in Framework (System.AddIn).

piątek, 2 marca 2012

[MAF 01] Rzut okiem na Managed Add-in Framework (System.AddIn) [PL]

Nie dawno (patrz wpis: „Rozszerzanie aplikacji .NET (czyli plugin'y, add-in'y, MAF, MEF, itp. ...)”) wspomniałem na tym blogu o Managed Aadd-in Framework (zwanego również System.AddIn lub MAF), przyjrzyjmy się bliżej temu rozwiązaniu.

środa, 22 lutego 2012

Metody rozszerzające, Atrybuty i Refleksje w .NET [PL]

Czy korzystacie z refleksji w .NET? Czy zdarzyło wam się przeglądać/ustawiać właściwości klas poprzez refleksje? Czy korzystacie z atrybutów? Mnie często i równie często zdarzało mi się ponownie szukać kodu, który rozwiązałby mój problem, dlatego dla wygody poniżej zamieszczam różne funkcje rozszerzające, które realizują wspomniane wyżej zadania. (być może komuś jeszcze się one przydadzą).

wtorek, 21 lutego 2012

Rozszerzanie aplikacji .NET (czyli plugin'y, add-in'y, MAF, MEF, itp. ...) [PL]


Zostałem ostatnio zapytany jak można zaimplementować aplikację, bazującej na .NET, która miałaby być rozszerzana za pomocą wtyczek (czasem nazywanych też: Add-In, Add-On, Rozszerzenie, Extension, Plug-In, Snap-In, ...), z których każda uruchamiana by była w bezpiecznym środowisku (np. odrębnej domenie aplikacyjnej). Przyjrzyjmy się więc jakie są możliwości tworzenia rozszerzeń dla aplikacji (.NET) i jak można przy ich pomocy zapewnić wspomniane bezpieczeństwo.

środa, 15 lutego 2012

[RX 12] Reactive Extensions, przykład kompozycji zdarzeń [PL]

Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9], [RX10], [RX11]) stanowi on kontynuację przykładu z poprzedniego wpisu i skupia się na kompozycji zdarzeń.

czwartek, 2 lutego 2012

[RX 11] Reactive Extensions, więcej o zdarzeniach, czyli przykłady z myszką [PL]

Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9], [RX10]) i pojawią się w nim przykłady wykorzystania Reactive Extensions.

W ramach przykładu pokazane zostanie okno aplikacji, która w pasku statusu będzie wyświetlać, położenie kursora myszki w oknie aplikacji oraz informacja, czy kursor znajduje się w lewej, czy prawej części okna. Niniejszy przykład zostanie wykonany z wykorzystaniem WPF, należy więc pamiętać, że oprócz standardowej biblioteki Reactive Extensions (System.Reactive.dll) należy również dodać do projektu bibliotekę dedykowaną dla WPF (System.Reactive.Windows.Threading.dll).

niedziela, 22 stycznia 2012

[RX 10] Komponowanie strumieni w Reactive Extensions [PL]

Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9]), dotyczyć on będzie możliwości metod rozszerzających służących wykonywaniu połączenia dwóch lub więcej strumieni.

Jedną z interesujących cech Reactive Extensions jest kompozycja obserwowalnych kolekcji, czyli strumieni danych. Istnieje wiele metod rozszerzających służących wykonywaniu połączenia dwóch lub więcej strumieni; Amb, Concat, SelectMany, Merge, Zip, CombineLatest, ForkJoin. Tworzą one nowy strumień, korzystając z pewnych ustalonych konstrukcji.

środa, 18 stycznia 2012

WPF: o zasobach (resources) coś więcej [PL]

W poprzednim wpisie pisałem o tym, że zamiast wyznaczać ścieżki do obrazków, lepiej umieścić je w zasobach. Temat wydawał mi się prosty, ale w komentarzach pojawiła się odrobinę odmienna opinia:
"Nie, obrazków nie trzyma się w zasobach. Ikony, czasem, jak potrzeba, jeden, dwa obrazki, ale nie więcej. One są za duże - EXE-k puchnie, robi się bałagan, trzeba rekompilować, by zmienić obrazek, a i krótsze nie jest. Tą linijkę równie dobrze można zapisać jako:
ImageBrush brush = new ImageBrush(new BitmapImage(new Uri("Images/test.png", UriKind.Relative)));
Można to wpakować w jakąś statyczną klasę helpera, by nie pisać nie wiadomo ile razy."

środa, 11 stycznia 2012

WPF: Lepiej umieścić obrazek w resources niż bawić się ścieżkami. [PL]

Ostatnio pod wpisem: "[WPF 3D] Malujemy scenę 3D pędzlem" dostałem w ramach komentarza pytanie związane z obrazkami w WPF i ścieżkami w nich. Nie jest to wielki problem, ale postaram się odpowiedzieć.




poniedziałek, 9 stycznia 2012

"Programowanie i Technologie" blogiem roku 2011? [PL]

Początek roku, to nie tylko czas podsumowań, to również czas wyborów ...
Jak w zeszłym roku, tak i w tym, zgłosiłem blog "Programowanie i Technologie" do konkursu na blog roku 2011.

Kto wie, może w tym roku się uda i blog: "Programowanie i Technologie" zostanie blogiem roku 2011!

sobota, 7 stycznia 2012

Dostęp do danych procesowych [PL]

Ostatnio byłem zapytany i kilka rozwiązań związanych z dostępem do danych procesowych oraz z przekazywaniem danych z różnego rodzaju aplikacji do sterowników przemysłowych. Przyjrzyjmy się, jakie są możliwe podejścia, do wspomnianych problemów.

czwartek, 5 stycznia 2012

[RX 9] Operacje LINQ na obserwowalnych kolekcjach w Reactive Extension [PL]

Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8]), dotyczyć on będzie możliwości wykorzystania LINQ na obserwowalnych kolekcjach i w RX.

wtorek, 3 stycznia 2012

[RX 8] Zdarzenia w .NET niby pożyteczne, łatwe, ale … obserwowanie w Reactive Extensions jest lepsze [PL]

W ramach kontynuacji cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7]) chciałbym przejść teraz do zdarzeń, dla których Rx dostarcza szczególnego wsparcia.

poniedziałek, 2 stycznia 2012

[RX 7] Zabawa w „ciepło – zimno”, czyli zimne i ciepłe źródła w Reactive Extension [PL]

Dziś krótko. W ramach kontynuacji artykułu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6]) chciałbym wrócić znów do obserwowalnych kolekcji i źródeł, na podstawie których one powstają. Przecież nie zawsze powstaną one ze "zwykłej" kolekcji i zwykle nie jest wiadome, jakie dane one zawierają.

Posty powiązane / Related posts