Главная » C# » Разработка серверной электронной таблицы в Visual C# (Sharp)

0

Разработка серверной электронной таблицы должна удовлетворять следующим требованиям.

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

•   Удобство в использовании. Серверная электронная таблица должна быть легко программируемой на языке С#. Со слишком сложной или неудобной в исполовании электронной таблицей нельзя будет работать должным образом, что яяется потенциальным источником ошибок.

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

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

Если же вам интересно происхождение кода электронной таблицы, то это  часть кода настоящего приложения моей собственной системы торговли ценными багами.

ПРИМЕЧАНИЕ

Може т показаться заманчивы м добавление к электронной таблице кода дл я дополни – тельных возможностей, но эта цель не стоит преследования. Иногда лучш е решить проблему  и  отложить  размышления  над  усовершенствованием  парадигмы  на  слующи й  раз.  Я  видел  случаи,  когда  разработчики  занимались  обдумывание м   паригм,  не  доводил и  до  конца  работу  над  кодом,  который  потом  становился  архаичным по  причине  какой-то  нерассмотренной  парадигмы.

Для данного примера определены три примера:

• Devspace.Trader.Common—  библиотека  класса,  которая  является   укарочеой  версией  моей  библиотеки  приложения  для  торговли  ценными  бумагами.

Я  решил  включить эту  библиотеку,  чтобы  дать  читателям  представление,  как выглядит библиотека производственного типа;

• ServerSideSpreadsheet —   библиотека   класса,   представляющая   реализацию серверной таблицы;

• Testserversidespreadsheet— консольное приложение для тестирования сбор-

ки   ServerSideSpreadsheet.

Проектирование архитектуры

Первоначальная реализация электронной таблицы дает нам хорошую отправную точку. Применение лямбда-выражения для вычисления состояния ячейки позволяет с легкостью создать электронную  таблицу, содержащую числа. Менее привлекельным аспектом является факт, что класс Spreadsheet представляет лишь одну таблицу. По сравнению, большинство приложений для создания электронных таиц, например Microsoft Excel, позволяет создавать несколько таблиц.

Поэтому для решения данной проблемы наша серверная таблица будет основана на двух концепциях: книге (Workbook) и листе (Worksheet) (рис. 11.1).

Рис. 11.1. Электронная таблица на основе типов книги и листа

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

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

Допустим, например, что вы хотите иметь возможность программным образом раелять ваше завершенное приложение между множественными машинами. Задача

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

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии