Przyspieszamy ASP.NET - CSS Sprites Zwykle na bogaty interfejs graficzny witryny składa się wiele obrazków. Nawet, gdy każdy z nich zajmuje po klika kilobajtów, to czas ich pobierania może zacząć dominować przy ładowaniu strony. W końcu załadowanie każdej grafiki wymaga nawiązania oddzielnego połączenia z serwerem. A gdyby tak dało się przesłać wszystkie obrazki w ramach jednego żądania do serwera… Da się i technika ta nazywa się CSS Sprites! Koncepcja, którą przedstawię w tym wpisie, nie jest w żaden sp...
Strona głównaUżytkownik
Paweł Łukasik | użytkownik
Chciałbym podzielić się z Wami moimi refleksami po obejrzeniu prezentacji Martina Fowlera i Jima Webbera zatytułowanej "Does My Bus Look Big in This?". Prezentacja ta odbywała się podczas konferencji QCon w Londynie w 2008 roku. Minęło już sporo czasu, jednak główne przesłanie nie straciło nic ze swojej aktualności. A przesłaniem tym jest: nie potrzebujemy wielkich, ciężkich i kosztownych produktów ESB! Pierwsza część prezentacj poświęcona jest charakteryzacji typowego pr...
Architektura 5592 dni, 1 godzinę, 23 minuty temu 20 źrodło rozwiń
Pewnie nikt z nas tak naprawdę nigdy nie uczestniczył w prostym projekcie. No może za czasów studiów, może gdy robiliśmy kawałek oprogramowania użytecznego dla nas samych - aplikacyjkę zarządzającą naszą domową filmoteką, organizującą nasze rachunki (choć nie posuwałabym się w tym wypadku, aż tak daleko jeśli chodzi o prostotę). Projekty niestety mają tendencję do zwiększania swojej złożoności - nie tylko w sferze domeny biznesowej, również technologicznie, wdrożeniowo, utrzyman...
Testowanie obsługi zdarzeń oraz faktu ich wywołania jest niekiedy równie ważne co przetestowanie każdej innej integracji pomiędzy dwoma obiektami. Scenariusz jest na tyle specyficzny, że poświęcę mu osobną notkę.
Przyspieszamy ASP.NET - kompresja HTTP Wyobraźmy sobie rozwiązanie, które:pozwala na zmniejszenie transferu wykorzystywanego przez witrynę,umożliwia szybsze dostarczenie treści użytkownikowi,wymaga bardzo małego nakładu pracy przy wdrożeniu,w niedużym stopniu wpływa na wydajność serwera orazjest od dawna wspierane przez wszystkie przeglądarki… Zbyt piękne, żeby było prawdziwe? Nieprawda – takie rozwiązanie istnieje i nazywa się kompresja HTTP! Idea polega w skrócie, żeby odpowiedź na żądanie klienta skom...
Wraz z nowym Expression Blendem 3, a właściwie to z Expression Encoderem 3 otrzymaliśmy nową kontrolkę do wyświetlania mediów, czyli MediaPlayer! Czym jest MediaPlayer? MediaPlayer to zaawansowana kontrolka do odtwarzania plików video, która opakowuje wszystkie funkcjonalności jakie możemy sobie wymarzyć. Oprócz podstawowego odtwarzania pozwala na tworzenie Playlist, Chapters, AutoLoad, AutoPlay, działa w trybie Offline (po zaakceptowaniu zwiększenia przestrzeni IsolatedStorage), Popout, Transport C...
Silverlight 5593 dni, 19 godzin, 4 minuty temu 78 źrodło rozwiń
NULL vs. Exception, a może alternatywa? filed in .NET, Programowanie on Aug.13, 2009 Czasem tak się dzieje, że czytając swój własny kod pierwszy raz od kilku miesięcy mamy problem z jego zrozumieniem, zwłaszcza jeżeli nie komentujemy go w odpowiedni sposób. Ale nie jest to jedyna przyczyna problemu. Ostatnio analizując stare projekty doszedłem do wniosku, że istnieje w nich mnóstwo kodu zaciemniającego rzeczywistą logikę działania. Mam tu na myśli dziesiątki wyrażeń postaci if (something != null) i podo...
Architektura 5593 dni, 1 godzinę, 29 minut temu 112 źrodło rozwiń
Dzisiaj kontynuacja zmagań z asp’ową kontrolką ListView. Jak głosi tytuł wpisu, będzie on traktował o podziale danych na strony oraz o sortowaniu. Stronicowanie Zacznę więc od dzielenia wierszy na strone, co okazało się proste i przyjemne. ASP.NET daje nam do dyspozycji kontrolkę DataPager która właściwie w całości zajmuje się problemem stronicowania. Wystarczy, że w DataPagerze ustawimy odpowiedni PagedControlID(gdy wstawimy ją wewnątrz LayoutTemplate’a, odpowiednie ID zostanie przydzielone automatyczni...
Test-as-a-Contract Czytając ostatniego posta Basi na temat Design by Contract uświadomiłem sobie jedną rzecz - że już to gdzieś widziałem. I nie mówię tu o tym, że gdzieś widziałem DbC (zajęcia z Eiffla na studiach...). Patrząc na te wszystkie preconditions i postconditions zobaczyłem moje testy jednostkowe... Jakiś czas temu Leszcz przekonał mnie do pisania testów za pomocą schematu MethodStateResult. W duzym skrócie polega to na tym, że w nazwie metody testowej uwzględnione jest nie tylko to, jaką me...
Zapraszam na pierwszą część zapowiedzianego cyklu “coding standards”. Będzie ona poświęcona konwencji nadawania nazw. Pamiętacie PHP? Niemal każdy z nas przez to przechodził. Nie ma chyba drugiego języka programowania, który oferuje taką ilość gotowych funkcji, realizujących najdziwniejsze nawet zadania. Nie ma też niestety drugiego języka, który ma tak niekonsekwentne nazewnictwo[1]. Jak się przed tym uchronić w naszym kodzie? Bez zbędnych szczegółow – oto zasady, które pozwolą na łatwiejsze zrozumieni...
Podczas pisania aplikacji okienkowych często zdarza się, że nasz program pobiera duże ilości danych, a następnie wyświetla je użytkownikowi. Niezwykle denerwującą sytuacją jest, gdy całość danych wyświetla się "na raz". Jeśli nie "zamraża" to interfejsu użytkownika i jeszcze do tego pisze coś w stylu "Praca w toku" to jeszcze pół biedy, gorzej jak użytkownik pozostaje z okienkiem z uroczym dopiskiem "Nie odpowiada". Wielkie szanse, że zirytowany taką sytuacją wyłączy naszą aplikację i zgłosi nam błąd - ż...
DbC - czyli wyraź swoje intencje Dzisiaj nieco koncepcyjnie (no tak - a kiedy nie było :)) na temat idei kontraktów, tego jak podchodzić z tą myślą do projektowania i implementacji. O czym konkretnie myśleć i w ogóle PO CO w ten sposób myśleć. Sama idea Design by Contract wprowadzona została przez twórców języka Eiffel. Nie wiem co panowie mieli na myśli jeśli chodzi o ideologię, lecz zwykle przedstawiana jest przez wprowadzenie pojęć: wymagania (precondition) - warunki wejściowe kontraktu,zapew...
Architektura 5595 dni, 22 godziny, 14 minut temu 16 źrodło rozwiń
Sponsorem dzisiejszego odcinka są:JavaScriptPanelanchor, czyli tag <a href="" rel="nofollow"> Cel: podłączanie JS typu “pokaż – ukryj div po kliknięciu w link” jedną linijką kodu w C# Nie wiem czy to rozwiązanie się Wam spodoba, nie wiem czy jest zgodne z arkanami sztuki JS. Jednak mam to gdzieś ;-) Pracuję nad małym projektem, w którym na stronie znajduje się sporo danych. Są one pogrupowane panelami ASP (czyli po wyrenderowaniu – DIV-ami), którym zapewnić trzeba możliwość ukrywania / pokazywan...
Po ostatnich drobnych problemach związanych z kontrolką ListView postanowiłem odrobinę z nią powalczyć i sprawdzić, co takiego ASP.NET mi razem z nią oferuje. Korzystając nieco z krótkiego opisu tworzenia ListView zajmę się dziś EditItemTemplate oraz InsertItemTemplate. EditItemTemplate to opis wyglądu wiersza w trybie edycji, ListView oferuje specjalne eventy służące do przejścia w tryb edycji i update’owania wiersza. InsertItemTemplate z kolei to wygląd pustego wiersza, służącego do wprowadzenia danych...
Postaram się przeprowadzić małą analizę jednego z mechanizmów przechowywania stanów, jakie dostarcza ASP.NET. Mam nadzieję, że poniższy opis ViewState – jego konstrukcji, sposobu przechowywania i zadań jakie spełnia – pozwoli uniknąć kilku problemów podczas programowania. Starałem się wybrać rzeczy najbardziej istotne, zbudować zwarty “przekrój przez ViewState”. Oczywiście wyczerpanie tematu jest niemożliwe, jednak opis ten stanowić może punkt zaczepienia do dalszych rozważań czy poszukiwań.
Autor: Projekt przy którym obecnie pracuję jest tworzony w technologii ASP .NET 2.0 i z racji tego, że stoi na serwerze apache z nakładką mono_mod nie mogę używać w pełni ASP .NET 3.5 i ASP .NET AJAX 3.5. Jakiego więc używać silnika AJAX aby ożywić stronkę i dodać jej animuszu? Po wielu godzinach udało mi się skonfigurować mono aby używać ASP .NET AJAX 1.0. Jednak po wielu testach wydajnościowych postanowiłem oprzeć całą funkcjonalność o AJAX oferowany przez jQuery. Dlaczego? Może na początek małe ...
Dzisiejszy post jest sponsorowany przez hipotetyczną hurtownię, której właściciele chcą zbudować system zarządzania towarami w oparciu o metodykę DDD. Skrócony opis domeny biznesowej przedstawia się następująco. Hurtownia ma na stanie wiele produktów. Każdy produkt ma określoną ilość, która znajduje się w magazynie. Ilość ta jest określona w jednostce miary danego produktu. Produkty mogą być zamawiane (pewna ilość produktu jest tymczasowo przypisywana d...
Architektura 5606 dni, 3 godziny, 56 minut temu 87 źrodło rozwiń
"Na lewo, na prawo, w górę i w dół..." :-) - tym zabawowo(weselnym) akcentem zacznę tego posta, który ... dotyczyć będzie kolejnych zagadnień związanych z Open XML Format SDK. A dlaczego? Gdyż chciałbym zająć się wyrównaniem tekstu: do lewej, do prawej, do środka, i wyjustowany. Jak można więc ustawiać wyrównanie tekstu? W tym celu należy ustawić odpowiednie właściwości paragrafu dla stylu, który chcemy zmienić lub paragrafu w którym chcemy ustawić wyrównanie. Wykorzystujemy więc właściwość Justificatio...
Strona domowa projektu: http://mvcmembership.codeplex.com/ Typ projektu: Biblioteki + kod źródłowy do bezpośredniego użycia + kod widoków Status projektu: Stable – 07.08.2009, następny release przewidywany dla ASP.NET MVC 2.0 (Preview 1/2) Zakres projektu: kontrolek i widoki w postaci platformy do zarządzania użytkownikami MembershipProvider i RoleProvider Platforma: ASP.NET MVC 1.0, ASP.NET MVC 2.0
Po poprzednim odcinku potrafimy już dowolnie weryfikować i konfigurować wartości parametrów dla metod. Dzisiaj z kolei poustawiamy akcje, które mają się w momencie wywołania metod wykonać. Jest to czynność zdecydowanie prostsza, ponieważ właściwie wszystko mamy w Intellisense. Zobaczmy: