Bawiłem się ostatnio aplikacją (WPF, .NET 4.5, C# 5 async await), która wyświetla na żywo obraz z kamerki i skanuje go w poszukiwaniu pewnych informacji. Chcąc maksymalnie zwiększyć wydajność, doszedłem do implementacji Timera, który sam dostosowuje swój interwał, aby maksymalnie zrównoleglić periodyczne operacje i wykorzystać dostępne procesory.
W dzisiejszym wpisie postaram się przybliżyć bazę MongoDB i sposób korzystania z niej za pomocą C#.
Bazy danych i XML 2081 dni, 23 godziny, 32 minuty temu 309 rozwiń
YUI Compressor od Yahoo! to z pewnością narzędzie dobrze znane każdemu webmasterowi, który szanuje cierpliwość użytkowników swojej witryny;-) Dotychczas ta przydatna biblioteczka kojarzyła się głównie z JAVĄ, która ostatnimi czasy nie ma zbyt dobrej prasy. Warto jednak wiedzieć, że na szczęście istnieją całkiem przyjemne alternatywy. Jedną z nich jest właśnie port biblioteki YUI Compressor dla .Net. Zasadniczo jest to nieduże rozszerzenie, ale oferujące wszystkie potrzebne opcje kompresji oraz spore moż...
Architektura 2097 dni, 9 godzin, 24 minuty temu 211 rozwiń
Przy dużych zbiorach danych prezentowanych w kontrolce DataGridView może pojawić się problem z płynnością ich przewijania. Sposobem na wyeliminowanie tego efektu jest ustawienie właściwości DoubleBuffered na true. Jest to właściwość protected więc mamy dwie możliwości...
Microsoft z każdą wersją wprowadza pewne nowe elementy do języka, które teoretycznie powinny poprawić możliwości języka, jak komfort pracy programisty. Od wersji .net 4.0 wprowadzono nowy typ – dynamic. Jego użycie pozwala na wykonanie czynności, które będą dopiero znane w momencie wykonania aplikacji. W dużym skrócie oznacza to, że kompilator pozwoli na wywołanie dowolnej akcji na obiekcie bez zgłoszenia błędu. Kod zostanie bez problemu skompilowany, nawet, jeśli nie istnieje metoda do której się odwołu...
Konwertery – krótkie klasy i jednocześnie bardzo przydatne elementy, bez których bindowanie niektórych wartości w XAMLu byłoby bardzo kłopotliwe. Mają one zastosowanie w projektach typu Winodws Phone, Silverlight oraz WPF. Praktycznie w większości tego typu projektów mnożna od razu przekleić te najważniejsze.
Świat się zmienia. Obecnie moc obliczeniowa nie jest takim problem jak kiedyś, co chyba najlepiej odzwierciedla pewnego rodzaju stagnacja na rynku komputerowym. Podobnie sprawa ma się z przestrzenią dyskową. Kiedy sobie przypomnę mój pierwszy komputer, w którym dysk miał 20MB, to pamiętam że miałem dylemat - instalować Windowsa 3.1, czy zainstalować więcej gier;-) Trochę inne były wtedy to czasy. Pamiętam również, że gdzieś pod koniec lat 90-siątych na dobre rozpoczęła się walka formatów do kompresji. P...
Architektura 2110 dni, 9 godzin, 38 minut temu 250 rozwiń
Zawód programisty to jeden z tych, w których powiedzenie nabiera szczególnego znaczenia. Tworząc oprogramowanie niejednokrotnie stanąłem przed problemem, który został przez kogoś już wcześniej rozwiązany, dlatego tylko jeśli na czymkolwiek się to od razu sięgam do wujka Google. Podobnie sprawa ma się w przypadku pewnych schematycznych rozwiązań. Tworząc specjalne klasy do obsługi logowania, bazy danych, czy kolekcji, trzeba liczyć się z tym, że ktoś już coś podobnego wcześniej zrobił. Jeśli określone ...
Architektura 2117 dni, 9 godzin, 16 minut temu 339 rozwiń
Writing mappings for models in large application is quite boring task. Fortunatelly, Fluent NHibernate provides possibility for automatic mapping creation - so called automappings.
Podczas korzystania z obiektu CollectionView w widoku, oprócz samej prezentacji kolekcji często mamy także dodatkowe kontrolki powiązane z właściwościami aktualnie wybranego elementu. Standardowym podejściem przy realizacji tego zadania jest utworzenie w klasie ViewModel właściwości udostępniającej aktualnie wybrany element kolekcji, a następnie zdefiniowanie w kontrolkach wiązań do interesujących nas właściwości tego elementu.
Kawał dobrego materiału dla wszystkich, którzy chcą pogłębić i/lub usystematyzować swoją wiedzę dotyczącą TDD (ang. Test Driven Development) przygotował Roy Osherove. Kim jest Roy? Większość pewnie wie, że ...
Sztuka programowania 2152 dni, 23 godziny, 24 minuty temu 214 rozwiń
Wpis przedstawia sposób stworzenia i użycia AttachedProperties, w celu rozszerzenia funkcjonalności istniejących już komponentów. Problem bindingu do ActualWidth oraz ActualHeight zostanie rozwiązany. Szczególnie przydatne podczas pisania aplikacji modern!
Sztuka programowania 2153 dni, 19 godzin, 21 minut temu 175 rozwiń
Można powiedzieć, że temat tego wpisu powstał na poczekaniu, ponieważ na początku miałem zamiar pisać o czym innym. Dzisiejszy tekst miał dotyczyć tworzenia silnych nazw, ale po małym stwierdziłem, że chyba nie jestem ekspertem od tematów powiązanych z szyfrowaniem, dlatego odpuściłem sobie ten wątek (osoby zainteresowane tematem odsyłam do ciekawego posta, którego znalazłem podczas własnego zgłębiania tematu). Ponieważ miałem nieodpartą ochotę napisać jednak dziś coś o programowaniu, naprędce wymyśliłe...
Architektura 2155 dni, 15 godzin, 1 minutę temu 568 rozwiń
Podczas pisania prostego tool’a do komunikacji po porcie szeregowym natknąłem się na cechę C#, której dotąd nie znałem. Mowa tutaj o akcesorach (ang. accessors)addi removedla zdarzeń. Przeczytałem wiele różnych artykułów na temat różnych mechanizmów tego języka, widziałem wiele “żywego” kodu, jednak nie przypominam sobie żebym się wcześniej gdzieś z tym spotkał. Ok, tyle tytułem wstępu a teraz do rzeczy. Z reguły korzystając z mechanizmu zdarzeń używa się...
Targetowanie projektu na architekturę x86 przy współpracy z natywnymi bibliotekami może nie być eleganckim rozwiązaniem, zwłaszcza jeśli dostępna jest w wersji 32 i 64 bitowej. Można tego uniknąć dokonując wyboru wersji biblioteki natywnej w czasie wykonywania programu.
W WPF przy wykorzystaniu stylów oraz szablonów w prosty sposób możemy stworzyć mechanizm skórek, dzięki któremu możliwa będzie zmiana wyglądu naszej aplikacji w trakcie jej działania. W dzisiejszym wpisie pokażę jak taki mechanizm stworzyć. Zacznijmy od prostego okna składającego się z kontenera Grid oraz trzech przycisków. Po naciśnięciu każdego z nich załadowana zostanie odpowiednia skórka...
Jedną z ogromnych zalet programowania obiektowego jest to, że raz napisany kod możemy łatwo rozszerzyć o dowolne konstrukcje, lub stworzyć zupełnie coś nowego na jego podstawie. W tym przypadku chodzi mi głównie o kwestię dziedziczenia, która ma swoje wady i zalety. W tym przypadku bardziej chciałbym skupić się na tych pierwszych. Dziedziczenie nie zawsze jest do końca dobrym rozwiązaniem, ponieważ w C# możemy rozszerzać tylko jedną klasę (ale za to na szczęście możemy implementować dowolną ilość interf...
Architektura 2196 dni, 2 godziny, 15 minut temu 164 rozwiń
Zadanie jest następujące: Na podstawie poniższego schematu (baza AdventureWorksLT) wyznaczyć wartość zamówienia. Dodać kolumny z id klienta i zamówienia (bez uwzględnienia podatku, obniżek itp). W zapytaniu wykorzystamy GroupJoin. Zapytanie to zapiszemy w dwóch postaciach LINQ2SQ: metodowej oraz SQLo podobnej...
Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 2.
Co należy w pierwszej kolejności zrobić z kodem opublikowanym w pierwszej części? Skoro ma on ulegać zmianom, dobrze by było, aby nie odbywały się one w dotychczasowym pliku przechowującym kod, ale w pliku dedykowanym tylko tym zmianom. Należy zatem przenieść kod, który będzie modyfikowany do innego pliku. Myli się jednak ten, kto myśli, że wykorzystana zostanie do tego...
Sztuka programowania 2208 dni, 8 godzin, 27 minut temu 106 rozwiń
Polecamy
Nadchodzące wydarzenia
Najaktywniejsi

