Dla budowanej nowej wersji oprogramowania NmapGUI potrzebne było utworzenie okna pozwalającego na skonfigurowanie parametrów programu nmap. Początkowo byłem przekonany, że analogicznie do innych narzędzi tego typu (które swoją drogą można wyliczyć na palcach jednej ręki) wystarczy jedno okno z kilkunastoma zakładkami. Skoro takie rozwiązanie działa, to po co je zmieniać? Ale z drugiej strony wydaje się to być wyjątkowo mało atrakcyjne i mało estetyczne. W związku z tym postanowiłem zbudować okno podobne ...
W ASP.NET MVC nie ma wbudowanego wsparcia stronicowania dla wyświetlanych danych. W czystym ASP .NET mieliśmy do dyspozycji wiele zaawansowanych kontrolek, które wspierały mechanizm stronicowania (np. ListView). W ASP.NET MVC interfejs definiujemy za pomocą czystego HTML\XHTML i sami musimy zadbać o możliwość stronicowania. Nie jest to trudne ale wymaga jednak trochę nakładu pracy. Jeśli chcemy mieć elastyczną bibliotekę do obsługi stronicowania to implementacja jest już dość czasochłonna. Dlatego w tym ...
W .NET 4.0 dodano nowe metody TimeSpan.ToString() dające możliwość formatowania czasu podczas wyświetlania...
Szkoda, że w C# nie ma znanych z Javy anonimowych klas. Nie mylić z anonimowymi typami, które nie pozwalają na implementację metod! W internecie jest wiele skarg i próśb próbujących wymusić na Microsofcie dodania tego, jakże wygodnego, ficzera do naszego języka...
Architektura 4619 dni, 2 godziny, 11 minut temu 106 źrodło rozwiń
Jeden artykuł tutorialu nie czyni, dwa może też nie, ale cieszę się, że pomysł nie upadł, dziś kolejna odsłona wstępu do F#. Postanowiłem urozmaicić moje wpisy i na końcu każdego artykułu postaram się zamieścić jakąś ciekawą funkcję w F# używającą (lub nie :) ) opisywanych elementów języka. W tej części tutorialu F# przedstawię: -opowiem więcej o wykorzystaniu funkcji -słowo kluczowe use -dopasowywanie wzorców -przedstawię jak tworzyć funkcje rekurencyjne> -napiszę o operatorach Zgodnie z zapowiedz...
Utworzenie własnego atrybutu walidacji danych jest w ASP.NET MVC niezwykle banalne, szczególnie jeśli dziedziczymy z jakiegoś już istniejącego...
Chcąc dostosować swój kod do wymagań korporacyjnych oraz w celu samodoskonalenia umiejętności zacząłem niedawno stosować między innymi ten wzorzec. Jego zastosowanie może wydawać się oczywiste, ale jego znaczenie jest ogromne, jeżeli budowany kod ma nosić cechy modułowości i skalowalności. Wzorzec Dependency Injection (DI) stosuje się zazwyczaj z innym bardzo ważnym wzorcem jakim jest Inversion of Control (IoC) ale o tym przy okazji. Najprościej rzecz ujmując DI to dostarczenie zależności pomiędzy klasa...
Architektura 4619 dni, 18 godzin, 8 minut temu 201 źrodło rozwiń
Firma NVIDIA ogłosiła premierę oprogramowania NVIDIA Paraller Nsight, które jest pierwszym środowiskiem deweloperskim dla aplikacji akcelerowanych przez procesory graficzne współpracującym z pakietem Microsoft Visual Studio. Ten ruch ugruntowuje pozycję firmy NVIDIA jako lidera na polu narzędzi programistycznych do pracy z obliczeniami na procesorach graficznych.
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 4621 dni, 21 godzin, 26 minut temu 67 ź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 4622 dni, 13 godzin, 29 minut temu 74 ź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 4624 dni, 14 godzin, 56 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 4625 dni, 20 godzin, 58 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 4626 dni, 20 godzin, 45 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 4628 dni, 22 godziny, 2 minuty 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 4628 dni, 22 godziny, 2 minuty temu 172 źrodło rozwiń