2008-09-20 8 views
10

Como principiante, he pasado tiempo aprendiendo un poco de C y un poco de PHP. He visto escribir aplicaciones de escritorio para Windows, pero parece haber una barrera justa para la entrada debido a la complejidad de las API. ¿Vale la pena aprender esto, o las aplicaciones nativas serán menos comunes en el futuro?¿Debe un programador novato dedicar tiempo a aprender a escribir aplicaciones de "escritorio" en estos días, o es la web en la que se encuentra?

De la manera en que lo veo, la única aplicación de escritorio que uso es un navegador web y un editor de texto, así como obviamente el propio sistema operativo. Todo lo que necesito está en línea ahora.

¿Está aprendiendo a escribir aplicaciones no web una habilidad útil para avanzar? Si es así, ¿qué debería aprender?

+0

OK, parece que .NET es una plataforma popular - ¿Dónde está el mejor lugar para empezar con eso? ¿Son buenas las ediciones Express? VB o C#? He usado C un poco de trabajo tipo de simulación y como digo estoy familiarizado con PHP - Supongo que quiero algo que es robusta y "prueba de futuro", al menos en el corto plazo. –

+3

Las ediciones Express de Visual Studio son increíbles teniendo en cuenta que son gratuitas. Entre Visual C#, VB.NET y Visual Web Developer, el desarrollo de escritorio y web está bastante bien cubierto. .NET está evolucionando muy bien y seguirá existiendo por un tiempo. –

+0

¿No debería ser esto de los programadores? –

Respuesta

20

No creo que sea una buena idea elegir un lado y aferrarse a él religiosamente. Creo que un buen ingeniero se expondrá tanto como pueda para poder tomar una decisión informada sobre cuál es la mejor herramienta para completar una tarea.

En otras palabras, no elija una plataforma, sistema operativo, lenguaje de programación, etc. y luego ignore los demás. Lo mejor es ser completo en tu conjunto de habilidades.

1

Debe aprender lo que desee para aprender. Si no lo haces, probablemente te resulte más difícil de lo necesario.

Personalmente comencé a escribir aplicaciones de escritorio para Windows, porque las usé en ese momento. En estos días, creo que estás en lo cierto: puedes crear un sitio web/una aplicación en línea sin invertir demasiado en el proceso.

Pero incluso escribir una aplicación web decente va a ser difícil si es nuevo en la programación. Una página independiente es simple, pero cuando agrega bases de datos, seguridad y administración a la mezcla, las cosas pueden crecer.

5

Siempre habrá un mercado para aplicaciones nativas, aunque muchas cosas se están moviendo a la web y hay más alcance que nunca para aplicaciones basadas en web, las aplicaciones GUI nativas nunca desaparecerán por completo.

Sin embargo, es muy, muy duro para darle algún consejo muy útil que no sea palo con lo que te gusta. Si utiliza elementos web exclusivamente, sería un poco tonto ir y convertirse en un programador GUI de Windows :)

2

Las aplicaciones no web serán muy útiles en el futuro lejano (como veo ahora). No podremos hacer nada con la eficacia como una aplicación de escritorio bien escrita en línea usando un lenguaje de scripting interpretado que tiene que usar un protocolo de red para comunicarse con el cliente. Sin embargo, si está interesado en la creación de redes, tal vez puede probar un poco de ambos. Cree un lector de RSS, un navegador web simple o un cliente de IRC. Todos sus grandes proyectos.

1

En mi opinión, un novato debe referirse a los aspectos básicos e internos del idioma de su elección. Las interfaces gráficas o web deben esperar hasta que sepa qué está haciendo en el back-end. Personalmente, le sugiero que comience con los programas de consola, pero supongo que eso depende de la plataforma que esté usando. Quizás las interfaces de escritorio sean más fáciles de usar en Windows.

La mejor práctica (en mi opinión) es escribir un motor sólido con la funcionalidad que desea proporcionar y escribir de una manera modular, por lo que más tarde puede decidir si desea proporcionar una interfaz de escritorio o una interfaz web (o ambos). La elección de la interfaz de usuario no debería importar al principio.

