Comment préparer un gâteau en utilisant uniquement du glaçage

Alors gâteau . Beaucoup ont entendu, beaucoup ont voulu essayer, mais ont remis cela à plus tard. Bien sûr, si vous travaillez tout le temps pour TeamCity ou Jenkins et continuez à le faire , alors pourquoi réinventer quelque chose qui fonctionne déjà très bien? Aimez votre vie et soyez heureux. Mais, disons, un nouveau projet est apparu dans votre vie bien-aimée, une nouvelle échéance, au moins des points de stockage avant la sortie, mais vous n'avez aucune expérience avec un nouveau collectionneur? Dans ce cas, Cake m'a été utile .





Je ferai immédiatement une réserve que cet article ne vous poussera pas immédiatement à utiliser Cake , comme je l'ai fait, et beaucoup de mes collègues n'ont pas été incités par des articles parus plus tôt. Surtout parce que cela n'a pas de sens d'y passer sur un projet qui ne fait pas de mal et qui fonctionne de manière cohérente. Récupérez vos Jenkins préférés et tout se passe bien. Mais après cet article, laissez reposer dans ma tête que Cake existe. Encore une fois, il n'est allé nulle part, il en sait déjà beaucoup et il est plus facile de travailler avec lui. Beaucoup plus facile qu'auparavant.





À quoi ressemble Cake? Probablement, tout développeur qui n'est pas embourbé dans le monde .Net trouvera son analogie: gradle, gulp, golang make . Les systèmes de fabrication ne sont pas une révélation en 2020. Cela a toujours été pratique, ce qui signifie que c'est nécessaire et correct. Le monde .Net a longtemps été privé de tels moyens. En fait, il y avait et il y a encore MSBuild , mais il présente de très, très nombreux inconvénients. Le principal est de savoir qui peut l'utiliser auprès des développeurs ordinaires? Et quelle est l'opportunité de son développement? Il est clairement plus facile de faire certaines choses de base et nécessaires sur le serveur de build. C'est probablement pratique pour quelqu'un, mais je suis sûr qu'une partie importante de la communauté préférera MSBuild pour maîtriser le nouveau serveur de construction. Ecrivez une fois une configuration et oubliez-la comme un mauvais rêve.





Et s'il y avait un make-system avec un DSL en C #, la saisie semi-automatique et d'autres fonctionnalités d'un langage typé? Oui, je parle de Cake . En particulier, nous allons maintenant parler de la bibliothèque Cake.Frosting , qui est l'un des coureurs du make-system.





Vous pouvez en savoir plus sur les coureurs disponibles ici: Cake Runners





Avec Frosting, tout est familier - l'API auto-documentée avec laquelle vous trouvez presque immédiatement un langage commun. Méthodes d'extension chargées depuis Nuget - pour toute occasion, une structure de projet qui ressemble à un mélange de tests ou de benchmarks et à un hôte Asp . Toutes les décisions sont devinées à la fois, tout est chez soi.





Frosting Cake , , , solution . . , Cake.Frosting, Build- .





dotnet run
      
      



, . - Mac OS, Linux Windows, SDK, . dotnet CLI, .





: Frosting Bootstraping





, , . — Lifetime: Setup TearDown. .





— Tasks. - FrostingTask<Context>.





IoC , Asp. , Frosting DI IServiceCollection, .





- . , Default. , , ,





[Dependency(typeof(MyPreviousTask))]
      
      



MyPreviousTask — , .







, :





  1. .





  2. .





  3. unit-.





  4. Publish.





  5. .





, docker, — , C#.





, , , , . , , . .





— IntelliSense , ?





.Net core – self-contained . , , dotnet, , , , « ». , - . Cake.





, , TS Jenkins





dotnet run ./Build/Build.csproj
      
      



( ) , . Frosting , -, .





, . - dotnet Frosting. , — .





— .









  1. . / -;





  2. . -. -.





  3. . . .





  4. . - -, , . .





  5. . IntelliSense, , senior.





Le problème peut être que Cake n'a pas les intégrations nécessaires avec les linters, les sonars, etc. Ce problème doit être clarifié avant d'utiliser le système. Ou ajoutez vos extensions, téléchargez sur Nuget et soyez une très, très bonne personne.





Bonus - un exemple d'utilisation de Cake.Frosting sur github . Pour la "graine" pour ainsi dire: Lien





Lien vers le site du projet Cake








All Articles