Windows Live ID Добро пожаловать на IT Community 
Регистрация

Стань частью ИТ-сообщества

Хочешь найти своих друзей, коллег или просто интересных людей со схожими интересами в ИТ-области? Не теряй время...

Присоединяйся к нам!

Евгений Серков

Ольга Лисиенко

Nikitos Хрен_вам


Все участники

Azure (RSS)

Просмотров: 1196
Ответов: 0

Встреча SQL Server Russia User Group по вопросам миграции решений на SQL Server

отправлено 18 марта 2010 г. 16:43 участником agladchenko

30 марта 2010 г. 17:00 — 19:00
Часовой пояс: (GMT+03:00) Москва

Москва, Россия. Точный адрес будет сообщен дополнительно

Общая информация о мероприятии

Продукты: Microsoft SQL Server

На мероприятии будут обсуждаться вопросы перевода решений с MySQL на Microsoft SQL Server.
Особое внимание будет уделено инструментарию для автоматизированного переноса баз Microsoft SQL Server Migration Assistant for MySQL (CTP), который автоматически конвертирует типы данных в ближайшие совместимые, а также переносит ключи и индексы (поддерживаются SQL Server 2005, 2008 и SQL Azure).
В ходе встречи будет рассмотрена работа программы на примере реального веб-приложения - форума PhpBB 3, а также проведены оценки выигрыша в производительности от перехода на SQL Server. Под SQL Server понимается бесплатная редакция SQL Server 2008 Express, которую можно свободно скачать с веб-сайта.
К участию в семинаре приглашаются директора по разработке, архитекторы, специалисты по разработке и тестированию.
Участие в мероприятии бесплатное. Допускается участие нескольких человек от компании.

По вопросам участия во встрече вы можете обращаться по адресу: isvrus@microsoft.com.
Получить информацию о ресурсах Microsoft, доступных компаниям-разработчикам, вы можете на портале www.microsoft.ru/isv.

Параметры регистрации

Дополнительная информация

Вопросы относительно участия в мероприятиях можно адресовать в Информационный центр Microsoft Россия:

    8-800-200-8001 (бесплатные звонки из городов России)
    7 (495) 916-71-71 (для звонков из Москвы)
    Факс: 7 (495) 641-10-40
    Электронная почта: russia@microsoft.com

Код мероприятия: 1032446895


Читать далее
Категория: , , , , , , , , , , , , , , , ,
Просмотров: 1566
Ответов: 0

Обновите свои новостные каналы лентами из SQL Server BLOGROLL 2010

отправлено 2 февраля 2010 г. 15:28 участником agladchenko

Продолжаю традицию в начале года верстать очередной BlogROLL. За основу этого списка новостных лент берётся мой актуализированный OPML, т.е. счастливым обладателям IE7 и выше достаточно просто импортировать его каналы. Как это сделать уже было подробно и наглядно описано в моём блоге. Тех же, кто предпочитает список блогов, я пригашаю перейти по этой ссылке на страницу, где я сгруппировал блоги по нескольким тематическим направлениям: SQL Server BLOGROLL 2010

Вашему вниманию предлагается актуализированный список блогов (блоги, которые не пополнялись больше года, из него исключены). Кроме того, в списке появилось очень много совершенно новых авторов, которые публикуют исключительно интересные материалы и исследования, так либо иначе связанные с SQL Server. Прошлогодняя лента блогов такде доступна, напоминаю ссылку на её страницу: SQL Server BLOGROLL 2009


Читать далее
Категория: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Просмотров: 647
Ответов: 0

Обновлены переводы Whitepapers по Azure Platform до уровня March 2009 CTP

отправлено 22 мая 2009 г. 13:12 участником kosinsky

На ресурсе Way2Cloud были выложены переводы Whitepapers по Azure. Но в начале мая оригинальные документы обновили для соответствия March 2009. Поэтому переводы тоже пришлось обновлять. Сейчас доступны:

Также доступен перевод документации по Azure Storage:

Читать далее...
Читать далее
Категория:
Просмотров: 769
Ответов: 0

Примеры работы с SQL Data Services

отправлено 29 марта 2009 г. 22:23 участником kosinsky

Как я писал раньше, SQL Data Services будет обновлен для поддержки обычного TDS доступа и переписывать существующие приложения не потребуется. Сейчас проходит фаза внутреннего тестирования системы и получить доступ для собственных экспериментов не получается.

Но уже появились первые примеры кода для работы с SDS:

