June was a month of conferences for .NET developers! We had Tech Ed North America, Norwegian Developers Conference, Tech Ed Europe and bunch more, but the biggest one was Microsoft Build Developer Conference.
Jeżeli korzystasz z Twitter Bootstrap w ASP.NET MVC to najprawdopodobniej po kilku godzinach korzystania z tej świetnej biblioteki poczujesz nieodpartą potrzebę napisania kilku HtmlExtensions, aby choć trochę ułatwić sobie życie. Dobrym przykładem jest RadioButton, który w podstawowej wersji, dostępnej w ASP.NET MVC, “trochę” różni się od tego co oferuje nam Bootstrap. Napisałem HtmlExtensions do bootstrapowej wersji elementu jednocześnie dodając obsługę generowania z enuma. Takie radio na...
W zasadzie możnaby zapytać po co wynajdywać koło na nowo skoro chociażby przez NuGet można pobrać gotowe pagery (czy jak to nazwać). Praktyka jednak pokazuje, że czasem musimy stworzyć stronicowanie z uwzględnieniem dodatkowych funkcjonalności, których gotowe narzędzia nie posiadają, a nawet gdy dysponujemy ich kodem źródłowym i możemy go zmodyfikować to grzebanie w czyimś kodzie okazuje się często niełatwe. wink W artykule przedstawię więc jak zbudować własne narzędzie do stronicowania czy też paginacji...
Czasem, gdy walczymy o jak najszybszy czas odpowiedzi naszej strony musimy optymalizować jej dość dziwne elementy. W najnowszym magazynie .Net Curry autor, Omar AL Zabir w artykule zatytułowanym "Essential it admin skills for .net developers" w jednym z punktów pokazuje jak pozbyć się dodatkowych nagłówków wysyłanych przez IIS a dodawanych czy to przez niego samego czy też ASP.NET. Idea szczytna - każdy dodatkowy bajt kosztuje nas jakiś tam ułamek czasu zarówno po stronie serwera jak i przegląd...
Pisząc aplikacje oparte o ASP.NET MVC często korzystamy z wielu dodatkowych bibliotek/frameworków usprawniających naszą pracę. Czasem jednak zdarza się, że zatrzymujemy się zaczynamy zastanawiać, jaką cenę musimy zapłacić za wszystkie te dodatki? Poniżej postaram się przedstawić listę najczęstszych problemów oraz najlepsze biblioteki służące ich wydajnemu rozwiązaniu.
W poprzednim poście - ASP.NET MVC - zabezpieczenie przed Cross-Site Request Forgery - opisałem podstawowy mechanizm zabezpieczania się przed Cross-Site Request Forgery. Ma on jednak pewne ograniczenia. Zwykle 'AntiForgeryToken' przesyłany jest tylko razem z żądaniem typu POST - raczej nie stosuje się żądań typu GET do zatwierdzania formularzy. Typowy kontroler posiada najczęściej wiele akcji POST, jeśli więc chcielibyśmy aby w naszej aplikacji wszystkie formularze były zabezpieczone przed CSRF, musieliby...
Atak Cross-Site Request Forgery (w skrócie CSRF lub XSRF) polega na wykorzystaniu nieświadomego niczego użytkownika, który w danym momencie zalogowany jest do serwisu będącego celem ataku, do wysłania żądania spreparowanego przez hakera. Takie żądanie może na przykład zmieniać dane użytkownika użytego do ataku, na takie, które później będą mogły być wykorzystane przez atakującego do zalogowania się do serwisu. W dzisiejszym poście, chciałbym pokazać jak zabezpieczyć się przed tego typu atakiem w aplikac...
O walidacji w ASP.NET MVC raz jeszcze - tym razem, skupię się tylko na stronie klienta. Wykorzystując do tworzenia layoutów, niestandardowe kontrolki, może się zdarzyć, że standardowa walidacja jQuery w ASP.NET MVC nie będzie działać - przykład z życia, konkretnie z dzisiaj: mamy textbox'a, służącego do wprowadzania kwoty - do wyrenderowania go, skorzystałem z pluginu do jQuery - autonumeric (warto się zapoznać - bardzo przydatne). Nie będę się wgłębiać w konfigurację samego pluginu, ogólnie rzecz biorąc...
Walidacja oparta o atrybuty walidacyjne jest w ASP.NET MVC świetnym rozwiązaniem - w standardowych rozwiązaniach sprawdza się znakomicie - jednak czasami, podczas pracy nad projektem dochodzimy do sytuacji, gdy zaczyna nam brakować standardowych atrybutów. W takim przypadku najczęściej warto stworzyć własny atrybut walidacyjny oraz jego obsługę. Nie jest to wcale takie trudne, co postaram się pokazać w niniejszym wpisie.Po pierwsze, atrybut walidacyjny Przykład - często zachodzi potrzeba sprawdzania wy...
Tym razem przykład z życia! W ramach pracy nad projektem, w którym obecnie biorę udział, do generowania gridów na widokach, korzystamy z komponentu Telerika - ASP.NET MVC Grid. Niestety rowziązanie to ma pewne wady - w naszym przypadku, potrzebowaliśmy korzystać z Grida w trybie edycji po stronie klienta, a do przetwarzania zmian, zdefiniowana została w kontrolerze metoda UpdateGridData udekorowana atrybutamami Bind określającymi jak mają zostać zbindowane dane przekazane do kontrolera. Niestety, dane pr...
autor: Z dzisiejszej ankiety na FanPage'u dotnetomaniaka wynika, że sporo z nas na co dzień tworzy aplikacje ASP.NET (czy to WebForms czy też MVC). Zapewne zatem przyda nam się trochę darmowej wiedzy od Googla, co i jak wpływa na wyniki wyszukiwania i PR. Czy wiesz np. jak robot Google traktuje adresy z '-' a adresy z '_'? Jest jakaś różnica a może nie ma? Czy adresy z '/' na końcu są lepsze od tych bez? Czy dodawanie www do domeny ma jakieś znaczenie? Na te i inne pytania odpowie...
Definiując ścieżki w aplikacji ASP.NET MVC możemy zadać warunki (constraint) określające poprawność reguły dla parametru. Ja na przykład stosuję (między innymi) domyślnie constraint, który przepuszcza ścieżki pisane tylko małymi literami. Dzięki temu ustrzegam się przed zdublowanymi stronami indeksowanymi przez wyszukiwarki (wielkość liter ma znaczenie). Niestety dla jednego parametru można zadać tylko jeden warunek naraz. A co jeśli chcemy dołożyć kolejny? Można sobie pomóc korzystając z jednego, który ...
Zdarzają się sytuacje (jakie - o tym niedługo) w których przydałoby się dostać informację o tym, który kontroler zajmie się przetwarzaniem żądania. Niestety takie dane są dość ukryte we flakach MVC. Zrozumiałe jest, że taka logika jest częścią frameworka - w końcu to właśnie framework jest odpowiedzialny za utworzenie kontrolera na podstawie danych wysłanych z przeglądarki - ale dlaczego od razu chować tą logikę za jakimiś "internal"? Standardowo, o ile nie chcemy wpinać się w proces tworzenia kontroler...
Witajcie! zapraszamy na ósmy odcinek codingtv(); Dzisiaj dajemy odpocząć Visual Studio i przygotowujemy pierwsze szkice interfejsu. Wracamy do miniScruma i na Waszą prośbę krótko omawiamy ASP.NET MVC 3. Zapraszamy do oglądania i czekamy na Wasze komentarze!
Standardowo jeśli chcemy przekazać w URLu tablicę w MVC to wysyłamy po prostu wiele wartości o tej samej nazwie, np ?array=1&array=2&array=3. Może się jednak zdarzyć, że przydałoby się to jakoś "skompaktować", na przykład do takiej postaci: ?array=1,2,3. Co wtedy?
Dziś kolej na MVC 3.0. W pierwszej części podstawy: http://msdn.microsoft.com/pl-pl/library/wprowadzenie-do-asp-net-mvc-3-0 Dla tych którzy chcą poznać sam silnik Razor zapraszam tutaj: http://msdn.microsoft.com/pl-pl/library/razor–nowy-silnik-renderujacy
Dzisiaj zajmujemy się konfiguracją tabeli routingu w aplikacji ASP.NET MVC. Jak TDD nakazało, najpierw tworzymy testy jednostkowe sprawdzające, czy adresy URL są prawidłowo tłumaczone na klasy i metody kontrolera. Przy okazji omawiamy integrację Visual Studio z serwerem IIS Express oraz mechanizm szablonów w ReSharperze.
Hostingiem ASP na Webio.pl jestem bardzo mile zaskoczony. Niedrogi, a niezawodny i funkcjonalny. Problemem jest tylko automatyczne ubijanie nieaktywnej aplikacji po 20 minutach. Staje się to uciążliwe jeśli: start aplikacji długo trwa (pierwszy wizytujący będzie musiał czekać) potrzeb...
Dzisiaj kolejny odcinek z serii "krótki kod prowadzącego". W tym odcinku zajmę się obiektem FormCollection (NameValueCollection). Obiekt ten jest dobrze znany każdemu programiście piszącemu w ASP.NET MVC. FormCollection jest to kolekcja przechowująca dane formularza przekazywanego do serwera podczas POSTa. Ot zwykły obiekt typu "kolekcja". Niestety przymiotnik "zwykły" po jakimś czas zaczął mi doskwierać. "Zwykłość" tego obiektu objawia się bowiem brakiem możliwości potraktowania g...
Poprzednim razem opisałem w jaki sposób wygenerować wykres za pomocą MSChart oraz w jaki sposób umiejętnie buforować wygenerowany obrazek w celu uniknięcia jego ciągłego pobierania przy każdym wejściu na stronę. Teraz dodamy do tego generowanie aktywnej mapy i wyświetlenie jej na stronie. Dzięki temu będziemy mogli dodać do wykresu nieco życia. Po pierwsze możemy wykorzystać do tego standardowe dymki, które pokazuje przeglądarka kiedy zdefiniujemy tag title, czy dodać link do wybranych wartości (np.: w w...