Tumgik
brondra · 5 years
Text
Auth - vse
OAuth2, OpenID Connect (OIDC), SAML -------------------------- OAuth 2.0 is a framework that controls authorization to a protected resource such as an application or a set of files, while OpenID Connect and SAML are both industry standards for federated authentication.
OpenID Connect is built on the OAuth 2.0 protocol and uses an additional JSON Web Token (JWT), called an ID token, to standardize areas that OAuth 2.0 leaves up to choice, such as scopes and endpoint discovery. It is specifically focused on user authentication and is widely used to enable user logins on consumer websites and mobile apps.
SAML is independent of OAuth, relying on an exchange of messages to authenticate in XML SAML format, as opposed to JWT. It is more commonly used to help enterprise users sign in to multiple applications using a single login.
OAuth - obecný framework na prava (authorizace), OpenID implementace nad ním pro authentikace (poda ten token), SAML mimo, FIDO novinka
OpenID Connect (OIDC) is an authentication layer on top of OAuth 2.0, an authorization framework.
Oauth (code flow - frontend + backend, implicit flow - jen frontend js)
Authentication - KDO Authorization - CO
IdentityServer is an open-source authentication server that implements OpenID Connect (OIDC) and OAuth 2.0 standards for ASP.NET Core
Active Directory is a database based system that provides authentication, directory, policy, and other services in a Windows environment
LDAP (Lightweight Directory Access Protocol) is an application protocol for querying and modifying items in directory service providers like Active Directory, which supports a form of LDAP.
Short answer: AD is a directory services database, and LDAP is one of the protocols you can use to talk to it.
Lightweight Directory Access Protocol or LDAP, is a standards based specification for interacting with directory data. Directory Services can implement support of LDAP to provide interoperability among 3rd party applications.
Active Directory is Microsoft's implementation of a directory service that, among other protocols, supports LDAP to query it's data.
Kerberos is a network authentication protocol. It is designed to provide strong authentication for client/server applications by using secret-key cryptography. Clients authenticate to Active Directory using the Kerberos protocol.
AD je ta db, kerberos je protokol (kerberos vs openid jde porovnat - obe protokoly) Azure Active directory - je ta db v azure, včetne services, je to identity provider - umi pres openid snad Identity server je framework co pouziju pro napsani serveru, ale nema to tu spravu dat co ma AD a ui, to si musim poskladat
---- Oauth flow Implicit - uz nedoporucovana, jen ciste spa The application opens a browser to send the user to the OAuth server The user sees the authorization prompt and approves the app’s request The user is redirected back to the application with an access token in the URL fragment *****
Code flow The application opens a browser to send the user to the OAuth server The user sees the authorization prompt and approves the app’s request The user is redirected back to the application with an authorization code in the query string ****** The application exchanges the authorization code for an access token ******
0 notes
brondra · 5 years
Text
Connect 2018
intellicode - lepší intelisence, i podle toho kde jsme v kódu, v jakém projektu apod. Cloud Native Application Bundle (CNAB) - jako budle resourcu pro apku? neco jako docker compose - multiple images in one? v devops Run Azure Cosmos DB emulator container - pro testy health checky - net core 2.2, potrebuji pro aks api analyzer - pro swagger, rekne  napr ze neco neni zdokumentovane api konvence - aby se nemuselo u kazde action psat response type, tak default ApiConventions na assembly aspnetcorehosting model - inprocess v csproj, performance aks - virtual nodes - nejaka optimalizace rychlejsi start novych nodu csharp 8 - nullable enable - opt in - nullable types cannot be null, enable Person?, string? apod async streams - IAsyncEnumerable.. await foreach.. array range - slice people[1..3]
0 notes
brondra · 5 years
Text
Ignite 2018
afinita - pri load balanceru - stejny klient chodi na stejny server, možná i jako geo u cache apod? retence=napr u zaloh jak stare odmazavat webjob= WebJob is a feature of Azure App Service that enables you to run a program or script in the same context as a web app, background process, long running cqrs = Command Query Responsibility Segregation - zvláštní api/model na write a read, opak je crud webhook = obrácené api, zavolá clienta pokud se něco změní (dostane eventu)
docker - muze byt vice kontejneru v jedné appce, docker-compose.yml azure má nějaké container registry - tam se nahraje image (napr website) a ten se pak deployne někam např. app service, ale jiné image nemusí container registry - není veřejné narozdíl do dockeru, někdo jiný z teamu může si stáhnout
azure functions 2 - v GA
xamarin - ui je vlastne access k native api, ale v csharp projekty - shared, a special pro ios a android
ML.NET - je to framework pro machine learning
hosting SPA na azure storage static website - teoreticky hodně výhod, cachování, levné hosting
devops - automate everything you can
sponge - learn constantly multi-talented - few thinks amazing, rest good konverzace, teaching, presenting, positivity, control share everything
powershell - future, object based CLI to MS tech powerShell ISE - editor - uz je ve windows, ale ted VS code cmdlets - mini commands, hlavni cast, .net classy [console]::beep() function neco {  params{[int] Seconds} } pipeline - chain processing - output je input pro dalsi atd dir neco | Select-object modules - funkce dohromady, k tomu manifest
web single sign-on = fedaration - nekdo jiny se zaruci ze ja neco muzu a ze jsem to ja federation=trust data jsou na jednom miste SAML - security assertion markup language, jen web, složité API Security - header Authorization Basic (username, heslo zakodovane) OAuth2 - misto toho tokeny (vstupenka) openid connect - id token, access token - všechny platformy, code flow doporučené, jiné implicit flow? fido - fast identity online - abstrakce uh wtf, private public key pair per origin - nejde phising ldap. kerberos - jak to zapada?
httprepl - cli swagger
asm.js - polyfil pro web assembly, web assembly je native kod v browseru - napr .net = blazzor
svet bez hesel windows hello - windows login - face nebo fingerprint ms authenticator  - mobilni apka - matchnu vygenerovany kod FIDO2 - novy security standart - mam u sebe privatni klic, server posle neco (nonce), to zakryptuju privatnim pošlu zpátky - přes veřejný rozšifruje a má potvrzené, pak to samé s tokenem
cosmos db transakce - jen pouzitim stored procedure, single partition default index na vše, jde omezit při vytváření kolekce change feed - log of changes, in order trik jak dostat rychle document count - meta info o kolekci a naparsovat key-value cosmos - vyhody globalni distribuce, eventy, multimodel, pro big data asi
AKS - container - appka, orchestrator - komunikace mezi kontejnery, správa kontejnerů, healthchecks, updates AKS - orchestrator - nejčastější orchestrátor, standart, extensible, self healing představa něco jako cli nebo klient - řeknu jaké kontejnery, počet apod uvnitř se to nějak zařídí - api server, workers atd.. - je to managed kubernetes v azure, customer se stará jen o to co nasadit a kdy - ci/cd aks = azure kubernetes service
dev spaces - share aks cluster for dev (ne ci/cd), realne dependency (bez mock jiných service apod) extension do VS, pracuju lokalne, sync do azure, využíví namespace v aks (každý má svojí verzi service) - normalne frontned.com, já mám ondra.frontend.com a svojí api, pokud se zeptá na url tak se koukne jestli běží lokálně, když ne tak se zeptá team verze respektive je to celé v azure, ale je tam moje verze aplikace
kubernets - master (api server) - jeden Node - vice, VMs, v nem pods - containers, mají unikátní ip, networking - basic pro dev, advanced pro live nody a pody jsou interní věc, ven přes services helm - něco jako worker co se o to stará? jako docker-compose - vic imagu, help je pro aks??, arm template pro aks (skrpit jak postavit prostředí)
event notification patern - objednávky do fronty, ostatní systémy zpracují, co nejvíce info v eventě event sourcing - ukládat změny - inserted, updated, updated, updated, místo get update save, jde také udělat přes event, materialized view - spočítání stavu podle těch event, jdě dělat jednou za čas event grid - event routing
azure function - zip, z něj to spustí (vyhneme se problemu při update file by file), přes proměnné, nyní default ve 2.0 je startup, kde je možné připravit DI a funkce pak přes konstruktor už se dá kombinovat s kontejnery, aks atd durable functions - složitější věci s návaznostmi funkci, long running, local state, code-only, orchestartor function - vola activity function, má vnitrni stav, probudi se dela do prvni aktivity, tu spusti, spi, probudi se checkne jestli dobehla, pokracuje dal logic apps - design workflow, visual azure function runtime jde teoreticky hostovat na aks? v devops pro non .net jazyky potreba instalovat zvlast extension v2 - vice lang, .net core - bezi vsude, binding jako extension key vault - v 2008 ani preview funkce hosting - consuption = shared, app service - dedicated microservice=1 function app, jeden jazyk, jeden scale api management = gateway - na microservices, jde rozdělat na ruzné service azure storage tiery - premium (big data), hot (aplikace, levne transakce, drahy store), cold (backup, levny store, drahe transakce), archive (dlouhodobý archiv) - ruzné ceny/rychlosti, soft delete - po dobu retence je možnost obnovit smazané, data lifecycle management - automaticky presouvat data mezi tiery, konfigurace json
hybric cloud - integrace mezi on premise a cloudem - azure stack - azure které běží on premise někde use case: potřebujeme hodně rychle/jsme offline, vyhovění zákonům, model
místo new HttpClient, raději services.AddHttpCLient(addretry, addcircuitbreaker apod) a pak přes konstruktor, používá factory, používání Polly (retry apod..) - pro get, pro post - davat do queue
people led, technology enpowered
service fabric 3 varianty - standalone (on prem), azure (clustery vm na azure), mesh (serverless), nějaká json konfigurace zase, umí autoscale (trigger a mechanism json konfig), spíš hodně interní věc - běží na tom věci v azure, předchudce aks, jednoduší, proprietární, stateful, autoscale apod..
důležitá věc microservices - vlastní svoje data, nemají sdílenou db principy: async publish/subscr komunikace, healt checks, resilient (retry, circuit breaker), api gateway, orchestrator (scaleout, dev) architektura - pres api gateway na ruzne microservice (i ms mezi sebou) - ocelot orchestrator - kubernetes - dostane cluster VMs a ty si managuje helm = package manager pro kubernetes, dela deploy, helm chart = popis jak deploynout standartni
key valut - central pro všechny secrets, scalable security, aplikace musí mít MSI (nějaké identity - přes to se povolí přístup)
Application Insights - kusto language, azure monitor search in (kolekce) "neco" where neco >= ago(30d) sumarize makelist(eventId) by Computer - vraci Comuter a k tomu list eventId, nebo makeset umí funkce nějak let fce=(){...}; join kind=inner ... bla let promenna - datatable napr hodně data - evaluate autocluster_v2() - uděla grupy cca, podobně evaluate basket(0.01) pin to dashboard, vedle set alert
ai oriented architecture: program logic + ai, trend dostat tam ai nejak
0 notes
brondra · 5 years
Text
Build 2018
Csharp ----------- async main - už má fungovat default - není nutné uvádět typ genericke where jde nove Delegate a enum unsafe - sekce kde se pracuje s ukazateli int* pointer, &neco - posilam referenci volatile - neoptimalizovat extern - externi implementeace, atribut dllImport extension metody muzou být na ref také this ref neco - neco lze modifikovat parameter in int i - je jako readonly ref - nejde modifikovat uvnitř, out musí ref - jako navratova hodnota je ukazatel static ref int Metoda - vraci referenci na int, return ref i ref int i = ref Metoda.. jde být i readonly ref readonly neco... Span<T> - ukazatel na T jakoby do paměti, hodně jako ref nullable reference types - zakáže null v reference types, musí se říct string? např. trochu jiný switch zapsaný jako expression return neco switch lambda.. rekurzivni patterny / dekonstruct ...wtf.. System.Index / .Range - jiné práce s poli - index od zadu, od-do apod
stack - pamet pro promene zname v dobe kompilace + ulozeni volani funkci, mala - per program, stack per funkce heap - pamět za běhu - rozhazena, pomalejší, gc, omezení jen kolik je ram
from history: https://channel9.msdn.com/Series/Three-Essential-Tips-for-Async/Three-Essential-Tips-For-Async-Introduction async/await - flow dojde k await, na heap se vytvoří záznam o tasku, jakmile se task resolvne, vrátí se na to tu řádku await a pokračuje dál, to za tím se provede až po návratu, mezitím se vrací do callera.. konec async metody znamena resolvnuti tasku
Visual Studio ---------------- multikurzor - jako s alt ale různá místa IntelliCode - intelisence založený na strojovém učení z github repository
git - doporučení vše kolem master, dělat feature a hotfix branche, ale přes feature flag rovnou merge do master, pull requesty - po otestování, review - merge do master, release přes novou branch, ale fixy na master a pak cherry pick do release
vs code - font ligature - ze znaků na symboly, např. šipka, cobalt2 - nejlepší pro oči interactive playground - test nových feature ctrl p p - přepínání file ctrl shift p - command palette zen mode - fullscreen code prettier - code styles formating emmet - triky s generovani html apod.. docker, af extension
TS ----------------- použitý ve VS, VS code, atd.. Babel 7 - první TS type checking, pak babel jako emit code Angular, Vue, React webpack - používá TS jako type checking
.net core ------------------ SignaR - je na .net core teď, lighter client, open source specs, je na azure (hub jako controller, registrace v app start, js client) razor class libraries - razor do knihovny, jde pak přepsat, ale přepisuje se celý file.. https on by defaut - má default certifikát gdpr - cookies, v identity sablone testing - referencuje se mvc app, a volá se přímo to přes http httpClientFactory - pro všechny httpClient, faster templaty pro SPA
SignalR ------------------- registrace přes routes v Configure methods - app start MapHub - routa přímo na Hub js knihovna není jQuery protokol - json, message něco binary stream - přes channel writer v csharp, v connection.stream, subscribe - callback signalR service - jen load balancing connection? přeposilá do aplikace, klient jde webové requesty do app, signalR jde na balancer, ten přeposílá do aplikace Hub - na serveru, kam se pripojuje klient, v tom je Client.All.Send atd, + registrace v Start Na clientovi: connection...build() start, connection.on něco... connection.Send.. Scaling: více aplikací potřebuje společný backplane (redis) nebo nyní Azure https://channel9.msdn.com/Shows/On-NET/Going-real-time-with-SignalR-Core-and-the-Azure-SignalR-Service
-------------- ML.net - machine learning framework blazer - .net razor běží v prohlížeči client side - web asembly/asm.js, podporuje .net standart
Angular elemets --------------- přes ES6 jde v domu definovat nové elementy, pak se chovají jako normální dom, jde navázat na angular
Azure ------------------ azure má svoje cli na správu, je extension do vs code
Kubernetes
Dev Spaces - ? něco s microservices, když chci debugovat jednu microservice, abych nemusel vše ostatní rozjíždět lokálně
Cosmos DB - MRU units- pamět + cpu k provedení dotazu - má nějaký interní formát A(tom)R(ecored)Sequence - nad tím ty různá api - správné určení partition key - ???? - má spoustu requestOptions apod, RequestCharge - kolik zabral dotaz - logovat
app service - hosting app function app - event driven execution, serverless azure storage - blobs, table, queues, files cosmos DB - db application insights - logy event grid - manage events logic apps - design workflow durable functions - preview na build 2018 v js, GA pro csharp, na co - fce spouští jinou nebo více a chce zpátky výsledek, event agregations, async, je definované v kódu, v logic apps je to UI, spuštění podobné jako functions z url například trik: tasky dávat do listu a pak await Task.WhenAll functions chaining - AF přes queue, durable - orchestrator functions - trigger by events pozn: pro v2 runtime ve VS nutné nuget extension pro různé binding jde publishnout i settings samostatně, public static - sdílení v instanci - přes více execution, v1 vs v2 - v1 jen net a jeden host, v2- .net core a lang services (přes nějaký protokol komunikuje s hostem - net.core) serverless - bez infrastruktury, event driven, microbilling - platí se za operace (fce nebo kontejnery) -serverless = functions, logic apps, event grid cloudevents - normalizace eventu přes prostředí, json formát, podporuje event grid signal R service arm - azure resource manager, teoreticky deklarativni konfigurace celeho prostredi v azure, má to api moznosti delploy - portal, cli, vs ts online
0 notes
brondra · 6 years
Text
JS test
x = "" && 0 && 'abcd' empty string
[0, 1, 2, 3, 4].filter(Boolean).filter(x => x % 2 === 1).map(x => x * 2) [0, 2, 6] jen 2 a 6
const a = [2, 1, 5]; const b = a.sort((x, y) => x - y) 2,1,5 125 oboje 1 2 5
x = "" || 0 || 'abcd' empty abcd spravne
0/0 NaN
#js
0 notes
brondra · 6 years
Text
Connect 2017
Visual Studio Live Share - VS + VS code - colaborative programing - propojení IDE - share editace, debug - Cosmos DB - no sql db .net embeding - embed .net kod do objective c apod pro mobile app, volání z androida i ios - visual studio app center - ci/cd sjednocení - deploy, test, distribute, crash, analytics, push
Kubernetes - něco s konteinery/microservice zase - simulace prostředí se všemi microservice, přes containery v azure - normálně je aplikace rozdělená do hodně microservices - více app v různých tech, je problém lokálně rozjet, ve VS je AKC connected enviroment, které to vyřeší přes azure debug se nějak se nějak propojí s azure, kubernetes udělá i proxy pro url cally
VSTS - používá MS pro win i vsts DevOps - v azure je new resource, azure devops projekt - nastaví se jaký projekt, jazyk, platforma - vytvoří vsts projekt, ci build - checkin = build, cd - nasazování, release management, u buildů jsou různá fáze - tasky, jde vytvořit vlastní přes powershell/nodejs release plan - vytvoří se prostředi, podmínky za jakých to postupuje, zase serie tasku https://channel9.msdn.com/Events/Connect/2017/B103 - cool, ale overkill trochu, hodně plánování
VS - git merge tagy - rozpona v editoru - ctrl T - go to all, zkratky f - file apod - ctrl a kliknuti - go to definition - nove code fixy - null check apod - code sugestion - podle pravidel coding styles - .editorconfig - directory level - extension pro code sugestions.. - smart variable names sugestions
VScode - multiroot workspace - více složek otevřených, uložení nastavení - vylepšení práce se source control - zvýraznění v editoru inline diff i v solution - regiony, refaktoring - import v js, extract method js
TS - string enums - enum Color Red = "Red".. - week type checking - nyní blíž csharp objekty musí mít alespoň nějaký stejný property
react, ionic, cordova - mobilní aplikace 100procent code reuse live player - VS propojení s mobilem pro dev, xamarin azure functions - mále fce v azure, není potřeba server, zajímavé prozkoumat VS .net core + docker support více devops optimalizace prý
https://channel9.msdn.com/Events/Connect/2017/T122 Csharp 7.1 - tuples - select (jmeno: hodnot, jmeno2: hodnota) - async Task main - zkrácené default Csharp 7.2 - struct - pass by value, lepší pro paměť ref, povoleno pro extension metody aby první bylo ref - ref jde změnit, místo toho nový parametr IN - fce(in this Trida neco) - neco je readonly v metodě - ref může být i v returnu, ale když nechceme změnit tak public static ref readonly Csharp 8 - nullable reference types - string?, nakonec přiznak kompileru?
Span https://channel9.msdn.com/Events/Connect/2017/T125 na stack, blbě vysvětlený - mnohem lepší http://adamsitnik.com/Span/ - je to jednoduchý hodnotový typ, zajišťuje správnou manipulaci s pamětí a typy, něco podobného jako pole, velký bonus na výkonu - paměť v .net - stack (malé do 1MB, per fce), unmanaged - bez GC specialni api, managed - new, GC
.net 4.7.1 - net standart 2.0 - configuration builder - inject konfigurace do ConfiguraionManager z external zdrojů, např enviroment variables, přidání sekce do web.configu, a configbuilders tag, naše třída, která rozšiřuje konfiguraci, u např appSettings pak povolit dany builder
modernizace aplikace - winforms hdpi, docker/kontejner, azure - windows compatibility pack for .net core - vrátí chybějící api v core pro windows - drawing, registry.. - nuget, je extension pro analýzu co nepujde na linuxu - trik MVC - img source je akce Home/GetImage, vrací File(byte array, content type) - nuget snapshotcollector - poznamená info o vyjímce - jde stáhnout do VS
Microservices https://channel9.msdn.com/Events/Connect/2017/T116 packages - dll/exe nebo odkaz na kontejner config packages - dohromady - service package - nasadi se na nody umí balancování podle kapacity, automaticky, u stateless
docker - mam aplikaci a image (treba win s net) - misto popisu jak nasadit aplikaci, docker stáhne image a rozběhne aplikaci podle napsané konfigurace kubernetes - mam hodne aplikaci v dockeru - microservice, potřebuje je nasadit na vice node, load balancovat, a debugovat jako bych je měl lokalne - orchestrator
Sql Operation Studio - podobné VS code, snaží se pomoci s sql projekty - go to definition, script, statistiky, sledování dotazů
0 notes
brondra · 6 years
Text
React learning
import defaultExport from "module-name"; - tohle funguje když mám export default, je jedno jak se to default jmenuje při exportu
import { export } from "module-name"; - tohle když mám export { Jedna, Dva }, musí se to jmenovat stejně jako při exportu
když mám from složka - tak to hledá index.js, když dám from soubor tak hledá v něm tj. indexem se zařídí, že se oddělí název
Javascript uses a pass by value strategy for primitives but uses a call by sharing for objects. Call by sharing is largely similar to pass by reference in that the function is able to modify the same mutable object but unlike pass by reference isn't able to assign directly over it
exports = module.exports = {} - jakoby na začátku file module.exports = { Jedna, Dva } a var t = require('module..') pak t.Jedna, t.Dva... - je to starší zápis toho výše export/import
React props: komponenta má jen ty props co tam pošlu, když chci i ostatní tak ...this.props - a na prvním místě nebo se to ne/přepíše
.map - jako select v linq, na kazdem prvku pole spusti fci a vrati pole .reduce - to same, ale vysledek vrati jako argument dalsi funkci, vysledek je jedna hodnota pole.reduce(function(accumulator, prvek pole) { ... }, default) .filter - jako where v linq
construktor - ještě nemám this.props, ale můžou být parameterem
vypisovani state vs props - do props Dva dam state z Jedna, ve Dva vypisuju z props, v Jedna ze state, při update se překresli ve dva i v jedna trik pokud je potřeba this v handleru - this.handleClick = this.handleClick.bind(this);
this.handleClick = this.handleClick.bind(this); - lepší nedělat v render, ale v konstruktoru protože jinak se provede při každém render - perf
logicky je UI immutable, při změně se vytvoří nové, ale technicky react propíše do DOM jen změny
props neměním uvnitř komponenty, state je naopak privatni v komponente componentDidMount - ve chvili kdy se vyrenderuje do dom, teoreticky stejné jako construktor? state - nemodifikovat přímo, je async - v případě zavilosti používat variantu s fcí, updaty se merguji - stačí jednu propertu v setState nastavit A component may choose to pass its state down as props to its child components do eventu jde přidat eventArgs a preventDefault klasicky v render return null nevykresli nic má v sobě zabudovanou ochranu proti více odeslání - throttle, debounce formy - proste vzdy handler s eventem a name a setState, nebo Formik práce se state - dvě komplnenty potřebují sdílet stav, tak se vytáhne do společného předka, a pošle se tam jako props, a zároveň delegát na onChange funkci setState  spouští render - nejdůležitější idea, všechny změny přes setState, vše je jen stav aplikace - single source of truth nestování komponent - jde out of box, vypíše se props.children anebo prostě v props - zápis v chlupatých závorkách dědičnost - v reactu se nepoužívá, vše kompozice přes props react fiber - reimplmentace core reactu code spliting - normálně vše do jednoho bundle, buď divné zápisu nebo react.lazy, nejlépe asi podle route React.createContext - kontext, který se nepředává přes props, použití obalené v MyContext.Provider a v childred static ct = ContextName a this.context, teoreticky pro user, theme, lang... error boundary - jakoby catch pro chyby při renderování, musí se definovat  static getDerivedStateFromError() or componentDidCatch(), nefunguje na eventy - na ty obyčejné try/catch React.Fragment - jen seskupuje, v return jde i list, ale toto se zabalí bez extra divu napr. názvy začínají velkým písmenem dekonstruct - const { kind, ...other } = props; Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component. event bubling - při click na child se spustí event na child, pak na parentu až k dokumentu event capturing - naopak - od window až k targetu, ale obyčejně se nepoužívá, addEventListener bez třetího atributu jsx - je syntaktic sugar pro ten zapis <Component /> bez toho jde ReactDOM.render.. propTypes - validace props, forma type checkingu (jine - TS, flow), jde i default určit ref - přistup k domu child komponent (focus, animace, 3rd party), this.textInput = React.createRef(); a pak this.textInput.current.focus();, je to jak props, dělám tim něco na child, ale přímo a ne přes props, když je to dom element tak current vrací element, když je to komponenta, tak komponentu.. na co to je? render prop - komponenta má jako prop metodu render, prostě obyčejná metoda která se zavolá v render s nějakým parametrem, aby se tam dalo vykreslit cokoliv a chování zůstalo zapouzdřené v parent komponentě, ale předává parametery do child, je to pattern jen Kdyby se nejmenovalo render ale children, dá se napsat jako podelement prostě, kde bude funkce s parametry HOC - také pattern - higher-order component is a function that takes a component and returns a new component, HOC composes the original component by wrapping it in a container component. A HOC is a pure function with zero side-effects. Trik je v tom, že HOC přidá komponentě do props nějaké další info/funkce
function logProps(WrappedComponent) {  return class extends React.Component {    render()... WrappedComponent ...this.props
jiný zápis
const withStorage = (WrappedComponent) => {  class HOC extends React.Component {
s props const Loading = loadingProp => WrappedComponent => {  return class LoadingHOC extends Component {
----------------------
Foo a = new Foo { Name = "a" }; Foo b = a; b.Name = "b"; Console.WriteLine(a.Name);//pro Foo struct A, pro class B
- Functions, Serverless Compute - Logic Apps, Serverless Workflow - Event Grid, Serverless Events
------------------------ promisy
var promise1 = new Promise(function(resolve, reject) {  setTimeout(function() {    resolve('foo');  }, 300); });
volá vždy resolve nebo reject - v promise v then když se volá return tak podle toho co to je - když promise nebo přímo ta hodnota proto promise.all aby bylo jen then?
0 notes
brondra · 7 years
Text
Git branching model
A successful Git branching model - git-flow nejznámější článek, ale počítá s function freeze, umožňuje spravovat více releasů, fixy na odpovídající branch
Jiný přístup: Platform/enviroment/ENV branching 
http://www.creativebloq.com/web-design/choose-right-git-branching-strategy-121518344 - ok, ale bez feature selection
https://www.deployinc.com/tips-tricks/branching-strategy/ - dobré ale ne úplně ono 
https://www.wearefine.com/mingle/env-branching-with-git/ - nejlepší
Základní pravidla:
- všechen vývoj na feature branch i hotfixi (hotfix může vlastní branch)
- branch pro každé prostředí (stage/uat/prod), nikdy nezmergovat do sebe, nikdy přímo commit sem, ale jen přes merge
0 notes
brondra · 7 years
Link
0 notes
brondra · 7 years
Text
Immutable.JS
- List - klasický list, indexované - zaručené pořadí
- Stack - zásobník, zaručené pořadí
- Map - dictionary, negarantované pořadí, ale pořád stejné
- OrderedMap - jako map ale pořadí podle přidání
- Set - unikátní hodnoty, pořadí nedefinované, ale stále
- OrderedSet - jako set, ale pořadí podle přidání
- Record - jako JS objekt, musí mít inicializované hodnoty
- Seq - jako ienumerable, samo je immutable, řetězí metody map/filter apod.
https://facebook.github.io/immutable-js/
0 notes
brondra · 7 years
Text
Redux
JS knihovna - pro manipulaci se state aplikace
stav aplikace je reprezentovaným jedním objektem, který se mění jen pomocí akcí,modifikace jsou čisté funkce bez side-efektu.
Máme 3 základní objekty: akce - actions, jen js objekt s typem, a dalšími property co jsou potřeba, obvykle máme funkce action creators, reducer - dostane state a akci a podle toho vrátí nový stav - nesmí mofikovat stávající stav, ale vrací nový - Object.assign, musí být čistá funkce, store - spojuje akce a reducery - umí vrátit stav, dispatch a subsribe akcí, je jen jeden v celé aplikaci
obvykle se akce a reducery rozdějí do více souborů, helper combineReducers při inicializaci store
async - nemůže být v reduceru - není pure, řeší se pomocí middleware, udělají se akce pro start, received, error např + se promítne do state nějak, při inicializaci se store přidá middleware thunk - to způsobí, že výsledkem action creatoru nemusí být objekt ale funkce (creator vrací funkci), která má jako parametr metodu dispatch - tu zavolá např na začátku, request start, a pak zavolá ajax a v callbacku znovu dispatch - creator nemusí být pure funkce, takže to může udělat. Jak se udělá ajax je jedno, např nějaký fetch api
Top level použítí store =createStore(reducer, initialState, middleware), reducer je např combineReducers.. a pak store.dispatch(actionCreatror(parametry))
https://redux.js.org
0 notes
brondra · 7 years
Text
dotnetConf 2017
https://channel9.msdn.com/Events/dotnetConf/2017/T314 https://channel9.msdn.com/Events/dotnetConf/2017/K111 - pro nové fce jazyka potřeba občas dotáhnout nuget - object neco... neco is string s; s - Func neco neco = default; - default bez závorek nice - inline methods - ošetření vyjímek před task nebo ienumerable - non nulable types - string! c, v budoucnosti - 7.1 - async main, tuples - promena ?? throw new Exception.. - parametr fce (Exception e = default)
Xamarin - 2 možnosti - backend + různé UI pro platformy, nebo xamarin forms - shared i UI
.net standart - vyšší verze více api, nižší verze více podporovaných platform - pro různé target jde přidávat různé reference, řešení v kódu IFDEF
https://channel9.msdn.com/Events/dotnetConf/2017/T221 EF - mapování na fieldy, dbcontext pool, compiled queries
Fable - fsharp to JS giraffe, suave - knihony pro webserver v fsharp
0 notes
brondra · 7 years
Text
Build 2017
Csharp https://channel9.msdn.com/Events/Build/2017/B8104 7.1 - male vylepseni 7.2 - safe, efficient, lowlevel code tuples - jsou struct immutable, ale properties mutable... tj jde tuple.neco++; ale i tuple = (tuple.neco + 1, ...) async Task Main ValueTask - nealokuje task pro případ, že výsledek už je k dispozici VS - suggestion parameter names dekonstruction (int s, int c) = Neco .. a (int s, int c) Neco vynechani (s, _) .. podrzitko nas nezajima var (s, _) - zkráceně lokální funce void a přiřazuje do r - r se mění, protože to je lokální funkce - closure, jinak asi ne int.parse(s, out var i) VS2017 - git merge v kodu <<<< pozná, enter ve stringu přidá + možná novika: default interface implementation, třeba jedna metoda v interface naimplentovaná, ale jde přepsat v jednotlivých implementujících třídách, něco jako abstraktní, není to vícenásobná dědičnost? je to kvůli jave a xamarinu další možné string?, flow analýza na null ve VS
web forms https://channel9.msdn.com/Events/Build/2017/T6009 async session - důležité v async JS pokud používá session - více requestů pro jedno session id async cache, sql server vylepšení execution step - kod pred konstruktorem stranky configuration builders - různé vylepšení konfigurace - přes variable systemu
visual studio https://channel9.msdn.com/Events/Build/2017/B8083 editor config možná?
.net core 2 https://channel9.msdn.com/Events/Build/2017/B8048 zjednodušení dotnet new web balíček pro vše zjednodušení konfigurace razor pages - jako mvc view, ale nema controller, default Pages/Neco.cshtml localhost/neco jde tam napsat csharp do neceho, :PageModel, zjednodušené mvc, splácané s webforms trochu - tag helpers Azure AD - indentity as service
.net standart https://channel9.msdn.com/Events/Build/2017/B8001 snapshot debuger - misto standartiho breakpointu to udela snapshot, ktery posle do VS, aplikace pokračuje dál - debug in prod
https://channel9.msdn.com/Events/Build/2017/C9R04 prograsive web apps - spoleha na nejmodernější fce prohlížeče, feature detection jako win aplikace, ale napsaná jako web stránka podle dostupných funkcí prostředí má více funkcí aplikace service worker - js file, bezi na pozadi stranky, prijima udalosti stranky
https://channel9.msdn.com/Events/Build/2017/T6051 micro services - male moduly se vsemi vrstvami, vcetne dat - kazda svoje data
https://channel9.msdn.com/Events/Build/2017/B8073 vylepšený JS editor, browser link, lint - extension, debug js ve VS v chrome, js doc - vylepšení intelisence tag helper prerender module - pro js angular misto loading se vykresli serverove library installer - zjednodušené instalování js knihoven, cdn js, nebo filesystem
https://channel9.msdn.com/Events/Build/2017/B8088 typescript - podpora angular, react - tsx - umí i typy, rozumí syntaxi non-nullable types - strict checking v tsconfig, default vse neni null ani undefined, lze povolit string | undefined object literal { kind: neco} pak swithc na kind, v default bude typ never - kontrola že jsme nezapomněli na kind
Bazel - google použivá pro build všeho
Angular2 - vždycky přidá ten template component, závislosti přes DI
Aurelia - client app platform, web, desktop, mobile, TS, modulární, na konvence, standarty, rychlost, normální class v js, ve view html v template, value.bind, submit.trigger
EF core https://channel9.msdn.com/Events/Build/2017/B8050 mapování na fieldy, automaticke doplnění do dotazu v OnModelCreating nebo override saveChanges context pooling - context per request pres pool
GIT https://channel9.msdn.com/Events/Build/2017/P4101 když by na repository pracovalo více lidí, nešlo by vlastně pushnout protože by pořád přibývali commity - řešení pull request - merge se udělá na serveru používá se jako branch per feature to vypadá, některé větve nás nezajímají - limited branches - coming soon velké soubory - přes git-LFS - ukazatel na file, jinak se stahují všechny commity a verze souboru velké repository - podobný princip, jen ukazatele, při práci se skutečně stáhne
React Native https://channel9.msdn.com/Events/Build/2017/P4080 platformy - ios, android, win, jazyky - js, ts, es6 klasické react komponenty class, render(), <view> - přeloží se na view podle platformy - tj nativní UI potřeba přibalit js engine nebo chakracore pro win podobné jako xamarin, ale je v csharpu psaný, react je v Js, cordova - jiné není native, jen tak vypadá starting file - index.android.js - ruzne pro platformy, ale odkazují na stejný js App.js code push - service ms pro updaty, při startup se zeptáme na update visual studio mobile center - devops pro mobile
0 notes
brondra · 7 years
Text
VS launch 2017
live unit testing - enterprise open folder new exception helper, run to click lazy loading solution installer do vice casti zapis notes = notes ?? thrown new exception.. vylepšený intelisence - zvýraznovani, typy ctrl T - go to all - go to s ruznym hledanim např metoda, property... code suggestions/convention - editor config - obecny config editoru move to new file - class find all references obarvene
csproj - zjednodušené kvuli core .net core tooling místo project.json souboru, migrace je ve VS2017 z původních csproj ve VS jde editovat csproj primo umi podobne veci jako project.json - vsechny soubory auto include, package pridanim restoruje apod
microservices - misto jedne app data/bll/ui, více jednotlivých service které mají svoje dal/bll
xamarin - spousta věcí
dev ops - continuous integration - automatizace vseho od checkinu po release/telemetrie trusted, scalable - velke projekty redgate data tools většina v enterprise verzi automate everything you can (not everything)
VS17 - start debugging in chrome měli by fungovat breakpointy v JS roaming extension - extension prenasene jako nastaveni na ostatni pc
Csharp7 -binary literals 0b101001, digit separators - zapis cisel -tuples - vice navratovych hodnot, pojmenovani vs item1/2 -local functions - jako js -patter matching neco is int i, switch on anything, case int i, case string i, case..when
VS2017 - web - nový engine pro JS editor, language service - úplně nové postavené na TS, lepší intelisence - pokud jen js, tak .d.ts stahuje na pozadi podle knihoven build in ESLint, s configem, může být na pozadí nebo v projektu ten má prioritu debug JS ve VS v chrome - používá source map - Vue JS - .vue file, v- u tagu, nějaká nová knihovna - jsdoc podpora, vcetne formatu - podpora pro react, class ktera dedi z react.component, konstruktor, render v tom to pseudohtml
Docker - u projektu add docker support pridani nejaky ten konfiguracni soubor jinak je to vlastne image v cloudu a jeho zmeny, pri deploy se spoji vs umi run, debug, jakoby vzdalene..
continuos integration nejaky plugin, projekt do gitu - configure CI build, release definitions, app service - aplikace v azure po push do git se zbuildi a pripadne udela release nebo build fail notification konfigurace-varianta v tfs online nebo pres extension ve VS infrastructure as code - co musi byt v azure popis, je to jako projekt template ve VS, prida se do solution
0 notes
brondra · 7 years
Text
Gulp ve VS
gulpfile a package.json musí být v rootu projektu - pokud je ve složce vytvořit tam projekt další
pokud nefunguje ES6 - přidat do external tools cestu k nodejs a presunout na prvni misto
pres cmd: node install -g gulp aby znalo gulp
0 notes
brondra · 8 years
Text
PS verze .netu
(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’  -Name Release).Release
0 notes
brondra · 8 years
Text
Learning Angular 2
https://channel9.msdn.com/Shows/webdevshow/2
na pozadí má virtuální dom, na něm změny, pak angular updatne rychle jen ten reálny, využívá na to zone.js nebo to rdx? komponenty - vše se dělí do stromu komponent, rodč/potomek - události od listů ke kořenu základní části: tsconfig - TS konfigurace, packages.json - npm konfigurace, npm start je vlastně příkaz jako dotnet run neco- kde start je v packages.json definovaný příkaz - build, watch, serve, npm install - stazení závislostí - ang jich má několik, app.component - root komponenta - třída s dekoratorem  - selektor - css selector, template export class - kde je export je jinde import - tady je v main.js - kde je bootstrap ang - rozběhne aplikaci - tj ang si to celé řídí sám - celé js based aplikace, single page app jinak začátek v index.html kde se nareferencují závislosti ang a system.js což je jako requirejs podobné a přes to se natáhne main.js který spustí ten bootstrap a to ty komponenty, a nakonec je tam ten selektor co je v komponentě v nové verzi se ještě komponenty strkají do modulů
https://channel9.msdn.com/Blogs/semjs/semjs201512Ang
{{neco}} v template - one way databinding, multiline ` v template jde i nějak odkaz na .html imput s value={{fff - one way, two way - [(ng-model)]="neco", NgModel je potřeba importovat a directives v dekoratoru import {neco, neco} from 'angular/angular2' cyklus *ng-for neco of kolekce, * jako direktiva, *ng-if jako KO
https://channel9.msdn.com/Events/Ignite/2016/BRK2193
komponent - kus viditelný - jako view komponenta: moduleId, selektor, templateUrl - hurá struktura: app komponenta, v ní header, footer, content komponenta do class component - tam logika asi VS code - ctrl + kliknout na neco - F12 v komponentě žádná logika, jen view, použité ngOnInit - při startu *ngFor, *ngIf tempates - html s binding, propojení přes templateUrl komponenty - potřeba deklarovat v app.module stylesUrls - nějak sváže styly s tou komponentů v konstruktoru DI komponent + teplate + metadata - základ binding: {{expression}} [property]="expression" (event)="statement" [(ngModel)]="property" - jedine obousmerne, je jako property + event moduly - obsahují komponenty a services, @ngModule třída - použítí lazy loading, security u hlavního modulu: imports - různé jiné moduly, které se budou používat, declarations - komponenty, které tam máme, providers - service do konstruktoru atd, bootstrap - kde začít
0 notes