Подходит ли SQL Azure для клиентских приложений для настольных компьютеров? - PullRequest
12 голосов
/ 26 июля 2011

У меня есть клиент, который управляет малым бизнесом. Им нужно индивидуальное решение для базы данных, и я изучаю различные варианты. Мой опыт ограничен .NET использованием локальных SQL-серверов (без ASP.NET), однако этот клиент не является техническим и может извлечь выгоду из возможности аутсорсинга задач DBA. Я полный новичок Azure, я только что отсканировал учебники, и все они, похоже, нацелены на разработку решений MVC ASP. Клиенту не нужно решение на основе браузера. Полный клиент для настольного компьютера, используемый в разных географических офисах, был бы наименее дорогим вариантом, который я могу доставить. Я просто пытаюсь сэкономить время, просматривая все учебные пособия и документы, только чтобы понять, что это не то, для чего предназначен SQL Azure. По сути, мои вопросы сводятся к:

  1. Могу ли я разработать настольное приложение C # /. NET WPF с использованием Entity Framework 4, чтобы оно работало с SQL Azure вместо локального SQL Server?

  2. Есть ли известные ошибки с EF4 и SQL Azure?

  3. Существуют ли другие скрытые издержки / сложности при использовании SQL-Azure вместо локального SQL Server.

  4. Базовая поддержка инструмента одинакова? Один конкретный пример, который я могу придумать; получить средство профилирования SQL для устранения неполадок?

  5. Последний вопрос связан с безопасностью, и я не достаточно опытен, чтобы задать хороший вопрос, но считается ли обращение к базе данных SQL Azure таким способом безопасности, нет-нет?

Ответы [ 2 ]

7 голосов
/ 26 июля 2011
  1. Да, вы можете, но более подходящим подходом было бы использование служб данных WCF или другой формы веб-служб (asmx или WCF) в качестве уровня служб для вашего приложения.Мне нравится этот подход для бизнес-приложений.Я ненавижу веб-приложения для бизнеса и, используя настольное приложение WPF, подключенное к сервисам, вы получаете преимущества работы в облаке и облачного предложения без необходимости основываться на HTML.

  2. В наши дни SQL Azure полностью поддерживает EF.В прошлом были некоторые проблемы, но в наши дни я не сталкивался с ними.

  3. С точки зрения затрат на разработку и сложностей - среда, размещенная на настольном компьютере Azure, - это немного PITA отперспективы развития, но у меня не было серьезных проблем.Вы теряете возможность использовать локальный DEV SQL Server, если не используете размещенный экземпляр .... конечно, в этом есть затраты на разработку, потому что вы должны платить за использование.

  4. Хорошоточка!SQL Azure в настоящее время не поддерживает SQL Profiler.Я лично использую встроенную поддержку трассировки EF для этой функции.

  5. Прямое представление БД SQL Azure не является хорошей идеей с точки зрения безопасности.Вот почему я предлагаю использовать конечную точку служб данных WCF (или других веб-служб) в пункте 1.

5 голосов
/ 26 июля 2011

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

Вам необходимо принять стандартные меры предосторожности Azure - предположите, что произойдет сбой соединения, и убедитесь, что ваше приложение имеет логику повторных попыток для восстановления операции. Также обратите внимание, что SQL Azure прекратит любые операции, которые занимают больше минуты, чтобы сохранить службу для других пользователей. Если у вас много данных и некоторые неприятные запросы, это может быть актуально.

EF отлично работает с SQL Azure. У самого SQL Azure есть некоторые ограничения, о которых вы можете прочитать в документации на веб-сайте Microsoft. Если вы создадите базу данных для Azure, она будет отлично работать на SQL Server или SQL Express (но не обязательно наоборот).

В дополнение к ежемесячной плате за базу данных, вы будете платить за данные, которые покидают центр обработки данных. Тщательно спроектируйте свое приложение, чтобы минимизировать объем данных, извлекаемых из базы данных. Вам больше не нужно платить за данные, поступающие в центр обработки данных, что помогает.

Вы все еще можете использовать SQL Management Studio и Data Connections в Visual Studio. Нет SQL Profiler, хотя. Есть несколько раздражающих вещей, которые вы не можете сделать с Management Studio, но ничего непреодолимого.

Вам нужно будет открыть правила брандмауэра для доступа к базе данных, но, надеюсь, они будут ограничены. Аутентификация осуществляется с использованием учетных данных SQL Server, а не встроенной аутентификации.

Я бы не стал так поступать, но это работает.

...