W części pierwszej poznaliśmy założenia zadania. Tym razem zaczniemy budować implementację. W tym miejscu wspomnę, że w przeważającej większości zabaw z wyrażeniami lambda oraz składnią imitującą język naturalny warto najpierw napisać przykładowe użycie kodu (jak to zrobiliśmy wcześniej), a dopiero później próbować zrealizować pomysł. Korzystamy z funkcji rozszerzających, więc pierwszą czynnością jest przygotowanie statycznej klasy, w której zamieścimy implementację - nie ma tu nic odkrywczego: publi...
Jednym z założeń wzorca Design by contract jest sprawdzanie poprawności przekazanych do funkcji argumentów. Zapewne w wielu miejscach Twojego kodu możesz spotkać konstrukcje sprawdzające czy przekazane argumenty nie są równe null - praktycznie identyczne w każdej funkcji. W serii artykułów zostanie przedstawiony jeden ze sposobów unifikacji i uniknięcia powtórzeń.
« Coś tam robięLoggery, mono, C++ i C#. I Ubuntu… »Wykorzystanie kodu C++ w C# Opublikował/a Kurak w dniu styczeń 10, 2008 Przymierzam się do stworzenia edytora poziomów do Shadow Clones. Zamierzam użyć C# i Windows.Forms – wybór taki głównie z powodu szybkości i wygody pisania, ale także z chęci zdobycia większego doświadczenia w pisaniu na tę platformę. Na razie jednak czynię pewne przygotowania (niewiele ich jest – bo i niewiele ostatnio chce mi się robić) – między innymi uczę się Ale po kolei: zamó...
Jak zapewne większość wie Qt jest to zestaw bibliotek programistycznych wspomagających tworzenie aplikacji w C++, Java ... , która może być wykorzystywana na różnych systemach operacyjnych (tzw. idea 'cross-platform'). O ile kompilacja w środowisku Linux jest dosyć prosta, należy z repozytoriów zainstalować Qt i za pomocą dwóch komend kompilować napisany program, tak chcąc zintegrować środowisko MSVS2008 oraz bibliotekę Qt trzeba zapewnić odpowiednio skonfigurowane pliki nagłówkowe. Instrukcja ta zamiesz...
Dziś zaczniemy cytatem. Jak ktoś wie z czego to i kto to mówi to pogratulować dobrego gustu :) Czemu nie ma prądu? Bo u nas nie ma minusów, tylko same plusy... A czemu taki cytat? A no dlatego, że chciałem wykonać wydawałoby się banalną czynność wyświetlenia wartości double z '+' z przodu.
Architektura 5500 dni, 1 godzinę, 50 minut temu 73 źrodło rozwiń
Być może się komuś przyda. Ta darmowa biblioteka: http://www.carlosag.net/Tools/ExcelXmlWriter/ o nazwie CarlosAg Excel Xml Writer Library umożliwia tworzenie plików Excela w formacie XML (dokładniej jako: XML Spreadsheet). Nie wymaga ona zainstalowanego Excela. Wspiera formatowanie, wyrównania, formuły, tabele przestawne i inne rzeczy.
Zwykle kod kompiluje się i wykonuje build bezpośrednio ze środowiska IDE, czasami jednak zachodzi potrzeba, że chcemy wykonać build poza środowiskiem IDE, np. wykorzystując skrypty linii poleceń systemu Windows. Jak można to zrobić? Są przynajmniej trzy możliwości: kompilator CSC, MSBUILD lub Visual Studio wywołane z linii poleceń.
Często dane, które posiadamy musimy odpowiednio sformatować przed ich wyświetleniem.Jeżeli takie dane musimy zwalidować, to warto zadbać, aby walidowane dane były w takim samym formacie jak je wyświetlamy.
Architektura 5503 dni, 2 godziny, 3 minuty temu 45 źrodło rozwiń
Krótka ciekawostka, pewnie znana większości: wrzucając do katalogu głównego aplikacji ASP.NET plik o nazwie app_offline.htm spowodujemy, że będzie on serwowany jako odpowiedź na wszystkie żądania do tej aplikacji.
Programistom używającym kontrolki GridView na co dzień znany jest zapewne fakt, że w przypadku pustego źródła danych kontrolka nie generuje żadnego widocznego markup'u. W szczególności nie będą widoczne nagłówki kolumn czy wiersz dodający. Kiedy w wyszukiwarce wpiszemy hasło Show GridView if datasource is empty otrzymamy oczywiście mnóstwo rozwiązań tego problemu. Niestety pośród nich nie znajdziemy, a przynajmniej ja nie znalazłem, satysfakcjonującej odpowiedzi dotyczącej źródła danych typu ObjectDa...
Autor: Kilka dni temu powstał w mej głowie misterny plan opakowania DatePickera od jQuery we własną kontrolkę ASP.NET. Dość łatwo poszło (postaram się to opisać w kolejnym wpisie), jednak chciałem jednocześnie móc walidować wprowadzone dane po stronie klienta i serwera. Niezbędne więc okazało się napisanie własnego Validatora. Nie jest to zadanie zbyt trudne – przedstawię dziś sposób na jego realizację.
Samo XNA, nie oferuje nam klas pomocnych w obliczeniach związanych z fizyką. Co prawda istnieje możliwość wykrywania samych kolizji, ale to jak zachowają się obiekty po jej wykryciu, zależy już tylko od napisanego przez nas kodu. Chyba, że skorzystamy z gotowych bibliotek do tego służących. Na tapetę wziąłem najpopularniejszą XNA’ową bibliotekę OpenSource – JigLibX.Co można osiągnąć? Powołując się na filmy na stronie autorów, 2 przyk...
Czy zauważyliście kiedyś nad startową procedurą aplikacji (main) atrybuty: [STAThread] i [MTAThread]? Od nich zależy w jakim trybie będzie działał wątek główny aplikacji: Single Threaded Apartment, czy Multi Threaded Apartment?
Architektura 5504 dni, 14 godzin, 23 minuty temu 257 źrodło rozwiń
Z racji tego, że moja nauka .NET’a była straszliwie chaotyczna(czytaj jak czegoś potrzebowałem, to doczytywałem, nie zawsze to co trzeba:P) postanowiłem odrobić lekcje z kwestii podstawowych. Na pierwszy ogień jak widać poszły wątki, więc nieco o nich dzisiaj. Tworzenie nowego wątku. Wersja najprostsza: korzystając z klasy ThreadPool i statycznej funkcji QueueUserWorkItem odpalamy funkcję o sygnaturze odpowiadającej:publicdelegatevoid WaitCallback(object arg); Do dyspozycji mamy dwie wersje funkcji, z p...
Dzisiaj kontynuacja ostatniego wpisu, traktującego o najprostszych operacjach na wątkach. Bez zbędnych wstępów przejdę więc do klasy ReaderWriterLock. ReaderWriterLock Klasa ta daje możliwość, której nie daje nam klasa Monitor, mianowicie rozróżnianie pomiędzy blokadą do odczytu(umożliwia ona wielu wątkom jednoczesny dostęp do zasobu) oraz zapisu(tylko jeden naraz możliwy, oczywiście wtedy odczyt jest również zablokowany. Aby jej użyć wystarczy instancja ReaderWriterLock w klasie, do której dostęp ma ...
Wspomnę dzisiaj o dość dziwnej funkcji, która została dodana w wersji 3.0 języka C#. Polega ona na możliwości dodania nowych metod do istniejących klas bez zmiany ich definicji. Odbywa się to poprzez zdefiniowanie tych dodatkowych metod jako statycznych (w innych klasach) i użyciu specjalnej składni dla jej pierwszego parametru.
Architektura 5506 dni, 9 godzin, 51 minut temu 114 źrodło rozwiń
Czy próbowaliście wytworzyć kiedyś element klasy XmlElement?...mmmhm... przy pomocy konstruktora się nie da, gdyż jest on protected internal. Cóż więc można zrobić? Odpowiedź jest prosta...
Bazy danych i XML 5506 dni, 9 godzin, 51 minut temu 60 źrodło rozwiń
W jaki sposób możemy pokolorować tekst, który wyświetlamy za pomocą Console.Write oraz WriteLine.
Autor: Jakiś czas temu opisywałem jak można przy pomocy platformy .NET utworzyć i zainstalować serwis w systemie Windows. W tamtym przypadku do instalacji bądź deinstalacji serwisów zostały wykorzystane odpowiednie klasy instalacyjne, które wykorzystane są podczas instalacji, bądź deisntalacji całego produktu. Zdarza się jednak, że nie zadziałają one jak należy (np. nie potrafią usunąć serwisu), czasami po prostu nie chcemy uruchamiać instalatora produktu by przetestować nasz serwis lub chcemy jako serwi...
Czym jest owy NDepend? To narzędzie dla .NET, którego autorem jest Patrick Smacchia. Służy ono do badania i raportowania złożoności oraz jakości tworzonego kodu. Na chwilę obecną posiada 82 metryki wyświetlające bardzo szczegółowe dane. Dodatkowo generator raportów sprawiają, że nawet “nieprogramista” może ocenić w jakiej kondycji jest dostarczony...