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...
Z racji tego, że kilka najbliższych dni mam zamiar poświęcić layout’owi vebshop‘u, wypadałoby opisać krótko moje zasady związane z kodowaniem kaskadowych arkuszy stylów. Mam tu na myśli wytyczne określające m.in. wielkość wcięć, stosowanie nawiasów, czy też wielkości liter w nazwach.
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.
W ramach relaksu postanowiłem dziś skupić się na mało istotnym, aczkolwiek bardzo irytującym mnie szczególe. Mam na myśli wykorzystywany przeze mnie skrypt TinyMCE (wspominałem o nim tutaj). Otóż po najechaniu na przyciski odpowiedzialne za pogrubianie, pochylanie (itp) tekstu, wyświetlają się podpowiedzi… w języku angielskim. Skoro tworzę cały projekt po Polsku, postanowiłem także ten drobny element spolszczyć. Zajrzałem więc na oficjalną stronę projektu w poszukiwaniu informacji związanych ze zmianą d...
Visual Studio jako środowisko programistyczne dostarcza wiele mechanizmów ułatwiających pracę programistom – różnego rodzaju wizardy czy skróty klawiaturowe. Odkąd pracuję nad aplikacją pisaną w ASP.NET MVC, szczególnie podoba mi się możliwość szybkiego przełączania pomiędzy widokiem a powiązanym z nim kontrolerem. Można to uczynić bardzo szybko klikając prawym przyciskiem myszki w ciele metody (kontrolera) b...
Mechanizm dodawania zdjęć już napisałem, więc przyszedł czas na przemyślenie kwestii ich wyświetlania. W dzisiejszych czasach pewnego rodzaju standardem jest używanie do tego celu różnych skryptów – w większości przypadków napisanych za pomocą JavaScript’u. Do najpopularniejszej grupy takich mini-galerii należą tzw. LightBox‘y, które najłatwiej skojarzyć z efektownym nałożeniem półprzezroczystego tła na stronę i wyświetleniem pożądanego elementu na jej pierwszym planie. Najpopularniejsze skrypty, które t...
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...
Szukając dzisiaj pewnego plugina do jQuerego moją uwagę zwróciła nazwa „jQuery Crash”. Z ciekawości postanowiłem sprawdzić, co się za tym kryje. Przedstawiony opis tłumaczy wszystko „Summary A jQuery plugin for crashing IE6. That’ll teach those motherf!%@#s to upgrade their s#t. Usage To crash IE6 call„ Trzeba przyznać, że autor ma ciekawe podejście do życia Jakby kogoś plugin zainteresował, to można go pobrać z tej strony: http://plugins....
Write less, do more! Nagłówek tego akapitu to motto biblioteki JavaScript, z którą postanowiłem się zapoznać: jQuery (podlinkowana strona jest godna gorącego polecenia, zawiera absolutnie wszystko, czego potrzeba do nauki). Nie miałem nigdy do czynienia z JavaScript, dlatego początkowo trudno było mi rozczytywać przykłady z dokumentacji (zwłaszcza, że niejedna linijka kodu w nich zawartego zaczyna się od zlepka $(„#, widniejącego w tytule wpisu). Opanowanie podstaw nie okazało się jednak trudne, po kilku...
Przez długi okres czasu zmagałem się z problemami związanymi z liczbami zmiennoprzecinkowymi w ASP.NET MVC 2. Problemów tych było tak wiele, że nie sposób jest omówić ich tu wszystkich. W większości przypadków dotyczyły one odmiennego interpretowania separatora (czyli znaku oddzielającego część całkowitą liczby, od części ułamkowej) przez serwer oraz przez walidator. Próbowałem wielu różnych sposobów, żeby sobie z tym poradzić, lecz nic nie dawało satysfakcjonujących mnie rezultatów. Okazało się, że wyni...
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...
Sprawy związane z SEO są aktualnie jednymi z najważniejszych kwestii na które należy zwrócić uwagę podczas tworzenia strony internetowej. Czym byłby sklep internetowy, gdyby użytkownicy nie mogli odnaleźć go za pomocą popularnych wyszukiwarek? Odpowiedź jest chyba oczywista…
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ą...
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...
Microsoft przyznał w końcu, że aplikacje webowe stworzone przy pomocy praktycznie dowolnej wersji środowiska ASP.NET są podatne na atak typu Padding Oracle. Oznacza to, że w zależności od konkretnej aplikacji, intruzowi może udać się przykładowo uzyskanie dostępu do zawartości zaszyfrowanych ciasteczek i innych danych sesyjnych. Około 25% wszystkich aplikacji webowych bazuje na ASP.NET, w związku z...
Dzisiaj nieco o tym, jak można sobie chociaż kapkę życie ułatwić. O ile z reguły przy dropdownlistach wyświetlamy jakieś konkretne wartości pobrane z bazy tworząc odpowiednią SelectList, o tyle z enumami z reguły nie chcemy wyświetlać bezpośrednio jego nazwy w boxie, na przykład ze względu na to, że nasza nazwa (nam tłumacząca wszystko) nic odbiorcy stronki nie powie. Rozwiązaniem przez nas stosowanym jest generowanie listy na podstawie atrybutów enumów. Więc jedziemy: Atrybut DisplayName jest tu bardzo ...
Dziś chciałbym pokazać rozwiązanie problemu związanego ze sposobem przechowywania podstawowych informacji o forum np, nazwa, słowa kluczowe.
ASP.NET Edycja nagłówka w GridView Wrzesień 18, 2010- autor: michalurbanskiDodaj komentarz Tytuł posta może być nieco mylący, chciałbym bowiem przedstawić w jaki sposób dodać dodatkowy wiersz do standardowej kontrolki GridView w celu zmiany wyglądu części nagłówkowej. Jeśli jednak mamy już header, to trzymając się ściśle terminologii dodana część powinna być określana jako subheader. Jakkolwiek brzmiałby polski odpowiednik tego słowa, zdecydowałem, że przynajmniej na potrzeby tego posta będę używał zwr...
W poprzednim odcinku po krótce opisałem kontrolkę PivotViewer oraz jak szybko można zacząć się nią bawić. Tym razem napiszę trochę o tym, że wcale tak szybko nie można się z nią zacząć bawić ze względu na nowe rozszerzenia plików, które muszą być obsłużone zarówno przez IIS jak i nasz wirtualny serwer Cassini. Dlaczego najpierw zajmuje się rozszerzeniami? Gdyż w następnych odcinkach zaczniemy korzystać z kolekcji w kontrolce i zrozumienie dlaczego nam się kolekcja nie ładuje będzie sednem naszych NIE zm...