<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" version="2.0">
  <channel>
    <title>Форум 'Архитектура программного обеспечения' на RSDN.RU</title>
    <link>http://www.rsdn.ru/Forum/design/</link>
    <description>Форум "Архитектура программного обеспечения" предназначен для обсуждения вопросов, относящихся к стадии проектирования ПО.</description>
    <category>design</category>
    <language>ru-ru</language>
    <copyright>Copyright ©, RSDN.ru, 2001-2007</copyright>
    <webMaster>webmaster@rsdn.ru</webMaster>
    <generator>RSDN RSS Generator 1.3</generator>
    <image>
      <url>http://www.rsdn.ru/rsdn.gif</url>
      <title>RSDN.RU</title>
      <link>http://www.rsdn.ru</link>
    </image>
    <lastBuildDate>Wed, 10 Mar 2010 05:20:03 GMT</lastBuildDate>
    <ttl>5</ttl>
	<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/rsdn/design" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="rsdn/design" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>ORM ?</title>
		<link>http://www.rsdn.ru/Forum/design/3729745.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3729745.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3729745.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3729745</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3729745.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3729745</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Коллеги.&lt;br /&gt;
&lt;br /&gt;
Поделитесь познаниями по следующему вопросу.&lt;br /&gt;
&lt;br /&gt;
У нас есть реляционная БД, в которой структура таблиц соответствует бизнес-объектам(сущностям). Чтение-сохранение реализовано в виде хранимок БД, фактически для каждой сущности реализованы процедуры read-write. Там же сейчас реализована бизнес-логика работы приложения. &lt;br /&gt;
Есть задача с минимальными переделками вынести часть функциональности программы в Application Server на Java и обеспечить представление сущностей в Object-структуре (нарисовать xsd-шки со структурой объектов и уметь мэппить их на базу).&lt;br /&gt;
&lt;br /&gt;
Проблема.&lt;br /&gt;
Разрулить переход от ссылочной модели представления данных к объектной. (не знаю поможет ли нам здесь ORM, т.к. читать-писать надо продолжать через хранимки).&lt;br /&gt;
&lt;br /&gt;
Пример. Есть клиент, у него есть договора, у которых в свою очередь есть счета, схемы тарифов и.т.п. У каждой сущности свой набор атрибутов.&lt;br /&gt;
Client &lt;br /&gt;
	Id&lt;br /&gt;
	Name&lt;br /&gt;
	ValidDate&lt;br /&gt;
	...&lt;br /&gt;
	Pact10&lt;br /&gt;
		PactNumber&lt;br /&gt;
		PactDate&lt;br /&gt;
		TariffPlan&lt;br /&gt;
		Account&lt;br /&gt;
		 ..&lt;br /&gt;
&lt;br /&gt;
В БД это все само собой хранилось в виде foreign key и при необходимости вытаскивалось чтением из таблиц.&lt;br /&gt;
В Java есть желание сделать поуровневое чтение объекта &amp;mdash; т.е. сначала читаем первый уровень вложенности объекта (Client). Если идет обращение ко второму уровню вложенности (например, к Pact), а структура Pact не начитана, начитать ее из БД. И так далее &amp;mdash; по мере обращения к полям начитывать соответствующие структуры.&lt;br /&gt;
Также в каждой структуре хранить флаг валидности объекта &amp;mdash; если данные допустим объекта-договора изменились &amp;mdash; перед выполнением какого-либо действия надо сказать, чтобы сохранил персистенцию в базу.&lt;br /&gt;
&lt;br /&gt;
Самое главное, чего не охота делать &amp;mdash; дорисовывать указанную функциональность в методы каждого класса вручную.&lt;br /&gt;
Сейчас пользуюсь JAXB'ом для генерации структуры классов описанной в XSD, но очень хочется, чтобы они сразу генерились с "умными" геттерами/сеттерами.&lt;br /&gt;
&lt;br /&gt;
Может есть какие шаблоны/методики/технологии на этот счет?&lt;br /&gt;
&lt;br /&gt;
P.S. С Явой начал дружить совсем недолго, поэтому еще могу не сильно ориентироваться в инструментарии &amp;mdash; если подскажите в каком направлении двигаться, с меня пиво &lt;img border='0' width='15' height='15' src='http://www.rsdn.ru/Forum/images/smile.gif' /&gt;&lt;div class='tagline'&gt;... &amp;lt;&amp;lt; RSDN@Home 1.2.0 alpha 4 rev. 1138&amp;gt;&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/kFjQLUK4WRA" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Tue, 09 Mar 2010 22:42:24 GMT</pubDate>
		
			<author>JazzzMaster &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Целесообразность использования DI-фреймворков</title>
		<link>http://www.rsdn.ru/Forum/design/3727432.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3727432.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3727432.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3727432</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3727432.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3727432</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Существует такой популярный паттерн &amp;mdash; инъекция зависимости (DI) Реализация данного паттерна традиционно предполагает использование того или иного IoC контейнера. Рассмотрим пример:&lt;br /&gt;
