Artykuły dla kategorii Programowanie

freeimages.com
kwi 02 2017
0

W pogoni za stabilnym stosem technologicznym

W programowaniu często mówi się o tym, że trudno jest napisać idealny kod. Wielu (w tym ja) uważa, że jest to niemożliwe, a na pewno nie za pierwszym razem. Zawsze powinniśmy być przygotowani na refaktoring i nie powinniśmy go traktować jako coś złego, tylko jako naturalny element procesu. Nie mniej jednak jeśli weźmiemy pod uwagę mnemonik SOLID i dokładnie zapoznamy się z jego regułami, to szybko okaże się, że tak naprawdę pole do zmian jest częściowo ograniczone.

Jeszcze inaczej sprawa ma się jeśli spojrzymy na języki programowania, bądź też znane frameworki. Czy w takiej sytuacji zmiana jest dozwolona? Czy powinniśmy zachowywać kompatybilność wsteczną? Temat jest trudny, a zachowanie dużych graczy pokazuje, że nie boją się oni często poważnych zmian. O ile refaktoryzacja własnego projektu dotknąć może stosunkowo nieduże grono odbiorców, o tyle zmiany w języku/technologii, mogą dotknąć setki tysięcy programistów, w zależności od popularności analizowanego rozwiązania. Taka sytuacja rodzi wiele pytań, na które trudno znaleźć jednoznaczne odpowiedzi, ale spójrzcie na kilka poniższych przypadków, by uzmysłowić sobie skalę problemu.

freeimages.com
sty 17 2017
0

Xamarin.Forms - pół roku komercyjnej pracy

Od jakiegoś pół roku pracuję zawodowo z Xamarin.Forms. Początki zapowiadały się naprawdę obiecująco. Przykładowe aplikacje z Xamarina w większości działały. W UI jest XAML, którego już wcześniej poznałem m.in. przy okazji Universal Apps. Na pokładzie nie mogło zabraknąć również C#. Ponadto bardzo pozytywnie rokowały pierwsze PoC z naszej strony oraz zapewnienia producentów w których to mówiło się o bardzo wysokim procencie współdzielonego kodu, czego dowodem miała być aplikacja Xamarin.CRM. Życie jednak zweryfikowało te realia i pokazało kilka wyraźnych rys na tym pięknym obrazku.

freeimages.com
sty 03 2017
0

Visual Studio Mobile Center - jedno miejsce do obsługi aplikacji mobilnych

Obecnie w świecie mobile królują dwa systemy - Android oraz iOS. Każdy z nich cechuje się zupełnie inną filozofią działania, sposobem wytwarzania aplikacji (wspominałem o tym sporo przy okazji wpisów o Xamarin), a także całym zestawem usług wykorzystywanych w trakcie procesu developmentu oraz późniejszego utrzymania. Niesie to ze sobą oczywiście spory narzut w kosztach wdrażania oraz stabilizacji projektu.

Stosując technologie pokroju Xamarin, React Native itp. jesteśmy w stanie częściowo zminimalizować problem związany z developmentem. Wciąż jednak pozostaje kwestia różnych usług, które są integralnie powiązane z wybranymi systemami operacyjnymi. Przykładowo żeby zbierać informacje o wyjątkach, czy statystyki użycia, musimy logować się do usług dla dedykowanych systemów. Na szczęście również w tym przypadku istnieją rozwiązania, które mogą nam ułatwić pracę. Jednym z nich jest tytułowy Visual Studio Mobile Center, który uznawany jest za następcę popularnego swego czasu HockeyApp.

freeimages.com
gru 09 2016
0

Jak sprawnie budować aplikacje w Xamarinie

Xamarin może rozwiązać wiele problemów technologicznych związanych z samym procesem pisania aplikacji, ale może również wygenerować sporo nowych tematów m.in. w obszarze budowania programów, czy też obsługi tzw. błędów runtime. Proces buildu jest w tym przypadku dość złożony, ponieważ najpierw musi nam się udać kompilacja kodu napisanego w C#, a dopiero później powstaje wynikowy kod natywny upakowany do pliku apk w Androidzie czy pliku ipa w iOS. Jeśli dodamy do tego temat obfuskacji kodu, to szybko może się okazać, że temat budowania może nie pójść tak gładko, jak reklamowane jest to na stronie Xamarina.

Dlatego też warto poznać kilka reguł, które mocno zredukują prawdopodobieństwa wystąpienia błędów na etapie kompilacji, czy też testowania wersji debug.

freeimages.com
lis 29 2016
0

Targetowanie paczek pod różne systemy w Xamarnie

Tworząc biblioteki do rozwiązań Xamarinowych, właściwie nigdy nie myślimy tylko o jednym systemie docelowym. To w końcu dlatego przecież wybraliśmy właśnie rozwiązanie Microsoftu, by nie ograniczać się do jednej platformy. I o ile twórcy Xamarina starają się reklamować to rozwiązanie jako takie, w którym odsetek współdzielonego kodu jest niezwykle wysoki, to w praktyce nawet we wdrożeniach opartych o Xamarin.Forms nie da się uniknąć rozwiązań dedykowanych pod konkretne platformy.

Na szczęście nie jest to wielkie wyzwanie. Wystarczy tylko odpowiednio przygotować projekt oraz plik nuspec naszej wynikowej paczki:)

freeimages.com
lis 17 2016
0

Przeciążanie operatorów w C#

C# posiada w swojej ofercie wiele operatorów, które pełnią rozmaite funkcje. Z pewnością dobrze znacie większość z nich, a jeśli nie to warto nadrobić swoje braki przeglądając dokumentację MSDN.

