dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem C#

Notyfikacje są obecnie czymś powszechnym w każdym liczącym się mobilnym systemie. Dzięki nim, jesteśmy na bieżąco z mailami, powiadomieniami z Facebooka, czy choćby z wynikiem wyczekiwanego meczu. Windows Phone nie odstaje niczym w tym obszarze od swojej konkurencji, a nawet oferuje kilka dodatkowych, ciekawych opcji. W dzisiejszym tekście przedstawię przykładowe użycie lokalnych notyfikacji typu toast - zarówno w wersji harmonogramowanej (scheduled) jak i normalnej. Notyfikacje innego typu wysyła się w ...

Obsługa lokalnych notyfikacji w Universal Apps

Mobile development 478 dni, 5 godzin, 19 minut temu rroszczyk 73 rozwiń

W swojej stosunkowo krótkiej karierze programistycznej, zdążyłem już pracować z różnymi technologiami. Naturalnym tego następstwem są oczywiście wszelkiej maści porównania. Czasem np. porównuje Razora z MVC do XAMLa. I choć w teorii bardziej rozbudowana jest ta druga z obu tych technologii, to w praktyce Razor ma kilka konstrukcji, do których tęsknym okiem wyglądają designerzy XAMLa. Jedną z nich jest IF. I choć w teorii można ją częściowo zastąpić choćby za pomocą VisualStates, to w praktyce okazuje się...

Biblioteki warte poznania w C# - Conditional XAML

Mobile development 480 dni, 20 godzin, 18 minut temu rroszczyk 328 rozwiń

Tworząc nowe zadania (wątki) za pomocą TPL, możemy przekazać parametry AttachedToParent lub DenyChildAttach. Określają one, czy wątek powinien być podłączony do rodzica czy nie. W dzisiejszym wpisie postaram wyjaśnić się, czym one różnią się. Parametry definiują relację wątku z nadrzędnym wątkiem. Jeśli wątek A, tworzy kolejny wątek B, wtedy za pomocą powyższych wartości możemy określić relacje wątku B z A. Spróbujmy zatem wyjaśnić jak ta relacja wpływa na...

Dziel się z innymi:
Tworzenie wątków: TaskCreationOptions.DenyChildAttach, TaskCreationOptions.AttachedToParent

Programowanie rozproszone 480 dni, 20 godzin, 18 minut temu rroszczyk 57 rozwiń

W .NET 4.5 pojawiła się metoda Task.Run. Z przyzwyczajenia jednak przez długi czas używałem tylko Task.Factory.StartNew. Obie metody służą do stworzenia nowego wątku i natychmiastowego jego uruchomienia. Sposób wywołania wygląda bardzo podobnie...

Dziel się z innymi:
Różnica między Task.Run, a Task.Factory.StartNew

Programowanie rozproszone 480 dni, 20 godzin, 18 minut temu rroszczyk 258 rozwiń

Jeżeli zachodzi potrzeba żeby w naszej aplikacji chcemy mieć razorowe widoki, standardowa konfiguracja nie daje nam intelisense. Powoduje to, że czas stworzenia widoku znacznie się wydłuża, bo visual krzyczy nam błędami co chwilę i podkreśla wszystko na czerwono. Jest jednej sposób który pozwala załatwić sprawę...

Dziel się z innymi:
Działające intelisense dla Razor w projekcie class library ~ Programowanie i okolice

Web 483 dni, 4 godziny, 56 minut temu ozgrozo 113 rozwiń

Przemysław Walkowski Kolejna książka z mojej kolekcji opisuje najważniejsze wzorce projektowe z przykładami w C#.  Autorem jest Steven John Metsker, przechodzi on przez wszystkie najważniejsze grupy wzorców projektowych takich jak wzorce interfejsów, odpowiedzialności, wzorce konstrukcyjne, wzorce operacji oraz wzorce rozszerzeń. Poniżej moja recenzja. Konkretnie Książka jest dość stara pierwsze wydanie miało miejsce w 2005 roku. Co prawda wzorce pro...

Dziel się z innymi:
C# Wzorce projektowe - recenzja książki | Blog Programisty.NET

Inne 488 dni, 8 godzin, 9 minut temu przemekwa 362 rozwiń

Czasem tworząc aplikację wykorzystującą XAML, chcielibyśmy przekazywać dane pomiędzy poszczególnymi stronami. Niestety technologie Microsoftu nie są do tego dobrze przygotowane. Co prawda możemy zawsze wykorzystać jakiś globalny obiekt kontekstu, ale w praktyce jest to rozwiązanie nieefektywne. Możemy również wykorzystać foldery lokalne/roaming, który opisywałem tutaj, ale w pewnym sensie strzelamy tutaj do muchy z armaty. Czy można to zrobić jakoś prosto i elegancko? Okazuje się, że tak - choć po części...

MVVM Light - wykorzystanie messengera w komunikacji

