LINQ jest potężnym rozszerzeniem .NET, umożliwiającym nam wykonywanie zapytań na kolekcjach obiektów co za tym idzie wybranie elmentu o ID 10 z kolekcji procownicy, staje się banalnie proste. Jednakże by LINQ zadziałało to musi istnieć jakiś provider, który przetłumaczy dane zapytanie na określony język - LINQ2SQL, LINQ2nHibernate itp. itd. Takich rozszerzeń jest masa i Charlie stara się trzymać ich listę up-to-date. Czy są to wszystkie aktualnie dostępne providery? Na pewno nie, jednakże lista jest pok...
Bazy danych i XML 5405 dni, 23 godziny, 35 minut temu 40 źrodło rozwiń
Istnieje parę rozwiązań pozwalających na realizacje CI dla projektów .NET . Duża ich część jest normalnie płatnym oprogramowaniem, często są dostępne też darmowe wersje demo.
Omawiając warstwę biznesową wydaje mi się, że warto wspomnieć o technologii WWF. Kilka postów wcześniej pisałem o tzw. silniku reguł biznesowych. Chodziło o zdefiniowanie reguł oraz przepływu informacji w systemie. Jako przykład można podać wysyłanie zamówienia. Proces składa na pewno z kilku etapów takich jak aktualizacja bazy danych, wysłanie e-mail’a z potwierdzeniem do klienta oraz np. wywołanie metody usługi sieciowej (może to być WCF magazynu). Po kilku miesiącach może okazać się, że scenariusz ni...
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Dzisiaj porozmawiamy sobie o podstawach javascript, o bibliotece Microsoft AJAX, pokażemy jak użyć jej po stornie klienta do kontroli serwera :)Tworzenie własnego skryptu Istnieją trzy podstawowe “modele” definiowania skryptów:zdefiniować kod skryptu po stronie klienta na stornie sieci WEB, lub atrybut odniesienia do gotowego pliku (.js) . użyć klasy ClientScriptManager do dynamicznego definiowania skytpów. użyć kontrolki ScriptManager do z...
ILMerge – dołączanie zewnętrznych bibliotek Rzadko kiedy przy dużych przedsięwzięciach zdarza się trzymanie całego kodu w jednym projekcie (używam tu nomenklatury Visual Studio: solution/project). Duże części kodu używanego w wielu miejscach mogą zostać wydzielone do odrębnych assemblies (tłumaczenie tego słowa jako “zgromadzenie” nie jest zbyt fortunne, dlatego nie będę się bawił w słowotwórstwo i pozostanę przy angielskiej nazwie). Również typowa aplikacja .NET składa się z assembly wykonywalnej (zawi...
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Jak zapewne zauważyliście z wcześniejszych lekcji, siła WCFa pochodzi między nimi z możliwości zmiany parametrów “transmisji” bez zmiany ani jednej linijki kodu, rekompilacji, … Od tego mamy przecież plik konfiguracyjny. Możemy sobie napisać jedną aplikację, którą będziemy używać w wielu instancjach jednocześnie i wcale nie będą sobie przeszkadzać. O tym było w poprzednich lekcjach. Dziś pokażę jak stworzyć so...
Programowanie rozproszone 5408 dni, 31 minut temu 26 źrodło rozwiń
Ostatnio poznaję kontener DI Autofac i baaardzo mi się on podoba - nie tylko nazwa, funkcjonalność także. Ten post rozpoczyna paczkę kilku ciekawych (mam nadzieję:) ) postów pokazujących, jak przy pomocy Autofac zbudować "samoskładającą się" aplikację.
Architektura 5409 dni, 3 godziny, 10 minut temu 105 źrodło rozwiń
W celu wyjaśnienia zasady działania asynchronicznych stron, najpierw przyjrzyjmy się jak wygląda standardowe zapytanie do serwera. Klient wysyła żądanie HTTP do serwera np. typu GET w celu uzyskania danej strony www. Następnie serwer używa tzw. puli wątków (thread pool). Po prostu przydziela wątek z puli każdemu nadchodzącemu żądaniu. Tworzenie (a raczej odtwarzanie) wątków z puli jest szybkie (o tym już pisałem kiedyś), jednak liczba wątków jest ograniczona. W przypadku gdy serwer będzie musiał obsłużyć...
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. W dzisiejszym wpisie opowiemy sobie o tworzeniu interaktywnych formularzy za pomocą wbudowanych kontrolek AJAX. Wprowadzenie do ASP.NET AJAX Używanie AJAX na naszych stronach ma na celu polepszenie obsługi strony, stworzenie jej bardziej elastyczną itp. W ASP.NET dostajemy kilka możliwości obsługi AJAX’a. Którą z nich wybierzemy zależy od tego, czego w danej chwili potrzebujemy. Poniżej elementy, dzięki którymi możemy obsługiwać ajax w asp:
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Konfiguracja punkty wyjściowego (ang. endpoint) po stronie klienta przypomina tą, którą określa się w serwisie. Tak zwane ABC konfiguracji serwisu to address, binding, oraz contract. Konfiguracja może zostać przeprowadzona w sposób deklaratywny – z wykorzystaniem plików konfiguracyjnych, lub imperatywnie – przez kod. Przykładowa deklaracja w postaci znaczników XML: 1: W C# będzie to wyglądało następująco: 1...
Programowanie rozproszone 5409 dni, 23 godziny, 47 minut temu 33 źrodło rozwiń
W poprzednim poście opisałem wzorzec repozytorium. Jak już wspomniałem, repozytorium może różnić się implementacją w zależności od encji. W skrajnych przypadkach może być jedno repozytorium na jedną encję (Order – OrderRepository, Product – ProductRepository itp). Tworzenie każdego repozytorium ręcznie w zależności od przetwarzanej encji jest dość niewygodne. Przydałby się jakiś globalny mechanizm na tworzenie obiektów na podstawie typu encji. Dobrym rozwiązaniem problemu jest implementacja wzorca serv...
Architektura 5411 dni, 3 godziny, 51 minut temu 89 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Web Parts są komponentami z częścią funkcjonalności, które można osadzić na stronie i zarządzać nimi. Web Party dają użytkowników swobodę w zarządzaniu wyglądem strony (głównie elementami funkcjonalnymi jakie znajdują się na stronie). ASP.NET posiada zcentralizowany mechanizm do zarządzania obsługą Web Partów. Klasy związane z Web Partami znajdują się w przestrzeni nazw System.Web.UI.WebControls.WebParts. Najważniejsze elementy z tej przest...
Xna 4.0 – kosmetyczne zmiany w konstrukcji projektu Jeśli mamy jakiekolwiek doświadczenia z Xna tworząc nowy projekt nie powinniśmy się zdziwić, ale za to raczej w większości z nas docenimy kosmetyczne zmiany w organizacji projektu. Moim zdaniem pomocne w poprawieniu przejrzystości projektu. Po pierwsze referencje. W Xna 4.0 jest więcej Assemblies rozbitych z poszczególną funkcjonalnością. Przy istniejącym projekcie z poprzednich wersji jest to jedna z rzeczy, która na dzień dobry nie pozwoli nam skompi...
Jak już wspominałem kilka postów temu, ponowna lektura części Strategic Design z książki Erica Evansa pomogła mi usystematyzować swoją aktualną wiedzę na temat DDD. Dziś chciałbym się z Wami podzielić dalszą częścią mojego odkrycia. Warstwa możliwości (capabilities) świetnie nadaje się do tworzenia encji warstwy operations. O co chodzi? Jakiś czas temu Udi Dahan pisał o tym, że nie powinniśmy tworzyć korzeni agregatów. Jego post wykorzystuje przykład sklepu internetowego. Za...
Architektura 5411 dni, 7 godzin, 36 minut temu 98 źrodło rozwiń
Data końca projektu jest dla freelancera bardzo ważna. To dzień, w którym może świętować swój, bądź co bądź, sukces. To dzień, po którym może zacząć czytać nową książkę. Dzień, po którym wreszcie może pograć na komputerze. W oczekiwaniu na zapłatę wyjść na browar czy do kina. Albo planować kolejny projekt. Ostatni dzień kawowo-redbullowo-bezsennego maratonu.
Implementując warstwę biznesową za pomocą DomainModel lub ActiveRecord uzyskujemy bardzo rozdrobniony interfejs. Ponadto stworzone obiekty biznesowe zawierają logikę odnoszącą się tylko do konkretnej encji. W poprzednich postach pokazałem prostą klasę Client, implementującą wzorzec DomainModel. Przedstawiona klasa mogła wykonywać tylko operacje dla konkretnego, jednego klienta. W systemie jednak często będziemy musieli brać pod uwagę zbiór encji. Przykładowo może być potrzeba zwrócenia zbioru klientów, d...
Architektura 5412 dni, 11 godzin, 32 minuty temu 634 źrodło rozwiń
WiX: Tworzenie logów - problem i rozwiązanie
Możliwość używania delegatów w C# to fajna rzecz. Przyjemne jest zwłaszcza definiowanie ich "w locie", czyli bez konieczności tworzenia zupełnie nowej funkcji. Takiego delegata nazywamy wówczas anonimowym:
Autor: Aplikacją oczywiście w WPFie. Jako, że budowałem dla niej instalator postanowiłem sprawdzić czy wszystkie niezbędne komponenty są dołączane. Chciałem oczywiście, aby w przypadku braku .NET instalował się on skorzystałem z rozwiązania podanego przez Bartka Szafko we wpisie Instalowan...
Poruszony temat jest szeroko opisywany na różnych innych blogach i moim zdaniem brakowało miejsca, w którym to wszystko by było zagregowane. Tematem głównym jest klasa SPGridView, dostępna w API od SharePointa. Jest to rozwinięcie standardowej .NET-wej klasy GridView więc poruszone kwestie przydadzą się również przy pisaniu zwykłej aplikacji ASP.NET. W tym poście pokarze jak z poziomu kodu C# podpiąć źródło, którym jest obiekt klasy ObjectDataSource, stworzyć własny szablon kolumny, włączyć stronicowanie...