Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: jam man en 3 Octubre 2017, 07:00 am



Título: Cómo distribuir software después de desarrollarlo en Visual Studio C#?
Publicado por: jam man en 3 Octubre 2017, 07:00 am
Hola buenas, soy principiante en el desarrollo de aplicaciones para escritorio windows, y se me ha surgido esta duda:

Por ejemplo si cuando se termina de desarrollar un software, que en este caso se haya usado Visual Studio con windows forms con lenguaje de programación C#  y SQL Server, cómo se hace para poder distribuir ese software? Es decir una vez que se haya completado todo el proceso de desarrollo y programación del software, como se hace para que no haya conflictos con el servidor de base de datos al ejecutar el programa en otra computadora?

Ya se que Visual Studio genera la aplicación .exe para ser ejecutado en cualquier computadora, pero mi duda es esa que pasa si la ejecuto en otra computadora que no tenga ni Visual Studio ni SQL Server instalados.


Título: Re: Cómo distribuir software después de desarrollarlo en Visual Studio C#?
Publicado por: Eleкtro en 3 Octubre 2017, 09:19 am
Hola.

Visual Studio no necesita ser instalado en la máquina cliente, lo que se requiere tener instalado es .NET Framework. Por ejemplo si tu proyecto de Visual Studio tiene como objetivo la versión 4.6 de .NET Framework, entonces el equipo donde distribuyas tu software requerirá de .NET Framework 4.6 (o superior) instalado para correr tu aplicación.



Respecto a SQL Server, otras personas podrán ofrecerte mejor ayuda que yo, puesto que nunca he profundizado mucho en la programación de sistemas de administración de bases de datos (así que no puedo hablar con seguridad sin la posibilidad de equivocarme), pero al igual que antes no deberías necesitar que en el equipo esté instalado el software con el que desarrollaste "X", sino que simplemente se necesitarán los runtimes para correr "X".

En teoría no se necesitará ningún runtime adicional más que .NET Framework en la máquina cliente para acceder a la base de datos, pero recuerda que siempre puedes copiar cualquier ensamblado referenciado en tu proyecto de Visual Studio en el directorio de inicio de tu aplicación y así distribuir todas las librerías necesarias.

Si deseas automatizar la etapa de instalación de tu aplicación junto a los requisitos que sean necesarios de SQL, bien puedes crear un archivo de instalación MSI:
  • How to: Create or Add a Setup Project (https://msdn.microsoft.com/en-us/library/19x10e5c(v=vs.100).aspx)
  • How to: Install Prerequisites in Windows Installer Deployment (https://msdn.microsoft.com/en-us/library/7eh4aaa5(v=vs.100).aspx)
  • Walkthrough: Using a Custom Action to Create a Database at Installation (https://msdn.microsoft.com/en-us/library/49b92ztk(v=vs.100).aspx)

O bien puedes utilizar la tecnología de distribuición ClickOnce y añadir como prerequisito SQL Express:
  • How to: Publish a ClickOnce Application using the Publish Wizard (https://msdn.microsoft.com/en-us/library/31kztyey.aspx)

Fuente e información más detallada:
  • How to deploy application with sql server database on clients? | StackOverflow.com (https://stackoverflow.com/a/32956485/1248295)

Ya se que Visual Studio genera la aplicación .exe para ser ejecutado en cualquier computadora, pero mi duda es esa que pasa si la ejecuto en otra computadora que no tenga ni Visual Studio ni SQL Server instalados.

Por si las dudas siempre puedes utilizar cualquier software de virtualización de sistemas operativos (ej. VMWare WorkStation) para crear una máquina virtual con Windows 7/8/10 y comprobar que tu software funcione como es esperado y el tema de las dependencias/requisitos igual. De hecho si piensas distribuir un software de manera seria/profesional/comercial eso es precisamente lo que debes hacer, me refiero, responsabilizarte del funcionamiento de tu app probándola en un entorno de Windows sin alterar antes de empezar a distribuirla.

Saludos.