<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="http://blogonline.com.ua/styles/rss.css" type="text/css"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
>
 <channel>
  <title>.NET Developer notes</title>
  <link>http://dmi3.blogonline.com.ua</link>
  <description> Kabyshev Dmitriy's blog 
</description>
  <pubDate>Mon, 22 Mar 2010 15:32:07 +0200</pubDate>
  <generator>http://www.lifetype.net</generator>
    <item>
   <title>ПадонФфская почта от Microsoft</title>
   <description>
    &lt;p&gt;
    Довольно не обычно, после сложившегося впечатления (лично у меня) о Майкрософт, как серьезной конторе, наткнутся на недавно открывшийся сервис, ориентирован сугубо на русскоязычных пользователей интернета. Честно сказать приятно улыбнуло&lt;img src=&quot;http://dmi3.blogonline.com.ua/js/tinymce/plugins/emotions/images/smiley-laughing.gif&quot; border=&quot;0&quot; alt=&quot;Laughing&quot; title=&quot;Laughing&quot; /&gt;, как вам перспектива получить себе почту:    
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;pupkin@wasaaap.ru 	pupkin@yabotan.ru    &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;  pupkin@yaktulhu.ru 	pupkin@ya-krevetko.ru  &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;    pupkin@pendalh.ru&lt;/span&gt;   
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;Список можно продолжать очень долго, копирайтеры Майкрософта постарались на славу)! &lt;br /&gt;
   Если в общем о сервисе, то все довольно удобно и сдержанном стиле. Все домены разбиты по категориям: &amp;laquo;Про все&amp;raquo;, &amp;laquo;Про работу&amp;raquo;, &amp;laquo;Про отдых&amp;raquo;, &amp;laquo;Про любовь&amp;raquo;, &amp;laquo;Про учёбу&amp;raquo;, &amp;laquo;Про отрыв&amp;raquo;, &amp;laquo;Про компьютер&amp;raquo;. Первое, что приходит в голову, это то, что русскоязычные работники Майкрософта, после очередной вечеринки корпоративной, решили отжечь &lt;img alt=&quot;:)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/regular_smile.gif&quot; /&gt;.&lt;br /&gt;
   Про функциональную составляющую, то пользователям hotmail интерфейс покажется знакомым.   
&lt;/p&gt;
&lt;p&gt;
&lt;a id=&quot;res_47&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-47.jpg&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-47.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
   Стоит заметить, что теперь вы можете повесить на один аккаунт более одного мыла, то есть со всех вышеупомянутых зарегистрированных адресов почта будет приходить в одно место. 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
   Если откинуть юмор и пораскинуть мозгами, то это оправданный шаг с точки зрения маркетинга, таким образом они привлекут достаточное количество русскоязычных пользователей интернета, в основном молодежи, а с учетом желания покупки Yahoo (пока это у них не получилось), Microsoft как всегда метит в лидеры, на этот раз в сфере комуникации пользователей, ведь на hotmail вы также получачи MSN и блог, тут ситауция не изменилась, вы&amp;nbsp;все&amp;nbsp;также&amp;nbsp;получаете&amp;nbsp;все&amp;nbsp;это&amp;nbsp;только&amp;nbsp;для&amp;nbsp;другого&amp;nbsp;домена.
&lt;/p&gt;
&lt;p&gt;
Получить&amp;nbsp;почту&amp;nbsp;можно&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://www.mailnica.ru/&quot; target=&quot;_blank&quot;&gt;Здесь&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
   </description>
   <link>http://dmi3.blogonline.com.ua/post/25/81</link>
   <comments>http://dmi3.blogonline.com.ua/post/25/81</comments>
   <guid>http://dmi3.blogonline.com.ua/post/25/81</guid>
      <dc:creator>dmi3</dc:creator>
      
    <category>Общая</category>
         <pubDate>Fri, 11 Apr 2008 19:15:40 +0300</pubDate>
   <source url="http://dmi3.blogonline.com.ua/rss/rss20/25">.NET Developer notes</source>
                    </item>
    <item>
   <title>ORM, ловкость рук и никакого мошенничества</title>
   <description>
    &lt;p&gt;
    Думаю не стоит рассказывать, что такое ORM и с чем его едят на завтрак (если кто не знает почитать можно здесь). Я хотел с вами поделится довольно интересным, с моей точки зрения, обзором ORM Framework. А что тут собственно рассматривать? &amp;ndash; скажите, вы &amp;ndash; все знают про Hibernate и его версию под .NET NHibernate. Да не могу не согласится, довольно известной и скажем прямо, заслуженный продукт. Но все же, можете меня осуждать но, что то мне в нем не нравится, когда дело касается не очень больших задач связанным с БД. Все эти файлы .xml с мапингом соответствий, да и тот факт, что таблицы все равно должны уже быть. Ну не нравится мне это.     
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;    
&lt;/p&gt;
&lt;p&gt;
    Поэтому, когда я случайно познакомился с довольно интересным решением под названием ODX ORM Framework, не скрою, что я заинтересовался. Не сказать, что он какой-то там сверх технологичный, но для своих задач лучший вариант, как по мне. И так давайте посмотрим, что же это за зверь.&lt;br /&gt;
&lt;br /&gt;
    Как и в любой другой ORM работа строится на представлении сущностей БД (таблиц) в виде объектов со свойствами, а наборы кортежей, чаще всего, в виде коллекций таких объектов. Связи между сущностями тоже довольно просто реализовать с точки зрения объектной парадигмы. Если это простая связь, то достаточно просто хранить ссылку на объект, если же один ко многих или многие ко многим, то можно представить в качестве коллекций объектов. &lt;br /&gt;
