2 июля 2010 в 11:46

Поддержка новой встроенной базы данных в ASP.NET перевод

.NET*
sql ce 4Буквально на днях я рассказал о новом IIS Express и поведал о нашей работе над улучшениями, которые мы произвели для облегчения жизни ASP.NET разработчикам.

И сегодняшний пост продолжит тему упрощения разработки и раскроет информацию о наших разработках в области баз данных. Фактически я хочу анонсировать завершение нашей работы над бесплатным SQL Server Compact Edition (SQL CE) в ASP.NET приложениях. Это позволяет упростить разработку и со стороны баз данных.
 
 

SQL Server Compact Edition 4


SQL CE абсолютно бесплатный, встроенный движок баз данных. Мы предоставим доступ к первой публичной бета-версии очень скоро. 4-я версия была разработана и тестировалась с ориентацией на работу с ASP.NET веб-приложениями.

Работа с существующими API


SQL CE работает с существующими .NET API и поддерживает SQL Server совместимый синтаксис запросов. Это означает, что с SQL CE. вы можете использовать существующие API для работы с данными такие, как ADO.NET, а также более высокоуровневые ORM, как Entity Framework и NHibernate. Работать будет почти любое существующее API для работы с данными, которое поддерживает модель провайдера ADO.NET.

Все это позволяет вам использовать отлаженные навыки программирования при работе с данными уже сегодня.

Не требует никакой инсталляции


Для того, чтобы использовать SQL CE от вас  не требуется запускать установку или инсталлировать сервер баз данных. Теперь достаточно просто скопировать SQL CE исполняемые файлы в папку \bin вашего ASP.NET приложения, а дальше ваше веб-приложение может использовать его, как движок баз данных. Не требуется никакой инсталляции или дополнительных прав безопасности, просто запустил и работает.

Приложения могут свободно включать в поставку SQL CE. Вы просто копируете веб-приложение на любой сервер и оно работает.

Файлы базы данных хранятся на диске


SQL CE хранит базы данных в виде файлов (с расширением .sdf). Вы можете хранить эти файлы в директории проекта \App_Data, нет нужды регистрировать их для использования в приложении.

Движок SQL CE запускается в памяти вашего ASP.NET приложения. Когда приложение завершает свою работу, он автоматически выгружается.

Shared-хостинги уже поддерживают SQL CE 4


SQL CE 4 уже может работать на ASP.NET 4 хостингах со средним уровнем доверия к приложениям, хостеру ничего не нужно устанавливать. Хостерам вообще ничего не нужно делать для работы SQL CE.

Разворачивать приложение теперь можно вообще с помощью одного FTP, просто копируем папку проекта и все готово.

SQL CE сам запустится в вашем приложении на удаленном хосте.

Поддержка в Visual Studio 2010 и Visual Web Developer 2010 Express


В ближайшем будущем у VS 2010 и Visual Web Developer 2010 Express появятся инструменты, поддерживающие работу с SQL CE 4. Вы сможете добавлять SQL CE файлы в ASP.NET проекты, использовать Visual Studio Server Explorer для создания и редактирования таблиц, а также использовать высокоуровневые конструкторы, как Entity Framework(см.ниже) для моделирования и привязки базы данных к классам, которые в дальнейшем использовать в LINQ.

image

Вдобавок к уже известным вам API для работы с данными, вы сможете использовать те же инструменты разработки для SQL CE.

Разработка и Продакшн


SQL может использоваться, на машине разработчика и для простых сайтов на продакшене. C 4-ой версий SQL CE мы провели техническую работу и удостоверились, что SQL CE не будет падать или происходить взаимная блокировка, когда происходят многопоточные сценарии, как в случае с ASP.NET. Это огромное изменение, по сравнению с предыдущей версией SQL CE, которые мы разрабатывали только для клиентской части, плюс – он блокировал работу в веб-окружении. А теперь SQL CE 4 можно без проблем использовать на веб-серверах.

Не существует никаких лицензионных ограничений для использования SQL CE.

Простая миграция на SQL Server


SQL CE является встроенной базой данных, что делает её идеальной для простых сценариев. Для высоконагруженных же сайтов и приложений вы, наверное, захотите мигрировать на SQL Server Express(бесплатен), SQL Server или SQL Azure. Данные сервера обладают лучшей масштабируемостью, больше возможностей для разработки (включая такие возможности, как хранимые процедуры, которые не поддерживаются в SQL CE), а также более расширенные возможности для управления данных.

Мы предоставим инструменты для миграции, которые позволят взять базу данных SQL CE и с легкостью обновится до SQL Server Express, SQL Server или SQL Azure. Вам не придется вносить изменения в код для обновления базы данных SQL CE до SQL Server или SQL Azure. Нашей целью – дать вам возможность просто изменить строку соединение с базой данных в web.config и продолжить работать с приложением.

Выводы