&lt;br /&gt;
&lt;table width='96%'&gt;&lt;tr&gt;&lt;td nowrap='nowrap' class='c'&gt;&lt;pre&gt;
&lt;span class='kw'&gt;class&lt;/span&gt; Bar 
{
    &lt;span class='kw'&gt;public&lt;/span&gt; Bar(&lt;span class='kw'&gt;string&lt;/span&gt; message)
    {
        Message = message;
    }
    &lt;span class='kw'&gt;public string&lt;/span&gt; Message { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;private set&lt;/span&gt;;}
}

&lt;span class='kw'&gt;interface&lt;/span&gt; IBarProvider
{ 
    Bar GetBar(); 
}

&lt;span class='kw'&gt;class&lt;/span&gt; HelloBarProvider:IBarProvider
{
    &lt;span class='kw'&gt;public&lt;/span&gt; Bar GetBar()
    {
        &lt;span class='kw'&gt;return new&lt;/span&gt; Bar(&lt;span class='str'&gt;"Hello"&lt;/span&gt;);
    }
}

&lt;span class='kw'&gt;class&lt;/span&gt; Foo
{
    &lt;span class='kw'&gt;public&lt;/span&gt; Foo(IBarProvider barProvider)
    {
        _barProvider = barProvider;
    }
    
    &lt;span class='kw'&gt;public&lt;/span&gt; Execute()
    {
        Console.WriteLine(_barProvider.GetBar().Message);
    }
    
    IBarProvider _barProvider;
}&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
Задача IoC контейнера в данном случае &amp;mdash; это определить зависимость между классом "Foo" и классом "HelloBarProvider" (поскольку эти классы друг о друге вообще не знают). Например, при использовании Spring конфигурация контейнера будет выглядеть как:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Вариант 1:&lt;/i&gt;&lt;br /&gt;
&lt;table width='96%'&gt;&lt;tr&gt;&lt;td nowrap='nowrap' class='c'&gt;&lt;pre&gt;
&amp;lt;object id="barProvider" type="Namespace.HelloBarProvider, assembly" /&amp;gt;
&amp;lt;object id="foo" type="Namespace.Foo, assembly"&amp;gt;
    &amp;lt;constructor-arg ref="barProvider" /&amp;gt;
&amp;lt;/object&amp;gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
Без использования DI-фреймворка аналогичный код можно было бы написать слудующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Вариант 2:&lt;/i&gt;&lt;br /&gt;
&lt;table width='96%'&gt;&lt;tr&gt;&lt;td nowrap='nowrap' class='c'&gt;&lt;pre&gt;
&lt;span class='kw'&gt;class&lt;/span&gt; DIContainer
{
    &lt;span class='kw'&gt;public&lt;/span&gt; DIContainer()
    {
        BarProvider = &lt;span class='kw'&gt;new&lt;/span&gt; HelloBarProvider();
        Foo = &lt;span class='kw'&gt;new&lt;/span&gt; Foo(BarProvider);
    }
    &lt;span class='kw'&gt;public&lt;/span&gt; IBarProvider BarProvider { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; }
    &lt;span class='kw'&gt;public&lt;/span&gt; Foo Foo { &lt;span class='kw'&gt;get&lt;/span&gt;; &lt;span class='kw'&gt;set&lt;/span&gt;; }
}&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
Вариант 2 имеет следующие преимущества:&lt;br /&gt;
1) Он проще, поскольку не требуется знания DI-фреймворка и специфики его использования&lt;br /&gt;
2) Он значительно надежней, так как корректность кода проверяется компилятором. Например, если мы добавим в HelloBarProvider еще один конструктор и забедем внести соответствующие изменения в IoC контейнер, то в первом случае мы это увидим только в run-time с трудночитаемым текстом исключения, а во втором нам об ошибке сразу сообщит компилятор.&lt;br /&gt;
3) Он значительно легче в поддержке, так как можно использовать стандартные средства рефакторинга кода. Например, если мы решим переименовать IBarProvider, то все соответствующие изменения будут автоматически отражены в коде контейнера&lt;br /&gt;
4) Вариант 2 легче писать, так как мы имеем полную поддержку со стороны IDE в виде intellisence, code completion и пр.&lt;br /&gt;
5) Он гибче, так как позволяет реализовать произвольную сложную логику определения зависимостей.&lt;br /&gt;
6) Вариант 1 нарушает инкапсуляцию, так как выставляет наружу "кишки" приложения.&lt;br /&gt;
7) Вариант 2 можно отлаживать по шагам.&lt;br /&gt;
8) В случае ошибок мы имеем удобоваримые исключения с нормальным call-stack&lt;br /&gt;
9) Вариант 2 обладает на порядок большим количеством возможностей для декомпозиции сложной логики, чем XML&lt;br /&gt;
10) Вариант 1 нарушает принцип KISS&lt;br /&gt;
&lt;br /&gt;
Тем не менее, на практике как правило используют первый вариант, и я хотел бы разобраться в причинах. Предвижу следующие ответы:&lt;br /&gt;
&lt;br /&gt;
1) "Вариант 1 позволяет гибко конфигурировать приложение." &amp;mdash; Задача определения зависимостей между типами и задача конфигурирования приложения &amp;mdash; это две совершенно разные задачи и при попытке их смешать мы автоматически нарушаем SRP, что влечет за собой кучу проблем.&lt;br /&gt;
2) "Вариант 1 более декларативен" &amp;mdash; Ну да, и дальше то что? Какие мы получаем благодаря этому преимущества? (про недостатки я писал выше)&lt;br /&gt;
3) "Вариант 1 &amp;mdash; это не только XML, есть фреймворки с fluent-interface" &amp;mdash; да, такие фреймворки являются меньшим злом, так как они лишены части недостатков. Но тем не менее в чем заключается их смысл? Какие дополнительные возможности они дают?&lt;br /&gt;
&lt;br /&gt;
Что еще?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/ievM6i2P0JY" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Sun, 07 Mar 2010 16:12:50 GMT</pubDate>
		
			<author>mrTwister &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>120</slash:comments>
		
	</item>

	<item>
		<title>PowerDesigner brunch</title>
		<link>http://www.rsdn.ru/Forum/design/3726016.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3726016.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3726016.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3726016</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3726016.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3726016</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Юзаю PowerDesigner 15.0.&lt;br /&gt;