&lt;br /&gt;
    Теперь давайте посмотрим, как это реализовано в рассматриваемом Framework:&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #6dffc7&quot;&gt;&lt;span style=&quot;color: #000000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;Table&lt;/span&gt;&lt;/span&gt;(&amp;quot;Human&amp;quot;, Versioned = true)]&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #6dffc7&quot;&gt;&lt;span style=&quot;color: #000000&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #6dffc7&quot;&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;HierarchyRoot&lt;/span&gt;&lt;/span&gt;]&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #6dffc7&quot;&gt;&lt;span style=&quot;color: #000000&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #6dffc7&quot;&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;TypeDef&lt;/span&gt;&lt;/span&gt;(&amp;quot;H&amp;quot; )]&lt;br /&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract class&lt;/span&gt; &lt;span style=&quot;color: #33cccc&quot;&gt;Human&lt;/span&gt; : &lt;span style=&quot;color: #33cccc&quot;&gt;Entity&lt;/span&gt;&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract string&lt;/span&gt; Name { get; set; }&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract&lt;/span&gt; Gender Sex { get; set; }&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract&lt;/span&gt; DateTime DateOfBirth { get; set; }&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public int&lt;/span&gt; Age&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&lt;br /&gt;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;get&lt;/span&gt; { &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;(int&lt;/span&gt;)((DateTime.Now - DateOfBirth).Days / 365.25); }&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract float&lt;/span&gt; Weight { &lt;span style=&quot;color: #0000ff&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: #0000ff&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract short&lt;/span&gt; Salary { &lt;span style=&quot;color: #0000ff&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: #0000ff&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #33cccc&quot;&gt;Column&lt;/span&gt;(&amp;quot;MasterID&amp;quot&lt;img alt=&quot;;)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/wink_smile.gif&quot; /&gt;]&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract&lt;/span&gt; IEntityList&amp;lt;Pet&amp;gt; Pets { &lt;span style=&quot;color: #0000ff&quot;&gt;get&lt;/span&gt;; }&lt;br /&gt;
&lt;br /&gt;
        }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Как видите, реализовано с помощью двух механизмов: наследования базового класса для всех сущностей Entity и с помощью ключевых атрибутов.&lt;br /&gt;
&lt;br /&gt;
    С классом познакомимся позже, а с помощью атрибутов можно осуществлять контроль над представлением сущности в БД. Например, в выше указаном примере мы указавыем имя таблицы с помощью директивы  Table, которая кстати обязтельна для всех сущностей, если не указать имя по умолчанию будет использовано имя класса. Также мы указываем, что сущность является корневой в иерархии HierarchyRoot, для сохранения иерархии Framework создает специальные колонки в талицах.  Атрибут TypeDef, насколько я понял, служит сокращенной формой типа для фабрики объектов.&lt;br /&gt;
&lt;br /&gt;
    Существуют также атрибуты для свойств объекта, например, опять же можем задать имя колонки, вместо по умолчанию имя свойства. В данном примере представлена связь один-ко-многим, для этого у объекта Human есть свойство хранящее ссылку на коллекцию связанных сущностей.&lt;br /&gt;
&lt;br /&gt;
    Так как мы работаем с объектами допустимо также наследование:&lt;br /&gt;
