W poprzedniej części opisałem w jaki sposób możemy generować listy elementów do edycji/tworzenia tak by nie przejmować się numerycznym indeksem. To co nam jednak pozostało to sprawa walidacji danych. Najlepszym przykładem będzie zmodyfikowanie kodu, który już posiadamy (najnowsza wersja na github) – dodajmy atrybut Required dla własności Name w CreateAuthorViewModel. Następnie odpalmy projekt, wejdźmy na zakładkę Books i potem kliknijmy Create New. Jeżeli teraz klikniemy na Add book author i nie wprowa...
Wpis o tym jak poprawnie wykorzystywać JSON w web serwisach na ASP.NET, jakich błędów unikać przy implementacji takowych oraz o customowych serializatorach JSON dla ADO.NET
Mechanizm dziedziczenia jest ogólnie znany oraz chętnie wykorzystywany w programowaniu obiektowym. Nie wiedzieć czemu w aplikacjach internetowych stosuje się go raczej rzadko. W tym artykule chciałbym zaprezentować jak wykorzystać dziedziczenie w sprytny sposób w aplikacji webowej.
autor: Jakiś czas temu pracowałem nad aplikacją WWW, która między innymi zajmowała się wysyłaniem SMS'ów. SMS'y wysyłałem przy pomocy Web Service'u udostępnionego przez operatora. Aby wysłać taki SMS musiałem uwierzytelnić się korzystając z infrastruktury klucza publicznego - dokładniej mówiąc aby wysłać wiadomość musiałem przedstawić certyfikat podpisany przez operatora. Jak to zazwyczaj bywa testy przy użyciu serwera WWW wbudowanego w Visual Studio powiodły się. Niestety po zainstalowaniu apli...
We wpisie dostępna jest customowa implementacja Membership Providera i RoleProvidera do bazy MySQL 5.1+, która wnosi sporo usprawnień w zakresie wydajności i bezpieczeństwa oraz jest łatwo dostosowywalna do własnych potrzeb
Czytając książkę Projektowanie serwisów WWW. Standardy sieciowe. Wydanie III (polecam!) natrafiłem na rozdział poświęcony CSS’owi w wersji trzeciej. Wśród opisywanych nowości najbardziej przypadła mi do gustu notacja rgba. Od standardowego zapisu rgb znanego z CSS2 odróżnia go ostatnia składowa – a (od angielskiego alpha – przezroczystość). To dzięki niej mamy możliwość manipulowania przezroczystością danej barwy. Ustawiając wartość alpha na 0 spowodujemy całkowitą przezroczystość koloru. Wartość 1 oznac...
Autor: Dzisiejszego pięknego i powtórnie zimowego dnia zaszła potrzeba stworzenia kontrolki, która miałaby dwa wzorce zawartości: nagłowek i ciało. Wszystko szło pięknie. Stworzyłem sobie kontenery do wzorców, odpowiednią kontrolke i wszystkie inne potrzebne rzeczy. Gdy jednak przyszło do wykorzystania okazało się, że kontrolki umieszczone wewnątrz wzorców nie mają odwołać w pliku designera, ani nie są dostępne „globalnie” na stronie. Jakby nie patrzeć całkiem normalne zachwoanie tego typu zwierza, do ja...
ASP.NET dostarcza wygodnego i prostego mechanizmu do obsługi profili użytkowników. Do profilu użytkownika można łatwo dodać kolejne dane – w tym celu wystarczy odpowiednio zmodyfikować web.config, np. w następujący sposób....
W momencie gdy chcemy uruchomić na serwerze IIS usługę stworzoną przy pomocy technologii WCF pojawia się nieoczekiwany błąd: The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map. Dzieje się tak w przypadku odwołania do plików *.SVC, które są odpowiedzialne za udostępnianie kontraktów usług na zewnątrz. W jaki sposób go rozwiązać? Otoż pierwsze co należy zrobić, to uruchomienie Visual...
Stephen Walther na swoim blogu opublikował listę dziesięciu narzędzi, które przydadzą się podczas tworzenia aplikacji internetowych w ASP.NET.
Od dłuższego czasu Microsoft udostępnia kontrolkę do generowania różnego rodzaju wykresów. Możliwości kontrolki są naprawdę bardzo duże. Dzięki niej można wygenerować naprawdę ładne wykresy. Jak wiadomo w aplikacji MVC kontrolka ta nie zadziała w taki sam sposób jak w aplikacji WebFormsowej. Tu nie można zwyczajnie położyć kontrolki na formie, gdyż wymaga ona PostBack'a. Musimy stworzyć obiekt samemu i go skonfigurować w kodzie. Na szczęście MSCharts ma zaimplementowane szablony, dzięki czemu w łatwy sp...
Po odpowiednim rozmieszczeniu elementów tworzących layout strony czas na właściwą część, czyli utworzenie menu z kategoriami produktów. Najpierw jednak trochę o samym zagadnieniu tworzenia menu. W toolboxie Visual Studio, w części Navigation, można odnaleźć gotową kontrolkę Menu. Kontrolka ta umożliwia utworzenie menu w oparciu o powiązane dane zawarte w pliku XML – Web.sitemap. Dzi...
Autor: Kilka dni temu rozpocząłem prace nad funkcjonalnościami związanymi z zamówieniami produktów. Natrafiłem jednak na pewne trudności związane z odnośnikami. Otóż, w momencie wyświetlenia produktów (kontroler Product) automatycznie tworzone są linki „Kup produkt” dzięki którym za pomocą jednego kliknięcia można przejść do formularza zamówienia. Jednak dodanie zamówienia do bazy obsługiwane jest przez kontroler Order, a nie Product. Zacząłem się zatem zastanawiać, w jaki sposób w widokach odwołać się d...
Witam dziś podczas kodowania natrafiłem na dosyć nieprzyjemne utrudnienie. Mianowicie dotyczy ono wstrzykiwania poprzez IoC HttpContext i pobierania aktualnego kontekstu do klas które tego potrzebują np. sesja. ciasteczka itp. Jak wiadomo HttpContext jest trudno dostępnym obiektem i ciężko w łatwy sposób wstrzyknąć. Wiec postanowiłem napisac wrapper do HttpContext.
Kolejna odsłona z cyklu pod tytułem: co każdy programista ASP.NET musi wiedzieć. Tym razem niezbyt długi post o jednym z mechanizmów zarządzania stanem aplikacji odbywającym się po stronie serwera, czyli o stanie sesji (session state). Poruszone zostaną w nim jedynie podstawowe kwestie, być może w późniejszym czasie do zagadnienia tego powrócę. Stan sesji w ASP.NET umożliwia przechowywanie wartości specyficznych dla użytkow...
21 września zespół Microsoft SharePoint Team wykrył że luka w ASP.NET dotyczy także SharePoint w wersjach 2.0, 3.0 i w najnowszej wersji wydanej w tym roku - 4.0. Obecnie nie ma rozwiązania dla poważnej luki w bezpieczeństwie, jednakże pojawiło się obejście problemu, polegające na odpowiedniej modyfikacji web.config i dodaniu pliku obsługi błędów.
Jedną z tych rzeczy, którą musi znać każdy programista ASP.NET jest zarządzanie stanem. Na pierwszy ogień na moim blogu proponuję tematykę Cookies, czyli popularnych ciasteczek. O ciasteczkach chyba każdy posiada jakąś wiedzę, ale zawsze warto pewne informacje usystematyzować, stąd pomysł na niniejszego posta. Ciasteczko to pewna niewielka porcja tekstu, która jest dołączana do żądań i stron wędrujących pomiędzy serwerem i przegl...
Microsoft udostępnił narzędzie Web Application Configuration Analyzer (WACA), które skanuje serwer hostujący aplikacje biznesowe w oparciu o zestaw najlepszych praktyk zalecanych dla ustawień IIS , ASP.NET i SQL Server.
autor: To co napisałem poniżej to narazie koncept, który w sumie już działa, ale wymaga jeszcze nieco szlifu. Potrzebowałem skomunikować ze sobą dwie aplikacje webowe oparte o MVC. Naczytałem się o WCF i innych sposobach komunikacji poprzez Webservice i zawsze oznaczało to sporej ilości dłubania. Zresztą jak dobrze poszukać to znajdą się opinie, że budowanie osobn...
Kilka dni temu ostrzegaliśmy przed atakiem na webaplikacje pisane w ASP.NET. Dziś znamy już szczegóły błędu, a Microsoft potwierdził zagrożenie. Poniżej prezentujemy jak zabezpieczyć się przed atakiem.Atak na ASP.NET (demonstracja) Błąd, tak jak pisaliśmy kilka dni temu, korzysta z tzw. wyroczni, czyli polega na wysyłaniu zaszyfrowanych zapytań do serwera i wyłapywaniu różnic w jego odpowiedziach — różne kody błędów świadczą o tym, czy serwer poprawnie rozszyfrował wiadomość. Na tej podstawie można wycią...