<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3272651</guid>
        <pubDate>Mon, 11 Feb 2013 14:29:22 +0000</pubDate>
        <title>архитектура клиент серверного приложения с толстым клиентом</title>
        <link>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3272651</link>
        <description><![CDATA[deil: Проверку прав необходимо делать на стороне сервера. Иначе я напишу альтернативный клиент, игнорирующий все ограничения и наворочу дел :)]]></description>
        <author>deil</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3265914</guid>
        <pubDate>Sat, 26 Jan 2013 10:33:56 +0000</pubDate>
        <title>архитектура клиент серверного приложения с толстым клиентом</title>
        <link>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3265914</link>
        <description><![CDATA[oleg901: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=371312&view=findpost&p=3265556'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>deil &#064; <time class="tag-quote__quoted-time" datetime="2013-01-25T11:28:49+00:00">25.01.13, 11:28</time></span><div class='quote '>Я бы оформил DAL чуть сложнее - вынес бы из BLL все основные понятия, которыми она оперирует (не таблички, а сущности, которые в них хранятся). И именно этот слой и оставил бы на сервере: оперирование высокороувневыми сущностями: ПолучитьСписокВсехПользователей, ДобавитьПользователя, и т.д. При этом, принимая в каждый метод на вход токен аутентификации, на основе которого сервер бы понимал, что это за пользователь и применял бы правила безопасности.<br>
А на клиента водрузил бы манипулирование этими высокоуровневыми сущностями (бизнес-правила) и представление.</div></div><br>
Если приблизиться к реализации, то это будет выглядеть следующим образом:<br>
Есть dll (назовем Entity.dll), в которой определены высокоуровневые сущности (Employee, итп). Она должна быть расположена на стороне клиента и на стороне сервера. DAL будет иметь классы соответствующие сущностям в Entity.dll, каждый из которых содержать методы типа: ПолучитьСписок, ПолучитьКонкретныйЭкземпляр, Добавить, Обновить и т.п.<br>
BLL, в свою очередь, располагается на клиенте и работает с высокоуровневыми сущностями.<br>
Проверка полномочий на выполнение той или иной операции можеть быть сложной и по логике должна располагаться в BLL или я не прав?<br>
<br>
Приведу пример проверки полномочий:<br>
Пользователи: механики, энергетики и т.п.<br>
Операция - Создание Единицы Оборудования (ЕО).<br>
Правила: пользователь может создавать ЕО только для своего производства,<br>
механик может создавть ЕО только типа M,<br>
энергетик только типа E.<br>
<br>
Безопасно ли это располагать на стороне клиента?<br>
Или лучше вынести на сторону сервера, что, на мой взгляд, означает вынесение BLL на сторону сервера (или наделение DAL логикой).]]></description>
        <author>oleg901</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3265556</guid>
        <pubDate>Fri, 25 Jan 2013 11:28:49 +0000</pubDate>
        <title>архитектура клиент серверного приложения с толстым клиентом</title>
        <link>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3265556</link>
        <description><![CDATA[deil: Я бы оформил DAL чуть сложнее - вынес бы из BLL все основные понятия, которыми она оперирует (не таблички, а сущности, которые в них хранятся). И именно этот слой и оставил бы на сервере: оперирование высокороувневыми сущностями: ПолучитьСписокВсехПользователей, ДобавитьПользователя, и т.д. При этом, принимая в каждый метод на вход токен аутентификации, на основе которого сервер бы понимал, что это за пользователь и применял бы правила безопасности.<br>А на клиента водрузил бы манипулирование этими высокоуровневыми сущностями (бизнес-правила) и представление.]]></description>
        <author>deil</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3264749</guid>
        <pubDate>Wed, 23 Jan 2013 17:54:05 +0000</pubDate>
        <title>архитектура клиент серверного приложения с толстым клиентом</title>
        <link>https://forum.sources.ru/index.php?showtopic=371312&amp;view=findpost&amp;p=3264749</link>
        <description><![CDATA[oleg901: Приветствую, товарищи программисты&#33;<br>
Необходимо реализовать клиент-серверное приложение с толстым клиентом.<br>
Клиент и сервер будут обмениваться данными с помощью WCF. Возникают 2 вопроса.<br>
<br>
Вопрос 1. Если архитектуру приложения разбить на следующие  3 слоя: View, BLL (бизнесс логика), DAL (уровень доступа к данным), то как будет выглядеть архитектура клиента и сервера?<br>
У меня два варианта [клиент] интернет [сервер]:<br>
1). [View&lt;-&gt;BLL&lt;-&gt;ClientDAL] интернет [ServerDAL&lt;-&gt;БД]<br>
2). [View&lt;-&gt;ClientBLL] интернет [ServerBLL&lt;-&gt;DAL&lt;-&gt;БД]<br>
т.е. вопрос сводится к тому, гду будет располежена реализация бизнес логики - на клиенте или на сервере?<br>
Первый вариант кажется не очень безопасным, т.к. код проверки полномочий будет расположен на стороне клиента (в BLL).<br>
Во втором варианте клиент, как мне кажется, не является толстым клиентом.<br>
<br>
Вопрос 2. <br>
DAL я представляю в виде набора классов для работы с конкретными таблицами БД. Получается что для каждого такого класса нужен свой wcf сервис? Или есть другие подходы к организации доступа к данным с помощью WCF (в wcf я новичок).<br>
<br>
Что скажите, господа?]]></description>
        <author>oleg901</author>
        <category>.NET: Распределенные приложения</category>
      </item>
	
      </channel>
      </rss>
	