Рубрика «.net» - 242

Привет, сообщество.

Мой путь в программировании: ASP VB script >> VB.Net >> C#, с С и С++ я знаком минимально.
С давних пор пишу онлайн RPG (около 9 лет) и сейчас дошел до стадии публичного онлайн тестирования.

Клиентская часть написана на С# и доступна для изучения(улучшения) всеми желающими.
У меня нет никакой паранойи (надеюсь ;-)) относительно хакеров и любителей поломать чужие сервера — я отлично понимаю, что никому нет дела до моих исходников, однако мне хочется, чтобы на сервер отсылались пакеты, обработанные только известной, проверенной и утверждённой версией клиента.
Поэтому я хочу реализовать защиту в виде подключаемой приватной нативной библиотеки, которая будет отсылать на сервер хеш код используемого клиента, плюс она-же будет шифровать/дешифровать/сжимать/разжимать все пакеты. То есть если в клиенте реализуют отсылку фиктивного хешь кода, без использования нативной DLL, то злоумышленнику также придется реализовать свою версию обработки пакетов.
Читать полностью »

Привет, сообщество.

Мой путь в программировании: ASP VB script >> VB.Net >> C#, с С и С++ я знаком минимально.
С давних пор пишу онлайн RPG (около 9 лет) и сейчас дошел до стадии публичного онлайн тестирования.

Клиентская часть написана на С# и доступна для изучения(улучшения) всеми желающими.
У меня нет никакой паранойи (надеюсь ;-)) относительно хакеров и любителей поломать чужие сервера — я отлично понимаю, что никому нет дела до моих исходников, однако мне хочется, чтобы на сервер отсылались пакеты, обработанные только известной, проверенной и утверждённой версией клиента.
Поэтому я хочу реализовать защиту в виде подключаемой приватной нативной библиотеки, которая будет отсылать на сервер хеш код используемого клиента, плюс она-же будет шифровать/дешифровать/сжимать/разжимать все пакеты. То есть если в клиенте реализуют отсылку фиктивного хешь кода, без использования нативной DLL, то злоумышленнику также придется реализовать свою версию обработки пакетов.
Читать полностью »

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

В рамках DevConf 2012 — 9 июня 2012 пройдут 5 конференций:

DevConf::PHP()
DevConf::Perl()
DevConf::Python()
DevConf::Ruby()
DevConf::JS()

9 июня 2012 года в рамках DevConf пройдет группа уникальных мастер-классов.
Читать полностью »

Вступление

Недавно я опубликовал пост, в комментариях которого разместили результат обнаружения лиц на смартфоне. Данное ПО некорректно проанализировало изображение, не обнаружило одного человека (см. рисунок ниже). Я решил исследовать данную тему, действительно ли алгоритмы ошибаются при поиске лиц людей разных рас в нормальных условиях освещенности.

В рамках данной статьи решил использовать Emgu CV, как вариант OpenCV на .NET. Изображение для анализа я нашел на TinEye. В заключении будет продемонстрирован результаты работы приложения на Emgu CV и других сервисов по обнаружению лиц.
image

Читать полностью »

Случилось мне задание: проверить, есть ли XML-имя правильным. Что может быть проще? Смотрим стандарт, где четко описано, какими символами может имя начинатся, а какими — продолжаться, все просто и понятно:

