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 1424 dni, 14 godzin, 1 minutę temu 115 ź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 2360 dni, 15 godzin, 50 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 2913 dni, 10 godzin, 16 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 3487 dni, 2 godziny, 50 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 4505 dni, 10 godzin, 22 minuty temu 216 źrodło rozwiń