0

estoy de acuerdo, usted debe aprender lo que quiere. Una vez que comprenda la Web, aprenda un poco de programación de escritorio para ampliar un poco sus horizontes. Nunca sabrás cuándo lo necesitarás.

Pero, también, si usted está buscando en el desarrollo del aprendizaje de escritorio de Windows, entonces usted debería mirar en C# y/o VB.NET. .NET Framework es, de lejos, la forma más fácil de desarrollar aplicaciones de escritorio para Windows; Mucho más fácil que C++ por lo que entiendo (en realidad, no pasé mucho tiempo en C++).

+0

realmente no había planeado para atar a mí mismo en un lenguaje propietario, como me temo que en el momento que he aprendido lo básico, entonces habrá cambiado! Cuál es la forma "real" para hacer .NET? He encontrado el software VB .NET Express, ¿es un buen lugar para comenzar? Estoy bastante familiarizado con C, ¿C# sería mejor? –

1

aprendizaje aplicaciones no web siempre serán útiles. Siempre habrá aplicaciones que no son aptas para ser aplicaciones web. Incluso si todo se movió para ser una aplicación web, el código del lado del servidor y los navegadores web aún deben escribirse.

En este punto en el tiempo, si usted está interesado en la plataforma Windows, entonces yo le aconsejaría mirar en C# y WPF. Esas tecnologías se usan en entornos nativos y web.

1

desarrollo web es todo muy bien, pero la mayoría de los sistemas, incluso si tienen una buena interfaz web todavía consisten principalmente por debajo del nivel web, un poco como un iceberg.

End mayoría de las implementaciones web son de n niveles en el diseño con los niveles más bajos como el acceso a los datos y la integración con los servidores similares ocurring en idiomas no web.

mi punto de vista parece que hay una lengua dominante que puede tocar a todos estos niveles y que es .Net Framework. Observe que no hago ninguna especificación sobre C#, vb, etc. Considero que es una cuestión de gusto. Sin embargo, no recuerdo haber visto un sitio web bancario de n niveles utilizando php para hacer la capa de datos. Ni tampoco un sitio web de pedidos en línea que usaría ruby ​​para hablar con su servidor de jd edwards.

Aquí es donde las lenguas de peso pesado todavía impregnan y si eso es donde quieres trabajar luego aprender el marco .Net en cualquier variante de idioma que usted elija es el camino a seguir.

0

@Rich Bradshaw,

Creo que se puede obtener respuesta a su pregunta mirando en cualquier sitio de búsqueda de empleo.

lo que debo aprender?

Lo que quieras y te puede traer suficiente dinero.

1

creo que el futuro modelo de desarrollo de aplicaciones "web" será más similar al modelo actual de desarrollo de aplicaciones de escritorio. Con lo que quiero decir que las aplicaciones web de mañana no serán esfuerzos HTML/AJAX que son difíciles y caros de mantener, depurar y probar, en su lugar se desarrollarán con lenguajes compilados que se dirigen a una plataforma que ya está disponible en el navegador. Flash, Silverlight y (en menor grado, parece) Chrome son los modelos actuales de esta idea.

Así que tal vez no es una pérdida de tiempo para aprender esas API "complejas" tales. Mi grupo crea aplicaciones WPF y personalmente no encuentro que sean más complejas que la cosecha actual de proyectos HTML/AJAX.

+0

¿No serán HTML/AJAX? Um ... Chrome no presenta un nuevo idioma/plataforma, es solo un intento de mejorar la plataforma y el lenguaje existentes (JavaScript). –

+0

Creo que solo quiere decir que Chrome está intentando crear un puente entre los dos paradigmas, –

0

eso es una muy buena pregunta. Sé que hoy en día la mayoría del desarrollo de aplicaciones que conozco es aplicaciones web. Pero con idiomas como flex, no me sorprendería si las aplicaciones de escritorio volvieran.

0

Para estar bien informado, debe hacer ambas cosas. Las habilidades en un área pueden traducirse o no en el otro muy bien. La falta de estado, por ejemplo, hace tropezar a muchos desarrolladores de escritorio cuando comienzan a crear aplicaciones web. Por supuesto, su experiencia puede variar

