Lubie WPF'a. Można o nim powiedzieć, że jest niedorobiony, wolny a technologia ta już nie będzie dalej rozwijana przez MS. Można też zachwycać się nad tym jak bardzo wiele jest klas w WPF i jak wiele jest ich jeszcze nieodkrytych kąsków. Ostatnio natrafiłem na jeden z nich o którym chciałbym dziś napisać: *Bitmap(De/En)coder. Są to klasy, które umożliwiają pracę z różnymi formatami graficznymi np. PngBitmap(De/En)coder, BmpBitmap(De/En)coder, JpegBitnap(De/En)coder, TiffBitmap(De/En)coder. Kiedy...
Bardzo lubię TFS, może nie jest doskonały ale ja go lubię. Ostatnio poszukiwałam jakiejś kontroli wersji do użytku prywatnego, dlatego ucieszyłam się na wiadomość że nowy TFS będzie również w wersji Express.
Rozważmy, dwie zupełnie bezsensowne klasy:class TextInfo { publicstring Text { get; set; } } class NumberInfo { publicint Number { get; set; } } Następnie gdzieś w kodzie próbujemy dokonać konwersji:NumberInfo numberInfo =new NumberInfo {Number =43}; TextInfo textInfo1 = numberInfo; // konwersja niejawnaTextInfo textInfo2 = (TextInfo)numberInfo; // konwersja jawna Czy, którakolwiek przedstawiona konwersja zakończy się sukcesem?Oczywiście, że nie – skąd .NET ma wiedzieć jak należy zamienić je...
Witam Ostatnio napotkałem na dość ciekawy wyjątek podczas wykonywania NHibernatowego inserta. W bazie danych mam prostą tabelę Do takiej tabeli został stworzony model namespace Model { public class Appointment { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual DateTime StartDate { get; set; } public virtual TimeSpan Duration { get; set; } } } oraz mapping namespace Model.Mappings { public class AppointmentM...
Agregaty kroczące Rozważmy następującą sytuację: mamy w bazie danych rekordy zużycia jakiegoś zasobu oraz pulę do wykorzystania. Na przykład rozliczamy jeden okres rozliczeniowy abonenta telefonu, ma on w ofercie jakąś ilość darmowych minut w każdym cyklu, więc gdzieś w bazie, w danych bilingowych w kolejnych rekordach ilości minut poszczególnych rozmów wchodzących w skład cyklu rozliczeniowego. Interesująca nas część rekordu może się składać z dwóch kolumn: (id, minuty), gdzie większa wartość pola id...
Bazy danych i XML 3970 dni, 12 godzin, 22 minuty temu 230 źrodło rozwiń
autor: 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. Tak jak pisałem wcześniej jedną z zalet MAF-a jest możliwość uruchamiania wtyczek w środowisku izolowanym, teraz przyjrzymy się w jaki sposób można to zrealizować. Podobne doświadczenie (jednak bez wykorzystania MAF) przep...
autor: Jednym z największych braków w licznikach wydajności jest brak informacji na temat aktualnego zużycia pamięci. Jednym z wymagań certyfikacyjnych aplikacji dla Windows Phone 7 jest limit 90 MB zużycia pamięci przez aplikację w przypadku telefonów z pamięcią mniejszą niż 256 MB. Na chwilę obecną nie ma na rynku telefonów spełniających ten warunek. Teoretycznie nie powinniśmy się tym przejmować. Natomiast zgodnie z informacjami jakie podał Microsoft następna gene...
Mobile development 3970 dni, 12 godzin, 22 minuty temu 43 źrodło rozwiń
Zasadnicze pytanie: jaki jest sens używania Prism na Windows Phone? O zaletach prisma nie będę pisać. Jest ich wiele. Natomiast z mojego punktu widzenia sens przeniesienia Prisma na Phona jest zasadniczy: projekt wieloplatformowy oparty na Prismie - test jego wydajności, zalet i wad. Projekt jest tworzony na WP7, Silverlighta oraz WPF. Podchodząc do tematu od strony reużywania kodu i jego spójności sprawą kluczową staje się wspólny framework. Przede wszystkim spotkałem się w necie z krytyką mówiącą, ż...
Mobile development 3970 dni, 22 godziny, 22 minuty temu 94 źrodło rozwiń
W ostatnich kilku postach przedstawiłem “egzotyczne” słowa kluczowe w c#. Wiele z nich, myślę, nie było znanych nawet bardziej zaawansowanym programistom. Z pewnością nie są one niezbędne do pisania aplikacji. Często nawet nie jest wskazane aby z nich korzystać, chyba, że naprawdę dokładnie przeanalizowaliśmy sytuację. Słowo zaprezentowane w dzisiejszym poście również zalicza się do tego zbioru. Myślę, że volatile może być znane programistom C++ ale w świecie c# jest dużo mniej popularne. Jeśli piszecie...
autor: 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.
Architektura 3971 dni, 16 godzin, 42 minuty temu 131 źrodło rozwiń
Nauka pierwszego języka programowania to wspaniała przygoda. Towarzyszy temu tak wiele niewiadomych, niepewność, a zarazem ciekawość czy wręcz ekscytacja. Programy drukujące napisy na ekranie konsoli, pierwsze pętle, metody… Na początku to wcale nie było łatwe i kosztowało wiele nerwów. Jednak z perspektywy czasu można spojrzeć na to z uśmiechem na twarzy. Pozostając w dobrym humorze postanowiłem opisać kilka ciekawych przy...
Ostatnio bardzo dużo czasu poświęciłem na to zagadnienie. Chciałem automatycznie zmieniać nazwę dla plików dodawanych do biblioteki dokumentów w SharePoint. Pliki tworzyłem z poziomu Word 2007 i 2010. Temat z pozoru banalny okazuje się nie lada wyzwaniem. W necie jest dużo przykładów jak coś takiego zrobić ale niestety w moim przypadku żaden nie działał w 100%. W tym poście możecie przeczytać czego próbowałem i w jaki sposób z sobie z tym problemem poradziłem.
W programowaniu obiektowym użycie tak popularnej konstrukcji jak if-else jest często symptomem złej architektury. Załóżmy, że mamy metodę walidująca dostęp do danych np:privatebool Validate(string userName, string password, AuthType authType) { if(authType == AuthType.PlainPwd) { if(password == _user.Password) returntrue; } elseif(authType == AuthType.MD5) { if(Md5.Hash(password) == _user.Password) } elseif(authType == ....) // ITD... } Powyż...
Ostatnio pisałem program do rozwiązywania sudoku. Postanowiłem, że cyfry sudoku będę wyświetlał w osobnych TextBox’ach. Nie byłoby w tym nic zastanawiającego, gdyby tych textboxów nie było 81, wyobraźcie sobie ich rysowanie poprzez przeciąganie myszką, już nie mówiąc o problematycznym odczytywaniu z nich danych. Na przykładzie tego prostego programu spróbuję zobrazować jak podejść do rozwiązywania podobnych problemów. Każda kontrolka na formie ma swoją reprezentację w postaci typu, której m...
Ostatnio w moim projekcie pojawił się problem wywoływania konkretnych zadań w określonym czasie wybieranym przez użytkownika. Pierwsze co przyszło mi do głowy to MSMQ, jednak aplikacja asp.net, znajduje sięna hostingu i nie będę mógł tam postawic sobie tego narzędzia :/ Szukałem dalej i w odpowiedziach zaczeła przwijac się nazwa nieznanej mi do tej pory biblioteki - Quartz.Net. To kolejna biblioteka która pojaw...
autor: 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. Niniejszy przykład jest pewnego rodzaju kontynuacją przykładu przedstawionego we wpisie pt.: "Przykład prostej aplikacji z obsługą wtyczek z wykorzystaniem Managed Add-in Framework (System.AddIn)", zakłada on sytuację w której istniejący kontrakt ulega zmianie, by umo...
Na podstawie dwóch ostatnich wpisów ("[MAF 01] Rzut okiem na Managed Aadd-in Framework (System.AddIn)" , "[MAF 02] Przykład prostej aplikacji z obsługą wtyczek z wykorzystaniem Managed Aadd-in Framework (System.AddIn)") oraz MSDN, postanowiłem skompresować przedstawione informacje, by zebrać je wszystkie na jednej kartce papieru. Wspomniane informacje o MAF na kartce papieru, czyli "MAF w pigułce" ("MAF in a nutshell"), dostępne jest jako PDF lub obrazek (jpg). Wersja PDF (dostępna przez Google Docs, ab...
Nic tak dobrze nie pomaga programiście w pracy jak dobra wtyczka w Visual Studio 2010. Od kiedy przesiadłem się na Visual Studio 2010 w nowej pracy dostałem pełną wersję ReSharper’a i teraz nie wyobrażam sobie pracy bez tego dodatku. Oprócz szybkiego wykrywania błędów w locie, bez potrzeby kompilacji zapewnia dodatkowe funkcje korekcji błędów, wyszukuje, podświetla składnię, formatuje, generuje kod zarazem optymalizuje ...
autor: W poprzednim poście przedstawiłem migrację Prisma na WP7. Dziś chciałbym przetestować zmigrowany kod za pomocą testów jednostkowych dołączonych do Prisma. Bardzo fajną sesje Jeffa Wicox'a nt testów jednostkowych na WP7 możemy znaleźć pod tym linkiem. Będziemy używać Silverlight Unit Test Framework i binarek dostępnych tutaj. Przede wszystkim musimy zmigrować projekty testów do projektów Windows Phone Application. Następnie dołączamy wspomniane binarki a code behind MainPage'a powinniśmy zmienić w ...
Mobile development 3976 dni, 10 godzin temu 38 źrodło rozwiń
Dziś następna porcja bardziej egzotycznych słów kluczowych w c#. Słowa unchecked oraz checked służą do kontrolowania czy nie nastąpił overflow podczas operacji arytmetycznych. Wszystkie niepoprawne operacje w klauzuli checked wywołają wyjątek overflow, ponieważ podczas wykonywania obliczeń sprawdzane jest czy wynik wciąż się mieści w zmiennej. Na przykład:checked { int i =0; while (true) i++; } Po pewnym czasie, gdy zmienna i przekroczy Interger.Max, zostanie wyrzucony wyjątek. .NET z...