Inlägg

Inlägg som hemmafru har skrivit i forumet
Av hemmafru
Skrivet av snajk:

VS kan ju skapa en hel del saker åt dig men hur ska den veta att du vill ha en klass som heter ADTO till din klass A? Annars kan du testa Jetbrains Resharper, jag körde det i många år men VS har blivit såpass bra på sånt att jag skippat det på senaste datorn, det har ju en tendens att göra allt lite segare.

Om en klass ha attributen [RequireDTO] så ska DTO-klassen heta orginal-klassnamn + DTO. VS kan så mycket och jag förstår och nyttjar så lite

Skrivet av KAD:

Trevlig ide.

Jo det borde vara relativt trivialt att sätta ihop ett eget litet lib med attributen och en konsoll-app som kan köras som build event som genererar DTO-klasserna och eventuellt Automapper-konfigurationer.

Om man vill lyxa till det går det säkert att jacka in kodgenereringen snyggare i MSBuild, så som till exempel NSwag gör när man använder det för att generera klienter (se Nuget-paketet NSwag.MSBuild).

Mina DTO:er har oftast olika request- och response-varianter som ärver från en gemensam basklass. Man kan ju till exempel vilja att request/POST-varianten ska sakna Id-property (det tilldelas av databasen), medan response/GET-varianten har Id-property. Sådant kan man ju vilja styra i genereringen, genom properties på attributen.

Edit: Det knepigaste är nog att få in nya DTO-.cs-filer i projektet. Kanske kan man nöja sig med att ha alla DTO-klasser i samma fil? Det är ju ändå inget man ska redigera för hand.

Vilken metod tänker du då är bäst för att generera DTO-klasserna? Tittade på några exempel på github där man använder MSBuild. Sätta upp en Task för det verkar inte vara så svårt.

Skrivet av Ernesto:

Det är ju inga konstigheter, bara bygga ett script som körs i build pipelinen som skapar filerna. Dock synnerligen osäkert om det är en speciellt bra ide.

Om vi spolar tillbaka bandet, vad försöker du lösa?

"bara bygga ett script" - lätt och bara om man vet vad man gör Jag försöker lösa att jag tycker det är trist att skapa DTO-klasser och att kunna auto-skapa dem hade varit en intressant och givande bedrift.

Av hemmafru

C#/Visual Studio - skapa nya klasser baserat på attributer i andra klasser?

Hejsan

Vad finns för bra alternativ om jag vill skapa nya klasser utifrån attribut på andra klasser (och få dessa ny klasser som *.cs filer)

Exempel:

[RequireDTO] Class A{ [RequireDTO] public string Value1; public Bar Value2; }

Skulle då skapas en ny klass

Class ADTO{ public string Value1; }

Är det att skapa en consol-application och sedan köra reflektion över de assemblies som är av intresse, eller mer "brute force" och läsa varje rad i *.cs filerna och skapa utifrån det.

Googlar jag på att skapa klasser via kod så får jag ex CodeDom som förslag, men det verkar långt ifrån enkelt...Source Generators kommer också upp

Är inte intresserad av "färdiga" plugins, om de nu inte finns inbyggda i VS

Av hemmafru

En enum tillsammans med en dictionary var ganska smidigt, inte tänkt så långt själv, och resultat-klassens valid method som behövs för ett interface kan kolla vilket enum-värde som är och returnera därefter så är det bara ett input argument.

PlaceAnimalResult bool Valid => Status == enum.Valid enum Status

Resterande frågeställningar och förtydligen:
PlaceAnimal sköter inte själva placeringen, det är ett "command-pattern"-objekt som kommer tas om hand av Board-klassen som sköter det hela.

Jag har två client-versioner, en med UI (i Unity) och en konsol och med UI så visas vilka områden som kommer att gå att flytta djuret till efter man har valt ett. Men för konsol-varianten som mina brute-force bottar spelar genom så kan de skicka in vilka dumma kommandon som helst

Så körs mest all logik på en server-del. Som kort är:
En "PlayerAction..xxx" kommer till servern, som packas om till en "PlayerTurnAction...xxx"-kommando

"PlayerTurnAction..xxx" går in i en "TurnRuleLogic" state-machine-variant som hanterar allt med turordning, vilka PlayerTurnActions som är OK i vilka state, vems spelar-tur det är osv.

Om/när "PlayerTurnAction..xxx" klarar sig igenom så kommer den hanteras av Board-klassen.