Mobile development 489 dni, 9 godzin, 33 minuty temu rroszczyk 190 rozwiń

BlockingCollection jest specjalną kolekcją danych, przygotowaną do implementacji wzorca producent-konsument. Nakład pracy do implementacji tego wzorca jest minimalny z BlockingCollection. Nie musimy martwić się o synchronizację, sekcję krytyczną czy deadlock. Zacznijmy od razu od przykładu. Producent będzie wyglądać następująco...

Producent-konsument w C# – BlockingCollection

Programowanie rozproszone 489 dni, 9 godzin, 33 minuty temu rroszczyk 286 rozwiń

Domyślnie tworząc aplikacje uniwersalne, możemy korzystać z rozbudowanego modelu zdarzeń. Każde ze zdarzeń, może zostać zaimplementowane w tzw. części code-behind wybranej strony/kontrolki. Nie wszystkim do końca odpowiada jednak ten model. Spore grono programistów jest zwolennikiem architektury MVVM, która promuje wydzielone konstrukcje zwane ViewModelami. Ważnym elementem ViewModel są komendy, które pozwalają na realizację określonych zadań. Niestety nie wszystkie kontrolki Microsoftu są do tego dobrze...

Dziel się z innymi:
Implementacja komendy Tap dla TextBlocka

Mobile development 495 dni, 9 godzin, 48 minut temu rroszczyk 60 rozwiń

Resharper daję naprawdę cenne wskazówki. Nie wszystkie są oczywiste i czasami należy zagłębić się w temat. Jedną z takich wskazówek jest używanie IndexOf wraz z StringComparison.Ordinal. Załóżmy, że mamy następujący kod: string text = "test"; Console.WriteLine(text.IndexOf("est")); Resharper zasugeruje konwersję do: string text = "test"; Console.WriteLine(text.IndexOf("est", StringComparison.Ordinal)); Dlaczego? Jeśli nie przekażemy ustawień regionalnych jawnie, wtedy domyślnie aktualna zost...

Dziel się z innymi:
Porównywanie znaków, ToUpper, string.IndexOf oraz StringComparison.Ordinal

Sztuka programowania 495 dni, 9 godzin, 48 minut temu rroszczyk 162 rozwiń

W chwili obecnej tworząc aplikacje mobilne, bardzo często korzystamy z Internetu, o czym wspominałem po części w ostatnim wpisie. Siłą rzeczy w chmurze często trzymamy też konfigurację aplikacji/usługi, aczkolwiek nie musi to być regułą. Aplikacje uniwersalne obsługują bowiem tzw kontenery danych (ApplicationDataContainer), które pozwalają na zapisywanie ustawień dla konkretnej instalacji, a także globalnie dla naszego konta Windows Live. W dzisiejszym wpisie, zaprezentuję prosty sposób na wykorzystanie ...

Zapisywanie danych użytkownika w Universal Apps

Mobile development 503 dni, 8 godzin, 5 minut temu rroszczyk 71 rozwiń

O usługach REST, które dzisiaj są wszechobecne pisałem już wiele razy np. tutaj.  Dzisiaj chciałbym napisać krótkie podsumowanie w formie porad i antywzorców. Zaczynamy: 1. Nigdy nie używaj czasowników w URI. Przykład błędnych linków: GET: localhost\persons\1\UpdateEmail?email=’…’ Jedynym dozwolonym czasownikiem w adresie to HTTP verb. Całość linku to nic innego jak hierarchia zasobów. Poprawna aktualizacja adresu email może wyglądać zatem następująco: PUT: localhost\persons\1\email Metoda PUT ozn...

Tagi: .Net, C#, REST, RPC
Dziel się z innymi:
Kilka porad na temat usług REST

Programowanie rozproszone 503 dni, 8 godzin, 5 minut temu rroszczyk 396 rozwiń

Ten błąd jest konsekwencją architektury providera SQL Server dla linq to entities, który całe zapytanie konwertuje na SQL...

Dziel się z innymi:
LINQ to Entities does not recognize the method Last() method, and this method cannot be translated into a store expression. ~ Programowanie i okolice

Sztuka programowania 507 dni, 2 godziny, 45 minut temu ozgrozo 163 rozwiń

Większość mobilnych aplikacji wymaga aktywnego połączenia internetowego do poprawnego działania. Wiele z nich, nie posiada nawet trybu offline i bez sieci po prostu nie jest w stanie funkcjonować. Często developer musi również reagować na rodzaj połączenia sieciowego, z którego aktualnie korzysta użytkownik (WiFi/GSM), dlatego temat ten jest naprawdę ważny z perspektywy całego projektu aplikacji.

Universal Apps - weryfikacja stanu połączenia internetowego

Mobile development 510 dni, 12 godzin temu rroszczyk 121 rozwiń

