-
Notifications
You must be signed in to change notification settings - Fork 139
Añadir proyectos de ejemplo en C# #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Añadir proyectos de ejemplo en C# #18
Conversation
Hola smartcodinghub
Basicamente omitiendo src/main/ y src/test en solamente src y test donde ambas folder a su vez son solution folder en la estructura y generando un proyecto para el codigo y otro para el testing. Que opinas al respecto? Te parece bien, alguna sugerencia o feedback? Por si sirve, te paso unos comandos de CLI para replicar esta estructura como tal y crear las solutions folder.
Con respecto al namespace, sugerio editar el proyecto y editar el root namespace como: Aunque aca @rgomezcasas y @JavierCane van a poder opinar mejor si CodelyTv.Booking esta bien como namespace o cambiarlo a Tv.Codely.Booking como esta en los ejemplos de Java. Sobre todo hago esta pregunta porque recuerdo haber escuchado que Tv.Codely estaba armado especificamente por unas limitaciones o requerimientos de Java / framework. Por ultimo y no menor, muchisimas gracias por el PR, la verdad que esta muy bueno poder contar con ejemplos de c# tambien para todos los que venimos de este mundillo. |
Me parece bien, aunque preferiría tener una solución para Booking, otra para Chat, etc... Pero lo cambio sin problemas. Sobre el namespace, yo opino de cambiarlo, sí. No me gusta nada como se hace en Java, así que encantado ^^. Por cierto, pensaba actualizarlos a .Net 5.0. |
Entiendo, tiene como punto a favor evitar tener muchas soluciones y agrupar ejemplos que son del mismo contexto. Dejo a criterio de Rafa y Javi con respecto a este punto. Entiendo que ellos apuntaban a un ejemplo a la vez, pero es una posibilidad.
Claro que si, estaria genial si lo haces en .Net 5.0 🎉 |
Lo he cambiado. Espero a ver que comentan sobre lo de tener una solución por cada contexto.
Creo que no lo dije antes, pero encantado por poder ayudar. Creo que .Net tiene muchísimo potencial y mucha gente lo "ignora" por el pasado que ha tenido y lo acoplado que estaba a Windows y Microsoft. No obstante, creo que el cambio de mentalidad le ha sentado muy bien y las mejoras son impresionantes. |
Por cierto @Leanwit , que opinas de usar records (C# 9.0) en lugar de clases? Hay bastantes clases que se podrían reemplazar. También he añadido un script powershell para crear la estructura de ejemplo (compatible con Powershell Core para linux). Debería estar en un makefile? |
Con respecto a los namespaces, ahí corrobore que en java es un estandar definir el namespace como 'dominio.compañía.projecto', por ese caso es tv.codely... pero en .Net no es el caso asi que podemos dejarlo como CodelyTv.Booking. En caso de la aplicación de clases como records me parece que estaria muy bueno implementarlo, ya que te asegura la inmutabilidad y es un concepto al que CodelyTv siempre apunta. Asi que si tenes que agregar ejemplos de como tiene que quedar una clase correctamente, utiliza records sin ningún problema. Porque de otra forma, estarias creando una clase que tiene el mismo comportamiento que un record pero agregando más código. Con respecto a lo de powershell, en CodelyTv es un estandar el makefile asi que si no te lleva mucho trabajo pasar el script de powershell a un makefile, sería estupendo. |
He cambiado el powershell. Por otra parte, vistos los ejemplos, creo que usar records los puede hacer más confusos entre pasos, así que no los voy a añadir. Por mí, podéis mergear esta PR y os crearé otra con el resto de ejemplos cuando los tenga. |
¡Buenas! Al turrón 🤟:
Es cierto lo que comenta @smartcodinghub que, a día de hoy, el uso de Records (como el de property promotion en PHP) puede resultar confuso y hasta que no se extiendan más en las bases de código con las que trabajamos día a día seguirá pasando. La postura al respecto de este tipo de cosas es que, siempre que sean cambios por los que el ecosistema (PHP, C#, Java…) apuesta fuertemente (integrándolos a nivel de lenguaje como los ejemplos que hablamos), molaría que se vieran reflejados en los ejempos para que, pasado 1 año, el repo siga siendo "actual" 😊 Un abrazo a todos y mil disculpas en la demora de nuevo. Se agradece infinito este tipo de PRs porque le dan sentido a todo el esfuerzo que hacemos desde Codely por el Open Source. 🙌 |
¡Buenas! No pasa nada por la demora, se entiende. Sobre el tema de los records: cuando suba los siguientes ejemplos, actualizo el paso de tell_dont_ask a usar records. Aunque no tengo claro que aplique del todo, ya que las propiedades serían publicas y no es ese el objetivo del refactor. Por eso me arrepentí de haberlo sugerido, @JavierCane ^^. Si se os ocurre otra forma de añadirlo, lo cambio en un momento. Un saludo! |
Perfecto, gracias Javi y Smart por las aclaraciones. |
Buenas!
He pensado en ir añadiendo los ejemplos en C#.
Creo que he respetado en la medida de lo posible la estructura de proyectos y commits, pero he tenido que hacer un par de adaptaciones a la estructura de proyectos de .Net. Son las siguientes:
Si no os convence la estructura, se podría dejar de la siguiente manera (aunque quedaría más complejo):
Ahora:
Otra opción:
Aunque serían dos proyectos independientes e igual es un poco más dificil de usar. En función de lo que me digáis creo el resto de proyectos.
Si necesitáis cualquier aclaración o que intente explicarme mejor, no dudéis en decirlo 😉
Un saludo y gracias por el cursazo! 😁
P.D: Para ejecutar, instalar el SDK de .Net Core 3.1 y ejecutar
dotnet test