O tym jak czasem możemy zaplątać się w szukanie zbyt skomplikowanego rozwiązania podczas gdy ładne i proste jest na wyciągnięcie ręki.
Strona głównaUżytkownik
Damian | użytkownik
Re: NHibernateStarter... Czyli nawiązanie do świetnego posta Procent-a na temat jego sposobu budowy aplikacji. Poniżej zamieszczam moje aktualne poglądy na ten temat. Zieloną czcionką wyróżniłem fragmenty porównujące oba rozwiązania. O czym w ogóle mowaZawsze na początku należy sobie zadań takie pytanie. O jakich w ogóle aplikacjach mówimy? Procent opisywał przypadek nietrywialnej aplikacji biznesowej (OLTP), więc i ja posłużę się takową. Termin "nietrywialny" oznacza dla mnie znaczący stopień skomplikow...
Architektura 892 dni, 9 godzin, 13 minut temu 60 rozwiń
Jednym z bardziej zauważalnych składników Windows 7, które odróżniają ten system od Visty, jest nowy wygląd paska zadań. Jest szerszy, wyświetla duże ikony i przesunięcie go z dołu na bok ekranu w końcu ma sens (hurra dla monitorów wide-screen). Ale nowy wygląd to w tym przypadku nie wszystko, bo pasek ten zyskał też trochę na funkcjonalnościach. Wśród nich mamy tzw. listy skoków (Jump Lists), ...
Zaczynamy rozdział nr 7 w naszym Training Kicie, który będzie dotyczył wątków. Od tej pory przejdziemy z tematów łatwiejszych do nieco trudniejszych:) Dziś wpis bardzo krótki, wprowadzający tylko do wątków. Po co nam wątki? Dzięki wątkom możemy np. uruchomić jakiś kod w tle, nie blokując w międzyczasie innych czynności naszego programu. Jednak używanie wielowątkowości jest dosyć skomplikowane i w pewnych określonych sytuacjach zamiast zwiększać wydajność, zmniejsza ją. No ale oczywiście więcej mamy plusó...
Po wydaniu kolejnej wersji BlipFace jeden z użytkowników napisał, że przydało by się aby BlipFace zapamiętywał położenie oraz rozmiar okna między uruchomieniami. Po chwili szukania znalazłem post Erwyna van der Meera na temat Remembering window positions in WPF. Niestety zaprezentowane rozwiązanie zapamiętywało rozmiar oraz położenie jednego okna. Długo nie myśląc zmodyfikowałem rozwiązanie aby spełniało moje wymagania. Aby z niego skorzystać trzeba dodać dwie rzeczy do projektu:do kodu xaml definicji i...
Wszyscy znamy doskonale funkcję Sleep, która w Windows API służy do zawieszania działania wątku na określony czas (podawany w milisekundach). Wydawałoby się, że musi to być najprostsza funkcja z tego API, jaką tylko można sobie wyobrazić – bo co może być skomplikowanego w “zwykłej pauzie”? A okazuje się, że jak najbardziej może :) Używając Sleep – zwłaszcza w swej zwykłej wersji – musimy bo...
Chciałbym przedstawić wykorzystanie SQLite w połączeniu z ADO.NET przy wykorzystaniu C#. Wymaga to jednak pewnego uzupełnienia.SQLite SQLite jest biblioteką napisaną w języku C, która implementuje silnik relacyjnej bazy danych. Jak głosi główne hasło projektu jest ona “prosta, szybka, niezawodna”. Cała baza znajduje się w pojedynczym pliku, a w przeciwieństwie do innych systemów baz danych, nie występuje tu żaden demon nią zarządzający. Inne cechy warte wymienienia:Mały rozmiar biblioteki (ok. 0.5MB), ...
Bazy danych i XML 895 dni, 9 godzin, 26 minut temu 150 rozwiń
Autor: Bawię się ostatnio coraz częciej .NET 4 i co raz odrywam nowości, które zostały dodane w tej wersji frameworka. Dziś kilka z nich.
Często w pracy z grafiką pojawia się potrzeba dodania tekstu. Może to być np. opis, czy nota autorska. Jeżeli chcemy dodać sformatowany tekst do obrazka należy wykonać kilka kroków.Utworzenie obiektu Graphics W tym celu w aplikacji Windows Forms wywołujemy metodę this.CreateGraphics(). Możemy też utworzyć wspomniany obiekt z bitmapy za pomocą metody Graphics.FromImage(bitmap). 1: Graphics g = this.CreateGraphics(); Utworzyć obiekt Font.Klasa Font oferuje 13 różnych konstruktorów wywołania. Najprostszą ...
Donald Norman stwierdza, że prostota jest przereklamowana: "Ale kiedy przyszedł moment, aby dziennikarze zrecenzowali 'proste' produkty, wszyscy narzekali na brak kluczowych wg. nich funkcjonalności. Co więc ludzie mają na myśli, kiedy chcą prostoty? Operacje wywoływane pojedynczym przyciskiem -- oczywiście -- ale wraz ze wszystkimi swoimi ulubionymi funkcjonalnościami". Dawno temu pisałem: "Wielu programistów zostało zwiedzionych starą zasadą 80/20. Na p...
Tworząc standardowe mapowania NHibernate za pomocą plików XML trzeba pamiętać o kilku rzeczach, które bardzo łatwo przeoczyć. Po ich przeoczeniu program nie działa i wywala błędy, a ich treść nie zawsze nakierowuje na przyczynę. Najlepszym tego przykładem jest chyba konieczność oznaczania plików mapowań jako "embedded resource". Fluent NHibernate znacznie upraszcza sprawę, ale i przy nim trzeba uważać. Czasami dostajemy wyjątek niekoniecznie mówiący prosto z mostu o co chodzi. Jak ciężarna 15-latka, któ...
Bazy danych i XML 902 dni, 10 godzin, 21 minut temu 90 rozwiń
Autor: Przeglądałem ostatnio różne strony w poszukiwaniu ciekawych przykładów gotowych gier i komponentów do budowania gier w Silverlight. Znalazłem parę ciekawych przykładów z którymi się z wami podzielę.
Dzisiaj wyjątkowo krótki wpis. Powiemy sobie o tym jak wyświetlić, stworzyć i zapisać rysunek. Żeby nie przedłużać wstępu od razu lecimy z tematem.The Image and Bitmap Classes System.Drawing.Image jest klasą abstrakcyjną która umożliwia nam tworzenie, ładowanie, modyfikacje oraz zapis obrazka do formatu .bmp, .jpg oraz .tif. Klasy tej można użyć do stworzenia rysunku, wykresu, zmiany rozmiaru obrazka czy też dodania np. znaku wodnego itd. Klasa Image jest abstrakcyjna dlatego do stworzenia jej instancji ...
Niedawno zostałam poproszona o przeszkolenie zespołu programistów w temacie notacji UML. Niestety przed szkoleniem nie byłam w stanie zdobyć wielu informacji dotyczących oczekiwań poza generalnym stwierdzeniem, iż stan wiedzy słuchaczy na temat UMLa jest zróżnicowany - niektórzy nie wiedzą kiedy stosować jakie diagramy, inni nie znają nawet podstaw notacji. Wiedzę należało usystematyzować tak, by po szkoleniu można było wdrażać UMLa do codziennej pracy zespołu. Postanowiłam wię...
Na wss.pl pojawił się wątek dotyczący działań na typach datetime. Jeden z uczestników dyskusji stwierdził, że operacja odejmowania dwóch wartości datetime daje w wyniku czas. Jak pokazałem, zapytanie SELECT GETDATE() - GETDATE() daje w wyniku 1900-01-01 00:00:00.000 czyli nadal typ datetime (należało się tego spodziewać) a dopiero po jawnym zrzutowaniu na float widzimy numeryczną reprezentację z różnicy dat (dlaczego nie na time, o tym mała uwaga na końcu notki). Ale pomyślałem sobie, że w pewnych ...
Bazy danych i XML 900 dni, 10 godzin, 8 minut temu 88 rozwiń
To niewiarygodne, że firma jest w stanie płacić programiście $60-$100k rocznie, a przy tym upośledzać go okropnymi warunkami pracy oraz obdartym sprzętem z drugiej ręki. Nie ma w tym żadnego biznesowego sensu. A jednak dostrzegam to przez cały czas. Szokujące jest to, jak wiele przedsiębiorstw wciąż nie dostarcza programistom niezbędnych rzeczy do osiągnięcia celu. Proponuję abyśmy przyjęli Kartę Praw Programisty, by chronić ich pra...
Wraz z dzisiejszym artykułem, w naszym training kicie rozpoczyna się rozdział nr 6, który skupia się na grafice. Na dobry początek dostajemy 3-stronnicową tabelkę opisującą najczęściej używane klasy, które pomagają nam w .NET’owym rysowaniu. Nie będę ich opisywał, ale przynajmniej wymienię. Klasy, które zawarte są w przestrzeni System.Drawing to m.in: Bitmap. Brush, Brushes, ColorConverter, ColorTranslator, Font, FontConverter, FontFamily, Graphics, Icon, IconConverter, Image, ImageAnimator, Imag...
Autor: Jakiś czas temu opublikowałem garść porad dla naprawdę zaczynających z NHibernate - od zera. Była to raczej wysokopoziomowa teoria pomieszana z linkami. Tym razem zajrzymy w kod i pokażę w jaki sposób można zacząć tworzyć i testować aplikację z NHibernate jeszcze przed zaplanowaniem struktury bazy danych czy nawet przed wyborem docelowego serwera baz danych.
Niestandardowa serializacja pozwala na zwiększenie kontroli nad tym procesem. Dzięki niej możemy także osiągnąć kompatybilność między różnymi wersjami przekształcanych wcześniej obiektów. Mamy dwie metody przeprowadzenia takiej operacji: implementacja interfejsu ISerializable, oraz odpowiadanie na występujące zdarzenia.Implementacja ISerializable Wykorzystując interfejs oraz dodając atrybut Serializable możemy nadpisać domyślny mechanizm frameworka. Wymusza to na nas jednak kilka czynności:Implementacja ...
Taka mała ciekawostka. Jak włączyć widoczność białych znaków w Visual Studio 2008? Wystarczy kombinacja klawiszy: Ctrl + S + E Kombinacja działa naprzemiennie, tzn. wciskając ją ponownie oznaczenie białych znaków zniknie. U mnie widać je tak: Niestety nie jestem w stanie sprawdzić czy ten skrót działa w VS 2005, ale domniemam, że tak. :) Ten artykuł jest widoczny...
Polecamy
Ostatnio na blogu
Podsumowanie #5 - tydzień 2...
Najaktywniejsi
