IT, Technológia kategória bejegyzései

C# verzió inkrementálás .NET Core 2-től

A régebbi, főleg a .NET Framework (4.8-ig bezárólag) használói valószínűleg megjegyezték, hogy a produktum automatikus verziózása egyszerűen megoldható volt a projekt tulajdonságai között az assembly verziót átírni (pl.) 1.0.* formátumra és az utrolsó két szekció automatikusan inkrementálódott (pl. 1.0.xxxx.yyyy).

.NET Core áthidaló megoldás

Na, ez a megoldás a .NET Core 2-től (a hibrid 5.0-t is beleértve) nem, vagy legalábbis nem pont így működik. De erre is van megoldás.

Amivel biztosan működik

.NET Core 2, 3 esetén, valamint a .NET 5.0 framework verziók esetében egészen biztosan működik az alábbi trükk.

Ehhez két fájlt kell módosítani, lehetőleg külső editorral, miközben a Visual Studio-ban az adott projektünk be van zárva.

A projektfájl (.jcsproj)

Ez egy XML fájl lesz, melyben kell lennie egy PropertyGroup csomópontnak, az itt lévő többi tulajdonság változtatása nélkül kell beszúrni a két, alábbi tulajdonságot. Mentsük a fájlt és zárjuk be.


	…
	False
	False
	…

A program class (program.cs)

Azt a program.cs fájl kell még editálnunk, amelyben a Main() metódus található.

Ide szúrjuk be az alábbi sort, az using szekció alá, annak utolsó sorát követő új sorba.

[assembly: System.Reflection.AssemblyVersionAttribute("1.0.*")]

Innentől kezdve minden build esetén inkrementálódik a verziószám utolsó szekciója, az utolsó előtti pedig minden nap fog új kombinációt kapni.

Régi falióra működésre bírása egyszerűen

Néha az ember nem a tényleges értéke miatt ragaszkodik bizonyos dolgokhoz, hanem egyszerűen azért, mert megszokta, megszerette. Ez történt a cirka 25-30 éves IKEA-s faliórával is, aminek történetesen letört a negatív pólusa az elem felől.

Hogy az óra se végezze a süllyesztőben, kapott egy patkolást, méghozzá egy natúr, festetlen gemkapocsból kivágott és meghajtogatott kiegészítéssel.

A bypass műtétet követően már újra ketyeg a vén ketyegő, a kiegészítő érintkező stabil 1,5 V feszültséget szolgáltat az őskövület óraszerkezet felé.

Erről egy rövidke videó:

Elektromos vagy elektronikus?

Meglepően sokan keverik, vannak akik szinonímaként használják, de olyanok is, akik felcserélik az elektronikus és az elektromos fogalmát.

Biztos már sok helyen leírták már, de megpróbálom a két elnevezés közti, nem épp elhanyagolható különbséget és kapcsolatot (mert ilyen is van) közérthetően, egyértelműen és röviden megmagyarázni.

 

Elektromos

Ez volt régebben, talán erről is tudnak többen (csak talán nem tudják, hogy ez az, amire ők gondolnak). Elektromos eszköz, gép, berendezés az, ami elektromos árammal működik. Pl. 220 volttal, 1,5 volttal, 12 volttal, stb.

Ilyen pl: villanykörte, televízió, rádió, mosógép, merülőszivattyú, hűtőszekrény, elektromotor, stb.

 

Elektronikus

Sokkal újabb fogalom, mint az előző, gyakorlatilag a félvezetők feltalálása óta ismert. Elektronikus minden olyan eszköz, berendezés, ami tranzisztort, mikrochipet, mikroprocesszort, vagy bármilyen egyéb félvezetőalapú áramkört tartalmaz.

A legtipikusabb elektronikus eszköz a számítógép, de pl még: mobiltelefon/okostelefon, a legtöbb modern szórakoztatóelektronikai eszköz (a modern televíziótól kezdve a DVD/Blu-Ray lejátszón át a projektorig), az okosotthon elemei, okoseszközök, digitális karórák, a legújabb autók infotainment rendszerei, digitális fényképezőgép vagy kamera, stb.

Elektronikus eszközök

 

A fentiekből kitűnik egy egyirányú igazság:

Minden elektronikus eszköz elektromos, de nem minden elektromos eszköz elektronikus

 

Bízom benne, hogy így sikerül kicsit gyakorlatias, egyszerű és laikusok számára is könnyen értelmezhető különbséget tenni a két modern, összekeverhető, de alapjaiban mást jelentő fogalom között.

Egyszerű világos/sötét téma váltó Powershell segítségével

A Windows 10-ben már régóta elérhető a világos/sötét téma (vagy ahogy a neten találkozni vele: dark mode), csak épp a mindennapokban kicsit kényelmetlen elérni. Ráadásul a Windows 10 frankó, automatikus éjszakai fény módjával (ami a kék fényt csökkenti a monitoron) ellentétben nem időzíthető.

