Cómo preparar un pastel usando solo glaseado

Así que Cake . Muchos lo han escuchado, muchos querían intentarlo, pero lo posponen. Por supuesto, si ha estado trabajando para TeamCity o Jenkins todo el tiempo y continúa, entonces ¿por qué reinventar algo que ya funciona bien? Ama tu vida y sé feliz. Pero, digamos, ha aparecido un nuevo proyecto en tu amada vida, una nueva fecha límite, un mínimo de storypoints antes del lanzamiento y no tienes experiencia con un nuevo coleccionista. En este caso, Cake fue útil para mí .





De inmediato haré una reserva de que este artículo no lo empujará inmediatamente a usar Cake , como lo hice yo, y muchos de mis colegas no se sintieron motivados por artículos que aparecieron antes. Principalmente porque no tiene sentido cambiarlo en un proyecto que no duele y que funciona de manera consistente. Recoge tu Jenkins favorito y todo irá bien. Pero después de este artículo, déjeme que descanse en mi cabeza que Cake existe. Una vez más, no ha ido a ningún lado, ya sabe mucho y cada vez es más fácil trabajar con él. Mucho más fácil de lo que solía ser.





¿Cómo es Cake? Probablemente, cualquier desarrollador que no esté atascado en el mundo .Net encontrará su analogía: gradle, gulp, golang make . Hacer que los sistemas no sean una revelación en 2020. Siempre ha sido conveniente, lo que significa que es necesario y correcto. El mundo .Net se ha visto privado durante mucho tiempo de esos medios. De hecho, existía y sigue existiendo MSBuild , pero tiene muchas deficiencias. El principal es ¿quién puede usarlo de los desarrolladores comunes? ¿Y cuál es la conveniencia de su desarrollo? Algunas cosas básicas y necesarias para todos son claramente más fáciles de hacer en el servidor de compilación. Probablemente, sea conveniente para alguien, pero estoy seguro de que una parte importante de la comunidad preferirá MSBuild para dominar el nuevo servidor de compilación. Escribe una configuración una vez y olvídala como una pesadilla.





Pero, ¿qué pasaría si hubiera un sistema de creación con un DSL en C #, autocompletar y otras características de un lenguaje escrito? Sí, estoy hablando de Cake . En particular, ahora hablaremos de la biblioteca Cake.Frosting , que es uno de los corredores del sistema make.





Puede leer más sobre los corredores disponibles aquí: Cake Runners





Con Frosting, todo es familiar: la Api autodocumentada con la que casi de inmediato encuentras un lenguaje común. Métodos de extensión cargados desde Nuget : para cada ocasión, una estructura de proyecto como una mezcla de pruebas o puntos de referencia y un host Asp . Todas las decisiones se adivinan a la vez, todo está en casa.





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.





El problema puede ser la falta de integraciones necesarias en Cake con linters, sonares, etc. Este problema debe aclararse antes de usar el sistema. O agrega tus extensiones, sube a Nuget y sé una muy, muy buena persona.





Bonificación: un ejemplo del uso de Cake.Frosting en github . Para la "semilla" por así decirlo: Enlace





Enlace al sitio web del proyecto Cake








All Articles