ASP .Net MVC 3 vs. Ruby on Rails 3 Ostatnio trochę zaniedbałem bloga. Ostatni wpis pojawił się w kwietniu i do dziś cisza. Pora to zmienić. Norwegian Developers Conference 2011 (NDC 2011) miał miejsce w czerwcu. Trwa 3 dni, a sesji na nim jest dużo dużo więcej niż na naszym MTS 2011*. Materiały z tej konferencji są dostępne tutaj. Osobiście polecam tą sesję Shaya Friedmana. Porównuje w niej MVC3 z Ruby on Rails. ASP.NET MVC 3 ...
Od dwóch tygodni pracuję nad projektem open-source przeznaczonym dla programistów zarówno tych początkujących jak i zaawansowanych. Z pewnością wielu z Was kojarzy projekt Robocode. Robocode umożliwia pisanie algorytmów dla czołgów, które następnie mogą stoczyć bitwę. Zadaniem programistów jest napisanie jak najlepszych algorytmów. Mój projekt przeznaczony jest wyłącznie dla programistów .NET i został oparty na XNA, a co za tym idzie, całość będzie się działa w świecie trójwymiarowym. Kilka ważnych za...
Post navigation← PreviousPułapki w SQL Server CEOpublikowano 7 Grudzień 2011 Ostatnio mam okazję robić projekt, do którego używam WebMatrix i bazę Microsoft SQL Server CE (Compact Edition). Docelowo baza ma być przeniesiona do „dużego” SQL’a, a ten CE miał być tylko na chwilę, na początek, na szybko…Subselect / subquery SQL Server CE nie obsługuje Subselectów. Nie możemy zrobić takiego zapytania:SELECT c.FirstName, c.LastName, (SELECT count(o.id) FROM Order o WHERE o.CustomerId = c.Id) AS Ord...
Bazy danych i XML 4068 dni, 5 godzin, 40 minut temu 165 źrodło rozwiń
Style jest to mechanizm wprowadzony w WPF-ie, a następnie w Silverlighcie, dzięki któremu w łatwy sposób można ujednolicić wygląd elementów naszej aplikacji. Style z reguły definiowane są w zasobach. Mogą to być zarówno zasoby całej aplikacji, danego okna lub nawet wybranej kontrolki. Przykładowy styl może wyglądać w następujący sposób: Każdy styl jest rozpoznawany dzięki unikalnemu kluczowi - parametr x:Key. Możliwe jest pominięcie klucza, w przypadku gdy ustawiona zostanie właściwść TargetType. ...
Biblioteka Microsoft UI Automation ujrzała światło dzienne wraz z premierą .NET 3.0 - jednakże pozostała ona w cieniu swoich większych braci WPF oraz WPF, które również zostały wprowadzone do Frameworka 3.0. Microsoft UI automation zapewnia nam dostęp do wszystkich elementów drzewa wizualnego aplikacji. Dzięki czemu mamy możliwość: Znajdowania wybranych przez nas kontrolek Interakcji z kontrolkami - wpisywanie tekstów do TextBox-ów, klikanie w przyciski itp Wczytywania wartości już wprowadzonych ...
Interfejs INotifyPropertyChangedPropertyChanged znany jest prawdopodobnie każdemu programiście C#. Interfejs ten zawiera jedynie jedno zdarzenie public event PropertyChangedEventHandler PropertyChanged; które powinniśmy odpalić w momencie gdy dana właściwość zostanie przez nas zmieniona. Dzięki temu dowolny obiekt, który będzie nasłuchiwał zmian danej właściwości zostanie o tym poinformowany. Przykładowa klasa implementująca ten interfejs może wyglądać w następujący sposób: public class ViewMode...
Tak jak wspomniałem w poprzednim wpisie, tym razem zajmiemy się tworzeniem własnej klasy implantującej interfejs ICommand . 1. Implementacja interfejsu ICommand - WPF Klasa implementująca ICommand może wyglądać w następujący sposób public class DelegateCommand : ICommand { private Action
Wstęp Każdy programista, który napisał chociaż parę linijek kody w WinFormsach wie, że kontrolki używają eventów do powiadamiania o zmianach swojego stanu. W przypadku, gdy interesuje nas odpowiednia reakcja na zdarzenie, podpinamy się do niego odpowiednią funkcją i wykonujemy założone przez nas operację. W analogiczny sposób można postępować w WPF-ie oraz w Silverlighcie, jednakże podejście takie niejako mija się z modelem MVVM. Posiadanie event handlerów w kodzie, ściśle wiąże nam widok (XAML) z code ...
Walidacja jest to technika sprawdzająca, czy dany obiekt spełnia pewne założenia poprawności danych. W WPF-ie oraz Silverlighcie istnieją trzy sposoby walidacji obiektów: walidacja poprzez rzucanie wyjątków, walidacja z użyciem interfejsu IDataErrorInfo, walidacja z użyciem interfejsu INotifyDataErrorInfo Walidacja poprzez rzucanie wyjątków Walidacja poprzez rzucanie wyjątków odbywa się w następujący sposób. W seterze danej właściwości dodajemy warunek sprawdzający czy wpisane dane są poprawne...
autor: Z dzisiejszej ankiety na FanPage'u dotnetomaniaka wynika, że sporo z nas na co dzień tworzy aplikacje ASP.NET (czy to WebForms czy też MVC). Zapewne zatem przyda nam się trochę darmowej wiedzy od Googla, co i jak wpływa na wyniki wyszukiwania i PR. Czy wiesz np. jak robot Google traktuje adresy z '-' a adresy z '_'? Jest jakaś różnica a może nie ma? Czy adresy z '/' na końcu są lepsze od tych bez? Czy dodawanie www do domeny ma jakieś znaczenie? Na te i inne pytania odpowie...
Wbudowany mechanizm optymalizacji może czasami przynieść zaskakujące wyniki. Rozważmy poniższy fragment kodu:string var1 ="text"; string var2 ="text"; bool condition =object.ReferenceEquals(var1, var2); Wydawałoby się, że var1 i var2 stanowią dwie osobne referencje. Po uruchomieniu kodu przekonamy się jednak, że zmienna condition będzie miała wartość true. Spowodowane jest to wykonaną optymalizacją, polegającą na tym, że .NET przechowuje zbiór użytych w programie napisów. Deklarując zmienną przec...
Trigery jest to mechmizm WPF-a służący reakcji UI na jakieś zdarzenie. Wyróżniamy cztery rodzaje triggerów Property triggers - używane do zareagowanie na zmiany dependency property w danej kontrolce, Data triggers - używane do zareagowanie na zmiany w bindowanych obiektach- można podłączyć się do właściwości z DataContextu jak i z danej kontrolki, MultiDataTriggers - używane do reagowania na zmiany kilku właściwości, MultiTrigger - używane do reagowania na zmiany kilku dependecy property w danej ...
ListViewCollection (WPF) ListViewCollection jest to kolekcja wprowadzona do WPF-a, która wspiera sortowanie, grupowanie oraz filtrowanie. Kolekcję taką tworzymy w następujący sposób List
autor: Dawno już nie pisałem nic o rozwiązaniach kolaboracyjnych, czas wrócić do kontunuacji serii. Wcześniej popełniłem dwa wpisy o: instalacji SharePoint Foundation 2010 oraz wyborach między SharePoint Foundation i Office 365. Teraz czas na instalacje “DUŻEJ” maszyny, czyli SharePoint Server 2010. W nastepnych postach przyjrzymy się już bliżej pewnych szczególnym aspektom – mając środowisko. WPROWADZENIE Zastanówmy się przez chwile jakie wersje tego środowiska mamy i czym się one różnią (poza ceną ocz...
Używając kontrolki WebBrowser na telefonie Windows Phone mogliście się spotkać z błędnym kodowaniem znaków w trakcie używania metody NavigateToString. Podczas standardowego nawigowania przy użyciu metody Navigate do pliku lokalnego albo zewnętrznego wszystko działa poprawnie. Natomiast użycie metody NavigateToString powoduje dziwną interpretację znaków:
Mobile development 4073 dni, 23 godziny, 17 minut temu 44 źrodło rozwiń
NULL Object Pattern (Special Case)
Architektura 4074 dni, 4 godziny, 26 minut temu 185 źrodło rozwiń
W komentarzach do ostatniego posta wywiązała się dyskusja na temat "a co z metodami prywatnymi?". Odpowiedź najkrótsza z możliwych brzmi: NIC. Zainteresowanych odsyłam do tamtejszych wypowiedzi, a w niniejszej notce postaram się zawarte tam myśli rozwinąć. Zaczynając przygodę z testami jednostkowymi często stawałem przed dylematem "jak mam przetestować funkcjonalność z metod prywatnych?". Sporo się naszukałem i naczytałem o różnych rozwiązaniach, z czego dwa zdawały się być najpopularniejsze i najbardzi...
Ponieważ często jestem pytany oto z jakich materiałów korzystałem oraz jak długo pracowałem nad Silverlightem zanim przystąpiłem do egzaminu certyfikacyjnego, postanowiłem napisać o tym artykuł. Na wstępie jednak zaznaczam, że nie mogę ujawniać jakichkolwiek informacji z samego egzaminu (w szczególności pytań!). Nie zrobię tego ani na blogu ani poprzez e-mail....
Silverlight 4074 dni, 4 godziny, 26 minut temu 234 źrodło rozwiń
W kodzie często używamy klasy Stirng do przechowywania poufnych informacji takich jak np. hasło. Niestety często nie zdajemy sobie sprawy jak niebezpieczne jest takie rozwiązanie. String jest specjalnie zoptymalizowaną klasą przeznaczoną do przechowywania łańcucha znaków, która jednak nie jest odporna na wszelkie ataki związane z podglądaniem pamięci operacyjnej. W skrócie pisząc, wszelkie informacje klasa String trzyma w postaci jawnej. Korzystając więc z odpowiedniego oprogramowania, intruz może bez pr...
Architektura 4074 dni, 4 godziny, 26 minut temu 312 źrodło rozwiń
autor: Platforma .NET, dzięki mechanizmowi refleksji, pozwala na dynamiczne wczytywanie do programu podzespołów (ang. assembly). Pozwala to w łatwy sposób pisać rozszerzane przy pomocy pluginów aplikacje i na wiele innych rzeczy. Ostatnio potrzebowałem wykorzystać ten mechanizm do własnych celów. Aby zwiększyć bezpieczeństwo, postanowiłem ładować podzespoły do odzielnych domen aplikacyjnych. W ten sposób, jeśli po załadowaniu podzespołu i wykonaniu jego kodu pojawi się błąd, główna domena aplik...