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 1598 dni, 1 godzinę, 26 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 2534 dni, 3 godziny, 15 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 3086 dni, 21 godzin, 41 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 3660 dni, 14 godzin, 15 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 4678 dni, 21 godzin, 47 minut temu 216 źrodło rozwiń