ASP NET, NET Framework, MONO, SQL, Visual Studio | Professional Programs | Программист Еремин В.В.
(MONO) MONO (2009 год)

Используем MySQL вместо MS SQL в проектах на ASP.NET

MS SQL является тяжелейшим обременителем технологии ASP.NET. Достаточно упомянуть о его стоимости - $57,498 на процессор, ну пусть даже $24,999 на процессор. Есть какие-то программы у MS чтобы отмутить MS SQL подешевле, но все равно для WEB-проектов это неподъемные деньги. Поэтому MS SQL - это первый кандидат на замену его полностью бесплатным продуктом.

Однако, сделать это весьма непросто, потому что Микрософт заведомо все это продумал и подготовил две подлые ловушки - сделал для разработчиков бесплатным самую продвиную версию MS SQL и сделал бесплатной самую кастрированную версию MS SQL:


Вся эта ситуация возникает от того, что программисты микрософтоской платформы имеют чрезвычайно узкий кругозор и совершенно не знакомы с миром Freeware Opensource. Микрософтовские курсы, учебники и форумы - изо всех сил стараются заузить кругозор программистов. Например достаточно было мне на форуме SYSADMINS.RU заикнутся про то, что NGINX Игоря Сысоева является бесплатной альтернативой MS ISA Server и выполняет роутинг по хост-хеалдерам сайтов лучше чем MS ISA - как я был навечно там забанен и был удален не только этот топик, но и все мои другие топики. Аналогичный беспредел происходит на всех основных сайтах рунета. Информацию, как соскочить с платежей Биллу Гейтсу, приходится собирать буквально по крупицам:


Для начала работы в Visual Studio 2008 попробуйте установить коннект к базе MySQL из Server Explorer. Все коннекторы, которые вы найдете в интернете, имеют специфические диалоги. Тот коннектор, который я рекомендовал выше, выдаст такие диалоги. Коннектор от DevArt требует установки параметра UNICODE, иначе в студию, работающую в юникоде данные из MySQL, работающего в UTF-8, данные будут приходить абракадаброй. Но для указанного бесплатного коннектора никаких особенных параметров устанавливать не надо - в нем перекодировка очуществляется автоматически.

Ну вот собственно и все. Дальше используете привычный SqlDataSource и вы получите к конфиге нужную строку коннекта. Строку коннекта легко вписать и руками. Она очень простая, все варианты ее перечислены на http://www.connectionstrings.com/mysql. Только не путайте строку для коннекта через ODBC (как работает студия DevArt) и строку коннекта через DOT.NET провайдер для ASP.NET сайта:

<connectionStrings>
  <add name="testConnectionString" connectionString="Server=192.168.0.127;Port=3308;Database=releasebeat;User ID=releasebeat;Password=xxxxxx;"    providerName="MySql.Data.MySqlClient" />
</connectionStrings>

А на страничке получите обращение к этому провайдеру

<asp:SqlDataSource ID="MySqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
     ProviderName="<%$ ConnectionStrings:testConnectionString.ProviderName %>" 
     SelectCommand="SELECT * FROM T1">
</asp:SqlDataSource>

Вот собственно и все, что вам нужно для работы:




Теперь давайте поймем еще раз, что вы достигаете этим решением. Теперь когда ваш сайт станет захлебываться от нагрузки - то вам придется перейти на платную версию MySQL - MySQL Enterprise Server, которая стоит не $57 тыс. на каждый процессор, а всего $500.

Впрочем, если изначально можно предположить, что портал не справится с нагрузкой под MySQL и требует большей функциональности от СУБД (Например репликации или процедур на JAVA) - есть смысл сразу подумать о более продвинутой версии SQL (но тоже полностью бесплатной) - PostgreSQL.


Вы легко найдете в интернете множество всяких сравнительных характеристик MySQL <-> MySQL Enterprise <-> PostgreSQL <-> MS SQL 2008 <-> MS SQL Express, возможно я тоже выложу такое сравнение по производительности и функциональности, но я хотел бы обратить из множества всяких сравнительных характистик, опубликованных на тысячах страниц интернета, на вот эту важную характеристику СУБД, взятую мною с этой странички (кстати, в правой колонке забыли упомянуть операционки от Microsoft).




При установке MySQL на Linux для ASP.NET-программиста могут в начальный момент возникнуть сложности в непривычной среде, поэтому чтобы попасть в более ли менее комфортную среду работы для начала выполните Установка и начальное конфигурирование OpenSuse Linux.

Затем установите MySQL из вашего репозитария с дистрибутивами Linux. После инсталяции будет создано несколько сырых конфигурационных файлов MySQL. Их надо проинициализировать, но сначала запустить сервис MySQL (из под пользователя ROOT).

Желательно сразу установить MySQL Administrator и MySQL Query Browser (можно сразу в Yast из текущего репозитария, например компакт-диска). Если сервис MySQL запустился нормально, то надо приконнектится к MySQL (из под ROOT) и уже из MySQL Administrator надо создать реальные логины MySQL.

После этого уже можно начинать работу в более ли менее комфортной среде изготовления ASP.NET-сайтов в Linux.



Это не единственный вариант работы под Linux, хороших GUI-инструментов для MySQL существуют десятки, многие пользуются Webmin (который к тому же весьма удобен для администрирования Apache):



Многие пользуются для управления MySQL старинным универсальным инструментом phpMyAdmin, который работает на любой системой, а под Windows этот инструмент управления MySQL ставят сразу в пакете XAMPP (ставится в один клик MySQL в пакете с почтовиком, FTP-cервером и web-сервером).



Для перегрузки своих существующих данных из MS SQL в MySQL вы можете воспользоватся моей программой ScriptManager. Обратите внимание, что я не поддерживаю работу моих программ в Windows 7. Последняя версия Windows, в среде которой я поддерживаю работу моих OpenSource-программ и моих публичных компонентов ASP.NET-сайтов - Windows 2003 и Windows 2008. В дальнейшем работа всех моих популярных публичных .NET-программ и моих популярных компонентов ASP.NET-сайтов будет поддерживатся только в Windows XP-2003-2008 и в Linux.

Для перегрузки данных из MS SQL в MySQL можно также сгрузить MySQL ODBC Connector, создать ODBC-источник данных и прилинковать его к MS SQL.


Собственно же ASP.NET-программирование не требует хитростей типа сохранения коннекта (как это требуется в PostgreSQL - Этюды на ASP.NET. Пример сайта на СУБД PostgreSQL) - техника ASP-NET программирования не отличается от техники программирования с MS SQL. Поэтому я сделал не просто пример сайта с MySQL - а пример ASP.NET-сайта с отказом от стандартных пользователей ASP.NET, обычно устанавливаемых в MS SQL - Избавляемся от базы стандартных пользователей ASP.NET на MS SQL - пример ASP.NET сайта на MySQL.

Еще один аналогичный пример применения MySQL вы можете посмотреть на страничке Как сделать SOAP/WSDL-вебсервис на ASP.NET/MONO для вызова его из FLEX.



http://www.mono-project.com/Main_Page


Комментарии к этой страничке ( )
ссылка на эту страничку: http://www.vb-net.ru/MySQL/index.htm
<На главную>  <В раздел ASP>  <В раздел NET>  <В раздел SQL>  <В раздел Разное>  <Написать автору>  < Поблагодарить>