Wydawać by się mogło, że jest to rzecz banalna. Niestety wcale do końca tak nie jest. Większość projektów webowych, przy których miałem przyjemność pracować, była zdefiniowana jako aplikacja sieciowa (Web Application). Czasem trafiają się jednak projekty, w których źródła i zasoby naszej aplikacji istnieją jedynie w formie folderu na dysku twardym. Visual Studio określa je po...
Strona głównaUżytkownik
Piotrek Gaszewski | użytkownik
Cześć. W dzisiejszym odcinku cyklu poświęconego wzorcom projektowym, które możemy zastosować do tworzenia rozszerzeń naszego ulubionego systemu, przyjrzymy się wzorcu Komendy („Command”, w języku polskim znanego również jako: „Polecenie”). Czy jest owa „komenda”? Definicja zaczerpnięta z Wikipedii przedstawia się w następujący sposób: ...
Sztuka programowania 1746 dni, 6 godzin, 19 minut temu 29 źrodło rozwiń
Witam w kolejnym odcinku cyklu poświęconego programistycznym wzorcom projektowym stosowanych przy tworzeniu aplikacji na platformie… No właśnie, jeszcze dwa lata temu w tytule tego tekstu znalazłby się „Dynamics CRM”. Gdyby artykuł powstał w zeszłym roku – informowałby z kolei o aplikacjach powstających na platformie „Dynamics 365 Customer Engagemen...
Sztuka programowania 1774 dni, 7 godzin, 26 minut temu 64 źrodło rozwiń
W dzisiejszym odcinku cyklu „Wzorce projektowe w programowaniu systemu Dynamics 365 CE” przyjrzę się możliwości wykorzystania wstrzykiwania zależności w kodzie tworzonych przez nas rozszerzeń. Opiszę również przykładową implementację klasy pluginu, która wykorzystywać będzie wyżej wymieniony mechanizm za pomocą biblioteki Simple Injector (https://simpleinjector.org).
W poprzednim artykule opisałem, w jaki sposób wykorzystać wzorzec repozytorium w celu odseparowania kodu implementującego logikę biznesową od reprezentacji fizycznych źródeł danych. W przypadku rozszerzeń systemu Dynamics 365 Customer Engagement źródłem danych będzie oczywiście usługa OrganizationService opisana za pomocą interfejsu IOrganizationService. .
W dzisiejszym odcinku przyjrzymy się zastosowaniu wzorca repozytorium do organizacji dostępu do danych w rozszerzeniach .NET systemu Dynamics 365 CE (pluginy oraz niestandardowe aktywności workflow). W najprostszym przypadku operacje na danych w omawianym systemie możemy wykonywać, korzystając z interfejsu IOrganizationService. Dostęp do stosownego obiektu, który implementuje ...
Architektura 2034 dni, 5 godzin, 22 minuty temu 38 źrodło rozwiń
Niniejszy artykuł rozpoczyna cykl „Programowanie w systemie Dynamics 365 – wzorce projektowe”. Odnośniki do pozostałych tekstów z ww. serii znajdziecie pod adresem: http://xrmlabs.piotrgaszewski.pl/2019/03/29/programowanie-w-systemie-dynamics-365-wzorce-projektowe/ Czym jest klasa bazowa? W najprostszym ujęciu jest to ogólna klasa, z której dziedziczą inne klasy i która pozwala modelować...
Pisanie kodu uruchamianego na platformie Dynamics 365 CE na pozór wydaje się banalnym tematem. Tu biblioteczka JavaScript… Tam prosta DLL-ka .NET, uruchamiana w momencie wystąpienia określonego zdarzenia w systemie… Być może jest to prawda, jeżeli korzystamy z systemu w wersji „pudełkowej” lub dostosowanej za pomocą narzędzi dostarczonych przez producenta. Sprawy komplikują...
Sztuka programowania 2088 dni, 7 godzin, 34 minuty temu 28 źrodło rozwiń
Jak i dlaczego zostać architektem:) ? Można zrobić to z kilku powodów. Pierwszym i wydaję mi się, że dość popularnym powodem jest niechęć starszych, technicznych pracowników (senior developerów, specjalistów, inżynierów itp.) do obejmowania roli projekt managera. W przeszłości spędziłem trochę czasu, pracując jako manager projektu i na bazie własnego doświadczenia rozumiem, że całodzienne odpisywanie na mai...
Architektura 2215 dni, 6 godzin, 1 minutę temu 131 źrodło rozwiń
W ostatnich miesiącach przez Internet (a przynajmniej przez śledzoną przeze mnie jego część) przetoczyło się kilka dyskusji na temat tzw. Citizen Development. Pojęcie to wróciło ostatnio do szerokiej świadomości za sprawą firmy Microsoft. Wielki Brat z Redmond promując swoje najnowsze aplikacje biznesowe, pochodzące z pakietu PowerApp Suite (Microsoft Flow, Power BI, PowerApps i Common Data Service), wielokrot...
W styczniu roku Pańskiego 2018 stuknęło mi 12 lat pracy zawodowej. Uściślę – pracy zawodowej, polegającej na wdrożeniach systemów informatycznych w oparciu o platformę Dynamics CRM firmy Microsoft. Tak naprawdę to owych, przepracowanych przeze mnie lat upłynęło już 13. Ponieważ jednak pierwszy rok „kariery” spędziłem jako stażysta, zajmując się mocno odmiennymi technologiami od tych, którym w większości poświęcony...
Budując systemy informatyczne za pomocą obiektowych języków oprogramowania wcześniej czy później natkniemy się na pojęcie „reużywalności” kodu . W najprostszych słowach – polega ono na nieumieszczaniu w kodzie źródłowym tworzonego rozwiązania wielu klas, metod lub komponentów implementujących identyczne funkcjonalności lub zadania (metoda DRY – Don’t Repeat Yourself) Niestety, źle rozumiane podejście DRY (które w z...
Sztuka programowania 2381 dni, 1 godzinę, 43 minuty temu 195 źrodło rozwiń
W dzisiejszym wpisie chciałbym zaprezentować Wam, w jaki sposób zbudować usługę sieciową (web service) ODAta v4, która będzie działać z dostępnym w „pudełkowym” systemie Dynamics 365 providerem danych dla wirtualnych encji. W sieci znajdziecie całą masę poradników opisujących konfigurację domyślnego lub tworzenie niestandardowego dostawcy danych. W tym miejscu postaram się natomiast ugryźć temat z drugiej strony i opisać...
W dzisiejszym wpisie chciałbym przedstawić sposób, za pomocą którego możemy wykorzystać bazę danych typu NoSQL do przenoszenia danych między organizacjami Dynamics 365 CE.
W ostatnich latach JavaScript stał się jednym z najpopularniejszych języków programowania (7. Miejsce w rankingu TIOBE we wrześniu 2017). Przeszedł on długą drogę, począwszy od obsługi prostych skryptów na stronach internetowych, a skończywszy na w pełni funkcjonalnych i samodzielnych aplikacjach, które odpowiadają za logikę wykonywaną zarówno po stronie klienta jak i serwera (przykład: node.js). Niestety z uwagi na p...
Dziś krótka piłka… 🙂 Od pewnego czasu po głowie chodził mi pomysł polegający na zamieszczaniu na blogu krótkich, zamkniętych fragmentów kodu („code snippets”), realizujących określone funkcjonalności. Poniżej znajdziecie pierwszy z nich. Mam nadzieję, że być może przyda się on komuś i umożliwi zaoszczędzenie kilku cennych minut (przeszukiwanie Dynamics 365 SDK, zwłaszcza w przypadku pliku CHM nie należy do najprzyjemn...
W wielu znanych mi firmach aplikacje typu LOB (Line of Business) są coraz częściej przenoszone do chmury. Już nie tylko portale dla klientów oraz partnerów biznesowych, ale również systemy CRM, ERP, ESB i inne z różnych przyczyn wynoszone są poza infrastrukturę organizacji. Z moich doświadczeń za decyzją o przeniesieniu lub uruchomieniu systemu w chmurze stoją zazwyczaj kwestie finansowe oraz możliwość dostarczenia danej, pożądan...
W ostatnich miesiącach Microsoft udostępnił szereg aplikacji będących częścią tzw. „Microsoft Business Application Platform”. Oprócz dostępnego już wcześniej Microsoft Power BI (Business Intelligence) w skład omawianej platformy wchodzą: Microsoft PowerApps, Microsoft Flow oraz Common Data Services. Omawiana platforma w założeniu ma umożliwiać budowę aplikacji biznesowych, modułów raportowych oraz komponentów integracyjn...
Od pewnego czasu na blogu oraz w tzw. „realu” staram się zadawać kłam tezie, mówiącej o tym, że bycie programistą systemu Dynamics CRM jest nudne jak flaki z olejem i nic gorszego kodera nie może już spotkać*… Owszem, jak to często w życiu bywa zdarzają się kiepskie projekty, w czasie których programiści nie zajmują się niczym innym, poza bezmyślnym klepaniem kolejnych pluginów. Po kilku tygodni...
O tym, że automatyczne testowanie kodu za pomocą testów jednostkowych jest czynnością wartościową nie trzeba chyba współcześnie już nikogo przekonywać. Oczywiście w omawianym temacie istnieją różne szkoły, podejścia oraz taktyki. Robert C. Martin w swojej słynnej książce „Clean Code” przedstawia tezę, zgodnie z którą tworząc aplikację od podstaw każda linia kodu produkcyjnego powinna być ...
Sztuka programowania 2982 dni, 3 godziny, 22 minuty temu 287 źrodło rozwiń