Общие несколько моментов:

  • действительно используются обычные библиотеки и Transact-SQL
  • нужно обязательно использовать шифрование (включается параметром строки соединения Encrypt=true)
  • параметры для соединения стоятся по принципу:
    • <имя виртуального сервера>.data.dev.mscds.com (при переходе в публичную эксплуатацию будет заменено на data.database.windows.net)
    • логин для подключения <логин>@<имя виртуального сервера>
Читать далее...
Читать далее
Категория: ,
Просмотров: 787
Ответов: 0

Azure: Перевод руководтсва по .NET Service Bus

отправлено 25 марта 2009 г. 15:01 участником kosinsky

При построении облачных решений или при интеграции систем разных организаций часто возникает проблем обеспечить публичный доступ к службам находящимся в локальных сетях. Самым простым решением кажется “проброс”, то есть перенаправление портов на роутере, но обычно он приводит к большему число проблем, чем решает.

В рамках платформы Azure доступе компонент .NET Service Bus, который позволяет представить публичный доступ к спрятанному в глубинах организации сервису.

Документация доступна здесь с декабря. Но совсем недавно ее перевели на русский язык. Перевод живет здесь.

Читать далее...
Читать далее
Категория:
Просмотров: 696
Ответов: 0

SQL Data Services новые подбробности

отправлено 12 марта 2009 г. 15:27 участником kosinsky

После того как анонсировали поддержку обычной реляционной модели вместо ACE подхода. Сразу возникло множество технических вопросов: на сколько будет поддерживатся реляционная модель, на базе какой версии SQL Server, что с безопасностью, что делать со старым HTTP подходом.

Детальные ответы будут 20 марта на сесии MIX’09.

Для особо нетерпеливых (вроде меня) опубликовали первый этап FAQ.

Некоторые выдержки:

1. Обещают максимально полную поддержку реляционной модели. Так что приложения не прийдется переписывать в области доступак данным

2. SDS базируется на SQL Server 2008 Enterprise Edition

3. Соединение с SDS будет только шифрованное

4. Старый REST и SOAP интерфейс будет убран вместо его будет базированный на ADO.NET Data Services способ. То есть поверх HTTP все-равно можно будет использовать

Также в MSDN выложили немного общей архитектуры. Из которой следует, что TDS соединение будет делаться не на прямую, а через специальный gateway (что вообщем-то логично с точки зрения аутентификации и защиты от атак). Второй момент можно будет подключаться не только с приложений, размещенных в Azure, а из любых.

Читать далее...
Читать далее
Категория:
Просмотров: 605
Ответов: 0

Использование SQL Data Services

отправлено 7 ноября 2008 г. 17:17 участником kosinsky

Вчера нашел ссылку на Windows Azure Training Kit и решил сделать несколько лаб по SQL Data Services (старое название включало слово Server, но от него решили избавиться).

Первое, что нужно это возможность создать себе учетную запись. Такая у меня уже имелась. Иначе прийдется доставать код инициации. Одной учетной записи достаточно для доступа ко всем элементам Windows Azure.

REST интерфес

Дальше раскрываем первую лабу и делаем создаем себе Authority (можно считать, что это что-то среднее между базой данных и экземпляром SQL Server в облаке). Для того чтобы, что-то сделать с SDS нужно послать HTTP запрос с XML содержимым говорящим, что делать. Для создания Authority по адресу https://data.database.windows.net/v1/ посылаем запрос:

   1: <Authority xmlns="http://schemas.microsoft.com/sitka/2008/03/">
   2:   <Id>kosinskylabs</Id>
   3: </Authority>

В результате мой Authority называется: https://kosinskylabs.data.database.windows.net/v1/. Если зайти по этому адресу с указанием логина и пароля, то получим что-то похожее на:

   1: - <s:Authority xmlns:s="http://schemas.microsoft.com/sitka/2008/03/"
   2:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   3:     xmlns:x="http://www.w3.org/2001/XMLSchema">
   4:   <s:Id>kosinskylabs</s:Id> 
   5:   <s:Version>69802</s:Version> 
   6:   </s:Authority>

Здесь я наступил на первые грабли. Названием должно состоять только из маленьких латинских букв и цифры (об этом честно сообщают в Note к лабе, но кто ж такое читает :) ). И при создании не корректного мы получим ошибку HTTP (400) Bad Request, хотя в теле ответа будет реальное описание ошибки:

   1: 400: The authority id provided results in a invalid hostname and is therefore invalid.
   2:  Names can only be made up of lowercase letters 'a'-'z', the numbers 0-9and the hyphen.
   3:  The hyphen may not lead or trail in the name.
   4: <s:Error xmlns:s="http://schemas.microsoft.com/sitka/2008/03/">
   5:   <s:Code>6002</s:Code>
   6:   <s:Message>The authority id provided results in a invalid hostname and is therefore invalid.
   7:  Names can only be made up of lowercase letters 'a'-'z', the numbers 0-9 and the hyphen.
   8:  The hyphen may not lead or trail in the name.</s:Message>
   9: </s:Error>