Столкнулся с проблемой. Создаю бранч. Он цепляет последнюю версию из базового бранча, например, 2, и начинает вести внутри себя нумерацию типа 2.1.1, 2.1.2 и т.п.. В базовом бранче создаю версию 3. Каким образом мне зацепить её в дочернем бранче, чтобы можно было вести такую же ветку 3.1.1, 3.1.2 и т.п.?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/glYU0YFXtDY" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Fri, 05 Mar 2010 13:31:12 GMT</pubDate>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Как правильно? Совместное использование данных?</title>
		<link>http://www.rsdn.ru/Forum/design/3724087.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3724087.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3724087.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3724087</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3724087.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3724087</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Друзья, доброго времени суток!&lt;br /&gt;
Прошу совета вот в каком вопросе:&lt;br /&gt;
Есть у меня в проекте один объект, который выкачивает данные из Ini-файла, назовем его Config. Инишник содержит настройки для 4х объектов проекта, настройки разделены по "секциям". Вышеописанные четыре объекта относятся к разным "слоям" приложения &amp;mdash; два к сетевому уровню, два к гуям и ничего друг о друге не знают. &lt;br /&gt;
Те объекты, что относятся к сетевому уровню создаются объектом-контроллером сетевого слоя. Гуевые объекты создаются контроллером слоя отображения. &lt;br /&gt;
&lt;br /&gt;
Алгоритм работы приложения выглядит так:&lt;br /&gt;
&lt;br /&gt;
Запуск приложения&lt;br /&gt;
Шаг 1 &amp;mdash; Создание объекта Config, считывание информации из инишника&lt;br /&gt;
Шаг 2 &amp;mdash; Создание контроллера сетевого слоя&lt;br /&gt;
   Шаг 2.1 &amp;mdash; Создание первого объекта сетевого слоя (приемника)&lt;br /&gt;
   Шаг 2.2 &amp;mdash; Создание второго объекта сетевого слоя (передатчика)&lt;br /&gt;
Шаг 3 &amp;mdash; Создание контроллера слоя отображения&lt;br /&gt;
   Шаг 3.1 &amp;mdash; Создание первого объекта слоя отображения (диалога входа в систему)&lt;br /&gt;
   Шаг 3.2 &amp;mdash; Создание второга объекта слоя отображения (диалога настроек системы)&lt;br /&gt;
Шаг 4 &amp;mdash; Начало работы&lt;br /&gt;
&lt;br /&gt;
Выше приведенные четыре объекта сетевого и слоя отображение необходимо сконфигурировать перед началом работы, то есть двть им данные из инишника. Хотелось бы спросить совета как это лучше сделать.&lt;br /&gt;
&lt;br /&gt;
Сам рассматриваю следующие варианты:&lt;br /&gt;
1. Дать указатель на Config контроллеру сетевого слоя и контроллеру слоя отображения, после чего контроллеры выбирают данные из конфига и передают уже только необходимую информацию своим объектам.&lt;br /&gt;
2. Передавать указатель на конфиг всем четырем объектам. Объекты сами выбирают необходимую информацию из конфига.&lt;br /&gt;
3. Сделать Config глобальным и позволить объектам работать с ним напрямую&lt;br /&gt;
&lt;br /&gt;
Немного об объекте Config &amp;mdash; он считывает информацию из ини-файла во внутреннее хранилище, все манипуляции происходят с копией данных в этом самом внутреннем хранилище. При завершении внутренняя информация выгружается на диск.&lt;br /&gt;
&lt;br /&gt;
Пишу на C++ с MFC.&lt;br /&gt;
&lt;br /&gt;
Буду рад любым советам.&lt;br /&gt;
Спасибо.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/eDXz5edZODY" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Wed, 03 Mar 2010 16:38:23 GMT</pubDate>
		
			<author>ifndef &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>TDD и проектирование</title>
		<link>http://www.rsdn.ru/Forum/design/3723537.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3723537.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3723537.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3723537</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3723537.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3723537</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Здравствуйте, уважаемые коллеги&lt;br /&gt;
&lt;br /&gt;
Хочу внедрять практику TDD, т.е. что бы разработка была через тестирование. &lt;br /&gt;
Плюсы unit tests очевидны &amp;mdash; проект более легко сопровождаем, если есть unit tests.&lt;br /&gt;
&lt;br /&gt;
Основной посыл TDD &amp;mdash; вначале тест и говнокод &amp;mdash; потом проектирование и рефакторинг.&lt;br /&gt;
Т.е. программист P1 начинает реализовывать задачу T1, то у него нет никаких диаграмм классов.&lt;br /&gt;
Классы и правильный дизайн будет на выходе после рефакторинга. Все просто замечательно.&lt;br /&gt;
Но, а как же работа в команде? Если P1 не реализовал метод сохранение объекта O1 а этот метод нужен программисту P2?&lt;br /&gt;
Понятно, что программист P2 может сделать фиктивный метод, но ему нужен хотя бы прототип этого метода &amp;mdash; сигнатура метода, &lt;br /&gt;
типы генерируемых исключений и т.д. Но методология TDD не позволяет программисту P1 распылять свои усилия и пока он не решит свою текущую проблему, он преступить к методу сохранения объекта O1 не может. Как быть? Понятно, что нужен некоторый интерфейс, что бы программист P2 не дожидался реализации метода сохранения объекта O1, а мог бы использовать фиктивную реализацию этого метода.&lt;br /&gt;
&lt;br /&gt;
Вопрос в том, что концепция TDD, как бы не совсем приветствует проектирование наперед, но в то же время какой-то интерфейс должен быть, т.е. в приложении должны быть выделены слои и должен быть интерфейс? Меня не особо интересует как бы теория, нужны больше примеры из реальной командной разработки ( у К. Бека книга хороша, но нет примера командной разработки).&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/ph1q-Px6JGA" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Wed, 03 Mar 2010 10:05:46 GMT</pubDate>
		
			<author>white_znake &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>15</slash:comments>
		
	</item>

	<item>
		<title>Архитектура многопоточных приложений</title>
		<link>http://www.rsdn.ru/Forum/design/3720573.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3720573.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3720573.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3720573</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3720573.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3720573</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
Можете подсказать, какую-нибудь литературу, сайты и т.п. по основным принципам проектирование многопоточных систем? В приложении, разработкой которого я занимаюсь, довольно много объектов со своим потоком выполнения; проблема в том что несмотря на довольно большое время тестирования приложения всё равно периодически вылазят баги с какой-то взаимоблокировкой, которая была всегда, но по какой-то причине до этого себя не проявляла. Хотелось бы узнать, как такие проблемы решаются обычно &amp;mdash; какие-нибудь паттерны и т.п.&lt;br /&gt;
&lt;br /&gt;
Заранее спасибо за помощь.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/RNJoYXkMDRY" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Sun, 28 Feb 2010 16:07:46 GMT</pubDate>
		
			<author>IZer &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Посоветуйте паттерн(?)</title>
		<link>http://www.rsdn.ru/Forum/design/3718026.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3718026.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3718026.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3718026</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3718026.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3718026</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Есть некая сущность, называемая юнит (Unit), состоящая из нескольких пакетов (Package), каждый из которых состоит из нескольких групп (Group), каждая из которых содержит некоторое число элементов (Element), которые могут иметь один из фиксированного числа типов (Type1,...TypeN). То есть по сути Unit представляет из себя древовидную структуру, фиксированной глубины, листьями которой являются Element-ы. Каждая из сущностей (Unit, Package, Group, ElementOfTypeN) имеет свой набор атрибутов.&lt;br /&gt;
&lt;br /&gt;
Для подобных юнитов существует операция "сериализации/десериализации". Эта операция должна предоставлять возможность использования внутри себя разных механизмов. Например, простейший вариант &amp;mdash; сериализовать в виде XML документа в файл. Другой вариант &amp;mdash; это сериализовать юнит в файловую структуру, где Unit, Package, Group &amp;mdash; директории, Element &amp;mdash; файл, причем сериализация может проходить как в локальную файловую систему, так и через, например, FTP. Третий варинт &amp;mdash; сериализация в БД.&lt;br /&gt;
&lt;br /&gt;
Вопрос &amp;mdash; как бы вы предложили организовать такой функционал с точки зрения паттернов-интерфейсов-классов? На верхнем уровне напрашивается паттерн Strategy. А вот дальше? Хочется прежде всего отделить обход дерева от непосредственной "сериализации" конкретной сущности.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/IS0nT1vHM-4" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Fri, 26 Feb 2010 09:54:43 GMT</pubDate>
		
			<author>Jeremy &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Обязанности архитектора ПО</title>
		<link>http://www.rsdn.ru/Forum/design/3717506.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3717506.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3717506.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3717506</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3717506.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3717506</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Извините, если баян. Хотелось бы узнать, какие у архитектора ПО вообще обязанности при "правильном" подходе к разработке ПО. Вопрос чисто практический.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/ECdbVgynX0Q" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Thu, 25 Feb 2010 19:53:52 GMT</pubDate>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Посоветуйте софтина или либа для анализа текста</title>
		<link>http://www.rsdn.ru/Forum/design/3716884.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3716884.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3716884.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3716884</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3716884.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3716884</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Сорри, если не очень подходящий форум... но более подходященго не нашел.&lt;br /&gt;
&lt;br /&gt;
Возникла проблема анализа текста и преобразования его в комманду. Например, приходит текст "Какой у меня баланс?" или "Сколько денег у меня на счету?", надо чтобы любое из этих сообщений преобразовывалось в комманду "balance_request", ну или что-то в этом роде. Очень надеюсь, что уже сущесвует какая-то софтина или библиотека, которая умеет это делать. Желательно на java.&lt;br /&gt;
Ну или может кто-то уже решал подобную проблему и может что-то хорошее посоветовать?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/bwgOhGWbxHk" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Thu, 25 Feb 2010 13:02:17 GMT</pubDate>
		
			<author>StanislavK &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>7</slash:comments>
		
	</item>

	<item>
		<title>Фабрика объектов</title>
		<link>http://www.rsdn.ru/Forum/design/3716794.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3716794.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3716794.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3716794</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3716794.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3716794</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Возьмем модульную архитектуру , есть несколько базовых типов объектов, каждый базовый тип описан в своем модуле.&lt;br /&gt;
У каждого базового типа есть производные типы, в зависимости от состояния программы ( оно одно для всех ) используется тот или иной производный тип.&lt;br /&gt;
&lt;br /&gt;
в коде в зависимости от состояния нужно выбирать нужный объект&lt;br /&gt;
&lt;br /&gt;
&lt;table width='96%'&gt;&lt;tr&gt;&lt;td nowrap='nowrap' class='c'&gt;&lt;pre&gt;
CBaseA* object_a;

