Pull to refresh
38
0
Пётр Ерёменко @prg

User

Send message

Как начать программировать с использованием WPF или Silverlight: Путь обучения для новичков

Reading time4 min
Views47K
Итак, вы новичок в WPF или Silverlight и желаете знать с чего вам начать? Здесь описан мой путь изучения “Как начать с WPF и Silverlight”. Я предполагаю, что вы знаете что из себя представляют эти технологии (на высоком уровне), но не знаете как использовать их.
Читать дальше →

.NET Interop на примере работы с сокетами

Reading time8 min
Views9.8K
Хватит мне уже гнать про теорию, вы мне практику давайте, практику!


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

Споры насчёт того, какой же подход лучше, утихают редко. Сейчас я покажу, как можно скрестить ежа с ужом. У нас есть .NET, которым можно быстро делать и есть Native, который может быстро делать.

В образовательных целях мы будем скрещивать эти два направления. У статьи есть ещё одна цель. В её основе лежит написанная мною и Arwyl'ом программа под названием DuSter. Эта программа представляет собой сервер-пустышку, который позволяет тестировать сетевые программы. Сервер очень прост в использовании, достаточно гибко настраивается, поддерживает файлы описания протоколов, которые позволяют более-менее автоматизировать тестирования работы любых протоколов. Я занимался разработкой сетевого уровня, мой друг — бизнес-логикой и парсингом протоколов. Получилось что-то неимоверно хорошо вылизанное и приятное. Мы гордимся своей программой, и хотим предоставить её сорцы миру, для некоммерческого использования.
И так, приступаем

Практика использования пространства System.Threading при написании многопоточных приложений в .NET.

Reading time6 min
Views5.1K
Последнее время приходится писать «маленькие» серверы для многопоточной обработки относительно небольших объемов данных. Хочу поделится с хабрасообществом определенным приемом в написании таких приложений.
Читать дальше →

Программа из одного exe

Reading time4 min
Views43K
Как правило, при написании .NET программ используются не только классы из .NET BCL, но и сторонние библиотеки. Во время выполнения программы все используемые библиотеки должны быть найдены. Для этого зависимые dll кладут в одну папку с exe файлом.

Однако существуют программы, использующие сторонние библиотеки, но при этом состоящие из одного единственного файла. Все утилиты от SysInternals, а также любимый мной LINQPad представляют из себя один файл в котором содержится все, что требуется для работы. Пользоваться такими утилитами одно удовольствие — они сразу готовы к использованию, их удобно передавать и хранить.

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

Программа из одного EXE

Вышла вторая бета Resharper 5

Reading time1 min
Views512
imageВчера стала доступна вторая бета-версия Resharper 5 — популярного расширения для Visual Studio.

В этой бета-версии:
— поддержка свежей версии Visual Studio 2010 Release Candidate;
— расширенная поддержка ASP.NET MVC 2, в том числе поддержка областей (Areas) и улучшения в автоматизации создания представлений и пользовательских элементов управления;
— стабильная версия инструмента структурного поиска и замены. Инструмент позволяет искать и заменять текст на базе заданных шаблонов;
— множественные улучшения в юзабилити.

От себя замечу, что пользуюсь ночными сборками Resharper 5 и после выхода версии, которая поддерживает Visual Stdio 2010 RC отметил значительное повышение производительности. Теперь работа с Visual Studio 2010 + Resharper 5 приносит только радость (я разрабатываю проекты на ASP.NET), наличие Resharper не оказывает заметного влияния на производительности студии, удовольствие от работы только увеличивается. Хотя, уверен, значительная часть увеличения производительности приходится на изменения в RC-версии студии.

В общем, рекомендую всем попробовать Resharper 5 Beta 2, надеюсь, что вам понравится. Иначе, пишите о своем опыте в комментариях.

Подробнее с картинками в этом анонсе JetBrains.

Managed Extensibility Framework

Reading time7 min
Views14K
(Заранее извините за мой русский)

