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 1467 dni, 3 godziny, 56 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 2403 dni, 5 godzin, 45 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 2956 dni, 11 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 3529 dni, 16 godzin, 44 minuty 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 4548 dni, 16 minut temu 216 źrodło rozwiń