dotnetomaniak.pl - Artykuły z tagiem .Net

Dwa tygodnie temu popełniłem wpis na temat lokalnych notyfikacji, które z powodzeniem bez większych przeszkód można użyć w każdej aplikacji uniwersalnej. Dziś chciałbym pozostać w temacie notyfikacji, aczkolwiek tym razem podejdziemy do sprawy trochę bardziej globalnie - zajmiemy się tzw. notyfikacjami push.

Dziel się z innymi:
Obsługa notyfikacji push w Universal Apps

Mobile development 1927 dni, 6 godzin, 18 minut temu rroszczyk 67 źrodło rozwiń

W poprzednim poście skupiłem głównie się na reflected CSS, ale wspomniałem również o stored XSS. Zasada działania ataków typu “Stored xss” jest bardzo prosta – wstrzyknięty kod jest przechowywany w bazie danych. Oznacza to, że potencjalny atak może zostać wykorzystany przeciwko jakiemukolwiek użytkownikowi odwiedzającemu stronę. W przypadku reflected xss sami musieliśmy zadbać o to, aby ktoś odwiedził stronę z spreparowanymi przez nas danymi.

Dziel się z innymi:
Bezpieczeństwo web: XSS, ataki typu stored XSS oraz DOM-based XSS – część 2 | Piotr Zieliński

Web 1941 dni, 10 godzin, 18 minut temu rroszczyk 132 źrodło rozwiń

Atrybut InternalsVisibleTo służy do definiowania zaprzyjaźnionych bibliotek. “Zaprzyjaźniona” biblioteka to taka, która ma dostęp do klas i metod z modyfikatorem “internal”. Zwykle korzysta się z niego w celu przetestowania wewnętrznych klas. Czasami bywa, że klasy w bibliotece mają modyfikator internal i co za tym idzie, nie ma do nich bezpośrednio dostępu z testów. Za pomocą InternalsVisibleTo można zrobić wyjątek dla jakieś biblioteki, w tym przypadku projektu z testami.

Tagi: .Net, testy
Dziel się z innymi:
Atrybut InternalsVisibleTo dla blibliotek strong-named

Inne 1946 dni, 11 godzin temu rroszczyk 55 źrodło rozwiń

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 1946 dni, 11 godzin temu rroszczyk 73 źrodło rozwiń

Dzisiaj powracamy do zagadnień związanych z bezpieczeństwem aplikacji webowych. Przez kilka następnych postów będę pisał o XSS. Oprócz SQL Injection, XSS jest jednym z “popularniejszych” ataków przeprowadzanych na aplikacje webowe. O ile zasada działania może wydawać się prymitywna, to wiele stron, nawet tych z czołówki (np. Amazon), były podatne na XSS. Co więcej, tak jak SQL Injection, wykorzystanie XSS może spowodować całkowite przejęcie kontroli nad aplikacją. Nie należy więc traktować luki XSS jako...

Dziel się z innymi:
Bezpieczeństwo web,  Cross-Site Scripting (XSS) – część 1

Web 1948 dni, 13 godzin, 28 minut temu rroszczyk 147 źrodło 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 1949 dni, 1 godzinę, 59 minut temu rroszczyk 359 źrodło 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 1949 dni, 1 godzinę, 59 minut temu rroszczyk 63 źrodło 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 1949 dni, 1 godzinę, 59 minut temu rroszczyk 281 źrodło 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 1957 dni, 15 godzin, 14 minut temu rroszczyk 200 źrodło 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 1963 dni, 15 godzin, 29 minut temu rroszczyk 60 źrodło 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 1971 dni, 13 godzin, 46 minut temu rroszczyk 71 źrodło 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 1971 dni, 13 godzin, 46 minut temu rroszczyk 414 źrodło 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 1978 dni, 17 godzin, 41 minut temu rroszczyk 123 źrodło rozwiń