&lt;span class='kw'&gt;switch&lt;/span&gt;( state )
{
  &lt;span class='kw'&gt;case&lt;/span&gt; 1: object_a = &lt;span class='kw'&gt;new&lt;/span&gt; CDerivedA1(); &lt;span class='kw'&gt;break&lt;/span&gt;;
  &lt;span class='kw'&gt;case&lt;/span&gt; 2: object_a = &lt;span class='kw'&gt;new&lt;/span&gt; CDerivedA2(); &lt;span class='kw'&gt;break&lt;/span&gt;;
}&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
естественно это использовать во всех местах кода где идет использование объекта типа CBaseA неудобно и лучше сделать 1 раз фабричный метод&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table width='96%'&gt;&lt;tr&gt;&lt;td nowrap='nowrap' class='c'&gt;&lt;pre&gt;
&lt;span class='kw'&gt;static&lt;/span&gt;  CBaseA* CreateObjectA()
{

&lt;span class='kw'&gt;switch&lt;/span&gt;( state )
{
  &lt;span class='kw'&gt;case&lt;/span&gt; 1: &lt;span class='kw'&gt;return new&lt;/span&gt; CDerivedA1();
  &lt;span class='kw'&gt;case&lt;/span&gt; 2: &lt;span class='kw'&gt;return new&lt;/span&gt; CDerivedA2();
}

}&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
Вот возникает вопрос, где лучше этот метод описать &amp;mdash; есть 2 варианта , 1й &amp;mdash; в самом базовом типе CBaseA, CBaseB и т.д. C,D,E... в виде статического метода, 2й &amp;mdash; создать статический тип CObjectFactory и в нем статическими методами описать создание объектов каждого типа A, B, C, D и т.д.&lt;br /&gt;
&lt;br /&gt;
Что же получается в результате в обоих вариантах &amp;mdash; зацикленность или избыточность ссылок&lt;br /&gt;
&lt;br /&gt;
1й вариант &amp;mdash; получается зацикленность ссылок, то есть если раньше базовый тип ничего не знал о объектах которые от него наследуются , то теперь для того чтобы базовый тип мог создавать производные нужно ему включить include все хедеры производных типов. Также минус в том что состояние в данном случае придется хранить для каждого объекта или выносить в отдельный статический синглетон.&lt;br /&gt;
&lt;br /&gt;
2й вариант &amp;mdash; синглетон CObjectFactory который может создать объект любого типа A, B, C и т.д., он получается зависим от всех модулей, при этом остальные модули вроде как от него отделены и не связаны между собой &amp;mdash; на первый взгляд то что нужно. Но вот допустим модуль B решил использовать объект модуля А , соотвественно создать этот объект он теперь должен через фабрику, как только мы подключим фабрику получится что объект модуля B становится зависим от всех остальных модулей которые фабрика может создавать.&lt;br /&gt;
&lt;br /&gt;
Как это решается ?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/WZMlCTgeHxI" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Thu, 25 Feb 2010 12:14:44 GMT</pubDate>
		
		
			<slash:comments>5</slash:comments>
		
	</item>

	<item>
		<title>Схема IT-Инфраструктуры предприятия</title>
		<link>http://www.rsdn.ru/Forum/design/3715670.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3715670.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3715670.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3715670</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3715670.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3715670</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Привет.&lt;br /&gt;
&lt;br /&gt;
Для составления документации в одном из проектов мне понадобилась красивая диаграмма/схема&lt;br /&gt;
идеальной IT-инфраструктуры крупной компании.&lt;br /&gt;
Т.е что бы там были отмечены используемые продукты&lt;br /&gt;
&lt;br /&gt;
&amp;mdash; CRM&lt;br /&gt;
&amp;mdash; ERP&lt;br /&gt;
&amp;mdash; Утилиты мониторинга &amp;mdash;  Hp Open View, Tivoli Performance Viewer и т.п.&lt;br /&gt;
&amp;mdash; Базы данных&lt;br /&gt;
&amp;mdash; Прикладные пакеты&lt;br /&gt;
&amp;mdash; Приложения для управления пользователями &amp;mdash; Active Directory и др.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ну и т.п.&lt;br /&gt;
&lt;br /&gt;
Первые полчаса поиска в гугле не дали результата.&lt;br /&gt;
Может кто знает где взять такую картинку? Обычно в маркетинговых книжечках IBM'a, Oracle'a печатают подобные диаграммы.&lt;br /&gt;
Или придется самому рисовать?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/ycXxsKz0h6o" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Wed, 24 Feb 2010 15:18:38 GMT</pubDate>
		
			<author>NorthDragon &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Посоветуйте подход к редактированию б.о. пользователем</title>
		<link>http://www.rsdn.ru/Forum/design/3713559.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3713559.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3713559.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3713559</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3713559.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3713559</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Здравствуйте.&lt;br /&gt;
Есть бизнес-объект, персистный, при изменении свойств переходит в соответствующие состояния.&lt;br /&gt;
Бизнес объект прикреплён к бизнес-транзакции, которая обновляет БД при коммите, там же инициируется валидация зарегистрированных на добавление и обновление объектов перед обращением к БД.&lt;br /&gt;
&lt;br /&gt;
Дело в том, что необходимо сохранять даже невалидное текущее состояние в БД редактируемого объекта.&lt;br /&gt;
На уровне БД возможность сохранения текущего состояния реализована, вот пока не придумаю как реализовать сохранение невалидного состояния из BLL.&lt;br /&gt;
Может быть подскажете подход?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/2zGctQn1vVY" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Mon, 22 Feb 2010 11:10:28 GMT</pubDate>
		
			<author>WSA &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>30</slash:comments>
		
	</item>

	<item>
		<title>Обновление: 25 Most Dangerous Programming Errors</title>
		<link>http://www.rsdn.ru/Forum/design/3712479.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3712479.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3712479.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3712479</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3712479.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3712479</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Обновился документ &lt;a href="http://cwe.mitre.org/top25/" class="m" target="_blank"&gt;2010 CWE/SANS Top 25 Most Dangerous Programming Errors&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/nAq_5kM6Yzw" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Sat, 20 Feb 2010 18:30:32 GMT</pubDate>
		
			<author>cvoronin &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Rich какбы.. Обновление связей между объектом и коллекцией</title>
		<link>http://www.rsdn.ru/Forum/design/3708943.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3708943.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3708943.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3708943</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3708943.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3708943</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Реализован persistence, в котором объявлен класс, который является базовым для объектов модели.&lt;br /&gt;
