14 ноября 2017 г.

Проверки орфографии русского языка в Visual Studio 2013/2015/2017.

Проверка орфографии, как способ упростить жизнь программисту.


Программисты, чаще всего народ грамотный, но встречаются и уникумы, у которых математический склад ума и грамматика русского языка им давалась с трудом. Это я о себе :) При написании комментариев к коду, формировании строк - я могу легко допустить грамматическую ошибку. Бывает, что кто то мне кидает текст с опечаткой, которую с первого раза не заметишь, а если набор текста идёт "слепым" способом, то количество опечаток увеличивается в разы!
Ладно, если место опечатки комментарий к коду, классу, методу или свойству, но это может быть подпись к форме, которая может остаться незамеченной и оказаться на виду у заказчика. И, честно говоря, за такое бывает стыдно!
Напоследок CodeReview - это то, из-за чего я вообще начал искать, как проверять ошибки до заливания на проверку кода. А дело тут вот в чём... При проверке кода, к которому обязательно требовалось добавлять комментарий ко всему, чему только можно - у меня и коллег уходило много времени на прочтение и проверку каждого написанного предложения. Я сидел и по слогам читал слова, что бы не пропустить ошибку. Доходило до того, что меня это изматывало больше, чем анализ написанного кода.
Поэтому для меня остро встал вопрос: Как же осуществить проверку орфографии в Visual Studio? 

Решение было найдено! Им оказалась установка обычного расширения, которое, немаловажно, умело проверять русский, английский и многие другие языки, а так же было полностью бесплатным.

Его название и ссылка на https://marketplace.visualstudio.com:
Visual Studio Spell Checker (VS2013/VS2015)

10 ноября 2017 г.

Как создать XML и XSD схему и наоборот

Хотелось бы в одном месте рассказать о вполне типичной задаче при работе с XML, а именно, о создании XML на основе существующего. Данная операция будет состоять из нескольких этапов, при выполнении которых, будут решены дополнительные задачи, такие как:
  • Создание XML на основе XSD, и наоборот.
  • Сериализация и десериализация объектов.
  • Создание класса, для будущей сериализации из XML или XSD.
Перед началом планирую, что читатель знаком со словами XML и XSD. Что касается XML, думаю с этим проблем нет, но что касается XSD могу возникнут вопросы, что же это такое. Если коротко, то:
XSD - это язык, для описания XML. И если вы посмотрите содержимое файла содержащего это описание, то возникнет вопрос, зачем же описывать казалось бы очевидные теги вашего XML? Но представьте, что вы интегрируетесь с какой то внешней системой, и для обмена данных хотите использовать формат XML. Так вот, XSD позволяет описать для каждого элемента его именя, возможные атрибуты, обязательность полей или атрибутов, дать понять, что содержимое какого то тега может содержать лишь один внутренний элемент (<a></b></a>) и не более, либо узел может иметь последовательность элементов (<a></b></b>...</a>). Когда внешняя система является вашей, тогда проблем может не возникнуть, но когда это сторонняя организация, тогда данное описание через XSD, будет инструментом урегулирования споров с форматом, а так же, используя утилиты, можно проверить соответствие любой XML изначальному формату.
Итак, что же мы будем делать, для того, что бы научиться штамповать XML на основе вашего эталона? Опишу всё по порядку.

Имеется: 
Какой то XML (xmlfile.xml), сохраненный в текстовом формате в файл. Ниже приведу текст:

<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications 
      with XML.</description>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
      <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description>
   </book>
</catalog>