Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Hozzászólások

(#9251) martonx válasza zsolti_20 (#9250) üzenetére


martonx
veterán

Nézd, amíg nem mented el a file-t, addig szerencsétlen program nyilván csak az utolsó mentett állapotot fogja látni.

Egyébként nem tudom mit szeretnél, de valahogy háttal ülsz a lovon. Egyáltlán miért excel, és miért konzol app? Ha mindenképpen excel, és excelen belüli mentés nélküli cella változásokra akarsz reagálni, akkor arra az excel makró való.

De ha már mindenképpen ragaszkodsz ehhez az elcseszett felálláshoz, akkor ott a Visual Studio Tools for Office és az Excel.Application.SheetChange event, amire C#-ban fel tudsz iratkozni.

Én kérek elnézést!

(#9252) zsolti_20 válasza martonx (#9251) üzenetére


zsolti_20
senior tag

Az excel automentés makrót már próbáltam. Sajnos túl sok idő amíg elmenti és kiolvassa a cella tartalmát, és ezt később még ki is kell küldenem soros porton.

(#9253) joysefke


joysefke
veterán
LOGOUT blog

Szeretném használni a személyes fejlesztési keretemet könyvvásárlásra. (Pluralsightom már van)

-(1) ASP Netcore.
Itt a Pro asp net core 2-t olvastam Adam Freeman-től pár éve, az anno nekem nagyon hasznos volt, de ahogy néztem nem nagyon újítja fel a példaprojektjeit, tehát szeretnék mást, most valami advancedebbet.

-(2) EF Core, Adatbázis, adatmodellezés témákhoz az aktuálisak közül melyek a legjobb könyvek?

-(3) Blazor / webassembly van már annyira stabil, hogy megérje kicsit beleásnom magam?
Ez utóbbi max érintőlegesen érdekel, de valamire el kell költeni a pénzt :)

[ Szerkesztve ]

(#9254) martonx válasza joysefke (#9253) üzenetére


martonx
veterán

Évek óta semmire nem költöm el a keretemet :D A kollégák meg full szar konferenciákra járnak csak azért, mert 3 nap szabadság, és végig lehet enni-inni, és legalább a keretüket is elköltik.

Én kérek elnézést!

(#9255) joysefke válasza martonx (#9254) üzenetére


joysefke
veterán
LOGOUT blog

Van pár szerző akiktől sokat tanultam, tőlük megvetetem a legújabb kiadást, a többi meg nyitott. Üzleti utazgatást én már megutáltam :)

(#9256) zsolti_20 válasza martonx (#9251) üzenetére


zsolti_20
senior tag

Sajnos nem találtam még most sem megoldást hogy tudnám kiolvasni a cella tartalmát mentés nélkül. A gond az, hogy ez változik minden 0.5mp-ben. Így ha a mentést még bele rakom VBA scriptben akkor pár érték kimarad.
Az excelre viszont szükségem van, mert csak ezzel tud kommunikálni egy másik script.

(#9257) martonx válasza zsolti_20 (#9256) üzenetére


martonx
veterán

Excel makro mindent IS tud. Ha a mentés ilyen gázos, akkor ne mentsd. Csak simán kapd el a cell változást, és hívd meg belőle a C# konzol appot. Persze ekkor meg erősen kérdéses, hogy minek a C# konzol app. :D

Illetve leírtam a tisztán C# megoldást is: "De ha már mindenképpen ragaszkodsz ehhez az elcseszett felálláshoz, akkor ott a Visual Studio Tools for Office és az Excel.Application.SheetChange event, amire C#-ban fel tudsz iratkozni."

Én kérek elnézést!

(#9258) martonx válasza zsolti_20 (#9256) üzenetére


martonx
veterán

Erre gondoltam:

Azaz ez ilyen egyszerű. Nem kell mentegetni semmit. Majd maga az excel reagál, és megcsinálja, amit kell. Viszont ez már nem C# topik.

Én kérek elnézést!

(#9259) zsolti_20 válasza martonx (#9258) üzenetére


zsolti_20
senior tag

Hmm ez eleg jo megoldasnak tunik. Szuksegem van egy c# programra ami kikuldi soros porton a cella tartalmat, mert az excel vba minden kuldesnel felepiti a sorosport kapcsolatot ami kb 1mp-et vesz igenybe.
Viszont nyitva tudom tartani vele a portot a c# szamara ami remephetoleg nem kivanja megnyitni ujra a kapcsolatot igy lentebb tudom tolni kicsit ezt a kesleltetest.

(#9260) cigam


cigam
félisten

Az ablak Title szövegében szeretném kiírni a verziószámot. Itt írnak egy megoldásról , de mindég 1.0.0.0-át ír ki. A project Properties szerint a a Publish version: 1.0.0.7
Az XAML-be ez van:
Title="{Binding WindowTitle, RelativeSource={RelativeSource Mode=Self}}"
A kódban pedig
public string WindowTitle {
get {
Version version = Assembly.GetExecutingAssembly().GetName().Version;
return "MyTitle v" + version; }
}

[ Szerkesztve ]

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#9261) rgeorge


rgeorge
addikt

És mi szerepel az AssemblyInfo.cs-ben?

Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."

(#9262) cigam válasza rgeorge (#9261) üzenetére


cigam
félisten

Jogos! Ott 1.0.0.0 szerepel. Vagyis a program által kezelt, és hogy én mit adok meg neki két különböző dolog?
A kérdésből is látszik mennyire vagyok képben :B

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#9263) cigam


cigam
félisten

Egy új probléma lépett fel. Létrehozok egy időzítőt, ami 10 percenként meghívja az újrabeolvasó rutint.
    public partial class MainWindow : Window
    {

        public MainWindow()
        {
            InitializeComponent();
            
            // A program indulásakor beolvassa a táblázatot
            Read();
        // 10 percenként újra beolvassa
        DispatcherTimer dispatcherTimer = new DispatcherTimer();
        dispatcherTimer.Tick += new EventHandler(Reload);
        dispatcherTimer.Interval = new TimeSpan(0, 10, 0);
        dispatcherTimer.Start();
        }

Viszont nem tudom leállítani(elérni) egy másik függvényből? Mit csinálok rosszul?

[ Szerkesztve ]

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#9264) Alexios válasza cigam (#9263) üzenetére


Alexios
veterán

Ne a konstruktorban deklaráld, hanem mint osztály változó, a függvényben létrehozott változók csak a függvényen belül érthetőek el

[ Szerkesztve ]

(#9265) cigam válasza Alexios (#9264) üzenetére


cigam
félisten

Köszi a gyors választ! Én is gondoltam már rá hogy rossz helyen van, de én még ZX81-en BASIC-en tanultam, ez a modern esemény alapú OOP elég ködös. Magyarul hova/hogyan tegyem át?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#9266) Keem1 válasza cigam (#9265) üzenetére


Keem1
addikt

public partial class MainWindow : Window
{
DispatcherTimer dispatcherTimer = new DispatcherTimer();

public MainWindow()
{
InitializeComponent();

// A program indulásakor beolvassa a táblázatot
Read();
// 10 percenként újra beolvassa
dispatcherTimer.Tick += new EventHandler(Reload);
dispatcherTimer.Interval = new TimeSpan(0, 10, 0);
dispatcherTimer.Start();
}

(#9267) cigam válasza Keem1 (#9266) üzenetére


cigam
félisten

Hálásan köszönöm!

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#9268) harylmu válasza Keem1 (#9266) üzenetére


harylmu
őstag

Btw, C# 9-ben már ezt is lehet majd, szóismétléseket megkerülvén:
DispatcherTimer dispatcherTimer = new();

[ Szerkesztve ]

(#9269) Keem1 válasza harylmu (#9268) üzenetére


Keem1
addikt

Wow, és még valaki engem akart a c#-ról lebeszélni hogy öreg, elavult és nem fejlődik.
Dehogynem :C

(#9270) harylmu válasza Keem1 (#9269) üzenetére


harylmu
őstag

TypeScript-tel karöltve szerintem az egyik leggyorsabban fejlődő nyelv. Kiváncsi vagyok, aki az ellenkezőjét állítja mivel támasztaná alá.

[ Szerkesztve ]

(#9271) Keem1 válasza harylmu (#9270) üzenetére


Keem1
addikt

Csak annyival hogy most mindenütt a Python a nyerő.

(#9272) tboy93 válasza Keem1 (#9271) üzenetére


tboy93
nagyúr

Hat nem tudom, itthon annyira sok pythonos melo nem jön szembe.

(#9273) Keem1 válasza tboy93 (#9272) üzenetére


Keem1
addikt

Jó, én nem vagyok programozó, de a jelenlegi és az előző munkahelyemen is csinálgattam munkamegkönnyítő toolokat, mindegyik esetben C#-ban írtam őket. Itt most a jelenlegi cégnél (egy amerikai nagyvállalat) mindennél jobban preferálják a Pythont. Vannak kollégák, akik ismerik a nyelvet, így a toolokat most ők fejlesztik. A céges belső policy egyre jobban tiltja/üldözi a compiled exéket.

(#9274) martonx válasza Keem1 (#9271) üzenetére


martonx
veterán

A Python korunk PHP-je. Minden hülye ebben tákol mostanában. Ettől még mint nyelv, se a PHP-vel, se a Pythonnal nincs bajom, csak valahogy ezek a script nyelvek vonzzák a kóklereket.

Én kérek elnézést!

(#9275) joysefke válasza Keem1 (#9273) üzenetére


joysefke
veterán
LOGOUT blog

Mi a baj a binárisokkal? Digitálisan alá lehet őket írni.

[ Szerkesztve ]

(#9276) harylmu


harylmu
őstag

En is dotnet melobol mentem at Python-ba tavaly. (Mondjuk en nem nagyon nezem a hasznalt nyelveket munkahelyvaltasnal, nekem tok mindegy. :) ) A tapasztalatom az igy masfel ev utan, hogy kva szar. :D Scriptek irasara, meg data science-re egyebkent nagyon szuper, de tipusok hianyaban remalom egy 3 ezer soros webapp-ot fenntartani (raadasul Python 2-est). A masik baj vele, hogy mocsok lassu - fika loadra 30-40 instancet kell fenntartani, Amazon rajtunk gazdagszik meg.

(#9277) Keem1 válasza joysefke (#9275) üzenetére


Keem1
addikt

Alapvetően nincs baj, de mostanság az a módi, hogy mielőtt a céges "szoftverboltba" bekerülnének ezek, a részlegünk egyik managere részéről átnézésre kerülnek a kódok (nem programozók), és csak ha jóvá hagyták, akkor mehetnek fel. Már eleve a rendszer úgy működik az utóbbi időben, hogy .py és hasonló (php, sh, ps1, stb) fájlokat fogad el, .exe-t nem. Bocs, de, elfogad mást is, de utólagos check jön, mielőtt a többi team membernek elérhetővé válnak. És azon a manuális check-en nem mennek át a binárisok.

[ Szerkesztve ]

(#9278) martonx válasza harylmu (#9276) üzenetére


martonx
veterán

Nálunk a cégnél mostanában kezdtek a C# mellé Pythonos Web Api-k bejönni. Egészen elképesztően kókány szarok a kódjaik (de legalább lassúak is), az Asp.Net Core-al összevetve.
Pedig én pl. a PHP-t kimondottan szeretem, Pythont is magamtól raktam a gépemre, hogy eljátsszak vele, azaz nem vagyok az a fanboy típus.
Szerintem mint nyelv, semmi gond nincs a gyengén típusossággal, tök jó a PHP, Python. Kis egyszerű konzol appokat, web api-kat összedobni bennük, data science-kedni (ami szintén nem programozás, maximum egy kis scriptelés), megtanulni programozni tök jók. Viszont komolyabb alkalmazásokat csak bolondok írnak ezekben.

Én kérek elnézést!

(#9279) Keem1 válasza martonx (#9278) üzenetére


Keem1
addikt

Nyilván az is a nagy előnye, hogy baromi elterjedt. Szerintem Windowson kívül ott van minden rendszeren preinstalled. Pl. a Pi-hez "tartozó" Raspbianon is out-of-the box ott volt a Python.

Ugyan Pi-re simán feldobtam a Mono-t, még package managerrel is simán megy a saját appom, de én informatikus vagyok, nem hiszem hogy egy mezei usernek ez menne bármilyen Linuxon.

Uppsz, sorry, ez nem válasz akart lenni :B

[ Szerkesztve ]

(#9280) Alexios válasza Keem1 (#9279) üzenetére


Alexios
veterán

.net core-al is lehet már self contained appokat csinálni, nem kell telepíteni hozzá sehonnan semmit :)

Szerintem a python előnye az egyszerűsége, viszonylag könnyen össze lehet dobni hasznos dolgokat, a futtatókörnyezet jó eséllyel valamiért tényleg fel van telepítve.

(#9281) Keem1 válasza Alexios (#9280) üzenetére


Keem1
addikt

Huhh, komolyan? :Y
Na ezt ki kell próbáljam, és egy biztos érv a jó öreg .NET 4.5-tel szemben a .Net Core mellett.

(#9282) fatal` válasza martonx (#9278) üzenetére


fatal`
titán

Az igazán bolondok NodeJS-t használnak :D

(#9283) joysefke válasza Keem1 (#9277) üzenetére


joysefke
veterán
LOGOUT blog

és ezek a sriptek amelyek átmennek ezen a security checken, ezek digitálisan alá vannak írva és a futtatókörnyezet meg is tíltja a nem aláírt scriptek futtatását, vagy a managerek szerint minden ami sript az biztonságos, minden ami bináris az nem (akkor is ha a saját tool- fejlesztőik írták)?

[ Szerkesztve ]

(#9284) harylmu válasza fatal` (#9282) üzenetére


harylmu
őstag

Én szeretem, TypeScript-tel egesz fasza dolgokat lehet kihozni. :)

[ Szerkesztve ]

(#9285) martonx válasza fatal` (#9282) üzenetére


martonx
veterán

Typescript rengeteget dobott a NodeJS-en, anélkül egykutya :D

Én kérek elnézést!

(#9286) fatal` válasza martonx (#9285) üzenetére


fatal`
titán

Részemről typescript a frontendre jó, sztem nem normális, aki backenden bármilyen js alapú cuccal szenved. :DDD

(#9287) martonx válasza fatal` (#9286) üzenetére


martonx
veterán

Szerintem meg pont frontendre nagyon erős túlzás a typescript, backedn nodejs-hez viszont alap. Ettől függetlenül egyetértek :D

Én kérek elnézést!

(#9288) fatal` válasza martonx (#9287) üzenetére


fatal`
titán

Attól függ, frontend alatt többnyire angulart (vagy hasonló frameworkot) értek ebben az esetben :)

No meg attól is függ mennyire complex, volt olyan projekt ~5 éve (typescript még gyerekcipő volt akkor), amihez scala.js-t használtunk :D

[ Szerkesztve ]

(#9289) martonx válasza fatal` (#9288) üzenetére


martonx
veterán

Ez már tényleg nagyon off, de manapság elindult egy trend, ahol frontend huszárok mindenhez is rögtön angulart, meg reactot typescripttel, rxjs-el, redux-al (izé most a recoil a menő), meg mittudomén mi mindennel rántanak elő. Aztán napokig dolgoznak egy egy oldalon, aminek a feladat annyi, hogy egy form van rajta, amin megadsz pár adatot, és gombnyomásra elpostolja a szervernek. Na, erre értettem, hogy a typescript overkill frontenden. Nyilván van olyan frontend eset, ahol tényleg hasznos tud lenni, viszont azt látom, hogy a typescript-es frontend projektek többségében, csak szimpla öncélú bonyolítás, mert a frontendes részleg meg akarja mutatni a backendnek, hogy igenis ők is tudnak sok n rétegben, interface-ekben, DI-ban, meg bonyolult kódokban gondolkozni, akkor is ha csak egy fos formot kell bekérni 4 adattal. :C

Én kérek elnézést!

(#9290) fatal` válasza martonx (#9289) üzenetére


fatal`
titán

Ebben egyetértek, nálunk is typescript+angular megy és kiégek tőle néha (full stack), de ez van :) Ez a trend, ezért fizetnek...

(#9291) harylmu válasza martonx (#9289) üzenetére


harylmu
őstag

Sose lattam meg ilyet, aki apro weboldalakra ilyet hasznalt. Viszont amennyi 2k LoC+os frontend kodot lattam, a TypeScript mindegyikben eletmento volt.

(#9292) fatal` válasza martonx (#9289) üzenetére


fatal`
titán

Mondjuk, amihez scala.js-t használtunk az bőven 10k+ sor és egy igen bonyolult űrlap több száz, adott esetben többezer mezővel, amik között rengeteg validáció és kapcsolat van. A backend meg ASP.NET MVC razorral (2015-ös projekt), szerintem indokolt volt.

Egyébként már az, hogy típusos a frontend szerintem életmentő, emiatt akár pársoros js esetén is indokolt lehet a ts. Persze angular meg egyebek sok esetben felesleges.

(#9291) harylmu: Én láttam már apró weboldalt is angularral, ami szerintem is overkill.

(#9293) martonx válasza harylmu (#9291) üzenetére


martonx
veterán

Én meg sajnos cégen belül is (és fejlesztői ismeretségi körben szétnézve is) szinte csak olyat látok, ahol felesleges.

Én kérek elnézést!

(#9294) Keem1


Keem1
addikt

Srácok, biztos hogy nem látom a fától az erdőt, de az aszinkron programozással mindig meggyűlik a bajom :F

Az alábbi egy .Net Core Console application részlete.

A BackgroundWorker nélkül működik az alábbi, de nyilván ekkor lefoglalja a main threadet a microwebserver, ezt szeretném elkerülni. Tehát a program fusson tovább, a webserver meg szépen a háttérben. Mit rontok el? :R

Szerk: fene vigye el, megvan a hiba :DDD Lemaradt ez: bgw.RunWorkerAsync();, így már működik :B

class Program
{
static BackgroundWorker bgw = new BackgroundWorker();

static void Main()
{
Console.WriteLine("WebGUI Teszt");
StartWebGui();
Console.ReadKey();
}

static void StartWebGui()
{
var hostBuilder = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.UseUrls("http://localhost:808/")
.Build();

if (bgw.IsBusy == false) bgw.DoWork += (sender, e) =>
{
hostBuilder.Run();
};
}
}

[ Szerkesztve ]

(#9295) joysefke válasza Keem1 (#9294) üzenetére


joysefke
veterán
LOGOUT blog

A BackgroundWorker legacy. Ha nincsen már tele a kód BackgroundWorker-ekkel, akkor én ebben az esetben megpróbálnám kiváltani.

[ Szerkesztve ]

(#9296) Keem1 válasza joysefke (#9295) üzenetére


Keem1
addikt

Mi lenne a proper way helyette?

A lényeg: Raspberry Pi-n futtatok egy .Net 4.5 alapú servicet, ami különböző automatizálási feladatokat hajt végre, adott esetben, ha a feladat jellege megkívánja, az adatok MySQL adatbázisban landolnak (localhost). Az egyszerű webes felületnek két célja van: ha időm és energiám engedi, később lesz egy Androidos app is hozzá, ehhez szolgáltatna JSON API-t, másrészt jelenleg böngészőből érek el pár infót erről a service-ről, a Pi különböző paramétereit is. Szóval erre kell nekem, ezért választottam "rendes" webszerver helyett ezt a megoldást.

(#9297) martonx válasza Keem1 (#9296) üzenetére


martonx
veterán

Mondjuk .Net Framework 4.5 helyett .Net Core 3.1-re váltani?

Én kérek elnézést!

(#9298) joysefke válasza Keem1 (#9296) üzenetére


joysefke
veterán
LOGOUT blog

Mi lenne a proper way helyette?

Nem vagyok biztos benne (*).
De első körben én megnézném, hogy Program.cs.Main()-ben egy új meztelen Thread-et létrehozva és azon indítva a WebHost-ot, hogyan viselkedik a webserver. De én a Thredeket sem szeretem :)

* Ami miatt bizonytalan vagyok, az az, hogy hogyan akarjuk/tudjuk kezelni a webservice esetleges chrashét. (egyáltalán akarsz-e ezzel foglalkozni):

Ha a background thread (ami a webservert futtatja) crashel (kezeletlen exception jön belőle) akkor érdemes lenne ezt az exceptiont valamilyen szinten elkapni, loggolni és vagy újraindítani a szervert vagy inkább az egész alkalmazást leállítani. Ez az egész opcionális, de alapvetően nem egészséges megadni az esélyét hogy egy bármilyen threadben kezeletlen exception ragadjon.

Ahogy nézem a BackgroundWorkeren van egy erre használható event: "RunWorkerCompleted" , az eventargs pedig: "RunWorkerCompletedEventArgs" ennek pedig van egy Error propertyje ami az esetlegesen elkapott exceptiont tartalmazza...

Ha Threadben gondolkodsz akkor jó pár alternatív opciód van amit mérlegelhetsz.

De én valószínűleg Task-ként futtatnám a webservert. A te esetedben nyilván az volt a "baj", hogy a WebHost.RunAsync() metódus által visszaadott Task-ot azonnal awaitelni akartad a fő száladon, így a fő programszál nekiállt async várakozni a Task elkészültére, ami ugye egy szervernél amíg le nem állítják nem fog megtörténni.

Ha a fő programszálad amúgy sem lép ki magától akkor szerintem a a WebHost.RunAsync() által visszaadott Task-ot sem kell nekiállnod awaitelni benne (ha tudod, hogy exception történt akkor érdemes) ettől függetlenül a viszakapott Task refernciáját nyilván elmented, hiszen ezen keresztül mindig tudod ellenőrizni az állapotát és szükség szerint awaitelve ki is tudod belőle szedni az esetleges exceptiont.

A fenti példában például a Console.ReadKey() blokkolja a fő szálat. Amíg a fő szál nem ért véget, addig a background threadeket (beleértve amelyek Task-ba vannak csomagolva) a runtime nem zárja be addiíg amíg azok nem fejezik be maguktól a futást.

[ Szerkesztve ]

(#9299) Keem1 válasza martonx (#9297) üzenetére


Keem1
addikt

Ezen már sokat gondolkodtam, de sok Nugetes motyóm nem kompatibilis vele. Pl. az SQLite (System.Data.Sqlite) sem, ARM-re nem volt 4.5-re sem, de oda simán fordítottam egyet az eszközön forráskódból. .Net Core-ra viszont eddig még nem sikerült.

(#9298) joysefke:
A Task-on már én is agyaltam, de amikor próbálkoztam, valahogy nem jött össze. Már nem emlékszem, hogy egy statikus metódussal gyűlt-e meg a baja, vagy azon aztán átlendültem és máshol akadtam el. Aztán végül a Bgwk lett az első, ami működött.

Sajnos nem vagyok programozó, csak egy lelkes amatőr, így ha valahol elakadok, hajlamos vagyok rövidebb utat választani :DDD Viszont a C#-ot szeretem, így néha olyan célra is ezt választom, ami szkriptnyelvből, Powershellből is megoldható lenne (melyekhez még a C#-hoz képest is kevésbé mozgok otthonosan).

[ Szerkesztve ]

(#9300) joysefke válasza Keem1 (#9299) üzenetére


joysefke
veterán
LOGOUT blog

https://www.nuget.org/packages/System.Data.SQLite/

Itt at írják, hogy elég nek a netstandard 2.0

Copyright © 2000-2024 PROHARDVER Informatikai Kft.