SQL CE 4 предоставляет простую, легкую базу данных, которую вы можете использовать в ASP.NET приложения. Позволяет вам быстро начать работу над проектом, не требуя инсталляции полноценной базы данных на локальной машине разработчика. В следствии совместимости с полной версией SQL Server, ваш код использует все те же API (ADO.NET, Entity Framework, NHibernate и т.п)

У вас появится возможность быстро разворачивать SQL CE базы данных на хостингах для простых сайтов и приложений. В дальнейшем, при росте трафика и нагрузки вы сможете обновить базу данных до SQL Server Express, SQL Server или SQL Azure, не изменяя код.

Мы предоставим доступ к первой публичной бета-версии SQL CE 4 (вместе с IIS Express и другими более крутыми штуками, о которыз я еще напишу) на следующей неделе.
Автор оригинала: Scott Gu
Евгений @jeje
карма
95,7
рейтинг 0,0
Пользователь
Самое читаемое Разработка

Комментарии (27)

  • +13
    После PHP смотришь на продукты microsoft как на космический корабль.
    • +11
      наверное, потому что php — велосипед?:)
  • +2
    Молодцы! Многопоточности действительно очень нехватало. И не только в ASP.NET.
    • 0
      Да многопоточность работала и в 3.5, нужно только писать из того же потока что создал соединение, не то получиш AV. Но всё одно постоянные конфликты достали, да и вообще 3.5 даже с SP2 выглядит очень недоработанным. У меня примерно 15-20% работы над проэктом ушло на обход проблем движка. Да и напрямую работать нудобно, а из ORM, LINQ to SQL развивать прекратили, а EF имела недоработки вроде неподдержки автогенерируемых ключей, асоциации не работали, хотя может в 4.0 наконец допилили.
  • +3
    Спасибо за информацию. Возник вопрос.
    Использование sql server ce 4 и iis express абсолютно бесплатно? Для всех категорий пользователей? Даже для корпоративных?
    • +7
      Да :)
    • 0
      И для всех типов проектов. Вы можете использовать Visual Studio Express, SQL Server Express, SQL Server Compact, IIS Express для создания коммерческих продуктов и размещения коммерческих сайтов. Ограничений здесь нет.
      • 0
        Не хватает Windows Express для всего этого :-)
        • 0
          Это действительно огромный минус. Без шуток и смайлов.
          • 0
            Есть версия Starter. Стоит дешево, однако сильно урезана.
        • 0
          Для получения Windows бесплатно для стартапов есть BizSpark ;)
          • 0
            а если Я не стартап?
            • 0
              А что мешает им стать?
              • +1
                природная лень :-)
            • 0
              Для веб-студий/фрилансеров создающих сайты есть WebsiteSpark. Мы сейчас думаем как бы программу эту на большее количество веб-разработчиков — возможно осенью будут сюрпризы.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Насколько я помню, там используется C++ Interop — смесь оригинального кода на C++ и обёртки на C++ Managed, чтобы можно было использовать в дотнете.
      • +2
        Уже есть полный порт code.google.com/p/csharp-sqlite/, они там вполть до того что будет под Silverlight работать.
    • 0
      Пробовали для чего? sql server ce 4 и sqlite вомногом пересекаются.
    • 0
      Пробовал System.Data.SQLite, правда она mixed-mode. Все более-менее хорошо, только есть несколько весьма неприятных граблей — например, нужен хак для использования с .NET 4.0, и с деплойментом могут быть проблемы (недавно ваял небольшую тулзу с использованием WPF/EF, на других машинах с всеми установленными пререками она категорически валилась на этапе инициализации ViewModel, т.е. что-то явно не так с провайдером).
  • 0
    I Love This Company!!!
  • 0
    А никто не в курсе, они именованые параметры в запросах допилили или все также плохо?
  • +1
    Чёрт, после проблем которые отгрёб с SQL CE на private deployment, и многопоточном доступе не порекомендую. SQL CE никому для longrunning сервиса с многопоточностю не посоветую. В случае с Windows-хостингом, цены выше, потому почти всегда есть MS SQL или MySQL на крайняк. Если нужен встроенный, то возможно SQLite лучше, но я не пробовал, наивно понадеялся на марку Майкрософт.
    • 0
      Все-таки новую версию попробуйте. Может быть мнение свое поменяете.

      Кстати, VDS сейчас по многим акциям можно дешевле взять — например, посмотрите у parking.ru и infobox.ru — есть по 400 рублей (у parking.ru даже и дешевле).
      • 0
        Ну попробовать я конечно что попробую, но ведь это только бета, а у меня проэкт уже почти закончен и обновления не планируэтся. Нужно чтобы програма могла работать без вылета месяцами с SQL CE 3.5 SP2 я уже отгрёб больше проблем чем со всеми остальными компонентами, а БД у меня не самая большая часть.

        Я не занимаеюсь вэбом, потому на даный момент цены мне не актуальны.
  • 0
    а ограничение на размер базы в 4гига так и осталось?
  • 0
    Очень уж вкусная связка получается Razor + SQL CE. Для небольших сайтов, аля интернет магазины вообще замечательно.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.