MEF это новый подход разработанный Майкрософт, который позволяет загружать расширения для вашего приложения очень легко. Он позволяет обнаруживать и составлять части, которые должны быть включены в приложение, и все это во время выполнения. Вы можете расширить поведение аппликации простим добавлением новых плагинов. Managed Extensibility Framework сделает все это за вас.
«Hello MEF World!»

Читать дальше →

Память: LOH и Chunked Lists

Reading time3 min
Views12K
Управляемая память в .Net поделена на стек и несколько хипов. Самые важные из хипов – это обычная (эфемерная) куча и LOH. Эфемерная куча – это то место, где живут все обычные объекты. LOH – это то место где живут большие (больше 85000 байт) объекты.

LOH обладает некоторыми особенностями:
  • Объекты в LOH никогда не перемещаются
  • LOH только растет и никогда не уменьшается (т.е. если объект собран сборщиком мусора, размер LOH все равно остается неизменным)
  • Хип LOH освобождается только тогда, когда LOH полностью пуст

Из этих двух особенностей LOH происходят два важных следствия, про которые часто забывают:
  • Память в LOH может оказаться фрагментированной. Т.е. происходит то, с чем так боролись в unmanaged мире: в какой-то момент у вас может быть 10Mb свободной памяти, но вы не сможете выделить память под объект размером 1Mb
  • Если вы однажды выделили память под большой объект, а потом используете только маленькие, то вы фактически лишаете себя большого куска памяти. При чем, если у вас в LOH был список или хэш-таблица размером N, а вы добавили в него один элемент, то список реаллоцируется и растет в два раза, сответственно размер LOH составит как минимум 3*N (N – исходные данные, 2N – копия данных и резерв под новый размер). Следующий рост потребует в LOH непрерывный кусок памяти размером в 4*N, а так как такого куска в LOH у нас нет (есть только N), его придется позаимствовать из адресного пространства процесса. В итоге размер LOH вырастет до 7*N, и так далее.


Если вспомнить, что LOH аллоцируется кусками по 16Mb, то все происходящее покажется еще более разрушительными. С первым следствием можно бороться аккуратно переиспользуя объекты. Со вторым — не используя большие объекты. Получается как-то не очень, особенно если с большими коллекциями работать все-таки хочется. Посмотрим, что как можно решить эту проблему.
Читать дальше →

Visual Studio 2010 Release Candidate доступна для всех желающих

Reading time1 min
Views6K


Спустя пару дней после того, как доступ к новой версии Visual Studio 2010 RC получили подписчики MSDN, доступ был открыт и всем остальным. Вы можете скачать новую версию и дополнительные инструменты по следующим ссылкам:В этом выпуске значительно увеличена производительность и стабильность по всем параметрам: от отзывчивости интерфейса до скорости сборки проектов и открытия списков типа Add Reference.

Приятной работы с новой студией, коллеги!

Быстрочтение featuring Восприятие текста

Reading time8 min
Views79K
Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

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

Написано с подачи пользователя cympak. Посвящается всем кто много читает: будь то деловые документы, художественные произведения или статьи на Хабре типа этой.

Прежде чем приступить к самому главному, прошу вас пройти тест из шести вопросов на Да/Нет.

1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
2. Медленная скорость чтения способствует лучшему пониманию текста?
3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
6. Ваши глаза находятся в непрерывном движении во время чтения?
За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
Читать дальше →

Закачка файлов с depositfiles.com из консоли

Reading time1 min
Views5.5K
Пост не мой — просто попросили закинуть. Если понравилось, то почта автора для инвайта: jeka.eee.12@gmail.com. Уже получено — спасибо!

Функция для скриптов на bash, предназначенная для автоматизации скачивания файлов с файлообменника Depositefiles.com:
Читать дальше →

Сравниваешь по Equals подразумеваешь GetHashCode

Reading time4 min
Views13K
В FxCop есть такое правило Override GetHashCode on overriding Equals, переопределяйте GetHashCode переопределяя Equals. Так вот с этим правилом связан подводный камень. В Rule Description там написано об этом но как на мой взгляд не совсем ясно.

