Użycie DI oprócz oczywistych zalet powoduje również narzut na CPU który możemy próbować optymalizować. Artykuł opisuje sposoby na rozwiązanie problemu zbędnego instancjonowania całego drzewa zależności.
Sztuka programowania 1592 dni, 5 godzin, 30 minut temu 116 źrodło rozwiń
Wstrzykiwanie zależności z wykorzystaniem kontenerów jest bardzo wygodne, ale też niesie z sobą trochę problemów. Jednym z tych problemów jest ilość oraz moment tworzenia obiektów. W tym wpisie pokaże ten problem oraz zaproponuje swoje rozwiązanie z wykorzystaniem obiektów Lazy. Poniżej jest przedstawiona dość standardowy kawałek kodu aplikacji ASP.NET MVC, w której jest wykorzystane wstrzykiwanie zależności przez konstruktor w formie interfejsów. Jak widać na kodzie pow...
Sztuka programowania 2528 dni, 7 godzin, 19 minut temu 113 źrodło rozwiń
A few days ago I was playing with Entity Framework when suddenly an Exception popped out on the screen: Additional information: LINQ to Entities does not recognize the method ‚System.String GetFullName(User)’ method and this method cannot be translated into a store expression. That was because accidently I treated Expression
Sztuka programowania 3081 dni, 1 godzinę, 45 minut temu 273 źrodło rozwiń
Przemysław Walkowski. Przez przypadek dokładając swoją cegiełkę do dyskusji o tym, czy wzorzec singielton jest dobry czy zły, doszukałem się dość ciekawej klasy w .NET 4.0, mianowicie klasy Lazy
Sztuka programowania 3654 dni, 18 godzin, 18 minut temu 465 źrodło rozwiń
.NET zawiera klasy przeznaczone do leniwej inicjalizacji i zwykle nie trzeba samemu implementować tego wzorca. Jeśli jakiś obiekt, chcemy inicjalizować dopiero w momencie, gdy jest on potrzebny to można skorzystać ze wspomnianych typów.
Jak już wspomniałem w jednym z moich wcześniejszych postów, sortowanie danych możliwe jest za pomocą implementowania specjalnych interfejsów (IComparer, IComparable) i zapytań LINQ. LINQ jest... leniwe. Jednak wbrew pozorom może być to pożądana cecha. Znaczy to tyle, że nawet jeśli utworzymy zapytanie, to taka konstrukcja:var sort = from p in people2 orderby p.Age select p; nie wykona tego zapytania i nie przypisze nam wyniku do zmiennej "sort". Trzeba...
Sztuka programowania 4673 dni, 1 godzinę, 51 minut temu 216 źrodło rozwiń