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 4350 dni, 11 godzin, 29 minut temu 44 ź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 4351 dni, 17 godzin, 31 minut temu 48 ź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 4352 dni, 17 godzin, 18 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 4354 dni, 18 godzin, 35 minut temu 110 ź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 4354 dni, 18 godzin, 35 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 4357 dni, 10 godzin, 33 minuty temu 43 ź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 4357 dni, 10 godzin, 33 minuty temu 45 ź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...
Tworząc systemy współbieżne, należy dobrze przemyśleć kwestię synchronizacji. W jaki sposób udostępniać wspólną pamięć, jak chronić do niej dostęp. W większości przypadków należy skorzystać z szeroko dostępnych i udokumentowanych blokad, monitorów itp. Co jeśli potrzeba nam bardziej zaawansowanych narzędzi? W tym artykule opisuję Pamięć Transakcyjną, podejście znane dotychczas jedynie w bazach danych.
Programowanie rozproszone 4358 dni, 21 godzin, 27 minut temu 106 źrodło rozwiń
Microsoft Research opublikował pierwszą wersję Biology Foundation - zestawu narzędzi kierowanych do specjalistów od bioinformatyki, które stanowi rozszerzenie dla platformy .NET.
Programowanie rozproszone 4358 dni, 21 godzin, 27 minut temu 75 źrodło rozwiń
Wersjonowanie elementów (dokumentów) w SharePoint jest jednym z głównych opcji tej platformy nawet w bezpłatnej wersji - SharePoint Services 3.0. Prosta w obsłudze funkcja z poziomu UI może jednak dostarczyć paru problemów jeśli chcemy dostać się do niej z poziomu API. Po drugie warto mieć świadomość w jaki sposób przyrasta baza zawartości SharePoint przy włączonym wersjonowaniu. Poniższy post zawiera moje doświadczenia i metody radzenia sobie z tymi problemami.