Wie man Kuchen nur mit Zuckerguss zubereitet

Also Kuchen . Viele haben es gehört, viele wollten es versuchen, aber es aufschieben. Wenn Sie die ganze Zeit für TeamCity oder Jenkins gearbeitet haben und dies auch weiterhin tun , warum sollten Sie dann etwas neu erfinden, das bereits großartig funktioniert? Liebe dein Leben und sei glücklich. Aber sagen wir, ein neues Projekt ist in Ihrem geliebten Leben erschienen, eine neue Frist, zumindest Storypoints vor der Veröffentlichung, aber Sie haben keine Erfahrung mit einem neuen Sammler? In diesem Fall hat sich Cake für mich als nützlich erwiesen .





Ich werde sofort reservieren, dass dieser Artikel Sie nicht sofort dazu drängt, Cake zu verwenden , wie ich, und viele meiner Kollegen wurden nicht von Artikeln gedrängt, die früher herauskamen. Meistens, weil es keinen Sinn macht, bei einem Projekt zu wechseln, das nicht schadet und das konsequent funktioniert. Sammeln Sie in Ihren Lieblings- Jenkins und alles geht gut. Aber nach diesem Artikel lass es in meinem Kopf ruhen, dass Kuchen existiert. Wieder einmal ist er nirgendwo hingegangen, er weiß bereits viel und es wird immer einfacher, mit ihm zu arbeiten. Viel einfacher als früher.





Wie sieht Kuchen aus? Wahrscheinlich wird jeder Entwickler, der nicht in der .Net- Welt versunken ist, seine Analogie finden: gradle, gulp, golang make . Make-Systeme sind keine Offenbarung im Jahr 2020. Es war schon immer praktisch, was bedeutet, dass es notwendig und richtig ist. Der .Net- Welt sind solche Mittel seit langem entzogen. Tatsächlich gab und gibt es MSBuild , aber es hat sehr, sehr viele Nachteile. Die wichtigste ist, wer es von normalen Entwicklern verwenden kann? Und wie zweckmäßig ist seine Entwicklung? Es ist eindeutig einfacher, einige grundlegende und notwendige Dinge auf dem Build-Server zu erledigen. Wahrscheinlich ist es für jemanden praktisch, aber ich bin sicher, dass ein bedeutender Teil der Community es vorziehen wird, dass MSBuild den neuen Build-Server beherrscht. Schreiben Sie einmal eine Konfiguration und vergessen Sie sie wie einen bösen Traum.





Was wäre, wenn es ein Make-System mit DSL in C #, Autocomplete und anderen Funktionen einer getippten Sprache gäbe? Ja, ich spreche von Kuchen . Insbesondere werden wir jetzt über die Cake.Frosting- Bibliothek sprechen , die einer der Make-System-Läufer ist.





Weitere Informationen zu den verfügbaren Läufern finden Sie hier: Cake Runners





Mit Frosting ist alles vertraut - die selbstdokumentierende API, mit der Sie fast sofort eine gemeinsame Sprache finden. Von Nuget geladene Erweiterungsmethoden - für jeden Anlass eine Projektstruktur, die wie eine Mischung aus Tests oder Benchmarks und einem Asp- Host aussieht . Alle Entscheidungen werden auf einmal erraten, alles ist zu Hause.





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 coreself-contained . , , dotnet, , , , « ». , - . Cake.





, , TS Jenkins





dotnet run ./Build/Build.csproj
      
      



( ) , . Frosting , -, .





, . - dotnet Frosting. , — .





— .









  1. . / -;





  2. . -. -.





  3. . . .





  4. . - -, , . .





  5. . IntelliSense, , senior.





Das Problem kann sein, dass Cake nicht über die erforderlichen Integrationen mit Lintern, Sonaren usw. verfügt. Dieses Problem sollte vor der Verwendung des Systems geklärt werden. Oder fügen Sie Ihre Erweiterungen hinzu, laden Sie sie auf Nuget hoch und seien Sie eine sehr, sehr gute Person.





Bonus - ein Beispiel für die Verwendung von Cake.Frosting auf Github . Für den "Samen" sozusagen: Link





Link zur Cake- Projektseite








All Articles