Дальше создаем контейнер. Контейнер будет хранилищем наших сущностей. Для этого посылаем на адрес нашего  Authority (https://kosinskylabs.data.database.windows.net/v1/) POST запрос:

   1: <Container xmlns="http://schemas.microsoft.com/sitka/2008/03/">
   2:   <Id>tasks</Id>
   3: </Container>

Контейнер будет иметь адрес: https://kosinskylabs.data.database.windows.net/v1/tasks

Дальше создаем объекты. Их называют Entity. В отличии от таблиц базы данных свойства у них могут быть произвольные. Например, для создания задачи отсылаем на адрес нашего контейнера запрос:

   1: <Task xmlns:s="http://schemas.microsoft.com/sitka/2008/03/"
   2: xmlns:x="http://www.w3.org/2001/XMLSchema"
   3: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   4:   <s:Id>task_b</s:Id>
   5:   <Subject xsi:type="x:string">Task B</Subject>
   6:   <StartDate xsi:type="x:dateTime">2008-11-02 12:20:51Z</StartDate>
   7:   <DueDate xsi:type="x:dateTime">2008-11-12 12:20:51Z</DueDate>
   8:   <Status xsi:type="x:string">In Progress</Status>
   9:   <Priority xsi:type="x:string">Normal</Priority>
  10:   <IsComplete xsi:type="x:boolean">false</IsComplete>
  11:   <PercentComplete xsi:type="x:decimal">0</PercentComplete>
  12: </Task>

Все кроме Id не обязательно.

Чтобы вытащить данные мы должны используя GET, что-то похожее на LINQ. Например, чтобы выбрать все элементы контейнера делаем запрос:

   1: from e in entities select e

Если запрашиваем: https://kosinskylabs.data.database.windows.net/v1/tasks?q=from e in entities select e, то в результате получим:

   1: - <s:EntitySet xmlns:s="http://schemas.microsoft.com/sitka/2008/03/"
   2:     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   3:     xmlns:x="http://www.w3.org/2001/XMLSchema">
   4: - <Task>
   5:       <s:Id>task_a</s:Id> 
   6:       <s:Version>59588</s:Version> 
   7:       <Subject xsi:type="x:string">Task A</Subject> 
   8:       <StartDate xsi:type="x:dateTime">2008-10-18T11:20:51</StartDate> 
   9:       <DueDate xsi:type="x:dateTime">2008-10-28T12:20:51</DueDate> 
  10:       <Status xsi:type="x:string">Finished</Status> 
  11:       <Priority xsi:type="x:string">Normal</Priority> 
  12:       <IsComplete xsi:type="x:boolean">false</IsComplete> 
  13:       <PercentComplete xsi:type="x:decimal">0</PercentComplete> 
  14:       </Task>
  15: - <Task>
  16:       <s:Id>task_b</s:Id> 
  17:       <s:Version>59589</s:Version> 
  18:       <Subject xsi:type="x:string">Task B</Subject> 
  19:       <StartDate xsi:type="x:dateTime">2008-11-02T12:20:51</StartDate> 
  20:       <DueDate xsi:type="x:dateTime">2008-11-12T12:20:51</DueDate> 
  21:       <Status xsi:type="x:string">In Progress</Status> 
  22:       <Priority xsi:type="x:string">Normal</Priority> 
  23:       <IsComplete xsi:type="x:boolean">false</IsComplete> 
  24:       <PercentComplete xsi:type="x:decimal">0</PercentComplete> 
  25:       </Task>
  26:   </s:EntitySet>

Запрос можно усложнить. Например, спросив =+DateTime("2008-11-07+00:00:00Z")+select+e'">https://kosinskylabs.data.database.windows.net/v1/tasks?q='from+e+in+entities+where+e["StartDate"]+<=+DateTime"2008-11-07+00:00:00Z")+&&+e["DueDate"]+>=+DateTime("2008-11-07+00:00:00Z")+select+e'. Получим только  одну запись.

SOAP интерфейс

