Внимание! Что бы оставлять комментарии к новостям и событиям необходимо зарегистрироваться на сайте!
Марат Бакиров расскажет о Visual Studio 2010
Azure Services Platform – это новая платформа от компании Майкрософт для облачных вычислений. Windows в облаке – звучит хорошо, но давайте поймем что же на самом деле значит Windows в облаке? Как писать приложения с учетом особенностей облака, для того, чтобы наше приложение работало на новой платформе?
Рекомендуется для предварительного изучения доклад http://www.techdays.ru/videos/1097.html
Рекомендуется для предварительного изучения доклад http://www.techdays.ru/videos
В этом посте вы можете найти ответы на несколько наиболее часто задаваемых вопросов от PHP разработчиков, использующих драйвер для SQL Server. Поскольку эти вопросы поступают достаточно часто, я решил сделать пост в блоге на который давать ссылку.
1. Как установить и настроить драйвер SQL Server для PHP?
Самый простой способ - воспользоваться Web Platform Installer. Подробно ручной процесс установки, а также использование драйвера описаны в статье на сайте MSDN.
2. Нам необходимо руководство по миграции базы данных MySQL на SQL Server, поскольку в MySQL многие вещи отличаются от SQL Server.
Подробное руководство по миграции с MySQL на SQL Server расположено по ссылке - Guide to Migrating from MySQL to SQL Server 2008 (англ.)
3. Есть ли возможность автоматизировать процесс миграции базы данных MySQL в SQL Server.
Для автоматизации процесса миграции доступен специальный инструмент - Microsoft Sql Server Migration Assistant for MySQL. На русском языке есть отличная статья по использованию этого инструмента.
4. В MySQL можно создать индекс на поля BLOB и TEXT, включив в него только первые несколько символов, как это сделать в SQL Server.
Ответ на этот и похожие вопросы есть в руководстве, упомянутом выше. Решение простое - создать вычисляемое полу (computed column), которое будет содержать нужное количество символов, и уже по этому полю построить индекс.
5. Драйвер не предоставляет аналога функции string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] ), что использовать?
Поскольку эта функция используется для защиты от SQL-инъекции, при использовании драйвера для SQL Server рекомендуется использовать параметризованные запросы вместо "экранирования" потенциально опасных символов.
Пример запроса:
$query = "SELECT * FROM Users WHERE Username = ? and Password = ?";
Выполнение запроса с параметрами:
$params = array($_POST['Username'], $_POST['Password']); $result = sqlsrv_query($con, $query, $params);
Подробно использование параметризованных запросов описано в блоге Брайана Свона.
6. Драйвер не предоставляет ...
Продолжая опубликованный ранее пост про получение HTML разметки контрола, рассмотрим один из возможных вариантов применения разметки. Например, используем ее для того, чтобы загрузить фрагмент страницы, который может загружаться длительное время (зависимость от медленного источника данных, необходимость длительных операций по генерации или подготовке данных и т.п.), после загрузки основного фрагмента страницы. Для этого нужно создать механизм отложенной загрузки гаджетов, реализованных в виде элементов управления.
Рассмотрим пример такой страницы:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DemoWebApp._Default" %> <%@ Register Src="~/Pages/DataControl.ascx" TagPrefix="My" TagName="DataControl" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <table> <tr> <td style="width: 34%;"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras mattis, erat ac mollis ultrices, tortor risus hendrerit est, at laoreet ante enim sit amet velit. </td> <td style="width: 33%;"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras mattis, erat ac mollis ultrices, tortor risus hendrerit est, at laoreet ante enim sit amet velit. ...
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DemoWebApp._Default" %>
<%@ Register Src="~/Pages/DataControl.ascx" TagPrefix="My" TagName="DataControl" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <table> <tr> <td style="width: 34%;"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras mattis, erat ac mollis ultrices, tortor risus hendrerit est, at laoreet ante enim sit amet velit. </td> <td style="width: 33%;"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras mattis, erat ac mollis ultrices, tortor risus hendrerit est, at laoreet ante enim sit amet velit. ...
На сайте MSDN доступно подробное описание параметров командной строки, которые могут быть использованы для установки и конфигурирования SQL Server. В этом кратком посте я расскажу о том, как можно установить SQL Server 2008 в фоновом режиме.
Для фоновой установки инсталлятору необходимо запустить инсталляцию под учетной записью администратора и передать набор параметров, описанных ниже.
/Q – установка в фоновом режиме без обращений к пользователю или /QS – с отображением статуса, но без запросов к пользователю
/ACTION=действие, для установки, разумеется Install
/INSTANCENAME=имя инстанса, например INSTANCENAME=SQLEXPRESS – именованный инстанс SQL Server. Для того, чтобы сделать установленный инстанс доступным по умолчанию (по имени хоста, без указания имени инстанса), то нужно указать INSTANCENAME=MSSQLSERVER.
/FEATURES=список фич для установки, возможные значения:
/ERRORREPORTING=0 или 1, указывает, нужно ли отправлять сообщения об ошибках в Microsoft
Кроме этого, необходимо указать учетные записи, под которыми будет работать SQL Server.
Пример командной строки для фоновой установки:
Setup.exe /q /ACTION=Install /ERRORREPORTING=0 /FEATURES=SQL, Conn /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT=”NT AUTHORITY\Network Service” /SQLSYSADMINACCOUNTS=”BUILTIN\ADMINISTRATORS” /SQLSVCSTARTUPTYPE=Automatic
Подробное описание проблем, которые могут возникать при установке и их решения есть в статье Install SQL 2008 on a Windows 2008 Server from Commad Line & Answer File, там же есть информация по конфигурации установки SQL Server с помощью .ini файла.
Интересный вопрос задали мне сегодня - как можно получить код разметки элемента управления в виде строки. Например, если этот фрагмент HTML как-то должен быть использован в веб-службе, либо возвращен в качестве ответа на Ajax запрос или сохранена в файл после трансформации.
Сделать это можно очень просто. Представим себе, что у нас есть следующий контрол:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DataControl.ascx.cs" Inherits="DemoWebApp.Pages.DataControl" %> <asp:XmlDataSource ID="XmlDataSource1" runat="server" XPath="/feed/item" DataFile="~/App_Data/Data.xml"> </asp:XmlDataSource> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"> <HeaderTemplate> <table> </HeaderTemplate> <ItemTemplate> <tr> <td> <%# XPath("date") %> </td> <td> <%# XPath("title")%><br /> <%# XPath("text")%> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
Мы можем получить HTML разметку для него следующим образом:
public string GetControlHtmlMarkup() { Page pg = new Page(); UserControl uc = (UserControl)pg.LoadControl("~/Pages/DataControl.ascx"); pg.Controls.Add(uc); StringWriter sw = new StringWriter(); HttpContext.Current.Server.Execute(pg, sw, false); return sw.ToString(); }
Процесс прост - создаем объект страницы Page, добавляем на него элемент упр...