[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
[5] Name ::= NameStartChar (NameChar)*

Практически готовое регулярное выражение, легкая обработка напильником Ctrl+H…

    public const string NameStartCharPattern = @":|[A-Z]|_|[a-z]|[u00C0-u00D6]|[u00D8-u00F6]|[u00F8-u02FF]|[u0370-u037D]|[u037F-u1FFF]|[u200C-u200D]|[u2070-u218F]|[u2C00-u2FEF]|[u3001-uD7FF]|[uF900-uFDCF]|[uFDF0-uFFFD]|[u10000-uEFFFF]";
    public const string NameCharPattern = NameStartCharPattern + @"|-|.|[0-9]|u00B7|[u0300-u036F]|[u203F-u2040]";
    public const string NamePattern = @"(?:" + NameStartCharPattern + @")(?:" + NameCharPattern + @")*";
* This source code was highlighted with Source Code Highlighter.

Пишем тест…

Assert.That(Regex.Match("1a", Patterns.NamePattern), Is.False);
* This source code was highlighted with Source Code Highlighter.

Чисто, просто, понятно… Упал! Читать полностью »

12 марта анонсирован выход очередной версии  бесплатной NoSQL InterSystems СУБД — GlobalsDB v2012.296.

GlobalsDB + .NET API
В новой версии появился интерфейс .NET API, внесены незначительные изменения и исправлен ряд ошибок.
Полная версия документа на английском языке доступна на сайте GlobalsDB.org.
Загрузить GlobalsDB.
Подробности под катом.
Читать полностью »

Прочитав обзор «Что нужно от форм?», мне захотелось рассказать, как в нашем фреймворке для быстрого создания LOB приложений eXpressApp Framework устроены «универсальные, динамически изменяемые формы».
«Умные» формы eXpressApp Framework (XAF). Часть 1
В первой части моего рассказа я продемонстрирую реализацию элементов динамики на примере популярных задач фильтрации значения, управления видимостью и доступностью, а также контроля данных полей на форме вот такого вот необычного бизнес объекта:

[DomainComponent]
public interface ICustomer : IOrganization, IAccount { }

Читать полностью »

Как создать приложение, используя eXpressApp FrameworkВ прошлом году мы участвовали в выставке TechEd Russia и, конечно, много общались с посетителями. Тогда выяснилось, что российские разработчики хорошо знают нашу компанию как производителя .NET контролов, но мало кто слышал о том, что у DevExpress есть фреймворк — eXpressApp Framework (XAF) — объединяющий большинство наших WinForms и ASP.NET продуктов. Тогда и родилась идея рассказать русскоязычному сообществу o XAF, которая воплощается в жизнь сейчас.

Итак, что же такое XAF и зачем вам предлагается запомнить еще одну трехбуквенную аббревиатуру? Проще говоря, XAF — это фреймворк для быстрой разработки других трехбуквенных вещей, таких как CRM, ERP, EAM, WMS и т.д. (любых приложений для бизнеса).

XAF может быть полезен не только опытным .NET-разработчикам. «Порог вхождения» невысок — можно смело сказать, что приступить к разработке ХАF-приложений можно вообще не имея опыта в .NET. Так что сисадминам-мастерам-на-все-руки XAF может помочь создать серьезное корпоративное приложение и избавиться от вороха расшаренных экселевских таблиц или Access-базы в которые пользователи что-то заносят и пытаются анализировать.

В то же время, продвинутые разработчики могут создавать сколь угодно сложные решения (пример – Галактика EAM).
Читать полностью »

Проблемы интеграции своих программ с чужими все более широко охватывают область разработки программного обеспечения. Многие программисты считают, что нужно писать свое, интегрироваться с чужими разработками это плохо, причем не учитывают размеры команд разработчиков, их опыт и целесообразность. Да и в течении года-два реализовать ту же самую систему расчета  методом конечных элементов хоть и можно, но высокого качества она не будет. Разве можно за пару лет повторить путь развития проекта, который развивался 10–20 лет? Естественно нельзя и часто нецелесообразно.      

    Никто ведь не спорит, что в России самыми популярными программными средствами являются ANSYS, ABAQUS, SCAD, LIRA, PLAXIS и т.д. И какова вероятность занять свою нишу в этом уже давно поделенном участке рынка? Да и мало кто захочет переучиваться под новую программу. А вот проблемы интеграции своих программ с мощными расчетными системами и перенос результатов из одной в другую задача намного более востребованная. Мы имеем мощные вычислительные пакеты, на разработку и отладку которых ушло много лет, имеем некую задачу, реализовать которую в одной вычислительной системе подчас весьма сложно, или отсутствуют необходимые нам возможности, которые мы можем сами реализовать.

    Этой задачей я занялся при необходимости выполнить параметрическую оптимизацию моделей материалов, для соответствия результатов моделирования группы реальных испытаний с их расчетными моделями. Это еще усугубляется тем, что каждый программный продукт считает по своему и результаты расчетов в ANSYS не будут идентичными расчету в ABAQUS при одинаковых параметрах модели. Это зависит от конкретной реализации расчетов, типов конечных элементов и даже расположения узлов сетки. В итоге инженер вводит параметры материалов, не зная, на сколько точно они соответствуют реальности. Причем вариативность оптимальных параметров может достигать 70% от результатов испытаний, тем более что обработка испытаний выполняется в рамках одной, максимум двух условий прочности, зачастую самых простых, а для сложных моделей не всегда даже известно как определить требуемые параметры, особенно когда их предлагают задать исходя из опыта в каком либо диапазоне.

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

Читать полностью »

Доброго времени суток!

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js