Resultat från Board bubblar sedan upp genom "TurnRuleLogic" så den kan anpassa sig till vad som hände på spelbrädet.

Av hemmafru

Arkitektur-fråga: en klass eller flera klasser för resultat från aktivitet (C#)

Hejsan

Bygger på ett litet digitalt brädspel, (som fritidslek) och funderade över hur "man" gör på riktigt då jag har svårt att bestämma mig hur jag vill göra.

Så, spelar gör en handling, ex. placera ut ett djur på plats X, och detta kan gå åt skogen av ett par anledningar.

  • Djuret får inte plats på den platsen spelaren valt.

  • Det står ett annat djur redan på platsen spelaren valt.

  • Det är inte rätt sorts plats för det valda djuret

Handlingen motsvaras av klassen PlaceAnimal

Resultatet kan motsvaras av en klass, eller flera klasser, och det är här jag velar lite.
Om jag ska ha bara:

PlaceAnimalResult bool Valid; string Message;

eller

PlaceAnimalResultValid bool Valid => true; PlaceAnimalResultInValid_NotCorrectSize bool Valid => false; string Message => "Not correct size"; PlaceAnimalResultInValid_AlreadyOccupied ... ... PlaceAnimalResultInVaild_NotEnoughtRoom ... ..

Så antingen måste jag läsa Message om jag bara använder en resultat-klass för att bestämma vad för info som ska visas till användaren, men risk att någonstans så skriver jag fel (eller byta ut string message till enum, eller någon annat som inte skrivs in) eller har jag flera resultat-klasser så tittar jag på vilken typen och agerar därefter.

Tycker flera klasser är trevligare, men hur gör verkligheten?

Av hemmafru

Lyfter upp en fråga som jag googlat runt på men inte fattar riktigt,
Mudblazor grid:
The grid component helps keep layout consistent across various screen resolutions and sizes. Mudblazor comes with a 12 point grid system amd contains 5 types of breakpoints that are used for specific screen sizes.

Så kollar jag på exemplen och ex xs=6 sm=3 och jag fattar inte som sagt.
Om xs (extra smal), använd 6 punkter, om sm (smal) använd 3 punkter av de totala antalet 12 punkter? Men den logiken(?) går helt mot exempelsidan, https://mudblazor.com/components/grid, så där bara xs=6 används, så kryper de rutorna bara ju smalare jag gör webbläsaren med med xs=6 sm=3 så beter det sig mer reaktivt.

Ett år senare och jag fattar, tror jag.
De där 12 punkterna är som 12 kolumner som tar upp 1/12 var av skärmbredden
Så om jag gör såhär
<MudItem xs="12" sm="6" lg="12">
<MudPaper>xs=12 sm=6 lg=12</MudPaper>
</MudItem>
<MudItem xs="12" sm="6" lg="12">
<MudPaper>xs=12 sm=6 lg=12</MudPaper>
</MudItem>

Så vid fullskärm kommer varje item ta upp en hel rad. Minskas skärmstorleken så att det hamnar under lg, så kommer de istället ta upp en halv rad var (6/12) för att sedan då skrärmen blir mindre än sm, ta upp en hel rad var igen..

Av hemmafru

Kan bara hålla med om att det är väldigt coolt!

Aldrig prioriterat att lära mig javascript så när Blazor nu kommer på riktigt så är det verkligen läge att försöka lära sig vad detta med WWW är för något påhitt

Saknade i början en liten text om hur man ersätter "default" Blazor templaten UI med MudBlazor. Efter ett tag så fattade jag att kan kunde ta Drawer component exemplet och nära på ctrl-c/v och ersätta allt in MainLayout.Razor och istället för LoremIpsum ha (at)Body, ser rätt ut och fungerar när jag försöker följa tutorials för att lära mig. Hoppas bara det är rätt

Av hemmafru

Okay, körde in Fiddler och försökte förstå något, under Inspectors - Headers så hittade jag Cookies / Login. Där fanns dels ett par google cookies, _utma, _utmz osv. och så en som hetter SIProArcAuth som verkade riktigt bra.

Jag tog och la till en cookie i webrequesten, och kopierade allt från SIProArcAtuth, och nu stannar det hela på "Cannot handle redirect from HTTP/HTTPS protocols to other dissimilar ones.."

Framgångar, fy va trevligt!

Läste runt lite mer i Fiddler, och grejer är visst att filen skapas på nätverket, och sedan skapas en enkel sida med en redirect till filen, via länken: file://server.server/.../.../03053123.xlsm

Så bara att läsa in det svar som kommer och plocka sökvägen, så blev det tipptopp

Tackar så mycket!

Måste jag läsa på hur länge den där coockien finns och lever...fasiken, kan inget om kakor

Av hemmafru

MugiMugi: Det ger ändå (403) Forbidden, testade med DownloadData- och DownloadFile-metoderna.

Ligger inte problemet i att ovan prövade metoder försöker ladda ner själva, öh, kan fasiken inte terminologin för sådanthär..själva aspx-objectet, istället för filen som den ska lämna ifrån sig?

Av hemmafru

C#, Ladda hem fil från hemsida automatiskt

Tjenare, är ute på lagom djupt vatten och vet inte riktigt vad jag ens ska googla på för att komma helt rätt...

Målet är att ladda ner en fil från en hemsida, en fil som jag får tag i genom denna adressen:

http://[intranät]/GetFile.aspx?fileID=3053123&Checkout=False&...

Så det är väll då ingen adressen till själva filen, utan till aspx som går in i databas och plockar fram filen åt mig...
Klistrar jag in adressen i Chrome så kommer jag ingenstans, klistrar jag in i IE så får jag upp "What do you want to do with 03053123.xlsm..-"dialogen, så det är väll nån autentisering som följer med min windowsanvändare som bara IE fattar...

Filen heter alltid 03053123.xlsm

Jag har testat med ett gäng olika varianter av WebRquest och castat till HttpWebRequest och olika .ContentType, UseDefaultCredentials men det slutar alltid med
"The remote server returned an error: (403) Forbidden."

Kör jag med ett WebBrowser-object så kan jag navigera till adressen, men då fastnar hela automatiken på at jag ändå får upp dialogrutan för att spara filen...fast, nu när jag satt och skrev detta så gjorde jag en extra google och fick fram en del om IDownloadManager som verkar kunna fixa så det går att autoladda ner filen. Ex. http://stackoverflow.com/questions/13362922/windows-forms-web... var ju exemplariskt, kanske, inte testat ännu..

Så då blir frågan, är det IDownloadManager-vägen som måste vandras, eller finns det något annat smart sätt?

Av hemmafru

Tackar tack, då är jag ändå på rätt spår.

Av hemmafru

[ASP.NET MVC 3]Textbox server-side edit?

Någon som har ett bra exempel på detta:

Sida med textbox och en knapp, skriv in texten, tryck på knappen och texter postas till server, som härjar runt med texten, och sedan ändrar texten i texboxen till den nya förändrade texten..

Har googlat runt, hittat tusen bra exempel (bla. MVC music store som jag börjat köra igenom..) men skulle vilja ha något som visar på just det jag beskrev ovan.

Av hemmafru

Jag svarade dig...
"Okej Alias, Kan ni prata mer om program som är mer som alias och mindre som CAD?"

Sedan så är ju programmet bara ett verktyg, på samma sätt som en borrmaskin är ett verktyg. Är man duktigt kan man slå ner spiken med en billig hammare..

Det sagt, så ger Alias och Rihno väldigt mycket kontroll av ytorna till användaren (du kan flytta vertex-punkter och dra och härja i allt...) medans du då i ex Solid Works med kompisar mer defienerar en profil, path och lite attributer för hur datorn ska räkna fram en yta.

Av hemmafru

Google: industrial desgin cad

Jag vet att design är felstavat, men man behöver inte ens stava för att hitta rätt

Av hemmafru

Tja, 3D och AutoCAD är ju som badbyxor som går sönder i vatten...kasst.

Måste du använda AutoCAD 3D så går det ju, eftersom det verkar användas på din skola..(och man kan bada utan badbyxor), men om du verkligen är intresserad av att 3D-konstruktion så tittat på Inventor istället (eller Solid Works, men Inventor är ju från Autodesk som ACAD).

..men om det nu är fokus på fälgar, telefoner och grejer med mycket designyta, så är ju Alias, ICEM Surf .. men de är ju inte världens enklaste program att komma in i. Catia är ju skoj. Men här snackas det ju program för hundratusenstals kronor

Av hemmafru

Open Source CMS Demos & Information - opensourceCMS

Bara att testa sig runt tills man hittar nått skoj.

Av hemmafru

Intressant men ack så dyrt...

Hade räckt ifall dom (tangentbordstillverkarna) bara klippte bort numpad-delen och gjorde resten som vanligt.