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 4703 dni, 14 godzin, 59 minut temu 45 ź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 4704 dni, 59 minut temu 96 ź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 4704 dni, 19 godzin, 19 minut temu 132 ź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 4709 dni, 12 godzin, 37 minut temu 40 ź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...
Uzupełnienie rozszerzenia z części pierwszej dotyczącego nawigacji w Windows Phone.
Mobile development 4710 dni, 21 godzin, 36 minut temu 65 źrodło rozwiń
Od kiedy Microsoft wprowadził rozszerzenia (ang. extensions) do platformy .NET jestem ich wielkim fanem. Dlatego raz po raz wrzucę jakiś użyteczne rozszerzenie, które może się okazać przydatne. W dzisiejszej części rozwiązanie bolączki nawigowania do stron w Windows Phone: NavigationService.Navigate(new Uri("/ProductPage.xaml", UriKind.Relative));
Mobile development 4710 dni, 21 godzin, 36 minut temu 207 źrodło rozwiń
Arturo Toledo na swoim blogu kilka tygodni temu rozpoczął serię artykułów o projektowaniu interfejsów dla Metro na Windows Phone. Polecam każdemu kto nawet w najmniejszym stopniu bierze udział w projektowaniu / wykonywaniu aplikacji na Windows Phone.
Mobile development 4711 dni, 8 godzin, 49 minut temu 74 źrodło rozwiń
autor: Tworząc oprogramowanie należy pamiętać o wydajności. Od aplikacji wymaga się płynnego działania, informacji o zmianie postępu, reakcji na działania użytkownika, itp. W przypadku platform mobilnych problem ten jest jeszcze bardziej poważny. Przyzwyczailiśmy się już, że komputery posiadają wydajne kilku rdzeniowe procesory, dużą ilość pamięci operacyjnej, czy szybki dysk. To co kiedyś było ważne w trakcie wytwarzania oprogramowania – efektywność zaproponowanych rozwią...
Mobile development 4711 dni, 19 godzin, 48 minut temu 57 źrodło rozwiń
autor: Jednym z podstawowych problemów jaki napotykają początkujący programiści SharePoint jest zmiana nazwy wyświetlania dla wbudowanego pola Title. Pole to jest obowiązkowym polem typu Text, umożliwia zatem przechowywanie ciągów znakowych o długości do 255 znaków. Bez problemu może być wykorzystane zatem do przechowywania takich danych jak np. imię czy nazwisko pracownika bez potrzeby tworzenia kolejnego dedykowanego pola. Ponadto, na liście, po najechaniu myszką na to pole uzyskujemy dos...