Z SQL Injection jest jak z polio czy odrą: w drugiej dekadzie XXI wieku możemy o nim zapomnieć. Wystarczy się zaszczepić, czyli: nie sklejać ręcznie poleceń SQL. Prawda? “Użyj parametrów z ADO.NET, a będzie cacy” – mówili. “Użyj Simple.Data, a złęgo obawiać się nie musisz” – mówili. Ależ kłamali! Jakież przeogromne było moje zdziwienie, gdy niedawno dostałem buga mówiącego, iż “coś dziwnego się dzieje jeśli w nazwie rekordu wstawi się apostrof”. WTF, jak to? Oczywiście sugestią naprawienia błędu od str...

Tagi: .Net, ado, simpledata, SQL
Dziel się z innymi:
SQL Injection alert!

Bazy danych i XML 1983 dni, 13 godzin, 42 minuty temu rroszczyk 274 źrodło rozwiń

It was always surprising to me that so few projects were started with data access concurrency in mind. I’ve heard many discussions about new fancy frameworks and UI controls the teams were about to use but possibility of concurrent access to users’ data didn’t appear to be a concern in their minds. Wen you think about it, it seems to be very logical. People have a natural tendency to avoid problems they haven’t encountered directly. There are so few people with attitude of challenging o...

[EN] Offline Pessimistic Lock in Entity Framework (or any other ORM) | WellDesignedSoftwareException

Architektura 1985 dni, 15 godzin, 30 minut temu https://mkarczewski.wordpre... 98 źrodło rozwiń

This is the second one of two posts concerning approach to build cost effective, but prepared for scaling, systems using ASP.NET Web API and Azure.

[En]Microservices with minimum overhead using ASP.NET Web API and Azure – part 2 – Deployment | Future Processing

Architektura 1989 dni, 3 godziny, 47 minut temu FutureProcessing 166 źrodło 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 1999 dni, 12 godzin, 41 minut temu rroszczyk 253 źrodło 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 2008 dni, 17 godzin, 14 minut temu rroszczyk 125 źrodło rozwiń

In this post we’ll focus on security. We’ll try to prove that claims base authentication is safe. As we remember SAML tokens are issued by “trusted” STS. But what exactly does “trusted” issuer mean? In this post, we’ll try to find definition of “trusted issuer”, a list of attributes which decide that issuer is trusted.

[EN] Security in WIF | Future Processing

Architektura 2008 dni, 17 godzin, 14 minut temu FutureProcessing 102 źrodło rozwiń

Testy jednostkowe z natury muszą być wykonywane w izolacji. Wykonanie np. pierwszego testu nie powinno mieć żadnego znaczenia dla pozostałych. Analogicznie, kolejność ich wykonywania nie ma znaczenia. Zwykle jest to bardzo proste i osiąga się to poprzez np. mock’i. Czasami jednak może zajść potrzeba całkowitej izolacji poprzez wykonywanie każdego testu w osobnej AppDomain. Myślę, że w 99% przypadków jednak, można bez tego obyć się. Ostatnio jednak, pisząc pewne narzędzie do Visual Studio, musiałem odiz...

Tagi: .Net, NUnit, testy
Dziel się z innymi:
nUnit–Wykonywanie testów w osobnych AppDomain

Sztuka programowania 2037 dni, 1 godzinę, 38 minut temu rroszczyk 153 źrodło rozwiń

1 2... 20 21 22 23 24 25... 49 50

Najaktywniejsi

1
(32 895,6)
2
(32 816,53)
3
(27 178,29)
4
(21 178,88)
5
(20 336,33)
6
(13 018,14)
7
(10 531,65)
8
(9 775,28)
9
(8 728,31)
10
(6 837,96)
11
(6 214,22)
12
(5 393,84)
13
(4 157,41)
14
(4 026,73)
15
(3 908,07)
16
(3 599,64)
17
(3 448,35)
18
(3 318,39)
19
(3 224,66)
20
(3 221,45)