Po dość znacznej przerwie powracamy jeszcze na chwilę do tematu Dependency Injection. Pamiętacie cykl i moment, do którego dotarliśmy? Zastosowaliśmy SRP by uprościć kod. Wprowadziliśmy jawne zależności między komponentami i ubraliśmy je w interfejsy. Spróbowaliśmy napisać własny kontener Dependency Injection, a potem zobaczyliśmy dlaczego lepiej użyć jednak czegoś gotowego. I stanęło na Autofac, kiedy to obiecałem “kilka finalnych refleksji”.

Dziel się z innymi:
DI: Kilka refleksji po wprowadzonych zmianach

Sztuka programowania 531 dni, 7 godzin, 1 minutę temu rroszczyk 251 rozwiń

Wiele osób pewnie już od dawna korzysta LINQPad. Osobiście nigdy nie miałem okazji korzystać z tego narzędzia i zawsze myślałem, że w przypadku TDD jest ono po prostu zbędne. Ostatnio jednak zainstalowałem z ciekawości i okazało się bardzo przydatne w przypadku testowania krótkich snippet’ów. Czasami chcę sprawdzić tylko np. formatowanie daty i wtedy zwykle uruchamiałem osobną instancję Visual Studio,  immediate windows w VS albo po prostu pisałem konkretny test. Nie zawsze jednak jest to wygodne i prak...

Tagi: bazy danych, C#, Linq
Dziel się z innymi:
LINQPad – przydatne narzędzie w eksperymentowaniu z C#\LINQ

Sztuka programowania 540 dni, 11 godzin, 34 minuty temu rroszczyk 342 rozwiń

Tworząc aplikacje mobilne, nie jest łatwo zbudować model danych, który idealnie odpowiadałby potrzebom aktualnego widoku. Problem staje się jeszcze bardziej złożony, w sytuacji gdy korzystamy z API, które zwraca ogólny model, dla rożnych końcówek. W takiej sytuacji, programista aplikacji mobilnej musi sam zadbać o odpowiednie wyświetlenie i sformatowanie otrzymanych danych.. W świecie Universal Apps problem ten można rozwiązać na różne sposoby. Osobiście preferuje tutaj wykorzystanie architektury MVVM, k...

Dziel się z innymi:
Universal Apps - mapowanie danych z API na potrzeby XAML

Web 540 dni, 11 godzin, 34 minuty temu rroszczyk 125 rozwiń

Working with Tasks is a modern way of writing asynchronous code in an easy and flexible manner. It is quite straightforward to start using them, so usually developers do not investigate thoroughly the topic. Unfortunately this often leads to unpleasant surprises - especially when it comes to exception handling. Having this in mind let's take a look how to handle exceptions in Task and what can happen if we do it wrong.

Dziel się z innymi:
[EN] TPL - exception handling and UnobservedTaskException issue

Windows 551 dni, 1 godzinę, 18 minut temu nocturn 91 rozwiń

Technologie typu WPF, czy Universal Apps aż proszą się o zastosowanie MVVM, jednak wsparcie dla tej architektury po stronie tych rozwiązań, jest umówmy się - co najwyżej średnie. Bardzo mało kontrolek posiada wbudowaną obsługę komend. I nawet jeśli się ona pojawia, to i tak nie dotyczy ona wszystkich dostępnych w kontrolce zdarzeń. Poza tym, nie ma jawnego wsparcia dla ViewModeli. Standardowo zbudowana aplikacja składa się ze stron wykorzystujących code-behind. Na szczęścia oba te problemy można w pewnym...

Dziel się z innymi:
Więcej MVVM w Universal Apps dzięki Behaviors SDK

Sztuka programowania 570 dni, 10 godzin, 27 minut temu rroszczyk 196 rozwiń

Semantyczny model dostarcza nam wiele informacji o kodzie, które zwykle uzyskuje się po kompilacji. Na przykład przeładowanie metod jest dużo łatwiejsze do określenia już po kompilacji.  Oznacza to, że nie jest już to  klasyczna, statyczna analiza kodu. Z tego względu, najpierw danych kod należy skompilować za pomocą...

Tagi: .Net, C#, roslyn
Dziel się z innymi:
Roslyn: Analiza przepływu danych–semantyczny model

Narzędzia 585 dni, 10 godzin, 34 minuty temu rroszczyk 127 rozwiń

1 2... 11 12 13 14 15 16... 52 53
Szkolenia SecurITum

marzec

03.
Wroc#
Wrocław

kwiecień

03.
4developers
Warszawa

maj

17.
InfoShare
Gdańsk
Zobacz wszystkie

.NET Developer Days 2015

W tym roku ponownie jak w poprzednim jesteśmy jednym z patronów medialnych konferencji .NET Developer Days. W tym roku jednym z prelegentów będzie Scott Hanselman.  czytaj więcej
2015-07-22

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 520,45)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 383,88)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 727,86)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 418,06)

15

jedmac (3 283,38)

16

http://jakub-flor... (3 224,66)

17

CaMeL (2 954,87)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 539,28)

20

spetz (2 533,07)