Это связано с принципом работы  HashTable и Dictionary в .NET, и для того чтобы сравнение производилось верно при переопределении Equals необходимо обязательно переопределить GetHashCode в зависимости от тех данных которые учувствуют в сравнении. Иначе Equals просто не будет вызван, хотя многие разработчики ожидают что он будет вызыватся всегда. Equals вызывается только тогда когда GetHashCode возвращает одинаковые значения, что как было сказано выше, связано с принципом работы словарей и хеш-таблиц, для того чтобы разрешить коллизии в хеш-таблице.

С другой стороны на такие неправильные выводы вполне возможно наталкивает поведение System.Object метод GetHashCode которого возвращает значения, которые не зависят от данных хранящихся в объекте и возвращает разные хеш-коды для одинаковых объектов.

И хотя такое поведение казалось бы, мелочь, но часто многие в свое время натыкаются на этот подводный камень.
Читать дальше →

Распространенные заблуждения про банковские карточки

Reading time5 min
Views160K
Работая долгое время области банковского ПО, а в частности по всяким электронным платежам, вместе с коллегами я составил мини-ЧАВО на тему банковских пластиковых карт. Многие вопросы очевидны, а некоторые могут быть весьма туманными. В России бизнес пластиковых карт набирает обороты, что приятно, и лучше быть подкованным по «матчасти».

Итак, 10 распространенных заблуждений.
Далее...

Sikuli — program ANYTHING using GUI screenshoots

Reading time5 min
Views15K

Сказка


Представьте на минуту, что Вы — несчастный программист, который каждый день добирается на работу на автобусе, расписание которого невозможно предугадать. В такой ситуации было бы очень удобно, завтракая дома, получать на телефон SMS, сообщающее, что автобус уже через пять минут будет на Вашей остановке.

К счастью, транспортная компания (которая не удосужилась составить четкого расписание) содержит сайт, на котором в реальном времени с помощью Google Maps можно узнать, где сейчас находится тот или иной автобус. И вот в один прекрасный день Ваше терпение лопается и Вы садитесь писать скрипт, который будет отправлять ту желанную SMS-ку. Но все не так просто. Придется долго повозиться, чтобы по карте и маленькому кружочку на ней оценить скорость и время прибытия реального транспортного средства на Вашу остановку. Вы ведь не можете просто написать: «хочу получать SMS, когда вот эта точка попадет вот в этот прямоугольник на карте». Или все-таки можете?

Проходя, не проходите мимо

Секреты успешной системы образования

Reading time8 min
Views5K
Честно говоря, даже не думал подключаться к «дням образования на Хабре», но так уж вышло — наткнулся на свежевышедшую статью Бёрда Киви «Даёшь молодёжь!». Статья о том, какие действия в Штатах и в Великобритании государственные мужи предпринимают для роста интереса среди подростков к компьютерным технологиям. Проблема в том, что становиться специалистами как-то вот немногие рвутся, а кому-то работать в DARPA и тому подобных конторах завтра нужно. В конце приводится ссылка на статью из Wall Street Journal «What Makes Finnish Kids So Smart?», в которой описываются реалии финских школ. Как замечает уважаемый Бёрд, в Финляндии англо-американских проблем вроде бы не видно.

Вот именно статью из WSJ я и хочу предложить вашему вниманию. Как человек с семилетним опытом жизни в Финляндии (к сожалению, на неопределённый срок прерванным), я неплохо знаком с тамошними особенностями. Отчасти мой перевод является данью уважения организации финского общества, но основная цель — показать хорошую постановку образовательного процесса на понятном примере. Надо сказать, статья рисует совершенно пасторальную картинку, так что не забывайте — автор всё-таки не я, а некая Ellen Gamerman, и все претензии к ней :)

Речь в статье идёт о школе. Я думаю, это даже поважнее университета. Существует же преемственность: хороший школьник -> хороший студент. Все выделения жирным шрифтом мои, [комментарии в квадратных скобках] тоже. Статья достаточно длинная, так что я позволю себе не очень существенные сокращения текста.
Читать дальше →