При изменении свойсв доменного объекта, он меняет своё состояние и регистрирует операцию обновления или удаления или создания в транзакции uow.&lt;br /&gt;
В принципе реализован Lazy-load list. При запросе к которому он заполняется объектами домена.&lt;br /&gt;
&lt;br /&gt;
Объект и определённая в нём коллекция других объектов(доступная через lazy-list) связаны через отношение многие ко многим:&lt;br /&gt;
&lt;br /&gt;
ну допустим так...:&lt;br /&gt;
Проект.LazyList&amp;lt;Сотрудник&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В БД, так:&lt;br /&gt;
Проект 1--*СотрудникиНаПроекте*--1 Сотрудник&lt;br /&gt;
&lt;br /&gt;
Вопрос в том, что при изменении Проект.LazyList&amp;lt;Сотрудник&amp;gt; &amp;mdash; списка мне обновить таблицу СотрудникиНаПроекте?&lt;br /&gt;
&lt;br /&gt;
Написать в Менеджере в BLL метод типа ИсключитьСотрудникаИзПроекта(Проект, СотрудникID) ?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/4cXk2PbAbvQ" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Wed, 17 Feb 2010 19:31:44 GMT</pubDate>
		
			<author>WSA &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>[ANN] Руководство MICROSOFT® по проектированию архитектуры</title>
		<link>http://www.rsdn.ru/Forum/design/3707875.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3707875.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3707875.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3707875</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3707875.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3707875</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Теперь на русском &lt;a href="http://apparchguide.ms/" class="m" target="_blank"&gt;здесь&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/bMFSp3VnsQU" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Wed, 17 Feb 2010 10:01:43 GMT</pubDate>
		
			<author>ankorol &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Кроссплатформенное приложение</title>
		<link>http://www.rsdn.ru/Forum/design/3707450.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3707450.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3707450.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3707450</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3707450.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3707450</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Есть задача написать продукт, который бы синхронизировал данные из гомогенных СУБД &lt;br /&gt;
на гетерогенных ОС (windows, linux, unix). Причем, как под 32, так и под 64 бит.&lt;br /&gt;
Вопрос: в какую сторону советуете посмотреть? Насколько я понимаю под каждую ОС придется писать свое или же есть умные компиляторы?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/apfD7MSiKzg" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Wed, 17 Feb 2010 06:15:47 GMT</pubDate>
		
		
			<slash:comments>46</slash:comments>
		
	</item>

	<item>
		<title>Обновление настроек</title>
		<link>http://www.rsdn.ru/Forum/design/3707203.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3707203.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3707203.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3707203</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3707203.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3707203</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Есть сетевое приложение, есть объект client, который скрывает все взаимодействие с сервером от других объектов системы.&lt;br /&gt;
