Рубрика 'Программирование'

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

Формат номера версии

Формат номера версии A.B.C.D[r], где:

  • A – главный номер версии (major version number).
  • B – вспомогательный номер версии (minor version number).
  • C – номер сборки, номер логической итерации по работе над функционалом версии A.B (build number).
  • D – Номер ревизии, сквозной номер назначаемый автоматически программным обеспечением хранения версий (SVN). Номер ревизии SVN должен синхронизироваться с номером ревизии в AssemblyInfo при каждой сборке релиза (revision number).
  • [r] – условное обозначение релиза.

Читать далее...

10th Авг 2016
Теги:

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

На самом деле от дизассемблера можно защититься, но эта защита весьма относительна... Помнится, когда-то читал книжку по ассемблеру, там предлагался вариант перезаписи точки входа в приложение и моментальный выход. Таким образом при запуске программа запускалась и работала, а дизассемблер считал, что программа тут же закрывается при старте. По крайней мере для IDA в то время это работало. И подобных приемов было много...
Это больше похоже на "я убегаю, ты догоняешь". Дизассемблеры постоянно развиваются, и против них постоянно придумывают новые препятствия... Тут однозначно можно сказать только одно: если нет желания посвятить этой гонке все свое время - лучше не соваться в это дело и воспользоваться сторонними решениями.

Что касается конкретно C# - это в каком-то роде неполноценный язык. Получаемый exe-файл не содержит нативного кода, в нем записаны инструкции, которые должны быть переданы .NET-среде для исполнения. Так написанную на C# программу можно очень просто открыть и просмотреть весь исходный код (с оригинальными названиями функций и переменных).

Читать далее...

30th Июл 2016
Теги:

В начале стоит определиться что такое snippet и для чего они нужны.

Фрагменты кода IntelliSense (они же snippet-ы) — это предварительно созданные готовые части кода, которые можно вставить в приложение в Visual Studio. Фрагменты кода повышают производительность за счет сокращения времени, затрачиваемого на ввод повторяющихся частей кода и поиск примеров. С помощью схемы XML фрагментов кода IntelliSense вы можете создавать собственные фрагменты и добавлять их к фрагментам, которые уже есть в Visual Studio.

Проще говоря, snippet – это шаблон (заготовка) кода, например определение свойства, определение метода, определение класса и т.д. При вставке фрагмента кода, например Exception, IntelliSense позволяет не только получить шаблон, но и автоматически выполняет изменение однотипных элементов, например имя класса.

Как работать со сниппетами? Для этого доступно несколько вариантов:

  1. набрать известное имя сниппета и нажать tab;
  2. нажать сочетание клавиш Ctrl+k+x для вывода списка всех зарегистрированных сниппетов;
  3. использовать контекстное меню, выбрав вставить фрагмент или разметить фрагмент.

Первый вариант наиболее удобен (при наличии знаний о snippet-ах IntelliSense): можно набрать, к примеру «prop», нажать tab и мгновенно получить шаблонное определение свойства класса. Вполне естественно, что такой механизм чрезвычайно полезен. Он экономит время, позволяя определять заранее отформатированный код с возможностью удобной кастомизации. Возможно, это никак не повлияет на работу вашей программы, но добавит вам некоторую порцию удовольствия от процесса кодирования. Еще больше пользы можно получить делая свои сниппеты.

Читать далее...

29th Июл 2016
Теги:

ILSpyПосле того, как в феврале 2011 года компания Red Gate объявила, что .NET Reflector становиться платным, разработчики широко известного open source решения IDE SharpDevelop (бесплатной альтернативы Visual Studio) для .NET взялись за разработку своего Reflector'а, которым стал ILSpy.

Что умеет ILSpy

Внешне программа очень напоминает Reflector: слева доступные сборки, справа — код.

Пример работы ILSpy в качестве обозреватель объектов представлен ниже.

ILSpy - обозреватель объектов

Читать далее...

28th Июл 2016
Теги:

Привожу пример кода, который выполняет поиск атрибута "source" в файле XML, который содержит путь к корневой папке, на основании которой построена структура XML.

Смысл кода в следующем:

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

Несмотря на кажущуюся громоздкость, код выполняется достаточно быстро.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
XmlDocument doc = new XmlDocument();
doc.Load(RecordCollection.BaseName);       
string SourceValue = "";
 
foreach (XmlNode xmlNode in doc.ChildNodes)
{
	if (xmlNode.NodeType == XmlNodeType.Element) // Проверка ноды, что это элемент
	{
		foreach (XmlAttribute xmlattribute in xmlNode.Attributes)
		{
			if (xmlattribute.Name == "source") SourceValue = xmlattribute.Value; // Поиск атрибута "source"
			if ((SourceValue != null) && (SourceValue.Length != 0)) break;
		}
	}
}
27th Июл 2016
Теги:

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

Для того чтобы посмотреть и поменять версию сборки программы в процессе ее разработки, можно пойти двумя путями:

  1. в главном меню выбрать Проект -> Свойства:проекта… -> Приложение -> кнопка "Сведения о сборке…" -> поле "Версия сборки".
  2. щелкнув правой кнопкой мыши по проекту в окне Обозреватель решений, в контекстном меню выбрать Свойства:проекта… -> Приложение -> кнопка "Сведения о сборке…" -> поле "Версия сборки".

Будет отображено окно, содержащее общие сведения о текущем проекте.

Скриншот ниже.

Сведения о сборке

Читать далее...

27th Июл 2016
Теги:

Недавно столкнулся с такой задачкой.

В основной форме программы (в файле MainForm.cs) сформировалось достаточно большое количество кода. Я решил, что было бы неплохо, разделить по файлам код относящейся непосредственно к самой форме, например методы обработки кнопок, меню и т.д. и сам исполнительный код, используя возможности разделяемых классов - Partial Class .

Для решения этой задачи в обозревателе решений Visual Studio необходимо создать файл MainForm.implementation.cs. Результат создания представлен на скриншоте ниже.

Visual Studio - Обозреватель решений - MainForm

В данный момент файл MainForm.implementation.cs ни логически, ни физически не имеет отношения к форме MainForm.

При этом файл был создан и размещен в той же папке, что остальные файлы.

Размещение файлов в папке Form

Для логического отображения файла в составе формы, необходимо перейти к Visual C# Project file (с расширением .csproj). Файл решения и файл проекта обычно расположены в корневой папке.

Читать далее...

26th Июл 2016
Теги:
Загрузка Все права защищены © 2016 ИТ-Инженер (Краснодар)
 
把手拿回