&lt;hr /&gt;
&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;br /&gt;
        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;[&lt;span style=&quot;color: #33cccc&quot;&gt;TypeDef&lt;/span&gt;(&amp;quot;M&amp;quot&lt;img alt=&quot;;)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/wink_smile.gif&quot; /&gt;]&lt;br /&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;public abstract class&lt;/span&gt; &lt;span style=&quot;color: #33cccc&quot;&gt;Man&lt;/span&gt; : &lt;span style=&quot;color: #33cccc&quot;&gt;Human&lt;/span&gt;&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;protected override void&lt;/span&gt; OnCreated()&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&lt;br /&gt;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sex = Gender.Male;&lt;br /&gt;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Weight = 123.1f;&lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Salary = 121;&lt;br /&gt;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;base.OnCreated();&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
        }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Также довольно интересный момент, авторы предоставляют нам механизм событий (тригеров), с помощью которых можно осуществлять необходимые нам действия.&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;  &lt;span style=&quot;font-size: xx-small&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Table&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;      public abstract class &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Transaction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; : &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Entity&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;      {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;public abstract&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; decimal Amount { &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;set&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;public abstract&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; Account DebitAccount { &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;set&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;public abstract&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; Account CreditAccount { &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;set&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;protected override void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; OnChanging  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;DataColumnChangeEventArgs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (e.Column.ColumnName == &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Amount&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (DebitAccount != null)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DebitAccount.UpdateBalance(+Amount);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (CreditAccount != null)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreditAccount.UpdateBalance(-Amount);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (e.Column.ColumnName == &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;DebitAccountID&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (DebitAccount != null)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DebitAccount.UpdateBalance(+Amount);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;     }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Довольно интересно, не так ли? Ну да ладно, это все мелочи. Давайте же теперь посмотрим, как огранизована работа с нашими сущностями и БД:&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;DbDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; provider = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;DbDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(OleDbFactory.Instance,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sql.mdb;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; session = new   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(provider,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.GetExecutingAssembly());&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Основной объект, с которым нам предстоит работать это Session. Естественно, что для работы с базой данных нам нужен DataProvider. Тут можно использовать все, на что способна ваша фантазия. От OLEDB провайдеров (лично я их не люблю бяка &lt;img alt=&quot;:)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/regular_smile.gif&quot; /&gt;)) до обычного XmlDataProvider(как вам перспектива работать с обычным XML с тем же кодом для и для БД ?). Если вас не устаивает стандартные, пожалуйста, пишите свой, достаточно наследовать базовый класс DbProviderFactory (лично так я и делал для Postgresql). &lt;br /&gt;
&lt;br /&gt;
    Дальше все проще, чем можно представить:&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;DbDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; provider =  &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;   new &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;DbDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;PGDataFactory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(), &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;PGDataFactory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.getConnectionStr&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(&amp;quot;localhost&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &amp;quot;snms&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &amp;quot;dmi3&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &amp;quot;dmi3&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;));&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; session = &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(provider, &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.GetExecutingAssembly());&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              provider.CreateDatabase(session.Schema);&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Man&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; oledbJohn = session.Create&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Man&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              oledbJohn.Name = &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;John&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              oledbJohn.DateOfBirth = &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; DateTime(1977, 04, 06);&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              session.Save();&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Man&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; odbcSmith = session.Create&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;lt;Man&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              odbcSmith.Name =&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &amp;quot;Smith&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              odbcSmith.DateOfBirth = &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; DateTime(1953, 11, 1&lt;img alt=&quot;8)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/shades_smile.gif&quot; /&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              session.Save();&lt;/span&gt;&lt;/span&gt;    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Никак предварительных таблиц не надо. Достаточно provider.CreateDatabase(session.Schema);&lt;br /&gt;
&lt;br /&gt;
    Framework сам создаст за вас все таблицы, исходя из имеющихся сущностей. &lt;br /&gt;
    Ну ладно, БД создали, таблицы есть, что дальше? А дальше опять же все просто. Хотим получить все кортежи определенного типа? &amp;ndash; пожалуйста:    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;ICollection&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;Man&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;gt; list= session.All&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;Man&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;hr /&gt;
    Ну а если запрос с условием? &amp;ndash; ничего сложного:    
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;Man&lt;/span&gt; odbcJohn = odbcSession.SelectOne&amp;lt;&lt;span style=&quot;color: #33cccc&quot;&gt;Man&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #ff0000&quot;&gt;&amp;quot;Name = ?&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000&quot;&gt;&amp;quot;DateOfBirth DESC&amp;quot;&lt;/span&gt;,&lt;span style=&quot;color: #ff0000&quot;&gt; &amp;quot;John&amp;quot;&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;    
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;hr /&gt;
    Вернет нам в случае успеха нашего Джона). Если же надо более одного (первый парамент строка поиска, второй колонка по которые отсортируются результаты, далее собственно массив параметров, в нашем случае этолько int):    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;Man&lt;/span&gt;[] men = session.Select&amp;lt;&lt;span style=&quot;color: #33cccc&quot;&gt;Man&lt;/span&gt;&amp;gt;(&lt;span style=&quot;color: #ff0000&quot;&gt;&amp;quot;&#039;Age= ?&#039;&amp;quot;&lt;/span&gt;,&lt;span style=&quot;color: #ff0000&quot;&gt; &amp;quot;Name&amp;quot;&lt;/span&gt;, 20);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Также можно использовать SQL в чистом виде:    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;Pager&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #33cccc&quot;&gt;Human&lt;/span&gt;&amp;gt; p =&lt;span style=&quot;background-color: #ffffff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span style=&quot;background-color: #ffffff&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;Pager&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #33cccc&quot;&gt;Human&lt;/span&gt;&amp;gt;(session, @&lt;span style=&quot;color: #ff0000&quot;&gt;&amp;quot;&lt;br /&gt;
    select h.* from Human h inner join Pet p on p.MasterID = h.ID&lt;br /&gt;
    where p.Name like &#039;M%&#039; and &amp;lt;PagerWhere&amp;gt;&amp;quot;&lt;/span&gt;,&lt;br /&gt;
&lt;span style=&quot;color: #ff0000&quot;&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;, 1, PagerFilterType.Select);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Также есть разнообразные механизмы проверки про добавлени, например:    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;     {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;     	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;session.Save(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;SaveMode&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.Concurrent);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;     }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; ( &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;DBConcurrencyException&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; e )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;    	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Console&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.WriteLine(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Concurrent access violation&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Console&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.WriteLine(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Conflicted table: &amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; + e.Row.Table.TableName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;DataColumn&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; dc in e.Row.Table.Columns)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (dc.ColumnName.ToUpper() != &amp;quot;ID&amp;quot;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp; dc.ColumnName.ToUpper() != &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;ROWVERSION&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;) &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;   	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;\t{0}\t{1}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;, dc.ColumnName, e.Row[dc.ColumnName]);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// reject the violated changes to be able to save other work&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Entity&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; violatedEntity = oledbSession.FindEntity(e.Row[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;].ToString());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;         &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;violatedEntity.RejectChanges();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Console&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.WriteLine(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Conflicted changes rejected.&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Еще довольно интересный момент, не обязательно мы должны быть подключены в БД! Все выполненные изменения можно сохранить в файл, и потом про подключении произвести &amp;laquo;merge&amp;raquo; (не хочу переводить, так как слияние вроде не оч. подходит):    
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;static void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; Main()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;const string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; fileName = &amp;quot;pets.xml&amp;quot;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;const string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; offlineFileName = &amp;quot;pets.bin&amp;quot;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Init(fileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreateReplica(fileName, offlineFileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ModifyReplica(offlineFileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ModifyOnline(fileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MergeReplica(fileName, offlineFileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; session = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;XmlDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(fileName),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.GetExecutingAssembly());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; john = session.SelectOne&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Name = ?&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;, null,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &amp;quot;John&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;session.Combine(session);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;private static void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; MergeReplica(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; fileName,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; offlineFileName)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Create &amp;quot;connected&amp;quot; session.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; session = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;XmlDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(fileName),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.GetExecutingAssembly());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Load offline data in connected session.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;session.LoadFromFile(offlineFileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;// Save replica to the online data source.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;session.Save();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          }  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;private static void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; ModifyReplica(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; offlineFileName)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Create &amp;quot;disconnected&amp;quot; session.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; offlineSession = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.GetExecutingAssembly());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;// Load Replica data into the session.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;offlineSession.LoadFromFile(offlineFileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;// Select John&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; offlineJohn = offlineSession.SelectOne&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Name = ?&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;, null, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;John&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;// Perform data modifications&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;offlineJohn.Age++;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Pet&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; dog = offlineSession.Create&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Pet&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;dog.Name = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;quot;Beethoven&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;dog.Master = offlineJohn;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;offlineSession.SaveToFile(offlineFileName);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;private static void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; Init(string fileName)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;          {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;File&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.Exists(fileName))&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;                  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;File&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.Delete(fileName);  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Create &amp;quot;connected&amp;quot; session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; session = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;XmlDataProvider&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;(fileName));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;session.RegisterAssembly(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;.GetExecutingAssembly());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;session.Prepare();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Populate connected sesson with some data&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;              &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt; john = session.Create&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;font-size: xx-small&quot;&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span s
   </description>
   <link>http://dmi3.blogonline.com.ua/post/25/68</link>
   <comments>http://dmi3.blogonline.com.ua/post/25/68</comments>
   <guid>http://dmi3.blogonline.com.ua/post/25/68</guid>
      <dc:creator>dmi3</dc:creator>
      
    <category>C#</category>
         <pubDate>Fri, 04 Apr 2008 23:09:38 +0300</pubDate>
   <source url="http://dmi3.blogonline.com.ua/rss/rss20/25">.NET Developer notes</source>
     </item>
    <item>
   <title>C# pointer hell или как не попасть впросак</title>
   <description>
    &lt;p&gt;
   Старый добрый Си, сколько хороших воспоминаний. Бессонный ночи, красные глаза). Все помнят кошмар при работе с указателями, кто-то конечно может возразить, да есть свои плюсы и и не меньше минусов и головной боли. Можно ведь прекрасно без них обходится, Java тому пример (хотя по правде говоря там все указатели, просто не дают явно работать с ними). А руки иногда почесываются поставить *? Нет, значит вы на правильном пути, нечего шаловливым ручонкам к памяти давать доступ. Вот и я думал, что не придется, а все же&amp;hellip;   
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;br /&gt;
   Бывают ситуации, хотя и очень редко, когда надо использовать библиотеку (*.dll) написанную скажем на &lt;strong&gt;Delphi&lt;/strong&gt;. И если для использования этой библиотеки нету промежуточного COM объекта или иных достижений цивилизации, да если еще &amp;laquo;коллеги&amp;raquo; написали в качестве параметров указатели (передаю им привет &lt;img src=&quot;http://dmi3.blogonline.com.ua/js/tinymce/plugins/emotions/images/smiley-wink.gif&quot; border=&quot;0&quot; alt=&quot;Wink&quot; title=&quot;Wink&quot; /&gt;), то тогда эта заметка будет вам в помощь. Конечно, надеюсь, что вы с таким не столкнетесь, но всякое бывает.&lt;br /&gt;
   Итак, как использовать экспортируемые библиотеки из *.dll я сильно расписывать не буду, скажу, что в моем случае я&amp;nbsp;использовал &lt;strong&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;DllImport&lt;/span&gt;&lt;/strong&gt;, вот пример:   
&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;
&lt;span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt; System.Runtime.InteropServices;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;  &lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;namespace&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;DllHell&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;  &lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;public static class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;Test&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #008000&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;DllImport&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;(&amp;quot;MyLib.dll&amp;quot; )]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;private static extern int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt; SomeFunction();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;font-size: small&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;   
&lt;/div&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
    Обязательным параметром является   &lt;span style=&quot;color: #0000ff&quot;&gt;extern&lt;/span&gt;, что указывает компилятору но то, что функция экспортируется из библиотеки, которая в данном случае будет искатся в каталоге с приложением, так как не указан полный путь.&lt;br /&gt;
   Все хорошо, но если мы имеет что-то вроде этого:   
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #008000&quot;&gt;[DllImport&lt;/span&gt;(&amp;quot;MyLib.dll&amp;quot&lt;img alt=&quot;;)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/wink_smile.gif&quot; /&gt;]&lt;br /&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;private extern int&lt;/span&gt; SomeFunction(&lt;span style=&quot;color: #0000ff&quot;&gt;byte&lt;/span&gt;* pData, &lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;* oid, &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; size);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;   
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
   Паниковать не надо, все решаемо. Для начала стоит разрешить в проекту использование unsafe (&amp;laquo;небезопасного&amp;raquo;, вот какого мнения об указателях Microsoft =|) кода. Зделать это можно здесь:   
&lt;/p&gt;
&lt;p&gt;
&lt;a id=&quot;res_43&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-43.jpg&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-43.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
    Данная опция позволяет использовать в проектк директиву unsafe, без нее компилятор будет очень громко ругатся на какие том там непонятные звездочки и амперсанты.  Если следующие варианты использования:   
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;nbsp;Объявить класс как unsafe:&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;unsafe public class &lt;/span&gt;Test&lt;br /&gt;
       &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
       &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;nbsp;Только метод:&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;unsafe &lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public  void&lt;/span&gt; SomeMethod()&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
	&lt;li&gt;Или же участок кода:&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;unsafe&lt;/span&gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
                    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #339966&quot;&gt;&amp;nbsp;//Some cod here&lt;/span&gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   Опять же не все так просто, как казалось. Мы можем в таком участке кода объявлять указатели и брать адресса через оператор &amp;laquo;&amp;amp;&amp;raquo;. Но если нам надо использовать указатель на &lt;span style=&quot;color: #0000ff&quot;&gt;byte[]&lt;/span&gt; или же &lt;span style=&quot;color: #0000ff&quot;&gt;char[]&lt;/span&gt;. На конструкцию следующего типа:&lt;br /&gt;
&lt;hr /&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;unsafe&lt;/span&gt;&lt;br /&gt;
               {&lt;br /&gt;
                   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;nbsp;char[]&lt;/span&gt; buf =&lt;span style=&quot;color: #0000ff&quot;&gt; new char&lt;/span&gt;[10];&lt;br /&gt;
                   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;char*&lt;/span&gt; pBuf = h;&lt;br /&gt;
               }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;
   компилятор вам деликатно скажет, что он не может взять адреса, использовать &lt;span style=&quot;color: #0000ff&quot;&gt;sizeof()&lt;/span&gt;, и объявлять укаазтели на managed types, к коим относится, в частности,&lt;span style=&quot;color: #0000ff&quot;&gt; char[]&lt;/span&gt;. &lt;br /&gt;
   Решение этой проблемы в использовании директивы fixed. Проще говоря, данная директива исключает то, что ваша переменная будет выброшена в мусор &lt;strong&gt;GC&lt;/strong&gt; (garbage collector). Пример использования:   
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;unsafe&lt;/span&gt;&lt;br /&gt;
               {&lt;br /&gt;
                   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;byte[]&lt;/span&gt; buf = &lt;span style=&quot;color: #0000ff&quot;&gt;new byte&lt;/span&gt;[10] { 1,2,3,4,5,6,7,8,9,10};&lt;br /&gt;
                               &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;fixed&lt;/span&gt; (&lt;span style=&quot;color: #0000ff&quot;&gt;byte&lt;/span&gt;* pBuf = buf)&lt;br /&gt;
                   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&lt;br /&gt;
                                     &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pBuf[2] = 0;&lt;span style=&quot;color: #339966&quot;&gt; // в buf элемент с индексом 2 будет равен 0&lt;/span&gt; &lt;br /&gt;
                   &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
               }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
   Также директива fixed в C# 2.0 и выше может использоваться еще в одном контексте. Например если нам надо в структуре использовать массив заданной величины (как вы знаете проинициализировать свойства структуры до ее создания мы не можем), поэтому решение опять же в использование &lt;span style=&quot;color: #0000ff&quot;&gt;fixed&lt;/span&gt;:   
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;br /&gt;
&lt;span&gt;&lt;span style=&quot;font-size: x-small&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;unsafe&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;struct&lt;/span&gt; SomeStruct&lt;br /&gt;
       {&lt;br /&gt;
           &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;fixed char&lt;/span&gt; arr[200];&lt;br /&gt;
       }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
   
&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;br /&gt;
   Вот и все, чем я хотел с вами поделится. Данная заметка не предентует на оригинальность, но надеюсь кому-то будет полезно.   
&lt;/p&gt;
   </description>
   <link>http://dmi3.blogonline.com.ua/post/25/63</link>
   <comments>http://dmi3.blogonline.com.ua/post/25/63</comments>
   <guid>http://dmi3.blogonline.com.ua/post/25/63</guid>
      <dc:creator>dmi3</dc:creator>
      
    <category>C#</category>
         <pubDate>Fri, 28 Mar 2008 23:34:27 +0200</pubDate>
   <source url="http://dmi3.blogonline.com.ua/rss/rss20/25">.NET Developer notes</source>
                    </item>
    <item>
   <title>Краткий обзор Must-have утилит для .NET разработчика</title>
   <description>
    &lt;p&gt;
  В этой статье я хочу поделится списком &amp;laquo;Must-Have Tools&amp;raquo;, то есть небольшие бесплатные утилиты, направленные на облегчение жизни нам и нашим коллегам, team-members и товарищам. Возможно не все из нижеперечисленного вам пригодится, до думаю каждый для себя найдет что-то по вкусу.  
&lt;/p&gt;
&lt;p&gt;
  &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;Snippet Compiler&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 Никогда не сталкивались с ситуаций, когда надо проверить небольшой кусок кода, но открывать Студию, создавать для этого проект так лень? Если ответ &amp;laquo;да&amp;raquo;, то следующая утилита именно для вас. Миниатюрная программка позволит вам откомпилировать и запустить код.&lt;br /&gt;
&lt;br /&gt;
&lt;a id=&quot;res_36&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-36.gif&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-36.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 Скачать - &lt;a href=&quot;http://www.sliver.com/dotnet/SnippetCompiler&quot; target=&quot;_blank&quot;&gt;Snippet Compiler&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;Regulator and Regulazy&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 Две утилиты одного автора предназначенные для создания и проверки регулярных выражений (Regex, Regular expressions). Первая, более серьезная и предназначена для опытных и закаленных в боях разработчиков ):&lt;br /&gt;
&lt;br /&gt;
&lt;a id=&quot;res_41&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-41.jpeg&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-41.jpeg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 Вот некоторые возможности:&lt;br /&gt;
&lt;br /&gt;
 Supported Regex actions
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;nbsp;Find multiple Matches  &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Replace text according to expression &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Split text according to expression &lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Regexlib.com integration&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;nbsp;Search and import expressions and examples from RegexLib.comג&amp;euro;&amp;trade;s database &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Post your own regular expressions into regexlib&#039;s database, direct from The regulator using a graphical wizard &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Full Proxy support for secure connections &lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Text Editing&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;nbsp;Syntax highlighting &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Multiple document tabbed interface &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Quick menus allow you to easily select syntax operations to insert &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Quick Menus are fully customizable simply by changing a simple XML file in the program directory &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Brace matching support &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Make selected text &amp;quot;escaped&amp;quot; to match a specific string exactly without needing to manually write those \s,\n and other escape sequences &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Collapse/expand selection: you can create collapsible regions in your regex code for easy reading &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Select only a portion of the expression in the editor and only that selection will be executed as a match\replace &lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
 Вторая, судя из названия, предназначена для &amp;laquo;ленивых&amp;raquo; разработчиков (то есть для нас &lt;img alt=&quot;=)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/regular_smile.gif&quot; /&gt;), которые не привыкли ломать голову над выражениями, а предпочитают интерактивную генерацию их же:&lt;br /&gt;
&lt;br /&gt;
&lt;a id=&quot;res_39&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-39.gif&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-39.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
 Скачать&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://tools.osherove.com/CoolTools/Regulator/tabid/185/Default.aspx&quot; target=&quot;_blank&quot;&gt;Regulator&amp;nbsp;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
 Скачать&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://tools.osherove.com/CoolTools/Regulazy/tabid/182/Default.aspx&quot; target=&quot;_blank&quot;&gt;Regulazy&amp;nbsp;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;FxCop&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 FxCop предоставляет средства автоматической проверки .NET-сборок на предмет соответствия правилам Microsoft .NET Framework Design Guidelines. Откомпилированный код проверяется с помощью механизмов Reflection, парсинга MSIL и анализа графа вызовов. В результате FxCop способен обнаружить более 200 недочетов (или ошибок) в следующих областях:&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;nbsp;Архитектура библиотеки&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Локализация&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Правила именования&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Производительность&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&amp;nbsp;Безопасность&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;a id=&quot;res_37&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-37.jpg&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-37.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;NUnit&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 Думаю, кто знаком с Java или вообще с тестированием не готового продукта, а отдельных классов и модулей, тот сразу поймет, что это. Про написание тестов, в часности NUnit написано тонна литературы и статей, поэтому здесь я этого касатся не буду, возможно будут отдельные статьи&lt;br /&gt;
&lt;br /&gt;
 NUnit это Open Source проект, домашняя страница находится здесь - &lt;a href=&quot;http://www.nunit.org&quot; target=&quot;_blank&quot;&gt;http://www.nunit.org&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
 Также есть неплохие плагины для Студии -&lt;a href=&quot;http://sourceforge.net/projects/nunitaddin&quot; target=&quot;_blank&quot;&gt; http://sourceforge.net/projects/nunitaddin&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;Lutz Roeder&#039;s .NET Reflector&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 Следующая утилита с помощью механизма Reflection расскажет вам все &amp;laquo;секреты&amp;raquo;  интересующей вас сборки: структура классов, подробная информация ко каждому классу (методы, поля, описание и тд.).&lt;br /&gt;
&lt;br /&gt;
&lt;a id=&quot;res_38&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-38.gif&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-38.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 Скачать можно здесь -&lt;a href=&quot;http://www.aisto.com/roeder/dotnet/&quot; target=&quot;_blank&quot;&gt; Reflector for .NET&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;NDoc&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 Часто ли вы комментируете свой код и вошло ли у вас это в привычку? Нет?! Тогда вам стоит начать прямо сейчас. Данная же утилита позволит сгенерировать, например, из той же сборки, документацию в виду XML структурированного согласно иерархии классов. Это в том случае, если вы применяли в своем коду документирование в стиле XML.
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;style type=&quot;text/css&quot;&gt;     /**/     &lt;/style&gt;
&lt;/p&gt;
&lt;div&gt;
&lt;span&gt;&lt;em class=&quot;c1&quot;&gt;&lt;span style=&quot;background-color: #999999&quot;&gt;&lt;span style=&quot;background-color: #ffffff&quot;&gt;&lt;span style=&quot;color: #808080&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;em class=&quot;c1&quot;&gt;&lt;span style=&quot;color: #808080&quot;&gt;///&lt;/span&gt;&amp;nbsp;This&amp;nbsp;test&amp;nbsp;adds&amp;nbsp;a&amp;nbsp;number&amp;nbsp;of&amp;nbsp;values&amp;nbsp;to&amp;nbsp;the&amp;nbsp;Hashtable&amp;nbsp;collection&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;em class=&quot;c1&quot;&gt;&lt;span style=&quot;color: #808080&quot;&gt;///&lt;/span&gt;&amp;nbsp;and&amp;nbsp;then&amp;nbsp;retrieves&amp;nbsp;those&amp;nbsp;values&amp;nbsp;and&amp;nbsp;checks&amp;nbsp;if&amp;nbsp;they&amp;nbsp;match.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&lt;em class=&quot;c1&quot;&gt;&lt;span style=&quot;color: #808080&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;[Test]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #0000ff&quot;&gt;&lt;span&gt;&lt;strong class=&quot;c4&quot;&gt;public&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong class=&quot;c4&quot;&gt;void&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;strong&gt;HashtableAddTest&lt;/strong&gt;()&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;em class=&quot;c1&quot;&gt;&lt;span style=&quot;color: #339966&quot;&gt;//Method&amp;nbsp;Body&amp;nbsp;Here&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;span&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;
&lt;strong&gt;&amp;lt;member&lt;/strong&gt; &lt;strong&gt;name&lt;/strong&gt;=&amp;quot;M:NUnitExample.HashtableTest.HashtableAddTest&amp;quot;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;br /&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&amp;lt;summary&amp;gt;&lt;/strong&gt;This test adds a number of values to the Hashtable collection
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;and then retrieves those values and checks if they match.
&lt;/div&gt;
&lt;div&gt;
&lt;strong&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/summary&amp;gt;&lt;/strong&gt; &lt;br /&gt;
&lt;strong&gt;&amp;lt;/member&amp;gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;p&gt;
&lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;NAnt&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 Опять же знакомая утилита Java разработчикам, которая позволяет &amp;laquo;собрать&amp;raquo; проект без использование любых IDE. Главное, чтоб стоял .NET Framework. Очень напоминает Си-шный ЮНИКС аналог make, только в нашем случае скрипт описание последовательности  создается в виде XML документа.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&amp;lt;csc&lt;/strong&gt; &lt;strong&gt;target&lt;/strong&gt;=&amp;quot;library&amp;quot; &lt;strong&gt;output&lt;/strong&gt;=&amp;quot;.\bin\debug\NUnitExample.dll&amp;quot; &lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;debug&lt;/strong&gt;=&amp;quot;${debug}&amp;quot;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&amp;lt;references&amp;gt;&lt;/strong&gt;&lt;br /&gt;
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&amp;lt;includes&lt;/strong&gt; &lt;strong&gt;name&lt;/strong&gt;=&amp;quot;C:\program files\NUnit V2.1\bin\NUnit.Framework.dll&amp;quot;&lt;strong&gt;/&amp;gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&amp;lt;/references&amp;gt;&lt;/strong&gt;&lt;br /&gt;
    &lt;strong&gt;&amp;lt;sources&amp;gt;&lt;/strong&gt;&lt;br /&gt;
       &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&amp;lt;includes&lt;/strong&gt; &lt;strong&gt;name&lt;/strong&gt;=&amp;quot;HashtableTest.cs&amp;quot;&lt;strong&gt;/&amp;gt;&lt;/strong&gt;&lt;br /&gt;
    &lt;strong&gt;&amp;lt;/sources&amp;gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&amp;lt;/csc&amp;gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Скачать можно здесь - &lt;a href=&quot;http://sourceforge.net/projects/nant&quot; target=&quot;_blank&quot;&gt;NAnt&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
 &lt;span style=&quot;font-size: small&quot;&gt;&lt;strong&gt;XML Data Editor&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
 Данная программка позволяет легко и удобно редактировать XML файлы, представленные в виде таблицы атрибутов.&lt;br /&gt;
&lt;br /&gt;
 &lt;a id=&quot;res_40&quot; href=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-40.gif&quot;&gt;&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/previews-med/25-40.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 Скачать - &lt;a href=&quot;http://devtools.10try.com/Publish/XE/XMLDataEditor.exe&quot; target=&quot;_blank&quot;&gt;XML Data Editor&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 Вот и все о чем я хотел вам поведать. Если у вас есть на примете утилиты, которые реально помогают вам в работе, то буду только рад дополнить список.&amp;nbsp; 
&lt;/p&gt;
   </description>
   <link>http://dmi3.blogonline.com.ua/post/25/55</link>
   <comments>http://dmi3.blogonline.com.ua/post/25/55</comments>
   <guid>http://dmi3.blogonline.com.ua/post/25/55</guid>
      <dc:creator>dmi3</dc:creator>
      
    <category>Stuff</category>
         <pubDate>Sun, 23 Mar 2008 22:19:06 +0200</pubDate>
   <source url="http://dmi3.blogonline.com.ua/rss/rss20/25">.NET Developer notes</source>
                                                                                               </item>
    <item>
   <title>Альтернатива Visual Studio есть.</title>
   <description>
    &lt;p&gt;
       Если честно, до не давних пор даже и мысли не было о возможности альтернативы &lt;strong&gt;Visual Studio&lt;/strong&gt;. Да, тут конечно не сравнишь с разработкой на Java, где можно выбрать себе IDE по вкусу, еще и поспорить с другим, где удобнее писать за бутылкой пива. Но оказывается нашлись альтруисты, которые не пожалели сил и времени на разработку IDE, которая вполне может стать заменой продукту от Microsoft, а в некоторых моментах даже лучше (личное мнение). Называется проект &lt;strong&gt;SharpDevelop&lt;/strong&gt;. Первое мнение, которое может сложится исходя из названия &amp;ndash; это то, что студия исключительно для C#. Хочу вас обрадовать, это не так, скорей всего название исходит из того, что написана она на том же C#.  &amp;nbsp;     
&lt;/p&gt;
&lt;p&gt;
     &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
     Итак, что же мы имеем. &lt;br /&gt;
&lt;br /&gt;
     Сразу же бросается в глаза небольшой объем, всего то 12мб, хотя это свойственно всем исполняемым файлам под .NET Framework, но согласитесь, после Студии разница разимая. Можно спокойно хранить на флешке, вдруг вам приспичит покодить  у девушки дома &lt;img alt=&quot;=)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/regular_smile.gif&quot; /&gt;.&lt;br /&gt;
&lt;br /&gt;
     Самое важное то, что проект Open Source и вы спокойно можете скачать исходники с сайта авторов для изучения, или же присоединится к доработке и исправлению багов.&lt;br /&gt;
&lt;br /&gt;
     Что же нам может предоставить эта темная лошадка, спросите вы. Вот список возможностей:    
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Forms designer for C#, VB.NET and Boo &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Code completion for C#, VB.NET and Boo (including Ctrl+Space support) &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Integrated NUnit support plus code coverage (NCover) &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Integrated debugger &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Code Analysis with FxCop &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Refactoring support &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Multi-framework support (.NET 1.1 and 2.0, Mono, Compact Framework) &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;XML Editing (source and tree view) with XPath search &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Parser-based code converter (C# to VB.NET / Boo and more) &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Compile C#, VB.NET &amp;amp; Boo code in the IDE out-of-the-box &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Code AutoInsert (Alt+Ins) &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Xml documentation preview &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Setup projects supported with Windows Installer XML (WiX) &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Subversion integration &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Open source, LGPL licensed&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;a href=&quot;http://sharpdevelop.com/OpenSource/SD/Features.aspx&quot; target=&quot;_blank&quot; title=&quot;..and much more&quot;&gt;..and much more&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
     Также присутствует обратная поддержка проектов  Visual Studio.&lt;br /&gt;
&lt;br /&gt;
     С первого взгляда напоминает немного упрощенный интерфейс студии, кому то может даже больше понравится, все лаконично, можно сказать &amp;laquo;ничего лишнего&amp;raquo;:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-33.jpg&quot; border=&quot;0&quot; width=&quot;500&quot; height=&quot;354&quot; align=&quot;middle&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
     Как видите ничего кардинального и экстравагантного нету. Тот же Toolbox в визуальном редакторе, но, например, есть сразу две закладки &amp;laquo;Source&amp;raquo; и &amp;laquo;Design&amp;raquo;, мелочь, а приятно &lt;img alt=&quot;=)&quot; src=&quot;http://blogonline.com.ua/plugins/smileys/icons/default/regular_smile.gif&quot; /&gt;. В режиме редактирования кода на Toolbox доступны макросы заготовки:&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-34.jpg&quot; border=&quot;0&quot; width=&quot;500&quot; height=&quot;354&quot; align=&quot;middle&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://dmi3.blogonline.com.ua/gallery/25/25-35.jpg&quot; border=&quot;0&quot; width=&quot;500&quot; height=&quot;354&quot; align=&quot;middle&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     На данный момент стабильная версия 2.2, но также доступна для скачивания 3.0 бета. Ничего страшного в бете нету, по заявлением разработчиков, это та же 2.2 только с новыми возможностями. Я и сам использую 3.0. Вот список нововведений в третьей версии:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
	&lt;li&gt;* Parallel build support for multi-core machines&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;* IronPython language support has been added&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;* F# language support has been added (F# must be installed separately)&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;* C# 3.0 code completion is implemented (NOTE: VB9 is *not* as of Beta 1)&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;* The debugger infrastructure has been rewritten, more features to come in Beta 2&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;* Performance and stability work (i.e. VB &amp;lt;-&amp;gt; C# conversion)&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;NDoc has been replaced with Sandcastle&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;NCover has been replaced with PartCover&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;WiX 3.0 has been integrated&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Mono and NAnt support no longer shipping in setup (still supported though)&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
     Все конечно прекрасно и ребята конечно молодцы (большое им спасибо за это!) но все же на бочку меда найдется ложка дегтя. К сожалению, когда дело дошло до веб разработки (ASP) оказалось, что в SharpDevelop нету визального редактора для ASP страниц. Не критично &amp;ndash; согласен, но не удобно (возможно я не нашел, кто знает).  Так что не спешите удалять Студию, но я уверен, что в ближайшем будущем и это исправят.&lt;br /&gt;
&lt;br /&gt;
     На этом пока все, будем следить за развитием проекта и уж точно возьмем на заметку. Авторам естественно удачи в их благородных начинаниях.     
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://sharpdevelop.com/OpenSource/SD/&quot; target=&quot;_blank&quot; title=&quot;Оффю сайт&quot;&gt;Офф. сайт&lt;/a&gt;   
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://community.sharpdevelop.net/forums/&quot; target=&quot;_blank&quot; title=&quot;Форум разработчиков&quot;&gt;Форум разработчиков&lt;/a&gt;
&lt;/p&gt;
   </description>
   <link>http://dmi3.blogonline.com.ua/post/25/53</link>
   <comments>http://dmi3.blogonline.com.ua/post/25/53</comments>
   <guid>http://dmi3.blogonline.com.ua/post/25/53</guid>
      <dc:creator>dmi3</dc:creator>
      
    <category>.NET</category>
         <pubDate>Sun, 23 Mar 2008 04:24:57 +0200</pubDate>
   <source url="http://dmi3.blogonline.com.ua/rss/rss20/25">.NET Developer notes</source>
     </item>
    <item>
   <title>Экспорт кода с сохранением стилизации</title>
   <description>
    &lt;p&gt;
    Наверно каждый рано или поздно сталкивался c проблемой экспортирование исходного кода в разного рода документацию (будь то отчет или же проектная документация, а может для публикации в виде html страницы). Я тоже как то не сильно об этом задумывался, но случайно наткнулся на довольно полезную тулзу.   
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;strong&gt;C# Code Export&lt;/strong&gt;. Сие маленькое творение наших зарубежных коллег (а весит всего 1,8мб) может экспортировать ваш исходный текст с сохранением красивой и читаемой разметки в следующие форматы:   
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;HTML&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;PDF&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;RTF&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;BMP&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;PNG&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;JPG&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Lotus&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;SVG&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;QUATTRO Pro&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Excel&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   Не плохо, те так ли? На &lt;a href=&quot;http://www.downloadjunction.com/product/software/116593/index.html&quot; target=&quot;_blank&quot; title=&quot;сайте&quot;&gt;сайте&lt;/a&gt; разработчиков можно также найти аналогичные версии для Java и С++. Пользуйтесь и  пусть ваша жизнь станет немного легче &lt;img src=&quot;http://blogonline.com.ua/js/tinymce/plugins/emotions/images/smiley-wink.gif&quot; border=&quot;0&quot; alt=&quot;Wink&quot; title=&quot;Wink&quot; /&gt;. Скрины:   
&lt;/p&gt;
&lt;p&gt;
&lt;img src=&quot;http://www.hightechtalks.com/csharp-code-export/images/start-2.png&quot; border=&quot;0&quot; alt=&quot;C# code export&quot; width=&quot;500&quot; height=&quot;397&quot; align=&quot;left&quot; /&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.hightechtalks.com/csharp-code-export/cs_export.zip&quot; target=&quot;_blank&quot; title=&quot;Скачать&quot;&gt;Скачать&amp;nbsp;&lt;/a&gt;   
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
   </description>
   <link>http://dmi3.blogonline.com.ua/post/25/52</link>
   <comments>http://dmi3.blogonline.com.ua/post/25/52</comments>
   <guid>http://dmi3.blogonline.com.ua/post/25/52</guid>
      <dc:creator>dmi3</dc:creator>
      
    <category>Общая</category>
         <pubDate>Sun, 23 Mar 2008 01:56:36 +0200</pubDate>
   <source url="http://dmi3.blogonline.com.ua/rss/rss20/25">.NET Developer notes</source>
     </item>
   </channel>
</rss>