У некоторых объектов системы есть настройки, которые требуют обновления (допустим ModuleSettings).&lt;br /&gt;
Класс Settings инкапсулирует насройки всех модулей.&lt;br /&gt;
&lt;br /&gt;
class Settings&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
    ModuleSettings1 ms1;&lt;br /&gt;
    ModuleSettings2 ms2;&lt;br /&gt;
    /* ... */&lt;br /&gt;
}&lt;br /&gt;
// lpArg &amp;mdash; указатель на this.settings;&lt;br /&gt;
CALLBACK Client::GetSettings( LPVOID lpArg, DWORD dwTimerLowValue, DWORD dwTimerHighValue)&lt;br /&gt;
{&lt;br /&gt;
   Settings *pSettings = lpArg;&lt;br /&gt;
   *pSettings = DownloadSettings();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
По таймеру клиент выполняет GetSettings() и загружает свежие настройки с сервера.&lt;br /&gt;
&lt;br /&gt;
Как сделать что бы остальные модули (объекты) могли автоматически обновить свои настройки.&lt;br /&gt;
&lt;br /&gt;
Я думаю в сторону реализации паттерна Observer. Читал про boost::signal, но он не поддерживает multithreading;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/lg7iYaCmftU" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Tue, 16 Feb 2010 21:30:13 GMT</pubDate>
		
			<author>wint &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Сортировка данных из БД по ресурсам приложения</title>
		<link>http://www.rsdn.ru/Forum/design/3705684.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3705684.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3705684.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3705684</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3705684.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3705684</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Всем привет!&lt;br /&gt;
&lt;br /&gt;
Проблема такая:&lt;br /&gt;
Есть некоторые данные со статусом лежащие в БД. Статус &amp;mdash; типа int (1 &amp;mdash; активен, 2 &amp;mdash; подписан и т.п.). Доступ к базе через WCF.&lt;br /&gt;
Данных много и выбираются они из БД pading'ом с накладыванием фильтров и правил сортировки. В какой-то момент понадобилось сортировать по статусу, причем не по числу, а по текстовому педставлению, но текстовое представление лежит в ресурсах приложения (база ничего не знает про эти тексты).&lt;br /&gt;
Собственно вопрос: кто как в таких случаях поступает?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/sOWSokkfxNc" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Mon, 15 Feb 2010 20:58:25 GMT</pubDate>
		
			<author>thanks &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Вопрос по архитектуре проекта</title>
		<link>http://www.rsdn.ru/Forum/design/3705372.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3705372.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3705372.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3705372</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3705372.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3705372</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Здравствуйте.&lt;br /&gt;
&lt;br /&gt;
Стоит задача реализовать программу, которая будет получать задачи а результаты выполнения складывать в файл.&lt;br /&gt;
Каждая задача это периодически выполняемое действие (вызов какой-то функции).&lt;br /&gt;
Всего предполагается 20-50 задач, каждая из которых выполняется один раз в 30-100 секунд.&lt;br /&gt;
&lt;br /&gt;
Соответственно пришел к такому решению:&lt;br /&gt;
&lt;br /&gt;
Для каждого задания создавать свой WaitableTimer (hTaskTimer) и свое событие (hTaskDoneEvent);&lt;br /&gt;
Выполнение задачи осуществлять в отложенной процедуре таймера (TimerRoutine) и по её завершении активировать событие hTaskDoneEvent для данной задачи.&lt;br /&gt;
В другом потоке (назовем его "поток сбора отчетов") ждать (WaitForMultipleObjects()) активации любого из событий и собирать результаты выполнения.&lt;br /&gt;
&lt;br /&gt;
Насколько удачным является такое решение? и как можно его улучшить?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/hJuCbg8ni-E" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Mon, 15 Feb 2010 15:04:44 GMT</pubDate>
		
			<author>wint &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Пример легкого архитектурного решения WinForms .Net 2.0</title>
		<link>http://www.rsdn.ru/Forum/design/3704994.1.aspx</link>
		<guid isPermaLink="true">http://www.rsdn.ru/Forum/design/3704994.aspx</guid>
		<comments>http://www.rsdn.ru/Forum/design/3704994.aspx</comments>
		<wfw:comment>http://www.rsdn.ru/Forum/PostRssComment.aspx?mid=3704994</wfw:comment>
		<wfw:commentRss>http://www.rsdn.ru/Forum/RSS/3704994.aspx</wfw:commentRss>
		<trackback:ping>http://www.rsdn.ru/Forum/Trackback.aspx?mid=3704994</trackback:ping>
		<description>&lt;div style="@import url(http://www.rsdn.ru/Forum/Forum.css);"&gt;Добрый день,&lt;br /&gt;
&lt;br /&gt;
Есть задача написать относительно небольшой проект на .NET 2.0. Как попало писать не охота но использовать что то навороченное типа Software Client Factory не имею возможности, т.к. есть ограничение в версии фреймворка и в дальшейшем на поддержку будет выделен разработчик не особо сильного уровня. &lt;br /&gt;
&lt;br /&gt;
Подскажите пожалуйста легкий пример велосипеда для написания WinForm приложений в котором было:&lt;br /&gt;
&lt;br /&gt;
&amp;mdash; Класс App (singleton) от которого все бы плясало. &lt;br /&gt;
&amp;mdash; реализация паттерна Command&lt;br /&gt;
&amp;mdash; какой нибудь механизм представления Item-View&lt;br /&gt;
&amp;mdash; не сильная привязка системы к UI чтобы была возможность запуска в режиме консоли и работы с бизнес объектами.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rsdn/design/~4/0AEiVAlRppo" height="1" width="1"/&gt;</description>
		
		<category>design</category>
		<pubDate>Mon, 15 Feb 2010 10:32:18 GMT</pubDate>
		
			<author>paz &lt;forum@rsdn.ru&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>
</channel>
</rss>
