Týždeň 2022-42

Po dlhej dobe všetkých oznámení tu máme konečne oddychový týždeň. A keďže máme tento týždeň bez udalostí, tak je dobre siahnuť po zaujímavostiach. Dnes to je zverejnená informácia, že dôvodom, prečo chce Microsoft kúpiť Activision Blizzard (AB), neboli len nové hry, ale snaha preniknúť na mobilné platformy. Tam je silným hráčom Google Play a Apple Store, takže určite ste zvedaví, že ako? Nuž predstavte si, že máte dnes už bežné free multiplatformové hry, ktoré žijú z nákupov bonusového obsahu. Tieto hry zarobia na mobiloch cca 85 miliárd dolárov, čo je 51 % celého herného priemyslu. A teraz by vám Microsoft ponúkol Xbox účet, kde by ste si veci kúpili iba raz a mali ich na konzole, na počítači, ale aj na mobile. Tak to už samozrejme robí Epic s Fortnite, ale je mnoho hier, ktoré takúto centrálnu správu účtov nemajú. U AB sú takými hrami napríklad Call of Duty: Mobile a Candy Crush Saga. Tiež si spomeňte ako promptne sprevádzkoval Microsoft xCloud hranie na konzole Steam Deck. Všetko preto, aby bol všade, a ak je budúcnosť hier vo free verziách s nakupovaním obsahu, tak tam Microsoft určite nebude chýbať. Teda, ak mu akvizícia AB prejde cez protimonopolné úrady. Už teraz mu UK regulátor robí problémy.


Toto je sprievodná diskusia k pôvodnej téme na https://blog.vyvojari.dev/vlko-week-2022-42/
1 Like

My sami sme nemali s upgrade na .NET 6 problém, tak by ste nemali mať ani vy.

Zaujima ma, ci ste tym presli aj na nullable refernce types? Leb tiez migrujem a na novom kode funguju super, ale migrovat na to velku codebase s tym, ze low-level api tie anotacie nema, tak tam viac menej odhadujem, kam dat otaznik…

nie, toto sme neriešili, príliš veľká codebase. Ale tradične pri takejto akcií updatujeme aj závislé knižnice a prerábal sa prístup k Azure službám, atď. Inak jediný reálny problém, čo sme pri tom upgrade našli, že by default už xml serializer v asp.net neindentoval a pár ľudom to rozbilo api (nie moc tomu chápem, prečo v xml záleži na zariadkovaní na konci tagu:).

Chapem, no mylsim si, ze to aspon v izolovanych castiach maju nullable types svoje benefity.

Zalezi, len ak parsujes XML-ko regularmi alebo string.Split , zial je to stale bezne.

Pouzili ste aj nejake source generatori (napriklad ako nahrada za Automapper)?

Nepoužívame Automapper, píšeme taký command pattern, kde data v db != command params.
Ale aby som nekecal, keďže máme Razor views, tak tie sa kompilujú source generátormi. Ale možno v budúcnosti budeme mať scenár použitia, ak pôjdeme do resource lokalizácie.

Chapem. U mna zalezi od projektu. V niektorych nic a v niektorych mapujem desiatky tried pre REST API, no lepsi alebo cistejsi sposob som zatial nenasiel.

U mna je to skor take… pouzit overenu kniznicu s dlhorocne stabilizovanym api, alebo zvolit novu kniznicu, ktora ma nejake vyhody ale je proste nova.

Kedze sa to da vypinat po projektoch / suboroch, dobre pravidlo je, ze vsetok novy kod to musi mat zapnute (vynimka moze byt generovany kod typu EF).

Da sa to docielit tak, ze to zapnes v projektoch, kde to chces mat zapnute a v existujucich suboroch to vypnes. Potom rucne zmigrujes zopar API, ktore pouzivas casto, typu extension metody, app servicy, atd.

V principe plati, ze je jednoduchsie migrovat najskor nizsie vrstvy, pretoze ked to robis naopak, budu ti vyskakovat warningy v uz zmigrovanom kode. Mozem vysvetlit detailnejsie, ak je zaujem

Ak to bolo pre mna, tak ano tiez to povazujem za spravny postup. Kniznice, ktore som mohol som na nullable type zmigroval uz skor. A dany projekt idem hura systemom, lebo tam sa “renovuje” vsteko, kedze sa meni jeho architektura.

V principe migracia na nullable types nieje rizikova, nieje to refactoring v pravom slova zmysle. Este sa mi nestalo, ze by som odstranovanim nullable warningov urobil bug. Naopak, par som odstranil. Takze smelo do toho

No, kedze nullable definicie presakuju az do swagger definicie public REST API, tak to pokazit mozem.

To treba ale explicitne vo swaschbuckle explicitne zapnut, nie?

To neviem potvrdit. Pouzivam NSwag, tam to bolo v net 6 verzii zapnute defaultne (pouzivam OpenAPI v3). No trebalo to zapnut pri generovani klienta pre C#.

A este nullable typy mali pre mna jeden dosledok, dost som zacal pouzivat Debug.Assert.