Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/06/2017, 03:27
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: ¿Que me recomendáis para empezar a programar en windows y android?

Cita:
Iniciado por josico Ver Mensaje
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 Ver Mensaje
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 Ver Mensaje
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.