Visual Basic.NET - Ayudenme a resolver estas dudas

 
Vista:

Ayudenme a resolver estas dudas

Publicado por Nando (1 intervención) el 10/02/2010 23:10:54
Saludos soy programador de Visual Basic .NET y C# .NET. Siempre e desarrollado aplicaciones de escritorio, la mayoria que manejan bases de datos locales.

Mis clientes ahora me piden mucho aplicaciones para la WEB que puedan conectarse a una base de datos desde cualquier sitio.

Mis preguntas son:
¿Tiene que ser forzosamente WEB? ¿No puede ser una aplicacion de escritorio que se conecte remotamente a la BD por medio de la IP o algo asi? ¿Cual es la mejor opcion?

La verdad que no tengo nada de experiencia en el desarrollo de aplicaciones para WEB.....¿Que se requiere? Me gustaría aprender a programar en ASP.NET pero...al tener mi aplicacion lista y compilarla....¿como la distribuyo.... se requiere un servidor forsozamente? ¿Es gratis?....Porque e escuchado que PHP y Apache son muy populares (¿pues que ventajas tienen aparte de ser multiplataforma?)....

Gracias y espero puedan orientarme un poco.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayudenme a resolver estas dudas

Publicado por Orcano (42 intervenciones) el 11/02/2010 01:01:41
En base a experiencia personal...

Nunca ha hecho un desarrollo de una aplicación utilizando Web pero me imagino que se podría hacer... digo con una aplicación se utilizan tanto sockets como ftp que utilizan el puerto de Internet...

Del servidor hay varios hostings gratuitos que soportan las diferentes opciones de PHP, ASP, JSP, etc.

Efectivamente PHP es más popular porque de inicio APACHE es gratuito y puedes correr versiones en Windows no solo de Linux y su estructura es mucho más sencilla que ASP.

Si lo que requieres es una aplicación de escritorio que tenga mucha funcionalidad en Web lo más indicado es Flex para hacer una RIA

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ayudenme a resolver estas dudas

Publicado por Joan F (129 intervenciones) el 11/02/2010 20:40:50
Hola,

Bien, para este problema hay varias opciones:

- Convertir la aplicacion a ASP.NET: Esta solución dependiendo del tamaño o complejidad del programa puede que requiera mucho tiempo y recursos. Si tienes conocimientos y experiencia en aplicaciones .NET con windows forms estoy seguro que con un libro y un poco de practica enseguida aprenderias. Si la aplicacion contiene un UI complejo, entonces quizás la mejor opción seria convertir la aplicación a Silverlight que permite mejores UIs que no una pagina web.
- Crear una capa de servicios en un servidor: Si convertir la aplicacion es demasiado complejo, una opcion és crear una intrerface a la base de datos con servicios web o WCF. Entonces, se realizan modificaciones al programa de forma que en vez de conectar directamente a la base de datos se conecta con esta interfaz en un servidor y la interfaz se encarga de realizar las transacciones con la base de datos. Esto es un poco complejo y si elijes esta opción te recomendaría previamente que leyeras mucha documentación sobre servicios web y/o WCF, especialmente en la parte de seguridad.
- Conectar mediante VPN o SSH el cliente a la red donde este la base de datos: En este caso, se trataría de hacer que los ordenadores cliente se conectaran a la red del servidor de base de datos por internet formando lo que se llama una "red privada virtual" (VPN: Virtual Private Network). Mediante esta opción no se ha de modificar nada del programa, ya que una vez los ordenadores están conectados se ven como si estuvieran en red local aunque sea a través de internet.
- Abrir directamente la base de datos a internet: Esta opcion és la mas simple pero la menos recomendable ya que estas exponiendo directamente la base de datos a internet i multiples Hackers intentaran ganar acceso. La ventaja es que no has de hacer ninguna modificacion al programa, solo cambiar la conexión de la base de datos de forma que se conecta a la IP del servidor, pero por motivos de seguridad es una opción no recomendable a no ser que no haya ninguna otra posibilidad.

En todo caso, en todas las opciones, estas enviando datos por Internet de forma que algún hacker puede intentar capturar los datos y/o acceder a los servidores de datos, así que cualquiera que sea la opción lo mas importante es la seguridad (encriptacion de datos, controles de acceso, ...)

En cuanto a la distribucion de una aplicacion web se requiere un servidor. En este caso la distribución és muy sencilla, solo has de instalar la aplicacion web en el servidor (el visual studio incluye herramientas pala la instalacion en un servidor IIS) y los clientes se conectan al servidor como a qualquier otra pagina web. No hace falta instalar nada en el cliente. En cuanto a servidor, lo mas recomendable para aplicaciones ASP.NET es un Windows Server, que normalmente ya incluye el servidor web IIS (Internet Information Services) pero es un poco caro. Tambien Windows XP professional y Vista (algunas versiones) incluyen el IIS como servidor web y se podrían a llegar a usar. Otra opcion és contratar un servicio de "Hosting". En este caso una vez se tiene realizada la aplicacion se contrata a una empresa que te pone a disposición un cierto espacio en un servidor web o un servidor web entero, y la empresa se encarga del mantenimiento del servidor.

La ventaja del PHP y Apache, aparte de que son multiplataforma, es que son gratuitas. Muchas webs usan la combinacion LAMP (Linux + Apache + MySQL + PHP) ya que todos los programas son gratuitos (solo creo que para MySql has de pagar algo para uso profesional) y no por eso menos potentes o eficientes que otros programas de pago.

Por mi experiencia, la primera opción que recomendaría es intentar que los clientes se conectaran mediante VPN a una red con el servidor de bases de datos. Esta solución me ha dado bastantes buenos resultados de seguridad y fiabilidad y evita tener que realizar demasiados cambios en el código. Si no es posible entonces mi segunda opción seria convertir la aplicación a ASP.NET a no ser que la conversión implique demasiado trabajo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayudenme a resolver estas dudas

Publicado por Nando (2 intervenciones) el 12/02/2010 06:10:31
Muchas gracias !

excelentes respuestas, les agradezco, haber por que opcion tomo camino... lo de VPN suena interesente buscare acerca de ello....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar