Cita:
Iniciado por josico Porque como decimos en mi tierra, eso seria solucionar el problema con "palos y cañicas".
No entiendo muy bien qué significa esto. Insisto en que hoy por hoy (desde hace ya algunos años) toda nueva aplicación es preferentemente Web a menos que haya una buena razón para que no lo sea. Las ventajas de un cliente Web son muchas y con los frameworks como Angular o React y los lenguajes estáticos que compilan a JS como TypeScript las desventajas son cada vez menos.
Cita:
Iniciado por josico 1- Entiendo que ¿con este código también se pueden realizar páginas Web más programas y aplicaciones para moviles?
Es correcto. (*)
Cita:
Iniciado por josico 2- Con el tema de diseño ¿C# lo cubre todo? Es decir. En el caso de páginas Web usamos php como estructura lógica, mysql para base de datos y html, js y css para efectos y diseño. ¿C# lo cubre todo? Imagino que la respuesta es no pero ya te digo que soy todo un ignorante en este campo.
No, por supuesto. El navegador solo "entiende" HTML, CSS y JS, con lo cual el frontend lo debes seguir haciendo de esta manera.
En C# existe ASP.NET MVC que usa el modelo tradicional de server side rendering (similar al modelo de PHP), que permite combinar C# + HTML usando el motor Razor, pero en la actualidad la tendencia es desacoplar el frontend completamente del backend mediante técnicas de SPA usando frameworks como Angular. Hace por lo menos 3 años que no me ha tocado a mi personalmente iniciar un nuevo proyecto en MVC ni en ninguna tecnología de tipo server-side rendering.
Adicionalmente, en C# existe LINQ y la práctica habitual es usar éste para acceso a datos mediante un ORM como Entity Framework o NHibernate. No se escribe el SQL manualmente a menos que sea necesario.
Tu "stack" para aplicaciones web quedaría mas o menos así:
Modelo Tradicional:
- Acceso a datos: C#/LINQ (Entity Framework o NHibernate)
- Lógica de negocio: C# (.NET)
- Web Framework: C# (ASP.NET MVC)
- Frontend: Razor / C# + HTML (ASP.NET MVC)
- Logica de Frontend: JS
- Estilos de Frontend: CSS
Modelo SPA:
- Acceso a datos: C#/LINQ (Entity Framework o NHibernate)
- Lógica de negocio: C# (.NET)
- Web Framework: C# (ASP.NET WebAPI)
- Frontend: HTML/JS (Angular)
- Logica de Frontend: JS (Angular)
- Estilos de Frontend: CSS
Todo esto parece apabullante pero no te asustes, es mucho más fácil de lo que parece. De hecho en C# todo es mucho más fácil porque al ser un lenguaje estático el compilador, el Type System y el IDE te ayudan muchísimo, versus lo que ocurre por ejemplo en PHP donde la única manera de saber que algo funciona es ejecutar el código y rogar que se digne a funcionar.
Con respecto a aplicaciones desktop / nativas, para la GUI vas a usar XAML en el caso de Windows, y AXML en el caso que quieras usar las APIs nativas de Android, aunque tambien existe
Xamarin Forms que te genera UIs nativas a partir de XAML compartido.
(*) - Solo una pequeña corrección semántica: cuando hablamos de "código" nos referimos al código puntual, el término correcto para tu pregunta sería "lenguaje": ¿con este lenguaje también se puede .... ".
Es importante entender bien la terminología para comunicarte efectivamente con otras personas.