Előbbire tökéletes egy Powershell script, aztán ezt kicsit megspékeljük pár extra kényelmi funkcióval, pl. időzítjük.

Így néz ki a Windows 10 beépített számológépe világos és sötét témában:

Számológép

A Powershell script maga

Az alábbi kódot másoljuk be bármilyen szövegszerkesztőbe, és mentsük el DarkMode.ps1 néven. Ha az egyszerűbb nekünk, akkor erről a GitHub linkről magát a scriptet le is tölthetjük.

##############################################################################
# DARKMODE POWERSHELL SCRIPT
# The easiest way to set dark/light theme or switch between of those
# Prerequisites: PowerShell 5.0 or later
# Version: 1.0
# Author: Iminetsoft
# GitHub: https://github.com/iminet/DarkMode
# License: CreativeCommons (CC BY 4.0)
# Usage: DarkMode.ps1 [status|dark|light|toggle] 
#        (without the optional switches, the toggle command will be performed)
##############################################################################

$regkey = "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionThemesPersonalize"
$property = "AppsUseLightTheme"
$darkvalue = 0
$lightvalue = 1
function  SetDark 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $darkvalue
}

function  SetLight 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $lightvalue
}

function IsDark
{
    if ($(Get-ItemPropertyValue -Path $regkey -Name $property) -eq $darkvalue)
    {
        return $true
    }
    else
    {
        return $false    
    }
}

function Toggle
{
    if (IsDark -eq $true) { SetLight }
    else { SetDark }
}

if ($args.Count -ge 1 -and $args[0] -eq "dark") { SetDark }
elseif ($args.Count -ge 1 -and $args[0] -eq "light") { SetLight }
elseif ($args.Count -ge 1 -and $args[0] -eq "status") { Write-Host $(if (IsDark -eq $true) { "Dark theme" } else { "Light theme" } ) }
=======
##############################################################################
# DARKMODE POWERSHELL SCRIPT
# The easiest way to set dark/light theme or switch between of those
# Prerequisites: PowerShell 5.0 or later
# Version: 1.0
# Author: Iminetsoft
# GitHub: https://github.com/iminet/DarkMode
# License: CreativeCommons (CC BY 4.0)
# Usage: DarkMode.ps1 [status|dark|light|toggle] 
#        (without the optional switches, the toggle command will be performed)
##############################################################################

$regkey = "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionThemesPersonalize"
$property = "AppsUseLightTheme"
$darkvalue = 0
$lightvalue = 1
function  SetDark 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $darkvalue
}

function  SetLight 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $lightvalue
}

function IsDark
{
    if ($(Get-ItemPropertyValue -Path $regkey -Name $property) -eq $darkvalue)
    {
        return $true
    }
    else
    {
        return $false    
    }
}

function Toggle
{
    if (IsDark -eq $true) { SetLight }
    else { SetDark }
}

if ($args.Count -ge 1 -and $args[0] -eq "dark") { SetDark }
elseif ($args.Count -ge 1 -and $args[0] -eq "light") { SetLight }
elseif ($args.Count -ge 1 -and $args[0] -eq "status") { Write-Host $(if (IsDark -eq $true) { "Dark theme" } else { "Light theme" } ) }
>>>>>>> 345d11e52f667be4e06c990f35c19b3143d8e82c
else { Toggle }

A script használata

Használat előtt feltétlenül tegyük a letöltött/elmentett fájlt a saját Dokumentumok mappánkba.

Mivel Powershellről van szó, nyilvánvaló, hogy ehhez szükségünk van a Powershellre. Indítsuk el úgy, hogy balra lent megnyomjuk a Start menüt, majd elkezdjük gépelni, hogy powershell. Amikor felbukkan a jellegzetes kék (újabb verziónál fekete) hátterű ikon, nyomjuk meg azt.

Ha feltárult elénk a Powershell ablaka, akkor menjünk is be a Dokumentumok mappánkba, ahol a script is található:

cd ([environment]::getfolderpath("mydocuments")

Próbaképp ellenőrizzük, hogy minden működik-e:

DarkMode.ps1 status

Ha a fenti parancs begépelése után a program visszajelzése az, hogy "Light theme" (vagy nyilván, ha már most sötét módot haszálunk, akkor "Dark theme"), akkor minden jól működik.

Próbáljuk ki a téma váltást:

DarkMode.ps1 toggle

Ezt a parancsot bármennyiszer kiadhatjuk, hatása az, hogy ellenkezőjére vált a téma: világosból sötét, sötétből világos lesz.

A toggle helyett használhatjuk a light vagy a dark kapcsolót is, ebben az esetben a kívánttal megegyező téma esetén nem fog történni semmi. Ha világos témánál kiadjuk azt, hogy light, akkor nem fogunk változást észrevenni.

Powershell

Időzített témázás

Ez eddig tök jó, de csak keveset nyertünk vele, hisz ugyanúgy kézzel kell kiadni a parancsot. Most jön az igazi móka, automatizáljuk a fent megismert parancsokat. Ehhez segítségünkre lesz a Windowsba beépített Feladatütemező (Task scheduler).

Feladatütemező indítása

Indítsuk el úgy, hogy a Start menüt megnyitva elkezdjük gépelni azt, hogy Feladatütemező. Amikor megjelenik találatként az ikonja, kattintsunk rá.

Aki nem ismerné még ezt a remek programot, az elsőre megijedhet, annyi minden van benne, már alapesetben is. De mi most nem fogjuk ezt megismerni, nem célunk.

Feladat létrehozása

A felső menü Művelet menüpontját lenyitva válasszuk a Feladat létrehozása alpontot. Kapunk egy űrlapot, több füllel. Nem lesz mindenre szükségünk.

Az Általános lapon csak a nevet töltsük ki. Ez bármi lehet, de azért legyen egyértelmű, mit is csinál ez a feladat. Legyen pl. Automatikus téma - világos a neve.

Feladatütemező

Az Indítás fülön Kattintsunk az Új gombra. Itt legyen kiválasztva a Naponta, a napot hagyjuk alapértelmezetten (ez a mai dátum lesz), az időt pedig állítsuk arra a reggeli időpontra, amikor világos témára váltanánk. Pl. 6:00. Kattintsunk az Ok gombra.

Feladatütemező

A Műveletek fül kicsit érdekesebb, itt adjuk meg, hogy pontosan mit is csináljon az ütemező, ha elérkezett a fentebb kiválasztott időpont. Az Új művelet gomb megnyomása után a Program/Parancsfájl alatti mezőbe írjuk be, hogy powershell.

Az alatta lévő (Argumentumok hozzáadása) mezőbe pedig:

-Command "& 'C:Users[FELHASZNÁLÓ-]DokumentumokDarkMode.ps1' light"

Feladatütemező

Figyelem, itt a [FELHASZNÁLÓ-] helyére írjuk be a saját felhasználói nevünket. A teszteléskor használt Powershell ablakban ezt pontosan láthatjuk is. De ha mégse, akkor adjuk ki az alábbi parancsot egy üres Powershell ablakban, és másoljuk onnan ki:

[environment]::getfolderpath("mydocuments")

Kattintunk az Ok gombra, majd a Feladat létrehozása ablakban is az Ok gombra.

Az esti sötét módhoz csinájuk végig a fentieket, az alábbi módosításokkal:

  • Az ütemezési időpont legyen valamilyen esti, pl. 19:30
  • A feladat nevében legyen benne a "sötét", pl. Automatikus téma - sötét
  • az Argumentum mezőben a light helyett dark szerepeljen

Végeredmény, konklúzió

És ennyi... Ezek után reggel és este is lefut a megfelelő parancs. A dolog szépséghibája, hogy futáskor egy pillanatra felbukkan a Powershell ablaka, majd el is tűnik. Később kiegészítjük a scriptet, hogy abszolút a háttérben fusson, felvillanás nélkül.

Sötét téma CSS-ben

Ma már a legtöbb eszközünk (Windows 10, Android, iOS) képes arra, hogy az éjszaka érkeztével úgynevezett dark mode-ra (sötét téma) váltson, ezt egy sor alkalmazás, köztük a böngészők is támogatják, ha a rendszerünkből is a legfrissebbet használjuk.

Talán már van két éve is, hogy a webprogramozóknak kecsegtető CSS megoldás is elérhető, persze nem mindenáron.

A reszponzív, a megjelenítőhöz igazodó, mobilokon is tökéletesen használható weboldalaknál már ismerős a media query, ezzel lehet ugyanis a képernyőhöz, vagy épp a nyomtatott papírhoz igazítani a megjelenést. Ennek segítségével lehet a sötét módot is használatba venni:

@media (prefers-color-scheme: dark)
{ // rules in here will only be applied if the user's OS is in dark mode! }

Ahogy a fenti példakód is mutatja, az így létrehozott blokkba kerülnek a sötét tartalmi elemekre vonatkozó módosítások. Tehát itt azokat a szelektorokat használhatjuk, amikre a világostól eltérő témát használni akarjuk érvényre juttatni.

Természetesen fordítva is működik, ha a sötét az alapértelmezett témánk, de világosra is válthat a webes app.

// Default body in dark
body
{
background-color: black;
color: white;
}

// Changes if the theme switched to light
@media screen and (prefers-color-scheme: light)
{
body
{
background-color: white;
color: black;
}
}

A dolog nem újkeletű, de ahogy látom, térnyerésére még mindig várni kell.

A böngészőtámogatottsághoz hozzátartozik, hogy az elterjedt Firefox, Edge, Opera, Safari, Chrome nagyágyúk legfrissebb változatai már egészen biztosan támogatják az új media query-t, de érdemes minél több böngészővel tesztelni. A régebbi verziók egészen biztosan nem tudnak mint kezdeni az új funkcióval, de a jó hír, hogy ez esetben semmi sem történik. Nem lesz használhatatlan az oldal, "csupán" semmi nem változik a sötét téma esetén.