autor: Obecnie tworze aplikację konsolową, jest to REPL dla mojego tyci-mini języka (język nie istnieje poza REPL). Postanowiłem, że istniejącą funkcję print pokryję testami jednostkowymi. Zastanawiałem się jak to zrobić. Problem polegał na tym że wynik przekazywałem na ekran i teraz miałem zagwostkę jak ten tekst przechwycić. Dowiedziałem się o klasie MemoryStream, który tworzy strumień piszący po pamięci przydzielonej dla klasy. Moją klasę PrintMethod, musiałem z modyfikować z: public override Resu...
C# 4.0 dostarcza kilka nowych możliwości jeśli chodzi o parametry i ich przekazywanie. Pierwszym rozszerzeniem jest możliwość zdefiniowania opcjonalnych argumentów (dlaczego musieliśmy tak długo na to czekać?):privatevoid ShowText(string text="Hello world") { MessageBox.Show(text); } Teraz możemy wywołać metodę ShowText dostarczając własny argument lub pomijać go i wykorzystując wartość domyślną (“Hello World”):ShowText("Custom Text"); ShowText(); // również poprawne Named arguments umożliwiają prze...
Jakiś czas temu, we wpisie Tworzenie aplikacji wielojęzycznych z C# i ASP.NET w Visual Studio opisywałem jak stworzyć aplikację, która będzie przystosowana do obsługi wielu języków i wykorzystywać będzie do realizacji tego celu mechanizm zasobów udostępniony w platformie .Net. Wpis ten, nie opisywał jednak zastosowanie tego mechanizmu, dla aplikacji napisanych pod kątem frameworka WPF, który korzysta z języka XAML. Dlatego też dziś, w ramach kolejnego wpisu z cyklu WPF Tutorial, chciałbym nadrobić braki...
Architektura 4789 dni, 4 godziny temu 266 źrodło rozwiń
Progresywny podatek dochodowy w Izraelu Zbliżają się wybory, zatem podatki to teraz gorący temat. Tak się złożyło, że Ayende Rahien na swoim blogu opublikował jedno z zadań rekrutacyjnych, które wykorzystywał do weryfikacji umiejętności potencjalnych kandydatów na programistę. Problem polegał na obliczeniu podatku dochodowego od danej kwoty, zakładając, że stawki podatku i progi podatkowe w Izraelu są następujące.
Ponieważ Windows Phone 7 nie pozwala na wykonywanie operacji w tle, jesteśmy zmuszeni do przeniesienia pewnych zadań na serwer. Poza tym cykl życia aplikacji w tym systemie sprawia, że użytkownik musi oczekiwać na wiadomość zwrotną tak aby nasz program był cały czas aktywny. Aby ominąć te niedogodności (zarówno dla programisty jak i użytkownika) należy posłu...
Mobile development 4809 dni, 8 godzin, 14 minut temu 113 źrodło rozwiń
W tym artykule przedstawię w jaki sposób przeszukiwać dysk twardy tak, aby użytkownik był informowany o aktualnie sprawdzanym katalogu oraz posiadał listę już odnalezionych plików. Oczywiście warunkiem koniecznym jest aby interfejs użytkownika był cały czas aktywny, natomiast sam użytkownik mógł w dowolnym momencie przerwać przeszukiwanie. Moduł będzie zintegrowany z interfejsem w WPF.
Czasami zdarza się, że usługi jakie oferuje nasz program powinny być uzależnione od wersji systemu operacyjnego na jakim pracuje użytkownik końcowy. Wydawanie osobnych instalatorów nie jest wygodnym rozwiązaniem ani dla użytkownika ani tym bardziej dla programisty. Choć biblioteki .NET, a w szczególności klasa System.OperatingSystem oferuje wiele ciekawych informacji, są one niewygodne w codziennej pracy. Wymagana jest szczegółowa wiedza na temat Major oraz Minor Version systemu, który nas interesuje...
W poprzednim artykule zajęliśmy się częścią odpowiedzialną za wczytywanie i przechowywanie słownika w pamięci. Teraz opiszę w jaki sposób będziemy tłumaczyć UI i oznaczać, które elementy mają temu podlegać. Przedstawię również prostą aplikację napisaną w Windows Forms podsumowującą wszystko o czym mówiliśmy.
Architektura 4815 dni, 2 godziny, 32 minuty temu 91 źrodło rozwiń
W części 1 przedstawiłem ogólny zarys naszego modułu lokalizacyjnego. W tej części zajmiemy się formatem pliku xml z zasobami językowymi oraz deserializacją i przechowywaniem danych. Na koniec pokażę jak identyfikować na dysku interesujące nas pliki.
Architektura 4817 dni, 17 godzin, 5 minut temu 79 źrodło rozwiń
← Pierwsza aplikacja w Windows Phone MarketplaceLokalizacja UI z wykorzystaniem plików XML i mechanizmu refleksji – Część 2 →Lokalizacja UI z wykorzystaniem plików XML i mechanizmu refleksji – Część 1Opublikowano12 września 2011, autor:Tomasz Malesza W tym oraz kilku następnych artykułach przedstawię w jaki sposób można zbudować prosty moduł umożliwiający zmianę języka interfejsu użytkownika w trakcie działania programu. W dowolnym momencie (po instalacji na komputerze docelowym) będzie można dołożyć kol...
Architektura 4817 dni, 17 godzin, 5 minut temu 60 źrodło rozwiń
Jak pewnie wszyscy wiedzą niedawno skończyła się konferencja BUILD na której przede wszystkim zaprezentowano najnowszego Windows'a 8. Jednak nie tylko. W kilku nadchodzących postach postaram się pokazać filmy warte obejrzenia i przedstawić dlaczego. Dziś na pierwszy ogień.. Future directions for C# and Visual Basic Anders Hejlsberg prezentuje co czeka nas w przyszłości w C# i VB. Nazwisko, którego nie trzeba przedstawiać nikomu - twórca języka. Pierwsza część prezentacji skupia się na zapr...
W poprzedniej części tutoriala, poświęconej tworzeniu własnych kontrolek użytkownika, wspomniałem co nieco o zasobach i stylach, które możemy umieścić w pliku dodatkowym, bądź też w aktualnie przetwarzanym dokumencie. Dziś chciałbym rozszerzyć trochę temat i pokazać bardziej praktyczne wykorzystanie zasobów. Dowiecie się między innymi o tym jak: Utworzyć zasoby lokalne dla wybranego okna/elementu Utworzyć zasoby globalne dla całej aplikacji Jak tworzyć powtarzalne elementy jako zasoby (np. menu konteks...
Architektura 4823 dni, 4 godziny, 51 minut temu 160 źrodło rozwiń
Czasami potrzeba dodać atrybuty do właściwości/metod klasy, która została stworzona automatycznie przez jakiś designer (na przykład przez ORM). Modyfikowanie klasy bezpośrednio nie ma sensu, ponieważ może ona zostać nadpisana i nasze zmiany zostaną niestety utracone. Atrybuty takie można określić w oddzielnym pliku. Czyli na przykład zamiast:using System; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; public class Product { [HiddenInput(DisplayValue=false)] public i...
Artykuł ten w przystępny sposób przedstawia tytułowe zagadnienia osobie, która nie miała z nimi styczności.
Nawiązałem współpracę z mobilną platformą reklamową Mobilvi. Firma używa systemu mOcean dla dystrybucji reklam. W internecie dostępna jest ogólna biblioteka mOcean dla Windows Phone, którą możne pobrać tu. Niestety kontrolka jest bardzo niestabilna i z jakiegoś powodu powoduje czyszczenie IsolatedStorage. Z tego powodu na codeplex wrzuciłem własną implementację systemu mOcean.
Mobile development 4841 dni, 14 godzin, 38 minut temu 57 źrodło rozwiń
Podczas używania MediaElement i testowaniu aplikacji na urządzeniu sporadycznie możemy dostać błąd AGENETWORK_ERROR na evencie MediaFailed.
Mobile development 4841 dni, 14 godzin, 38 minut temu 21 źrodło rozwiń
Od razu zaznaczam, że nie dotyczy ten wpis lokalizowania aplikacji jako takich bo te informacje można znaleźć tu. Ale dotyczy on nowych zasad app hub’a które ostatnio wprowadził Microsoft przy wrzucaniu aplikacji.
Mobile development 4841 dni, 14 godzin, 38 minut temu 30 źrodło rozwiń
Wykorzystywanie atrybutów w C#, jest często marginalizowane, a nawet wręcz pomijane przez programistów tego języka. Jak pokazuje życie, mogą one być całkiem przydatne np. w serializacji obiektów do XMLa. Mogą one się przydać, również w naszych własnych programach. Użycie atrybutów, może spowodować, że napisany przez nas kod będzie bardziej elastyczny i skalowalny, a chyba to się liczy, prawda;)? W dzisiejszym wpisie, chciałbym zatem Wam pokazać, jak w banalny sposób można utworzyć własną klasę atrybutu ...
Architektura 4863 dni, 8 godzin, 59 minut temu 337 źrodło rozwiń
Podczas działania naszej aplikacji (a będącej jeszcze w fazie dewelopmentu) często zachodzi potrzeba na wyświetlanie dodatkowych informacji. Przykładowo wyświetlamy różnego rodzaju identyfikatory czy kody wczytanych danych aby śledzić czy edytowany rekord jest tym rekordem, o który nam chodzi...
Silverlight 4877 dni, 6 godzin, 35 minut temu 98 źrodło rozwiń
Jeden z czynników, który warunkuje dobrego programistę, to umiejętność tworzenia elastycznego i niepowtarzalnego kodu. Jeśli jakiś element naszego kodu jest powtarzalny, bądź schematyczny, to z pewnością warto się zastanowić nad napisaniem metody, która zawrze ten kod i będzie mogła być wykorzystana wielokrotnie. Napisana przez nas aplikacja stanie się bardziej przejrzysta i z pewnością zmaleje również ryzyko popełnienia błędu, a wszelkie zmiany będzie można wykonać w jednym miejscu. Podobnie sprawa wyg...
Architektura 4884 dni, 12 godzin, 29 minut temu 298 źrodło rozwiń