Od dłuższego czasu mam już do czynienia z kontrolkami RadControls firmy Telerik. Ostatnio wykorzystałem je w tworzeniu dużego portalu pod SharePointem. Na początku miałem problemy z konfiguracją pliku web.config dlatego też w tym poście spisuje moje doświadczenia i zalecaną konfigurację.
Z implementacją równoległych zadań można sobie poradzić na wiele różnych sposobów. Zazwyczaj jednak instalujemy blokady, monitory, tworzymy transakcje, oplatamy synchroniczny kod. Co by się jednak stało, gdyby całe takie podejście odwrócić do góry nogami? Takich przełomowych projektów było wiele, oferowały nowy model pisania równoległych aplikacji, bez pamięci wspólnej i z wymianą komunikatów. W dzisiejszym wpisie chciałbym przedstawić Wam Model Agenta.
Programowanie rozproszone 5255 dni, 5 godzin, 12 minut temu 68 źrodło rozwiń
Generyczna klasa zbioru W projekcie, nad którym pracuję potrzebowałem przyzwoicie działającej klasy reprezentującej zbiór. Zbiór nie do końca w sensie teoriomnogościowym (o właściwościach takiego można przeczytać np. tu), posiadający jedną bardzo ważną cechę: przechowywanie unikalnych elementów. Istniejące implementacje (Hashtable oraz HashSet) nie spełniały moich oczekiwań – elementów do wstawiania było na tyle dużo, że występowały kolizje z obliczonej przez GetHashCode() wartości. Ponieważ rozwiązanie...
Architektura 5255 dni, 21 godzin, 15 minut temu 75 źrodło rozwiń
Na początek geneza powstania problemu. Otóż jest wiele starszych systemów, które komunikują się z bazą danych za pomocą procedur. Otrzymują w ten sposób informacje na przykład w postaci obiektu DataSet czy DataTable, a następnie na nich wykonywane są różne operacje. Mój problem, a raczej pytanie, powstało, gdy któryś raz z kolei brałem pierwszy wiersz z otrzymanych wyników, a następnie tworzyłem z nich konkretny tekst za pomocą string.Format(). “Czy nie można tego przyśpieszyć?” ...
Zapraszam do udziału w organizowanym przeze mnie konkursie "Daj się poznać"...
W poprzednim poście przedstawiłem Wam kilka istniejących implementacji STM, teraz, chciałbym dopełnić tą listę o kilka, równie ważnych, rozwiązań.
Programowanie rozproszone 5257 dni, 22 godziny, 42 minuty temu 47 źrodło rozwiń
Dziś uruchomiłem mały (jak na razie) projekcik PingMySite dzięki, któremu można sprawdzić czy podany adres jest widoczny w sieci i jak szybko wskazany serwer odpowiada. PingMySite wyświetla także wszelkie informacje jak jest w stanie odebrać od serwera www...
Na rynku istnieje wiele rozwiązań implementująych STM - zdziwilibyście się, jak wiele. Są to rozszerzenia dla więkoszści języków: zaczynając od C, przez C++, C#, Java, Haskell, Perl. W tym poście chciałbym omówić jedynie kilka z nich.
Programowanie rozproszone 5259 dni, 4 godziny, 44 minuty temu 51 źrodło rozwiń
Automatycznie generowane walidatory client-side w ASP.NET są spoko - minimalnym nakładem pracy (dodanie atrybutu Required, StringLength, RegularExpression itd na właściwości modelu oraz jednolinijkowej instrukcji <% Html.EnableClientValidation(); %> w widoku) otrzymujemy informacje o błędnych danych bez wycieczki na serwer. Co jednak w przypadku, gdy chcemy sami obsłużyć/zablokować wysyłanie danych na serwer?
Rozszerzalność od dawna jest w modzie: praktycznie żadna poważniejsza aplikacja nie obywa się bez jakiegoś systemu pluginów, czyli "wtyczek" zwiększających jej funkcjonalność. Niektóre robią to przy okazji (acz ze słusznych powodów), inne czynią z elastyczności i rozszerzalności swój główny oręż (patrz np. uniwersalne komunikatory w typie Mirandy). Wszystko to kojarzy się trochę linuksiarsko, ...
Architektura 5260 dni, 4 godziny, 31 minut temu 174 źrodło rozwiń
Jakiś czas temu (kilka miesięcy;)) obiecywałem, ze napiszę artykuł o WCF Data Service. Zainteresowanych odsyłam tutaj.
Programowanie rozproszone 5262 dni, 5 godzin, 48 minut temu 111 źrodło rozwiń
O Fluent Interface ("płynnym interfejsie"?:) ) jest od jakiegoś czasu dość głośno w światku .NET. Stał się... trendy. Implementują go właściwie wszystkie kontenery IoC, można za jego pomocą skonfigurować NHibernate, coraz więcej innych projektów udostępnia swoje API w ten sposób. Ale dlaczego, czy jest to naprawdę tak fajne? Moim zdaniem: TAK. Fluent Interface jest nawet czymś więcej niż "fajnym bajerem" - pozwala naprawdę bardzo uprościć pracę z naszą biblioteką.
Architektura 5262 dni, 5 godzin, 48 minut temu 172 źrodło rozwiń
UAC, to z j. ang. User Account Controll, czyli technologia wprowadzona w Windows Vista (i dalej utrzymywana w Windows 7) zapobiegająca uruchamianiu aplikacji z podwyższonymi uprawnieniami. Przy uruchamianiu aplikacji, która wymaga zwiększonych uprawnień, użytkownik musi wyrazić jawną zgodę na uruchomienie, a aplikacja powinna zadbać o to by się w odpowiednim momencie o to spytać.
Oryginalny post: Things You Should Never Do, Part IAutor: Joel Spolsky Netscape 6.0 wreszcie dotarł do swojej pierwszej publicznej wersji beta. Wersja 5.0 nigdy nie istniała. Ostatnie istotne wydanie, 4.0, zostało opublikowanie prawie 3 lata temu. Trzy lata to bardzo długi okres w świecie Internetu. Przez cały ten czas Netscape bezsilnie patrzył na to, jak jego udział w rynku spada na łeb, na szyję. To odrobinę lizusowskie z mojej strony, by krytykować ich za tak długą zwłokę w publikacjach. Nie zr...
Często korzystając z komputera mamy swoje szybkie metody dostępu do aplikacji, danych lub innych rzeczy których używamy na co dzień. Zainspirowany książką autorstwa Deborah Kurata ".NET Najpilniej strzeżone tajemnice" postanowiłem spisać triki, które stosuje. Książka pokazuje wiele skrótów, które możemy stosować w codziennej pracy. Nie będę przepisywał całej książki ale przytoczę parę ciekawych skrótów, które wpłynęły na zwiększenie mojej wydajności. Podstawową rzeczą przyśpieszającą prace jest rezygn...
MDI, to z j. angielskiego Multi Document Interface, czyli sposób tworzenia interfejsu aplikacji oparty o wiele dokumentów, które prezentowane są użytkownikowi, jako okna otwierane wewnątrz głównego okna aplikacji. Przykładem wykorzystania takiego interfejsu może być starsza aplikacja Microsoft Excel, w której wewnątrz głównej aplikacji otwierane są poszczególne arkusze (xls). Interfejs ten był kiedyś bardzo popularny w aplikacjach, które pozwalały na jednoczesną pracę nad wieloma dokumentami, teraz częś...
W poprzednich wpisach przedstawiłem Wam mechanizm Pamięci Transakcyjnej, a teraz chciałbym skupić się na jego wydajności względem zwykłych metod synchronizacji. Testy zostały przeprowadzone na maszynie z ponad 100 procesorów.
Programowanie rozproszone 5264 dni, 21 godzin, 46 minut temu 44 źrodło rozwiń
W poprzednim poście przedstawiłem metodę Html.Display. Funkcja Html.Editor(…) w działaniu jest bardzo podobna – również służy do generowania szablonów na podstawie klas. Różnica polega na tym, że Html.Editor tworzy pola edycyjne TextBox. Służy więc do generowania formularzy edycyjnych a nie do prezentowania danych tak jak Html.Display. Sposób wykorzystania jest analogiczny do DisplayFor więc zachęcam do przeczytania poprzedniego wpisu. Poniżej końcowy wynik: Warto wspomnieć, że również można tworzyć w...
Pamięć Transakcyjna, to eksperymentalna metoda synchronizacji w programach współbieżnych, stanowiąca alternatywę dla znanych blokad, mutexów i monitorów. W poprzednim wpisie przedstawiłem ideę takiego podejścia, w tym opisują ten mechanizm od podszewki.
Programowanie rozproszone 5264 dni, 21 godzin, 46 minut temu 47 źrodło rozwiń
Podczas budowania formularzy często potrzebujemy wyświetlić zbiory danych. Załóżmy, że mamy klasę Contact zawierającą dane kontaktowe użytkownika (email, telefon, fax). W celu wyświetlenia informacji zawartych w klasie można oczywiście użyć zwykłych wywołań Html.Label np:Phone:<%=Model.Contact.Phone%>Email:<%=Model.Contact.Email%>Fax:<%=Model.Contact.Fax%> Metoda całkowicie poprawna jednak bardzo niewygodna – co jeśli do klasy dodamy nowe pole, np. MobilePhoneNumber? Oczywiście progr...