Кроме описанного выше REST способа доступа можно воспользоваться SOAP методами, со следующим контрактом:

   1: public interface ISitkaSoapService
   2: {
   3:     Scope Create(Scope scope, Entity entity);
   4:     void Delete(Scope scope);
   5:     Entity Get(Scope scope);
   6:     List<Entity> Query(Scope scope, string query1);
   7:     Scope Update(Scope scope, Entity entity);
   8: }

Для Entity используется следующий DataContract:

   1: public class Entity : IExtensibleDataObject, INotifyPropertyChanged
   2: {
   3:     public Entity();
   4:  
   5:     public ExtensionDataObject ExtensionData { get; set; }
   6:     [DataMember]
   7:     public string Id { get; set; }
   8:     [DataMember]
   9:     public string Kind { get; set; }
  10:     [DataMember]
  11:     public Dictionary<string, object> Properties { get; set; }
  12:     [DataMember]
  13:     public long Version { get; set; }
  14:  
  15:     public event PropertyChangedEventHandler PropertyChanged;
  16:  
  17:     protected void RaisePropertyChanged(string propertyName);
  18: }

Как видим у каждой Entity, есть ID, тип и версия, а также набор произвольных свойств. А Authority и Container, есть потомками от него. По этому, в SOAP варианте интерфейса мы  имеем всего один метод Create, что создавать определяется текущим контекстом, то есть объектом Scope:

public struct Scope : IExtensibleDataObject, INotifyPropertyChanged
  {

      [DataMember(IsRequired = true)]
      public string AuthorityId { get; set; }
      [DataMember]
      public string ContainerId { get; set; }
      [DataMember]
      public string EntityId { get; set; }
      public ExtensionDataObject ExtensionData { get; set; }
      [DataMember(EmitDefaultValue = false)]
      public VersionMatch VersionMatch { get; set; }

      public event PropertyChangedEventHandler PropertyChanged;
  }

,есть хотим создать Authority, то не задаем в контекста никаких свойств, если хотим работать с контейнерами, то задаем только AuthorityId  и т.д.

В результате код для создания новой задачи выглядит:

   1: //Создаем клиент
   2: var client = new SitkaSoapServiceClient();
   3:  
   4: var config = SsdsConfig.Create();
   5:  
   6: //И контекст
   7: scope = new Scope();
   8: scope.AuthorityId = config.Authority;
   9: scope.ContainerId = containerId;
  10:  
  11: //Пользователь для подключения
  12: client.ClientCredentials.UserName.UserName = config.Username;
  13: client.ClientCredentials.UserName.Password = config.Password;
  14:  
  15: //Создаем объект и задаем его основные свойства
  16: var entity = new Entity()
  17: {
  18:     Id = task.TaskId,
  19:     Kind = "Task"
  20: };
  21:  
  22: //Все остальные свойства
  23: entity.Properties = new Dictionary<string, object>();
  24: entity.Properties.Add("Subject", task.Subject);
  25: entity.Properties.Add("StartDate", task.StartDate);
  26: entity.Properties.Add("DueDate", task.DueDate);
  27: entity.Properties.Add("Priority", task.Priority);
  28: entity.Properties.Add("Status", task.Status);
  29: entity.Properties.Add("PercentComplete", (decimal)task.PercentComplete);
  30: entity.Properties.Add("IsComplete", task.IsComplete);
  31:  
  32: //Собственно создаем
  33: client.Create(scope, entity);
  34:  
  35: //Закрываем клиента
  36: client.Close();

Аналогично при обновлении объекта, вместо строки создания пишем:

   1: scope.EntityId = task.TaskId;
   2:  
   3: client.Update(scope, entity);

Запросы

Для получения объектов с сервера мы в метод Query передаем строку в LINQ формате. И конечно при этом мы можем использовать условия для where. Здесь важно помнить про обязательные и не обязательные свойства.

Для обращения к Id или Kind мы используем точку:

from e in entities where e.Kind=="Task" select e

хотя для Kind есть специальная функция OfKind, а для остальных квадратные скобочки

from e in entities where e["Priority"]=="Normal" select e

Также поддерживаются некоторые из функций, например Take:

(from t in entities where t.Kind == "Task" select t).Take(1)

и Join:

from t in entities.OfKind(“Task”)
from u in entities.OfKind(“User”)
where u[“Name”] == t[“AssignedTo”] select t

Все это можно делать без SDK. При наличии SDK и добавлении ссылки на System.Data.Services.Client, можно оперировать в терминах обычных объектов и LINQ запросов.

Читать далее...
Читать далее
Категория:

Блог

Календарь

«Сентябрь 2010 г.»
ПнВтСрЧтПтСбВс
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Категории

Синдикация

Виртуальные сообщества

Сообщества сайтов (тэгами)