C#: требования и рекомендации по написанию кода

Reading time5 min
Views149K
Не так давно в комментариях к топику AlexS высказал идею использования соглашения об оформлении на Хабре кода примеров темы .Net написанных на C#.

Я немного поизучал имеющиеся предложения из этих источников:
submain.com/blog/FreeCVBNETCodingGuidelinesEbookDownload.aspx
idesign.net/idesign/DesktopDefault.aspx
и скомпилировал черновик который описывает самые базовые правила оформления кода написанного на C#.

Предлагаю:
— обсудить этот черновик;
— внести в него все необходимые изменения;
— утвердить как стандарт написания C# кода на Хабре.
Более того, предлагаю создать документ, который можно было бы предложить как рекомендации habrahabr comunity для всех других программистов C#.

Под катом вы найдете текст черновика. Предлагаю всем желающим обсудить его и подвергнуть надлежащей правке.

Читать дальше →

Архитектурные инструменты в Visual Studio 2010

Reading time3 min
Views23K


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

Новые архитектурные инструменты в Visual Studio Team System 2010 помогут вам понять имеющееся приложение, спроектировать необходимую вам новую функциональность и проверить что ваша реализация соответствует вашему дизайну.

Читать дальше →

Url to PDF. Легко и без проблем

Reading time1 min
Views6.2K
Всем здравствовать.
Давеча был замечен мною интересный пост про замечательный сервис с говорящим адресом: pdfmyurl.com
И родилась мысль написать об альтернативном, более интересном способе (особенно интересном для программистов, энтузиастов и просто любящих консоль людей). Точнее, о проекте, позволяющим делать то же самое, не используя сторонний сервис.
Что же за проект?

О роли изменений

Reading time2 min
Views1.3K
Питер Шульц, в то время президент компании Porsche, рассказывал как-то историю, которая приключилась вскоре после того, как он попал на эту должность. Его пребывание в компании началось с детального знакомства с ней: он обходил все отделы, чтобы представиться и вникнуть в работу каждого подразделения.

image

В конструкторском отделе он спросил, участвует ли Porsche в гоночных соревнованиях Le Mans (считается главной гонкой для компаний, производящих спортивные машины). «Нет, — ответили ему, — не участвуем». Это было странно, ведь Porsche — один из лидеров в производстве гоночных машин. Тогда Питер поставил перед ними амбициозную задачу: «Давайте сконструируем машину, которая победит в гонке Le Mans!».

Читать дальше →

«Правильно заданный вопрос – половина ответа»(с)

Reading time3 min
Views32K
Я подумал, чем же я могу поделиться с уважаемыми хабрачитателями, кроме сугубо специализированных знаний. Наверно, многие считают лишним разжевывание мануалов, но я уже много лет именно этим и занимаюсь, отвечая на массу вопросов каждый день. И не понаслышке знаю, каково это — отвечать на несформулированные вопросы :)
Поэтому я посчитал возможным описать несколько простых правил, которые как мне кажется, могут помочь коммуникативному процессу.

Читать дальше →

Сдача сессии по-английски

Reading time9 min
Views21K
Так получилось, что мне выдалась возможность поучиться в магистратуре в университете City University London. За полгода, которые уже прошли, я увидел много нового, в том числе то, как устроена местная система образования, и успел её оценить.

На мой взгляд, подход к процессу обучения студентов за границей достаточно сильно отличается от российского — особенностей довольно много. В частности, процесс построен так, чтобы человеческий фактор в выставлении оценок всегда был минимальный, а знания, данные студенту, были измерены максимально объективно.

Так как сейчас у многих читателей Хабра сессия, я решил, что пост на эту тему мог бы быть кстати и хотел бы рассказать о том, каким образом в одном из ВУЗов Лондона проводятся экзамены, и как выставляются оценки за пройденные предметы.
Читать дальше →

Information

Rating
Does not participate
Location
Бишкек, Кыргызстан, Кыргызстан
Date of birth
Registered
Activity