Podemos desenvolver o aplicativo ASP.NET MVC com o MySQL como banco de dados?

8

Tenho visto principalmente sites ASP.NET usando MSSQL como banco de dados. Até eu desenvolvi um há algum tempo. Por que apenas o MSSQL, quando o MySQL, uma alternativa gratuita está disponível. Então, a questão é: É possível integrar um banco de dados MySQL tão facilmente quanto o MSSQL com o aplicativo ASP.NET ou precisamos usar alguma API para fazer isso?

Pankaj Upadhyay
fonte
8
O SqlServer Express - que é comumente usado por desenvolvedores de MS-stack - também é gratuito.
Adam Crossland
Então, por que as pessoas selecionam MSSQL sobre MySQL se a integração é fácil o suficiente. O custo não é um grande fator, mas ainda é um fator. Os dois são igualmente bons, mas o MySQL é gratuito
Pankaj Upadhyay
2
A integração imediata com o SQL Server é um grande ponto de venda e o Visual Studio é fornecido com todos os tipos de ferramentas sofisticadas que facilitam a geração de modelos e entidades. É o mesmo motivo pelo qual o combo PHP-MySQL se tornou tão popular: rápido e fácil.
Jarrod Nettles
3
Depois de calcular o tempo do desenvolvedor, pode ser mais barato implantar um MS SQL Server que o MySQL.
Boris Yankov
3
Quão bem as ferramentas MS funcionam com o MySQL? Quão fácil é para desenvolvedores que conhecem o MS-SQL e suas ferramentas mudar as coisas para o modo MySQL? Esse é um custo que você não está considerando aqui, eu acho.
JB King

Respostas:

7

Eu tenho um aplicativo Web ASP.NET/C#/MySQL em execução na produção há cerca de 3 anos. Corre bem. Também o uso para todos os meus trabalhos paralelos. O conector ADO.NET se conecta ao visual studio e funciona tão bem quanto o conector SQLSERVER. Existem algumas dicas embora. Primeiro, não há um equivalente gratuito do Management Studio do SQLSERVER, até onde eu encontrei. Eu uso o Aqua Data Studio, mas custa um pouco. Existem alguns RDMSs gratuitos para MySQL, mas eles não são de forma alguma comparáveis ​​ao Management Studio. Ouvi dizer que o eclipse tem um plugin para o MySQL que é muito bom e gratuito, e ainda não tentei. Além disso, no MySQL, você não pode ALTERAR um procedimento armazenado, apenas pode soltar e criar. Isso causa algumas dores no A no visual studio.

O conector do MySQL ADO.NET é totalmente polimórfico com os namespaces System.Data e System.Data.SqlClient, portanto é fácil ter várias versões de um banco de dados para SQLSERVER e MySQL simultaneamente. Isso é útil se você tiver um cliente que é um amigo da Microsoft e diz porcaria como: "Somos uma loja exclusiva da Microsoft!" como se ele realmente soubesse do que está falando. Isso acontece mais do que você imagina. Em seguida, você pode simplesmente usar seu código SQLSERVER antigo sem precisar fazer nenhuma codificação adicional - se você tiver um bom design para começar.

Minha última crítica é que o MySQL é notório por não manter a compatibilidade com versões anteriores entre o conector .NET e as diferentes versões do mecanismo de banco de dados. Tudo bem, desde que você esteja implantando o servidor com o MySQL, mas se estiver implantando o site em um provedor de hospedagem, tenha cuidado!

Vale a pena o esforço extra na minha opinião, embora tenha algumas das falhas inerentes que muitos projetos de código aberto têm. É, na minha experiência, tão escalável e mais rápido que o ms sqlserver, enquanto que se você conhece o T-SQL, irá capturar a sintaxe do MySQL de forma relativamente rápida.

Jonathan Henson
fonte
graças companheiro, que foi realmente útil e grande resposta para a minha pergunta
Pankaj Upadhyay
1
Você pode usar MySql Workbench , que é gratuito e semelhante ao MSSQL Server Management Studio
Jetti
@ Jetti De fato, você pode, e a versão mais recente é bastante agradável. Ele ainda não mantém uma vela no Management Studio. No entanto, eu absolutamente amo o Aqua Data Studio. Eu uso-o para todos os meus projetos de banco de dados - SQLSERVER, MySQL, Oracle e assim por diante ...
Jonathan Henson
15

ASP.NET como uma tecnologia da web e não está vinculado a nenhum banco de dados específico. Como tal, você pode usar o NHibernate ou métodos padrão de acesso a dados para conectar-se ao MySQL no back-end.

Ryan Hayes
fonte
2

Seu aplicativo pode se conectar ao banco de dados com a mesma facilidade, mas você pode estar perdendo algumas das integrações do Visual Studio para SQL Server (Projetos do SQL Server). Se você não se importa ou não está muito ligado a eles, isso não importa.

JeffO
fonte
2

Se você estiver alternando de um banco de dados para outro durante o curso de um projeto, poderá ter algumas tarefas relacionadas ao banco de dados (migração de dados) a serem executadas se tiver usado tipos específicos do Sql Server. Além disso, se você escreveu procedimentos armazenados, precisará reescrevê-los todos.

Caso contrário, e para novos projetos, não há problema algum. Basta usar o conector ADO.NET: http://dev.mysql.com/downloads/connector/net/

E, como Ryan escreveu, com o ADO.NET você pode conectar-se a qualquer banco de dados que desejar, desde que alguém tenha escrito o conector para ele. E há ... muitos.

Jalayn
fonte
0

Você pode usar o MySQL com o ASP.NET MVC, como todo mundo já disse antes. A única coisa que você estará perdendo é a CLR Integration with SQL Server . É bom poder escrever procedimentos armazenados em C # se você tiver cálculos complexos e isso é algo que você não pode duplicar usando o MySQL.

Jetti
fonte