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
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.
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.