W wpisie o lokalizowaniu enumów pojawił się komentarz, w którym Janko zwrócił mi uwagę, że rozbijanie napisów na małe pliki resource nie jest najlepszym pomysłem pod względem wydajności. Jak pisałem w innym wpisie (Używanie napisów w aplikacji) stosuje wiele plików resource do organizacji napisów wyświetlanych użytkownikowi. Dlatego chciałem sprawdzić, czy to prawda. Przeglądając internet można trafić na pytania na stackoverflow: https://stackoverflow.com/ques...
Typ string jest jednym z najczęściej używanych typów danych w aplikacji. Gdy go potrzebujemy to po prostu otwieramy cudzysłów, wpisujemy wartość i zamykamy cudzysłów. Bardzo często nawet nie zastanawiamy się, czy to dobre podejście. Niestety w dłuższe perspektywie takie podejście oznacza problemy. A to robimy literówkę w kluczu podczas pobierania wartości z słownika, o której dowiadujemy się dopiero podczas wykonywana kodu (o ile go przetestujemy). A to musimy w 20...
Typy wyliczeniowy są używane do określenia jednej wartości z góry określonego zbioru. Dzięki nim możemy ułatwić sobie tworzenie kodu poprzez nadanie nazwy dla wartości, którą później używamy. Nazwa enuma musi spełniać rygory składni takich języków jak C#, dlatego potrzebujemy mechanizmu, który wyświetli ładny napisu w interfejsie użytkownika. W tym wpisie drogi czytelniku, pokaże Ci jak to zrobić małym nakładem pracy oraz przy okazji wspierać wiele języków. Zob...
Na chwilę obecną SportsTacticsBoard używa plików .resx aby przechowywać zasoby w celu internacjonalizacji. Celem jest zapewnienie właściwego tłumaczenia aplikacji użytkownikom. Jednak moim zdaniem używanie tłumaczeń w plikach .resx jest trochę niepraktyczne. Po pierwsze, głównym powodem na posiadanie oddzielnych plików na tłumaczenie jest to, aby tłumacz nie musiał wiedzieć nic o programowaniu...
← Kurs MVVM #4 DataTemplateSelectorOpublikowano, autor:Tomasz J W tej części kursu dowiesz się jak stworzyć aplikację wielojęzyczną wykorzystując bindowanie. Jako przykład stworzymy sobie formularz mini-formularz. Zaczynamy od stworzenia plik zasobów (ang. Resources File) w dwóch wersjach, domyślna – Polska i Angielska. Aby to zrobić do projektu dodajemy nowy element typu resx jak na obrazie poniżej. Plik ten wykorzystamy jako słownik domyślnego języka. Otwieramy nowo utworzony plik i dodajemy do ni...
Sztuka programowania 3096 dni, 21 godzin, 54 minuty temu 182 źrodło rozwiń
Niejednokrotnie musimy przeczytać jakieś dane “skądś”, i nie mam na myśli bazy danych. Czy to zewnętrzny system przysyła excela, czy na dysku ląduje plik tekstowy, czy jeszcze coś innego. Takie pliki musimy przetworzyć, więc prawdopodobnie utworzymy klasę “XFileProcessor” albo “XFileParser”, czy coś w ten deseń. To jest akurat idealny scenariusz do pisania testów: dostajemy input i znamy oczekiwany output. Klient przysyła plik wejściowy i mówi, ja...
Tym razem krótko, o czymś co może się przydać nie tylko na egzaminie, ale także w codziennej pracy z zasobami i bindowaniem do nich. Rozważmy cztery przypadki bindowania do zasobów w kodzie.
AppDomain.AssemblyResolve - zdarzenie to pozwala załadować assembly jeśli standardowy mechanizm platformy .NET nie poradzi sobie z tym zadaniem. Aplikacja działała poprawnie aż do migracji na platformę .NET 4.0 Czemu? O tym właśnie będzie post. Zwrócę w nim uwagę na dość istotną różnicę pomiędzy platformą .NET 4.0, a jej wcześniejszymi wersjami jeśli chodzi o wspomniane zdarzenie. Różnica ta, w określonych warunkach, może napsuć krwi.
autor: 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(...
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ć. Otóż problem wyglądał następująco: czytelnik tworzył pędzel przy pomocy kodu: ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "Images/test.png"))); Niestety tak utworzony pędzel nie zawsze generował obraz, taki jak to było oczekiwane. Jak temu zaradzić. Otó...
Zbyt długie ładowanie aplikacji internetowej potrafi odstraszyć nawet najbardziej zainteresowanych użytkowników, a już z pewnością nie wpływa pozytywnie na jej odbiór. Przyjemny splash screen to za mało. Aby uruchomić program w Silverlight, strona kliencka musi wcześniej pobrać w całości paczkę xap. Powinniśmy tak zarządzać projektem, aby rozmiar xap był jak ...
Silverlight 4794 dni, 5 godzin, 18 minut temu 103 źrodło rozwiń
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 4811 dni, 13 godzin, 21 minut temu 160 źrodło rozwiń
Ostatnimi czasy zajmowałem się przygotowanie obcojęzycznej wersji systemu, na który składa się cała plejada aplikacji napisanych w różnych technologiach, od ASP.NET przez WinForms po WPF. Do tej pory zagadnienie to znałem przede wszystkim ze strony teoretycznej. To znaczy wiedziałem o różnych mechanizmach wbudowanych w .NET wspierających ten proces, nie omieszkałem ich wypróbować ale nie miałem okazji zastosować tej wiedzy do dużego i skomplikowanego systemu. Powiem więcej, proces lo...
Jeśli drażnią cię te polskie komunikaty wyjątków w VS i chciałbyś/-abyś to zmienić to przede wszystkim wytłumacz się dlaczego. Komunikaty wyjątków nie powinny być widoczne dla użytkownika, więc jedyna sytuacja, która wymagałaby takiej interwencji, a jest to poszukiwanie informacji w Internecie dlaczego dany wyjątek występuje. Wiadomo w języku angielskim znajdziemy więcej i komunikat po polsku może w tym przeszkadzać (oczywiście dużą częśc wyjątków możemy sobie po prostu przetłumaczyć). Są dw...
Krótko i obrazkowo: dodamy do projektu kilka zasobów i dostaniemy się do nich z poziomu kodu. Całość zostanie przeprowadzona w środowisku Visual Studio, więc jak ktoś go nie używa, to sprawa raczej jest przegrana i może co najwyżej pooglądać widoki ;P. Zaczynamy standardowo, aplikacja konsolowa, najlepiej o jakiejś śmiesznej nazwie. Gdy ty...
Dołączanie zewnętrznych plików do stron ASP.NET jest czynnością niezwyke częstą. Szczególnie gdy korzystamy z zewnętrznych bibliotek zachodzi potrzeba dołączenia skryptów JavaScript, czy arkuszy stylów CSS. Pozornie sprawa jest prosta, jednak komplikuje się, gdy na przykłąd tworzymy zestaw kontrolek, które korzystają z jakiejś biblioteki (np. jQuery). Istnieje wtedy prawdopodobieństwo wielokrotnego włączenia tej samej biblioteki do kodu.Sytuacji można oczywiście uniknąć, sprawdzajac czy dany plik został ...