Z operatorów mogą korzystać również nasze własne obiekty, ale w normalnej sytuacji nie będą one wiedziały jak. Na szczęście twórcy C# dali nam narzędzia, dzięki którym będziemy mogli nauczyć nasze klasy zupełnie nowych możliwości.

Czy nie byłoby fajnie, gdyby obiekty faktur można było dodawać do siebie i dzięki temu otrzymalibyśmy sumę wszystkich faktur? Okazuje się, że w C# jest to banalnie proste:)

freeimages.com
lis 08 2016
0

ILSpy - podgląd assembly i dekompilacja kodu

Czasem chcielibyśmy sprawdzić szczegóły techniczne wybranego Assembly, bądź też nawet fragmenty kodu źródłowego, które wspomniany zasób zawiera. Przyczyny takiego stanu rzeczy bywają różne. Najczęściej chcemy się upewnić, że wdrożony kod, to rzeczywiście ten którego oczekujemy, bądź też chcemy podejrzeć kod używanej przez nas biblioteki, w sytuacji w której brakuje nam dokumentacji.

Okazuje się, że w świecie .netowym jest to jak najbardziej wykonalne. Wystarczy tylko odpowiednie narzędzie i DLLka, która nie przeszła procesu obfuskacji.. W .Net standardowo obfuskacja jest wyłączona, dlatego też bardzo łatwo zdekompilować kod IL zawarty w DLLce/pliku exe do kodu, który będzie wyglądać prawie jak oryginał. Do szczęścia potrzebne jest tylko odpowiednie narzędzie - np. opensource'owa aplikacja ILSpy.

freeimages.com
paź 20 2016
0

DataTemplateSelector w Xamarin.Forms

ListView to jedna z najważniejszych kontrolek w Xamarin.Forms. Jak sama jej nazwa wskazuje, jest ona odpowiedzialna za ogarnięcie tematu listy. Listy można spotkać w praktycznie każdej aplikacji, począwszy choćby od najprostszych programów typu TODO poprzez rozbudowane aplikacje wyświetlające video, obsługujące naszą pocztę, czy dbające o temat komunikacji.

Kontrolka którą dostarcza Xamarin.Forms, posiada wiele przydatnych elementów (temat na inny wpis to historia jak w praktyce działa ta kontrolka, a warto dodać że wymaga ona sporej dawki cierpliwości od programisty..), a jedną z nich jest możliwość ustawienia szablonu elementu wyświetlanego na liście.

Domyślnie na ListView, możemy wyświetlać elementy tylko w jednym layoucie, który oczywiście można modyfikować odpowiednimi wartościami modelu i dobrze napisanym XAMLem. W praktyce jednak, nie zawsze jest to najlepsze rozwiązanie. Dużo lepszą opcją będzie zastosowanie klasy DataTemplateSelector, która na podstawie właściwości zawartych w modelu, jest w stanie dostarczyć odpowiedni układ, dopasowany do aktualnych danych.

freeimages.com
paź 02 2016
0

Obsługa wielu tasków na raz w C#

W dobie wielordzeniowych procesorów, umiejętność programowania współbieżnego jest niezwykle istotna. Scenariusz programowania synchronicznego, w którym wszystko wkładamy w jeden wątek i kolejkujemy może spowodować, że nasza aplikacja będzie funkcjonować gorzej od konkurencji. Dobrym tego przykładem są aplikacje operujące na żądaniach sieciowych.

Przykładowo aplikacja mobilna może na starcie wymagać pobrania konfiguracji, ściągnięcia informacji na ekran typu home, czy też aktywacji opcji auto-logowania na bazie zapisanych wcześniej danych użytkownika.

Wszystkie te operacje możemy wykonać w trybie synchronicznym, w którym to będziemy wykonywać każdą operację po kolei. Dużo lepszą opcją będzie jednak w tym przypadku programowanie asynchroniczne zrealizowane za pomocą tasków. Taski mogą być wykonywane w tym samym czasie i jednocześnie wciąż możemy dojść do punktu, w którym będziemy oczekiwać na rezultat działania wszystkich uruchomionych zadań. Poniżej krótki przepis na sukces w nowoczesnym programowaniu współbieżnym.

freeimages.com
wrz 18 2016
0

.Net Standard Library - sposób Microsoftu na uporządkowanie swoich API

Świat technologi działających w oparciu o .Net Framework jest ostatnimi czasy niezwykle bogaty. Mamy tutaj kilka rozwiązań mobilnych, webowych, a także wsparcie dla desktopów. Można by powiedzieć - czysta sielanka. Pewne problemy zaczynają się jednak w sytuacji, w której rzeczywiście chcielibyśmy pracować z kilkoma rozwiązaniami naraz.

W takiej chwili, naturalne stają się próby współdzielenia raz napisanego kodu, w różnych rozwiązaniach. Microsoft udostępnia w takim celu choćby tzw. Class library. Jednak jeśli kiedykolwiek próbowaliście użyć tego rozwiązania dla różnych targetów, to z pewnością już wiecie, że jest to po prostu technicznie niewykonalne.

Rozwiązaniem tego problemu, miały być tzw. portable class library. W praktyce rzeczywiście za ich pomocą można przygotować bibliotekę, która będzie mogła być skonsumowana na różne sposoby, o ile tylko odpowiednio wybierzemy jej profil. Tych jest całkiem sporo, a każda zmiana wymagana ponownej rekompilacji wszystkich elementów w naszej układance. Zmiana profilu powoduje również zawężenie, bądź też rozszerzenie zestawu dostępnych API. Ogólnie jest to rozwiązanie na tyle problematyczne, że tęgie głowy postanowiły wypracować nowe, bardziej uniwersalne rozwiązanie.