Czasami zachodzi potrzeba "ręcznego" pozycjonowania okna w aplikacji WPF. Sprawa jest prosta i sprowadza się do odpowiedniego ustawienia właściwości Left oraz Top. Jeśli chcemy aby pozycja okna dziecka zależała od położenia rodzica to możemy odwołać się do rodzica przez właściwość Owner i napisać taki kod jak poniżej. Kod ten powoduje przesunięcie okno dziecka o 50 jednostek w prawo względem lewej krawędzi okna rodzica. ... myWindow.Left = myWindow.Owner.Left + 50; ... Nic prostrzego. ...
Strona głównaUżytkownik
gordon_shumway | użytkownik
NHibernate posiada zmienną show_sql, której ustawienie na "true" powoduje wypluwanie na konsolę wszystkich SQLi idących do bazy. Zachciało mi się pewnego dnia podpiąć po prostu debuggerem pod aplikację i zobaczyć te SQLe w Visualu, w okienku Output. Była to aplikacja web - więc konsoli brak. Trial na nhprof akurat się skończył:), więc w danej minucie również niewiele można było na to poradzić.
Ostatnio w projekcie potrzebowałem prostego i wydajnego systemu pub/sub. Komunikacja powinna być „bezpośrednia” a nie iść przez konkretne elementy na stronie, w szczególności iż te elementy jeszcze nie istnieją i mogą w ogólnie nie powstać. Chodziło o to by w odpowiednim momencie procesu ustalania punktów na mapie przekazywać informacje o wygenerowanych elementach do formularza. Na jednej akcji poinformowania o nowych elementach może się dziać wiele rzeczy – wygenerowanie HTML, odpytanie systemu zewnętr...
Optymalizacja procedur składowanych czy zwykłych zapytań do bazy danych nie jest zadaniem wdzięcznym, ale potrafi dać bardzo wiele satysfakcji. Kto doświadczył zoptymalizowania działania jakiegoś potworka w taki sposób, że po pół godziny pracy czas wykonania spada z 2 minut do 1 sekundy, wie doskonale o czym mówię. A jak uda się tego dokonać bez grzebania się w indeksach to już w ogóle cud/miód/itd. Wtedy z kolei ten, kto to zapytanie pisał oryginalnie, zasługuje na siarczystego liścia... ale akurat w mo...
Bazy danych i XML 5010 dni, 12 godzin, 39 minut temu 135 źrodło rozwiń
Pewne produkty MS nauczyły mnie, że nie czyta się do nich dokumentacji bo (1) nie ma jej, (2) mówi nie prawdę (pomija bardzo ważne szczegóły). Przez to też często nie zwracam uwagi na dokumentację istniejącą na witrynach projektów Open Source. W tym wypadku nie zwróciłem uwagi, albo dokładniej, zwróciłem ale nie chciało mi się tego czytać – przejrzałem to co było, nie zobaczyłem tego co chciałem więc pomyślałem, że dupa i zapomniałem o stronie – na dokumentację od AutoMapper i opcję flattening która umoż...
Dość regularnie zdarza mi się, że próbując wyszukać coś w projekcie dostaję wielką śmierdzącą figę zamiast wyników. Co prawda lepsze to niż wielkie śmierdzące figi, ale i tak oczekuję czegoś innego...
W aplikacji którą piszemy musimy zapisywać dane wprowadzone przez użytkownika na formularzu do bazy. Dane można podzielić na ogólne statyczne (adres, opis, itp.) i szczegółowe dynamiczne (lista monitorowanych parametrów i ich wyniki z możliwością dodawania/usuwania/modyfikowania każdego z parametrów wraz z wynikami ze wszystkim dostępnych list). To co biznes interesuje to jedynie dane ogólne zaś dane dynamiczne mogą ulegać notorycznym zmianom, ich śledzenie jest zbędne. Dlatego też by nie męczyć się z m...
Architektura 5014 dni, 6 godzin temu 160 źrodło rozwiń
Ostatnio pokazałem jak można wygenerować panel zawierający walidację bez używania formy. Można go potem gdzieś dokleić i... No i nie działa:). Powód jest bardzo prosty: samo doklejenie htmla do dokumentu nie sprawia jeszcze, że walidatory zostaną obsłużone. Aby to osiągnąć należy wymusić sparsowanie nowych elementów przez framework walidacji. Okazuje się, że robi się to bardzo prosto...
W poprzednim poście przybliżyłem nieco ideę zamieszczania w kodzie .NET transakcji. W tej odsłonie postaram się skupić na zagadnieniach nieco bardziej praktycznych. Z góry zapowiadam, że ze względu na ilość materiału ukaże się co najmniej jeszcze jedna odsłona. Jeśli chodzi o transakcje w ADO.NET, uwagę należy tutaj skupić na klasie SqlTransaction. Transakcję ropoczynamy wywołując na obiekcie SqlConnection metodę BeginTransa...
Bazy danych i XML 5014 dni, 6 godzin temu 132 źrodło rozwiń
Post dotyczy języka C#, nie wypowiadam się na temat innych języków gdyż nie wiem jak operator i instrukcja warunkowa są w nich zaimplementowane. Bardzo często spotykam się ze stwierdzeniem, że operator warunkowy (?:) jest równoważny instrukcji warunkowej (if). Info. Nie wiem czemu statement to instrukcja, a expression to wyrażenie. Jakoś mi nie pasuje to tłumaczenie ale będę się jego tutaj trzymał. Jak ktoś tłumaczy ?: to często daje prosty przykład IF i ?: pisząc, że to to samo. Prowadzi do przykładó...
Architektura 5014 dni, 7 godzin, 59 minut temu 147 źrodło rozwiń
Autentyczny styl z przykładu MSDN (CUT – wycięty fragment, styl przed i po CUT zachowany). Znaleziony w pliku ContosoProviders_MSDNExample.zip na Code MSDN do którego odnośnik jest na stronach MSDN (nie mogę znaleźć linków).
Pod jednym z moich ostatnich postów na temat logowania Jacek zasugerował w komentarzu abym napisał trochę więcej o tym jak dzielę logi na poszczególne poziomy. Poniżej opis moich ZAMIERZEŃ. Zamierzeń, ponieważ jeszcze w ten sposób z logowania nie korzystałem, ale po dość długim rozmyślaniu wydaje mi się to najsensowniejszy podział. Może pojawią się uwagi korygujące takie podejście zanim wprowadzę je do projektu?:)
Od pewnego czasu zamiast stosowania mapowań za pomocą plików XML zacząłem używać FluentNHibernate. Mimo początkowego sceptycznego podejścia przełamałem się, a dobitnie nastąpiło to wtedy, kiedy zacząłem używać konwencji. Jedną z fajniejszych, która odrazu spowodowała pozytywne nastawienie do FNH jest konwencja IIdConvention. Pozwala na zautomatyzowanie mapowania klucza głównego. Dlaczego? Od zawsze stosuję klucze pojedyncze oparte na typie int lub long, gdzie wartość jest wyliczana algorytmem hilo. Otóż ...
Architektura 5026 dni, 20 godzin, 51 minut temu 112 źrodło rozwiń
Jeden z dev pojechał na wakacje i pozostawił mi aplikacje, którą miałem wgrać na serwer testowy i produkcyjny jednak jak się okazało pozostawił małą kaszankę na której naprawianie nie miałem czasu. Ogólnie nie licząc innych problemów pojawił się problem z odwołaniem do usług WCF i WCF ReST spowodowany przez referencje – hardcodowany w pliku konfiguracyjnym od SL. A to ze nie miałem dużo czasu na myślenie to rozwiązałem to w następujący sposób...
Kolejny raz o logowaniu... "bo to naprawdę ważne™" :). W świecie .NET mamy dwie liczące się biblioteki oferujące logowanie informacji z aplikacji: log4net oraz nLog. Oczywiście znajdą się też inne rozwiązania: od koszmarnych (The Logging Application Block z EntLiba) po głupie (pisanie własnego loggera i jego produkcyjne wykorzystanie).
Niedawno przedstawiłem TokenContext, klasę pomocniczą upraszczającą wyławianie kontekstu z masy logów tworzonych w aplikacji wielowątkowej, gdzie wiele operacji przeplata się nawzajem. Regularnie jednak zdarza się, że interesuje nas nie tyle jedna szczególna operacje co cały cykl życia konkretnego obiektu. Kumpel, z którym pracuję nad "głównym" projektem, zaproponował stosowanie takiej, bardzo prostej, logicznej i przydatnej, konwencji...
Architektura 5033 dni, 17 godzin, 26 minut temu 85 źrodło rozwiń
Czym może kierować się klient wybierając freelancera-programistę? Z grafikami na pewno ma łatwiej - wystarczy obejrzeć portfolio. U nas jednak sytuacja się komplikuje. Często programista najzwyczajniej w świecie nie może pokazać zrealizowanych projektów, bo były pisane na wewnętrzne potrzeby jakiejś firmy i umowa zabrania takich praktyk. A jeżeli już może pokazać, to w wielu przypadkach klienci postanowili ciąć koszty i zadowolić się zwykłym, szarym, standardowym winformsowym UI. Czy zrobi to wrażenie n...
Jeżeli pracujecie offline w VS2010 na solution dodanym do TFS czasami natraficie na taki o to box...
Kilka tygodni temu miałem za zadanie wygenerować na stronie tabelkę dla pewnych danych, z zastrzeżeniem, że ostatnie wiersze powinny zawierać sumę i średnią wszystkich komórek powyżej. Nic nadzwyczajnego. Jednak pojawił się jeden problem: źródłowa tabela takich danych nie posiadała. Oczywiste było, że takie wymaganie pojawi się zaraz w kolejnych miejscach. Postanowiłem więc poświęcić kilka minut na zamknięcie takiej funkcjonalności w osobnej metodzie. Dość naturalnym wydało mi się stworzenie odpowiednik...
W VS 2010 możemy dodać Local Database do naszego projektu... Gdybyśmy teraz chcieli ją wykorzystać z poziomu SQL Server CE 4.0 to najprawdopodobniej dostaniemy taki o to błąd: The database file has been created by an earlier version of SQL Server Compact. Please upgrade using SqlCeEngine.Upgrade() method. Jest to spowodowane tym, iż dopiero VS 2010 SP1 będzie wspierał CE w wersji 4.0.
Bazy danych i XML 5048 dni, 7 godzin, 9 minut temu 89 źrodło rozwiń