Zauważyłem iż w końcu prowadzone są prace nad programowaniem równoległym dla platformy .NET, wcześniej dostępne tylko w rozważaniach akademickich (czytałem kiedyś bodajże o jakiś rosyjskim projekcie). Paradygmat dobrze już znany programistom C++ (np. implementacja OpenMP).
Po tym artykule powinieneś choć trochę dowiedzieć się na temat dziedziczenia, interfejsów, typów generycznych. No ale od początku…Dziedziczenie Cały .NET Framework to tysiące klas posiadających przeróżne metody i właściwości. Nie było by możliwe korzystanie z jego dobrodziejstwa gdyby nie został zrobiony z pełną konsekwencją. Musimy mieć świadomość, że wszystkie typy danych ostatecznie dziedziczą z klasy podstawowej System.Object. Training Kit przytacza nam dla przykład metodę ToString() którą posiada ka...
W poprzedniej części opisałem czynności przygotowawcze, teraz napiszemy trochę kodu :). Na początku należy dodać referencję do projektu w Visual Studio: Teraz wskazujemy serwis (wpisując jego adres: http://localhost/CAS.OPCWSDataAccess/OPCAdvancedDataAccess.asmx): Wpisujemy jeszcze nazwę naszej referencji, klikamy na "Add Reference" i referencja powinna nam się pojawić w naszym Solution: Teraz wykorzystamy dwie funkcje: GetAvailiableItems (zwracającą dostępne w serwerze elementy) oraz GetV...
Niedawno pisałem na temat konwersji dat na wartości liczbowe i odwrotnie, wykorzystując komendy serwera SQL (w tym wypadku serwer Microsoft SQL Server). Pokazałem jak stworzyć storowane procedury, które będą ułatwiały te przekształcenia...
Napisanie programu do obsługi portu RS-232 za pomocą C# jest bardzo proste. :) Postaram się jednak napisać o tym kilka słów…
Już nie pierwszy raz dodawałem web referencję do projektu. Zawsze mnie zastanawiało dlaczego w solucji nie widać “zawartości” dodanej referencji do usługi. Mówiąc “zawartość” mam na myśli plik z wygenerowaną klasą czy plik zawierający ścieżkę do WDSL’a. W sumie to sensowne posunięcie, bo po co programista ma grzebać we wnętrzu pliku (Reference.cs), skoro jest on wygenerowany wygenerowany “>wygenerowany “>automatycznie i powiązany z usługą. W przypadku zmian po stroni...
System Windows udostępnia nam mechanizm komunikacji między procesowej który wykorzystuje tzw. named events. Dzięki niemu możemy sygnalizować jak i monitorować, dowolnie utworzone przez nas zdarzenia np. pomiędzy dwoma różnymi programami, lub bądź chyba częściej spotykany, pomiędzy różnymi wątkami pracującymi w ramach jednej aplikacji. Ograniczeniem tego mechanizmu jest brak możliwości przekazywania danych, służy on jedynie do sygnalizacji.Implementacja w .NET Implementacją tego mechanizmu na platformie ....
Ostatnio wspomniałem o walidowaniu pól w formularzach, teraz pora przejść do jeszcze fajniejszej funkcjonalności :) a mianowicie wykonywaniu analizy określonej X rzeczy w SharePoint 2010. Dlaczego X? dlatego, że jest to ograniczone tylko do waszej kreatywności :)
Jak ustawić dowolną wysokość wierszy w kontrolce ListView (WinForm, .NET 2.0) ? Najprostsze rozwiązanie – poprzez SmallImageList. Tworzymy obiekt ImageList, ustawiamy wymiary na 1×50 (aby uzyskać wiersze o wysokości 50px) i przypisujemy jako SmallImageList naszego obiektu ListView. Do obiektu ImageList nie musimy dodawać żadnego obrazka – wystarczą wymiary :)
W ostatnim czasie zgłębiam tajniki wzorców projektowych wspomagając się tą oto pozycją książkową: Książka w przemawiający do mnie sposób opisuję implementację dość dużej liczby wzorców projektowych opierając się na nowej wersji języka C#. Rozdziały kończą się ćwiczeniami sprawdzając...
W jaki sposób w C# zrealizować ściąganie pliku z serwera www? Rozwiązanie jest proste, nawet, zbyt proste :) Oto najkrótszy z możliwych sposobów...
W tym poście chciałbym poruszyć tematykę związaną z językiem "C# i technologią "DCOM" i pokazać jak można połączyć te dwa elementy. Ponieważ na co dzień zajmuję się technologią OPC (która oparta jest o DCOM), więc właśnie o tej technologii dotyczą załączone tutaj materiały.
Kto by się spodziewał, programiści frameworka .NET doszli do wniosku, że zdarzenia Click oraz DoubleClick (i pochodne) mają działać tylko po kliknięciu myszką w istniejące elementy listy. Jakie to powoduje ograniczenia? Otóż wymyśliłem sobie, że podwójne kliknięcie w puste miejsce kontrolki ListView powinno powodować utworzenie nowego elementu. Z rozpaczą jednak stwierdziłem, że to nie działa...
Jakiś czas temu w post'cie pt. "Implementacja klienta OPC w C#" spróbowałem naświetlić podstawowe zagadnienia związane z implementacją klienta OPC na platformie .NET. Nie jest to proste zagadnienie, a do tego poza dobrą znajomością programowania opartego o DCOM należy mieć dostęp do specyfikacji standardu OPC. W tym artykule chciałbym wskazać pewną alternatywę, a mianowicie pokazać jak można dostać się do danych w OPC z poziomu platformy .NET (przykład w C#) bez implementacji pełnego klienta OPC. W tym ...
Jestem zwolennikiem upraszczania kodu programu. Bardzo nie lubię redundantności w programowaniu. Po to są procedury i funkcje, obiekty i metody aby powtarzalne fragmenty kodu w nie zamykać i przez to właśnie go upraszczać. I warto pamiętać o obiekcie sender, który przekazuje do funkcji informacje jaki obiekt jest nadawcą komunikatu. Dzięki temu jedna, uniwersalna funkcja zapewni obsługę wielu zdarzeń dla naszych obiektów..
Ciekawe efekty wizualne można uzyskać naprawdę w bardzo prosty sposób. Wystarczy znaleźć funkcję matematyczną, której wizualizacja będzie wystarczająco efektowna. Postanowiłem więc się zmierzyć z tym problemem. Przedstawiony program działa wykorzystując OpenGL, współpracujący z C# dzięki bibliotece CsGL (http://csgl.sourceforge.net/).
Jak napisałem wcześniej (IBM Rational Software Modeler i platforma .NET) do tego aby w IBM Rational Software Modeler, które jest narzędziem do wizualnego modelowania i projektowania w języku UMLMożna było dokonywać transformacji kodu z modelu UML do C# i z kodu C# do UML potrzebna jest dodatek IBM Rational Modeling Extension for Microsoft .NET...
Dotychczas, gdy potrzebowałem metod wykonujących te same zadania ale używających innych parametrów (czy choćby innej liczby parametrów), tworzyłem metody przeciążone. Wydawało mi się to naturalne i logiczne rozwiązanie. Do czasu, gdy przeczytałem o tablicach parametrów właśnie....
Ustawienia regionalne polskiego systemu Windows jako separator dziesiętny liczb przyjmują symbol przecinka. Oczywiście, każda aplikacja powinna być napisana tak, aby niezależnie od otoczenia działała prawidłowo. Czasami może się więc przydać, by nasza aplikacja korzystała z formatu liczb (czy innego elementu związanego z ustawieniami regionalnymi) wymuszonego przez nas, a nie nadanego przez system..
Chyba prędzej czy później każdy, kto choć trochę programuje ma ochotę/musi/powinien narysować coś na ekranie: może to być wykres funkcji matematycznej, czy też jakieś dane do zobrazowania. Siadamy do komputera, zaczynamy pisać kod, dochodzimy do fragmentu, w którym należy wskazać współrzędne punktu do postawienia na formie naszego projektu i ... zatrzymujemy się.