WEB-сервис на C# и клиент на Delphi. Часть 1. Создание решения, создание проекта БД

Итак, приступаем к созданию сервиса, предоставляющего информацию о курсе валюты.

Первая статья из серии.

Первым шагом является создание решения для реализации сервиса в Visual Studio, и разработка базы данных, которая будет использоваться сервисом.


На компьютере установлена среда Visual Studio 2010 Express и SQL Server 2008 Express. Весь софт имеет английский интерфейс. Кроме того установлена триал-версия замечательных компонентов DevExpress.
Запускаем студию, и создаем новое решение (File — New — Project — Other Project Types — Visual Studio Siolutions — Blank Solution). Назовем его для примера SolutionCourse.
Создание решения в Visual Studio
В Solution Explorer появляется наше решение, с грустной надписью «0 projects». Вселенная не терпит пустоты, и для того, чтобы она не замусорила наше решение, добавим туда проект сами (Add — New Project). Поскольку мы условились, что на первом шаге мы развернем БД для нашего сервиса, добавлять нужно именно проект БД (Database — SQL Server — SQL Server 2008 Database Project). Назовем его CourseDB. Согласно заданию, в базе данных у нас должен хранится date-tracking курса валюты, причем одной. Все это, конечно, упрощения, реально решаемая задача была намного сложнее. Но я хочу показать сам принцип создания сервисов, поэтому не буду глубоко уходить в детали реализации конкретной задачи.
Создание проекта базы данных в Visual Studio
Добавим в проект новый объект схемы (Add — Table) с именем Courses. Пропишем для этой таблицы описание:

CREATE TABLE [dbo].[Courses]
(
[ID] int identity(1,1) not null,
[Date] datetime not null,
[Course] numeric(18,4) not null,
Constraint [pk_courses] primary key([ID])
)

Добавление таблиц функций в проект базы данных Visual Studio
Кроме того, нам потребуется функция, которая будет возвращать курс на заданную дату (ведь логика должна быть максимально реализована в СУБД, вспомните Тома Кайта). Добавим её в проект тем же способом, что и таблицу, но создаваемый объект укажем — Scalar-Valued Function, и реализуем её:

CREATE FUNCTION [dbo].[GetCourse]
(
@Date datetime
)
RETURNS numeric(18,4) AS
BEGIN
DECLARE @Course numeric(18,4)
SELECT top 1 @Course=Course from Courses where Date=@Date
RETURN isnull(@Course,-1)
END;

На этом создание проекта можно считать практически завершенным. Осталось лишь настроить параметры развертывания проекта. Для этого откроем его свойства (Properties), и перейдем на закладку Deploy.
В настройках Deploy action (действия, выполняемого при развертывании) установим в «Create a deployment script (.sql) and deploy to the database». Это будет значить, что при запуске проекта будет создан скрипт развертывания, и созданная структура будет развернута на сервере.
Теперь настроим параметры того «места», где будет разворачиваться проект. Для этого настроим (или введем) строку подключения к серверу (Target Connection) и укажем имя базы данных, в которую будет развернут проект (Target Database Name).
Настройка параметров проекта Visual Studio
Все, можно сохранять проект и нажимать F5. После окончания построения лог должен выдать нечто подобное (если все сделано правильно и настроено тоже правильно):

========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========

После этого в окне Server Explorer появится самостоятельно новое подключение к свежесозданной базе, и можно проверить, правильно ли была развернута БД.
Готовый проект БД Visual Studio