¿Podemos desarrollar la aplicación ASP.NET MVC con MySQL como base de datos?

8

La mayoría de las veces he visto sitios web ASP.NET usando MSSQL como base de datos. Incluso desarrollé uno hace algún tiempo. ¿Por qué solo MSSQL, cuando MySQL, está disponible una alternativa gratuita? Entonces, la pregunta es, ¿ES posible integrar una base de datos MySQL tan fácilmente como MSSQL con la aplicación ASP.NET o necesitamos usar alguna API para hacerlo?

Pankaj Upadhyay
fuente
8
SqlServer Express, que es muy utilizado por los desarrolladores de MS-stack, también es gratuito.
Adam Crossland
Entonces, ¿por qué las personas seleccionan MSSQL sobre MySQL si la integración es lo suficientemente fácil? El costo no es un factor importante, pero sigue siendo un factor. Ambos son igualmente buenos, pero MySQL es gratis
Pankaj Upadhyay
2
La integración inmediata con SQL Server es un gran punto de venta y Visual Studio incluye todo tipo de herramientas sofisticadas que facilitan la generación de modelos y entidades. Es la misma razón por la que el combo PHP-MySQL se hizo tan popular: rápido y fácil.
Jarrod Nettles
3
Después de calcular en el tiempo del desarrollador, podría ser más barato implementar un servidor MS SQL que MySQL.
Boris Yankov
3
¿Qué tan bien funcionan las herramientas de MS con MySQL? ¿Qué tan fácil es para los desarrolladores que conocen MS-SQL y sus herramientas cambiar las cosas al modo MySQL? Eso es un costo que no estás considerando aquí, creo.
JB King

Respuestas:

7

He tenido una aplicación web ASP.NET/C#/MySQL ejecutándose en producción durante aproximadamente 3 años. Corre bien También lo uso para todos mis trabajos paralelos. El conector ADO.NET se conecta a Visual Studio y funciona igual de bien que el conector SQLSERVER. Sin embargo, hay algunas trampas. Primero, no hay un equivalente gratuito de Management Studio de SQLSERVER por lo que he encontrado. Yo uso Aqua Data Studio, pero cuesta un poco. Hay algunos RDMS gratuitos para MySQL, pero de ninguna manera son comparables con Management Studio. Escuché que eclipse tiene un complemento para MySQL que es bastante bueno y gratuito, y no lo he probado. Además, en MySQL no puede ALTERAR un procedimiento almacenado, solo puede soltar y crear. Esto causa algunos dolores en la A en el estudio visual.

El conector MySQL de ADO.NET es totalmente polimórfico con los espacios de nombres System.Data y System.Data.SqlClient, por lo que es fácil tener múltiples versiones de una base de datos para SQLSERVER y MySQL simultáneamente. Esto es útil si tiene un cliente que es un amigo de MS que dice "¡Somos una tienda de Microsoft!" como si realmente supiera de qué está hablando. Esto sucede más de lo que te das cuenta. Luego, puede usar su antiguo código SQLSERVER sin tener que hacer ninguna codificación adicional, si tiene un buen diseño para empezar.

Mi última crítica es que MySQL es conocido por no mantener la compatibilidad con versiones anteriores entre el conector .NET y las diferentes versiones de su motor de base de datos. Esto está bien siempre que esté implementando el servidor con MySQL, pero si está implementando el sitio en un proveedor de alojamiento, ¡tenga cuidado!

En mi opinión, vale la pena el esfuerzo adicional, aunque tiene algunos de los defectos inherentes que tienen muchos proyectos de código abierto. En mi experiencia, es tan escalable y más rápido que ms sqlserver, mientras que si conoce T-SQL, aprenderá la sintaxis de MySQL con relativa rapidez.

Jonathan Henson
fuente
gracias amigo, eso fue realmente útil y una gran respuesta a mi pregunta
Pankaj Upadhyay
1
Puede usar MySql Workbench , que es gratuito y similar a MSSQL Server Management Studio
Jetti
@Jetti De hecho puedes, y la última versión es bastante agradable. Todavía no tiene una vela para Management Studio. Sin embargo, me encanta Aqua Data Studio. Lo uso para todos mis proyectos de base de datos: SQLSERVER, MySQL, Oracle, etc.
Jonathan Henson
15

ASP.NET como tecnología web y no está vinculado a ninguna base de datos específica. Como tal, puede usar NHibernate o métodos de acceso a datos estándar para conectarse a MySQL en el back-end.

Ryan Hayes
fuente
2

Su aplicación puede conectarse a la base de datos con la misma facilidad, pero es posible que se esté perdiendo algunas de las integraciones de Visual Studio para SQL Server (Proyectos de SQL Server). Si no te importa o no estás demasiado apegado a ellos, entonces no importa.

JeffO
fuente
2

Si está cambiando de una base de datos a otra durante el curso de un proyecto, es posible que tenga que realizar algunas tareas puramente relacionadas con la base de datos (migración de datos) si utiliza tipos específicos de SQL Server. Además, si escribió procedimientos almacenados, debe volver a escribirlos todos.

De lo contrario, y para nuevos proyectos, no hay problema en absoluto. Simplemente use el conector ADO.NET: http://dev.mysql.com/downloads/connector/net/

Y, como escribió Ryan, con ADO.NET puede conectarse a cualquier base de datos que desee siempre que alguien haya escrito el conector para ella. Y hay ... muchos.

Jalayn
fuente
0

Puede usar MySQL con ASP.NET MVC, como todos los demás han dicho antes. Lo único que perderá es la integración CLR con SQL Server . Es bueno poder escribir procedimientos almacenados en C # si tienes cálculos complejos y eso es algo que no puedes duplicar usando MySQL.

Jetti
fuente