1

Domine una disciplina y luego avance a la siguiente.

También estoy en la primera infancia de aprender desarrollo de aplicaciones comerciales. El mismo paso que tomé fue estudiar la base de datos. La mayoría de las aplicaciones en el mundo real está centrada en los datos. Es bueno comenzar con la aplicación de escritorio. Haga algo de arrastrar y soltar, luego estudie el código detrás. Estoy haciendo lo mismo con ASP.NET. He descargado toneladas de kits de inicio. Todo depende de tu estilo de aprendizaje. Para mí, puedo aprender más fácilmente por "aprender haciendo" que por digerir trozos tras fragmentos de teorías establecidas. Es por eso que el libro de cocina y los libros de cabecera funcionan perfectamente para mí.

1

Según su experiencia en lenguajes, noté que solo menciona PHP y C. Ninguno de los dos idiomas es estrictamente un lenguaje OO orientado a objetos. Deberías aprender un lenguaje OO tradicional como Java o C#, ya que la mayoría de los trabajos buscan esas habilidades. Por cierto, lea Yegge's advice sobre los idiomas que un desarrollador profesional debe aprender, y piense por usted mismo sobre lo que debe hacer.

Asumiendo que está interesado en el desarrollo de aplicaciones empresariales, tendría que decir que ese campo está pasando del desarrollo web tradicional (presente material de una base de datos en una página web) a aplicaciones ricas de Internet (datos aún presentes de un base de datos, pero el front-end comienza a aproximarse a una aplicación de escritorio). La creación de una aplicación de Internet exige conceptos que los desarrolladores de interfaces de usuario de escritorio conocen desde hace mucho tiempo. Por lo tanto, no creo que deba elegir entre desarrollo web y desarrollo de escritorio.

3

Esto puede modificarse, pero lo voy a decir de todos modos.

Puede programar o no puede. Hace aproximadamente 18 meses cuando estaba buscando un nuevo trabajo, estaba buscando en el mercado y estaba haciendo mucho .NET, pero algunos lugares querían que hiciera JAVA.

Estaba haciendo servicios web, querían que alguien hiciera otras cosas ... A fin de cuentas todo se reducía a esto: si saben cómo codificar, saben cómo codificar. Si está escribiendo aplicaciones de escritorio ahora mismo y dice que dentro de 6-8 meses desea mudarse a ASP.NET MVC, estará bien.

Puede tomar un poco de tiempo de inicio para aprender la sintaxis y hacerse una idea de algunas cosas, pero al final estarás bien. Digo que esto es cierto para todos los nuevos idiomas ... Skill es skill

0

Un programador .NET profesional debe manejar tanto webform como winform. Incluso desde el formulario web, pero finalmente, tendrá la oportunidad de tocar winform. Al igual que con el tema "VB vs C#", no verá a un experto de .net hablar de eso, porque finalmente, debería conocerlos a ambos.

0

Habrá casos en los que las cosas más allá de la web se pueden utilizar:

  1. Scripting aplicación idiomas/consola - scripts de creación vienen a la mente aquí para ver un ejemplo, sino también escribir archivos por lotes o comandos para realizar tareas sencillas como manejar la implementación o hacer alguna otra tarea simple que probablemente se realice mejor desde dentro de una caja negra en lugar de hacer algo manualmente una y otra vez.

  2. servicios de Windows (WCF) - Estos son también posiblemente útil para el seguimiento de las cosas y el envío de los "servidor está abajo!" mensajes para que alguien vaya y descubra qué salió mal.

También hay algo que decir acerca de middleware y back-end de desarrollo donde se podría escribir servicios web o manipular consultar una base de datos o insertar datos en una base de datos que puede no ser el mismo de la interfaz de usuario web front-end trabajo, sólo para dar un par de ejemplos de software de trabajo de desarrollo por ahí, aparte de los sistemas embebidos y cosas móvil que es también no-web y desarrollo sin fines de escritorio en un sentido.

Cuestiones relacionadas