Pierwsze relacyjne bazy danych powstały w latach ‘70 ubiegłego wieku, na długo przedtem nim języki programowania zorientowane obiektowo stały się popularne. Obecnie są standardem jeśli chodzi o mechanizm persystencji w programowaniu obiektowym. Jednak o tym, że translacja obiektowego modelu na relacyjny jest bardzo często procesem karkołomnym, nieprzyjemnym i bł...
Strona głównaUżytkownik
paduda | użytkownik
Architektura 5195 dni, 11 godzin, 28 minut temu 185 źrodło rozwiń
Visual Studio 2010 wprowadza dużo zmian i mnóstwo ułatwień w sposób rozszerzania środowiska. Microsoft dołożył wielu starań aby proces tworzenia wtyczek był o prostszy, niż było to do tej pory. I zgadnijcie co? Udało się!
Visual Studio jako środowisko programistyczne dostarcza wiele mechanizmów ułatwiających pracę programistom – różnego rodzaju wizardy czy skróty klawiaturowe. Odkąd pracuję nad aplikacją pisaną w ASP.NET MVC, szczególnie podoba mi się możliwość szybkiego przełączania pomiędzy widokiem a powiązanym z nim kontrolerem. Można to uczynić bardzo szybko klikając prawym przyciskiem myszki w ciele metody (kontrolera) b...
Rozwiązanie problemu wypisania boxingu i unboxingu, oczywiście chodziło mi komendę: ildasm TestBox.exe /text | findstr box Jest to chyba najszybszy sposób uzyskania informacji o boxingu i unboxingu w kodzie, a staje się on jeszcze szybszy gdy zastosujemy rozszerzenie PowerCommands, wtedy wystarczy jedynie kliknąć na projekcie wybrać Open Command Prompt i następnie przejść do katalogu bin/debug|release gdzie już możemy spokojnie operować na pliku – oczywiście dla chcących nie powinno być problemu wpr...
Write less, do more! Nagłówek tego akapitu to motto biblioteki JavaScript, z którą postanowiłem się zapoznać: jQuery (podlinkowana strona jest godna gorącego polecenia, zawiera absolutnie wszystko, czego potrzeba do nauki). Nie miałem nigdy do czynienia z JavaScript, dlatego początkowo trudno było mi rozczytywać przykłady z dokumentacji (zwłaszcza, że niejedna linijka kodu w nich zawartego zaczyna się od zlepka $(„#, widniejącego w tytule wpisu). Opanowanie podstaw nie okazało się jednak trudne, po kilku...
W dzisiejszej części przedstawię sposób wykorzystania corutines w Silverlight. Corutines to mechanizm pozwalający na wykonywanie sekwencji kodu tzn. do puki nie skończy się działanie danego bloku kodu, program nie przejdzie dalej. W Silverlight, gdzie wszystko musi być wywoływane asynchronicznie tego typu mechanizm jest wręcz zbawieniem. Nie oznacza to, że od teraz wszelkiego rodzaju operacje będziesz wykonywał przy wykorzystaniu corutines. To by zabiło całą koncepcję technologii Silverlight, jednakże z...
Silverlight 5196 dni, 13 godzin, 32 minuty temu 30 źrodło rozwiń
Przez długi okres czasu zmagałem się z problemami związanymi z liczbami zmiennoprzecinkowymi w ASP.NET MVC 2. Problemów tych było tak wiele, że nie sposób jest omówić ich tu wszystkich. W większości przypadków dotyczyły one odmiennego interpretowania separatora (czyli znaku oddzielającego część całkowitą liczby, od części ułamkowej) przez serwer oraz przez walidator. Próbowałem wielu różnych sposobów, żeby sobie z tym poradzić, lecz nic nie dawało satysfakcjonujących mnie rezultatów. Okazało się, że wyni...
Pliki .chm to prosty sposób na help do programu, dodatkowo polecono mi programik Precision Helper (freeware), który ułatwia tworzenie dokumentacji. Niestety WPF nie ma wbudowanego mechanizmu do obsługi tych plików. Oczywiście można posiłkować się klasą Help z biblioteki System.Windows.Forms. Pozostaje tylko pytanie czy warto dołączać dużą (ok 5MB) bibliotekę, aby skorzystać z jednej klasy. Moim zdaniem nie warto. Postanowiłem napisać moduł, który zajmie się obsługą plików *.chm w WPF. Po kilku godzinach...
Dzisiaj coś z pogranicza horroru (będzie strasznie), sci-fi (będzie niesamowicie) i kina familijnego (będzie happy end). Czyli dlaczego warto używać transakcji NHibernate przy każdym wywołaniu metody Save(). Zaczęło się od prac nad statystykami. Po sporządzeniu planu wykonania 7 rodzajów statystyk przystąpiłem do realizacji pierwszych punktów. Zacząłem od napisania testów oraz repozytoriów do pobierania danych z bazy w celu wyliczenia statystyk. Metodyka pisania testów metod pobierających dane z bazy był...
Bazy danych i XML 5198 dni, 7 godzin, 10 minut temu 161 źrodło rozwiń
Na Codeplex w dziale Patterns & Practices pojawił się poradnik dla osób, które chciałyby przenieść swoje aplikacje na platformę Windows Azure.
Architektura 5201 dni, 1 godzinę, 33 minuty temu 31 źrodło rozwiń
Autor: Podczas zmagań ze stworzeniem rejestracji użytkowników (która jest już dla BlogMaker'a w 90% skończona i wkrótce pojawi się o tym szerszy post) przyszło stworzyć kod aktywujący, który zostanie mailem wysłany do użytkownika, aby potwierdzić adres, na który rejestruje się dane konto. Ów kod nie jest niczym innym jak przypadkowym łańcuchem znaków. początkowo użyłem po prostu obiektu klasy Random, który przy odpowied...
Małe odejście od PivotViewer, poniżej mamy prosty kod (wystarczy go wkleić do aplikacji konsolowej by się uruchomił). Chciałbym wypisać (to jest ważne, nie chcę widzieć tego w UI, chcę to wypisać sobie) wszystkie operacje boxingu i unboxingu znajdujące się w tym kodzie (może to być to numer linii i typ operacji, lub sam typ operacji plus informacja w którym miejscu to następuje).
Architektura 5204 dni, 1 godzinę, 55 minut temu 69 źrodło rozwiń
Microsoft udostępnił narzędzie Web Application Configuration Analyzer (WACA), które skanuje serwer hostujący aplikacje biznesowe w oparciu o zestaw najlepszych praktyk zalecanych dla ustawień IIS , ASP.NET i SQL Server.
Kilka dni temu ostrzegaliśmy przed atakiem na webaplikacje pisane w ASP.NET. Dziś znamy już szczegóły błędu, a Microsoft potwierdził zagrożenie. Poniżej prezentujemy jak zabezpieczyć się przed atakiem.Atak na ASP.NET (demonstracja) Błąd, tak jak pisaliśmy kilka dni temu, korzysta z tzw. wyroczni, czyli polega na wysyłaniu zaszyfrowanych zapytań do serwera i wyłapywaniu różnic w jego odpowiedziach — różne kody błędów świadczą o tym, czy serwer poprawnie rozszyfrował wiadomość. Na tej podstawie można wycią...
autor: To co napisałem poniżej to narazie koncept, który w sumie już działa, ale wymaga jeszcze nieco szlifu. Potrzebowałem skomunikować ze sobą dwie aplikacje webowe oparte o MVC. Naczytałem się o WCF i innych sposobach komunikacji poprzez Webservice i zawsze oznaczało to sporej ilości dłubania. Zresztą jak dobrze poszukać to znajdą się opinie, że budowanie osobn...
Wczoraj (a właściwie dzisiaj) pisałem o pobieraniu lokalizacji za pomocą wbudowanej w Windows 7 platformy sensorów. Poniżej kawałek kodu, który już powinien być zrozumiały – wykorzystujący LatLongLocationProvider LatLongLocationProvider location = newLatLongLocationProvider(100); if (location.ReportStatus == ReportStatus.Running) { location.LocationChanged += newLocationChangedEventHandler(location_LocationChanged); location.StatusChanged += newLocationProviderStatusChangedEventHandler(location_St...
Autor: Obiecałem, że jak tylko będę miał możliwość, zorganizuję konkurs T-SQL inspirowany cyklicznymi konkursami T-SQL Challenge. I słowa dotrzymuję :-)Dane wejściowe Dane są dwie tabele o strukturach, jak poniżej:Tabela dbo.Teams: TeamId TeamName 1 Poland 2...
Bazy danych i XML 5199 dni, 8 godzin temu 90 źrodło rozwiń
Dzisiaj coś zupełnie z innej beczki. SAP Business One (SB1) , czyli "program księgowy". Jakiś czas temu miałem okazję popracować trochę z tym programem i zapoznać się z DI API. DI API to zestaw metod, za pomocą których możemy zautomatyzować proces tworzenia dokumentów księgowych w SB1. Czyli wygenerować dokumenty z poziomu własnego programu, przy użyciu "odpowiednich bibliotek". Bardzo przydatne w sytuacji gdy integrujemy program księgowy z innymi systemami i chcemy zautomatyzować proces powstawania doku...
Programowanie w parach, to jeden z najbardziej kontrowersyjnych pomysłów jakie spotkać możemy podczas przeglądania publikacji dotyczących extreme programming’u. Jak można pracować wydajniej redukując liczbę zadań nad którymi pracujemy o połowę? Brzmi niedorzecznie, a jednak ma szereg nie koniecznie widocznych od razu zalet…
Microsoft przyznał w końcu, że aplikacje webowe stworzone przy pomocy praktycznie dowolnej wersji środowiska ASP.NET są podatne na atak typu Padding Oracle. Oznacza to, że w zależności od konkretnej aplikacji, intruzowi może udać się przykładowo uzyskanie dostępu do zawartości zaszyfrowanych ciasteczek i innych danych sesyjnych. Około 25% wszystkich aplikacji webowych bazuje na ASP.NET, w związku z...