W dzisiejszym poście kilka słów i imporcie implementacji. W poprzednich postach, pokazałem jak dokonywać prostych importów. Dzisiaj trochę więcej szczegółów. Dla przypomnienia, aby zaimportować (wstrzyknąć) implementację, w najprostszym przypadku używamy po prostu atrybutu Import:publicclass SampleViewModel { //... [Import] public IMessageBoxService MessageBoxService{get;set;} } Powyższy przykład reprezentuje wstrzyknięcie właściwości. W podobny sposób można wstrzykiwać parametry dla ko...
Doprowadziłem ostatnio do porządku wersjonowanie plików CSS i JavaScript dołączonych do naszego portalu. Wcześniej wersjonowanie oparte było o datę dołączoną w query string po adresie dołączanego pliku, w tej chwili koncepcja została zmieniona na hash code w postaci sumy MD5.
W kilku ostatnich wpisach przedstawiłem czym jest metodyka Scrum, po co i jak ją stosować przy użyciu Team Foundation Server. W teorii moglibyśmy już rozpocząć projekt i z powodzeniem go prowadzić. Możliwe, że więcej wiedzy nie było by Wam szybko potrzebne, ale podejrzewam, że całkiem szybko zaczęły się pojawiać pytania o zarządzanie i przepływ zadań. W tym artykule postaram się wybiec przed nie i od razu przedstawić garść odpowiedzi. W skrócie co jak i gdzie w kombinacji TDD + TFS + SRUM
Architektura 4748 dni, 21 godzin, 31 minut temu 130 źrodło rozwiń
MEF jest kolejnym frameworkiem umożliwiającym tworzenie rozszerzalnych aplikacji. Pomijając marketing serwowany na różnych stronach, jest to po prostu biblioteka umożliwiająca dependency injection. W wersji .NET 4.0 została zintegrowana w .NET Framework i nie musi być instalowana osobno. Na oficjalnej stronie można sporo poczytać o budowie MEF’a jednak w poście chciałbym ograniczyć to do minimum ponieważ dla mnie osobiście, zbyt dokładne intro do tematu po prostu zniechęca mnie do dalszego czytania. Zac...
Architektura 4748 dni, 21 godzin, 31 minut temu 207 źrodło rozwiń
Poprzednia część artykułu poświęconego Reactive Extensions (RX) dla .NET została zakończona prostym przykładem, w którym prostą obserwację kolekcji przeprowadzono nie tylko w ramach wątku bieżącego, ale również na odrębnym wątku. W tym celu wykorzystano jednego z wielu planistów (scheduler'ów) dostępnych w ramach RX. Przyjrzyjmy się im trochę bliżej. Otóż w Reactive Extension dla .NET można w bardzo prosty sposób sterować, na jakim wątku „pracuje” obserwowana kolekcja lub przy pomocy jakiego wątku chcem...
W ostatnim poście przedstawiłem MEF wraz z prostym przykładem. Dzisiaj przyjrzymy się dokładniej sposobom eksportu. Znamy już podstawowy sposób eksportu klasy:[Export(typeof(IMessageBoxService))] publicclass WpfMessageBoxService:IMessageBoxService { } Oprócz przekazania typu, można także użyć zwykłego string’a. Ze względu jednak na łatwość popełnienia literówki lepszym sposobem jest użycie typeof. Oprócz klas można również eksportować właściwości np.:publicclass Order { [Export("OrderValue")] ...
Niedawno po raz pierwszy w życiu musiałem mockować implementację interfejsu IEnumerable<T>. Chodziło o jakieś dziwne struktury używane wewnętrznie przez FIM. Problem polegał na tym, że obiekt mockowanego przeze mnie typu zwracał kolekcję innych obiektów. Ta kolekcja była właśnie IEnumerable<X>... ale nie mogłem stworzyć jej instancji, ponieważ wspomniana klasa XCollection była abstrakcyjna, a jej implementacja siedziała zaszyta gdzieś wewnątrz jakichś dllek. Jednocześnie chciałem przetestować...
Nie dawno otrzymałem email z pytaniem dotyczącym tworzenia dokumentacji do kodu napisanego w C#: Poszukuje czegoś do zautomatyzowania procesu tworzenia dokumentacji dla kodu pisanego w C# i trafiłem na (..) temat odnośnie Sandcastle. Czy ten dodatek do Visual Studio pozwala tworzyć dokumentacje dla C# i jest kompatybilny z VS 2010? Spróbuję w niniejszym wpisie odpowiedzieć na to pytanie. Na temat tworzenie dokumentacji do oprogramowania pisałem już wcześniej w artykule „Tworzenie dokumentacji”. Wspomni...
Odpowiedź na pytanie postawione w tytule pytanie to temat nie na posta, ale na całą (może nawet niejedną) książkę. Poniżej postaram się nakreślić najważniejsze według mnie aspekty tworzenia testów... chociaż na pewno lista ta nie jest kompletna. Aha, no i nie jestem w stanie podać niezawodnej recepty na "dobry test". Zgłębiam temat od dobrych kilku lat i sam ciągle się uczę, więc cudów nie ma - praktyka i identyfikowanie własnych pomyłek jest najlepszym nauczycielem:).
Umieszczenie artykułu na dotnetomaniaku może dać znaczący wzrost liczby odwiedzin na blogu (:)). Można jednak pomóc temu procesowi i przyciągnąć do nas jeszcze więcej osób. W poniższym wpisie postaram się pokazać jak to zrobić.Nie śpiesz się
Spóźniona trochę porada jak wdrażać projekty Azure za pomocą Web Deploy: http://msdn.microsoft.com/pl-pl/library/szybka-aktualizacja-projektu-azure-za-pomoca-web-deploy.aspx
O programowaniu z innej perspektywy...
Node.js - jest to framework oparty o programowanie sterowane zdarzeniami w języku JavaScript.
Moment pisania testów jest nierzadko kluczowy dla zmaksymalizowania efektywności całej procedury. Po kilku chwilach zastanowienia da się wyróżnić kilka najważniejszych etapów tworzenia oprogramowania, które z reguły są odpowiednią chwilą do implementacji testu.
Wielu programistów .NET wiedzą o istnieniu Reactive Extensions, działających w oparciu o Linq. Tutaj są opisane podobne możliwości w JavaScript.
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 4755 dni, 4 godziny, 5 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 ...