Eugene Agafonov, Microsoft MVP ASP.NET, RSDN Team, .NET and C# expert. Head of Educational Products Development at ABBYY
Евгений Агафонов, Microsoft MVP ASP.NET, RSDN Team, .NET и C# эксперт. Руководитель группы разработки образовательных продуктов в ABBYY
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4
  • Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 
i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.
part 2
part 3
part 4

Simply amazing illustrations for Lord of The Rings.

egelantier:

my childhood russian edition of lord of the rings had the most amazing, medievally styled illustrations by sergey yuhimov. 

i haven’t appreciated them when i was a child (i obviously wanted something more aesthetically obvious), but now i think they’re just - really badass. going to upload all i could find, in three posts.

part 2

part 3

part 4


I recently wrote a book on multithreading, asynchronous and parallel programming in C#. It is intended for beginners who just learned C# programming language and have no solid understanding of what multithreading is. The book is organized as a cookbook, so there are several “recipes” which illustrate a specific feature or a problem. I think this book could be really useful as it speaks mostly in code language, which should be the best explanation for a programmer.
The book is produced by Packt Publishing. I would like to thank all people at Packt involved, it was a great time working on the book. I would also like to thank technical reviewers who really helped a lot and made the book much better.
You can buy the book from Packt Publishing web site, or from amazon store. Please notice, that until January the 3rd, 2014 you can buy this and all other e-books from Packt for only $5 each.
The code samples are available on Packt site as well. But, since the code was intended for Visual Studio 2012 and Windows Store recipes for Windows 8, I started a new repository on github and converted the samples to Visual Studio 2013 and Windows 8.1.
In case you have any suggestions or bug reports please do not hesitate to address them to multithreading@eugeneagafonov.com email, or simply write a comment to this blog bost.

I wish you all the best and happy new year!


Недавно я закончил работу над книгой про многопоточность, аснихронное и параллельное программирование на C#. Книга будет полезна для начинающих разработчиков, которые уже освоили C#, но при этом слабо знакомы, или вообще не знакомы с такими концепциями как многопоточность и асинхронность. Книга представляет из себя сборник “рецептов” в виде небольших программ на C# с пояснениями. Каждый из таких рецептов иллюстрирует конкретную особенность или решение проблемы. Думаю, что в большинстве случаев этого примера кода в совокупности с MSDN для разработчика будет достаточно, чтобы разобраться как работает та или иная конструкция языка или платформы .NET.
Книга вышла в издательстве Packt Publishing. Хочу поблагодарить всех сотрудников издательства, которые трудились над книгой вместе со мной - это было очень интересно и здорово, хотя зачастую еще и очень трудно, так как времени было очень мало. Та к же хочу поблагодарить рецензентов, они очень здорово помогли сделать книгу лучше.
Книга вышла на английском языке, пока перевод на русский не планируется. Купить ее можно как на сайте издательства Packt Publishing, так и в магазине Amazon. Кстати, до 3 января 2014 года на сайте Packt можно купить любую их книгу в электронном формате за 5 долларов, в неограниченном количестве.
Примеры кода тоже размещены на сайте Packt. Но, так как код писался на Visual Studio 2012, а Windows Store часть кода была написана на Windows 8, я сделал отдельный репозиторий на github, куда положил код, перенесенный под Visual Studio 2013 и Windows 8.1.
Если у вас есть предложения и вопросы - пишите мне на адрес multithreading@eugeneagafonov.com, или просто оставьте комментарий здесь.

Всех с Новым Годом! :)

Marketing could be a double-edged weapon. Now Microsoft presents its cloud platform Windows Azure as the almighty thing which is perfectly able to run almost every popular third-party development framework and technology. There are numerous sessions on every development conference led by Microsoft about PHP, node.js, hadoop, etc.

What is strange, that this leads to an overall PR decrease of Microsoft’s own development technologies, like all money and time quotes were given to windows azure and third party technologies. On every conference and famous blog there is a story about how cool node.js is on windows azure, but nobody actually tells about we now are able to host IE11 Chakra javascript engine in a new way, no one compares it with Google V8, which might be less efficient on windows platform, and so on.

It seems that instead of telling people “You are able to use all popular technologies and frameworks with Windows Azure, but you’ll get the best when using ours” they actually tell “Now you don’t want to use our technologies with Windows Azure, look how cool is using node, ruby, php, etc.”

My opinion is that this situation will lead to significant numbers of for example, C# developers, that will move to other technologies like node.js, not because they know the reasons, but because there’s a lot of buzz about javascript, and silence about C#.

When silverlight was discontinued, it was a huge impact on people attitude to Microsoft technologies, please, please, don’t do this one more time.

P.S. Samples of how to host Chakra engine in your apps you will find here:
http://code.msdn.microsoft.com/JavaScript-Runtime-Hosting-d3a13880

Маркетинг очень интересная вещь. Вот например, Microsoft сейчас всем рассказывает, как здорово использовать популярные сторонние технологии типа PHP, node.js, Hadoop, etc. на своей облачной платформе. Это очень правильный и разумный ход, так и надо.

Но почему же при этом перестали продвигать другие свои технологии для разработки? Такое впечатление, что денег на маркетинг хватает только на Windows Azure, а про другие свои технологии рассказывается по остаточному принципу. Никто нигде не написал, например, про JsRT - возможность встраивать движок javascript IE11 в свои приложения. Никто не рассказывает, что этот самый движок для windows в целом будет получше, чем Google V8.
Почему-то вместо логичного подхода “Вместе с Azure можно использовать огромное количество всего, но лучше всего - наши же фреймворки”, культивируется подход “Теперь вместо наших технологий с Azure вы можете использовать другие”.

Такое впечатление, что все усилия пущены именно на рекламу ажура как платформы для людей из мира других технологий, в ущерб собственным. И это обязательно аукнется, вот увидите. Как уже аукнулось убийство Silverlight на доверии к технологиям от MS.

З.Ы. Примеры хостинга Chakra можно посмотреть здесь:
http://code.msdn.microsoft.com/JavaScript-Runtime-Hosting-d3a13880

При разработке под windows azure нужно следить за наличием кластерных индексов во всех таблицах sql azure. Очень помогает посмотреть список таблиц, где нет кластерного индекса, такой запрос:
SELECT name
FROM sys.objects
WHERE type = 'U'
AND object_id NOT IN
(SELECT object_id FROM sys.indexes WHERE index_id = 1)
SQL Azure requires presence of a clustered index in all database tables. This is a little SQL query that helps to find out what tables do not have a clustered index:
SELECT name
FROM sys.objects
WHERE type = 'U'
AND object_id NOT IN
(SELECT object_id FROM sys.indexes WHERE index_id = 1)

29 мая в 14:30 я буду выступать на конференции #msdevcon c докладом про ASP.NET и Windows Azure.
Доклад крайне эксклюзивный, так как ни в одном другом докладе на этой конференции, ни в названиях тем, слово ASP.NET больше не встречается.
Я планирую рассказать о том, почему с ASP.NET происходит страное :), ожидает ли эту технологию судьба известного персонажа,
image
cравнивать ASP.NET с другими технологиями,
image
показывать интересные вещи внутри платформы, оценивать производительность, продемонстрировать интеграцию с windows azure, и многое другое. И все - за час времени!
Хочу задать вопрос - нужно ли рассказывать про web forms? Насколько много людей, которым это еще интересно? Нововведения в web forms есть, но стоит ли их показывать, или же все-таки сосредоточиться на чем-то другом?
И конечно, если есть конкретные пожелания к содержанию доклада или вопросы, с радостью бы их выслушал.

Today I met the challenging problem with one of my web apis running under IIS 8. CORS support which was implemented with nuget library Thinktecture.IdentityModel didn’t work properly.
Here you can find information how to use this library, and here is the link to configuration issues with IIS.

After spending some time with a fiddler tool I found out that the client sends the proper HTTP OPTIONS request, but the response from server lacks Access-Control-Allow-Origin and other useful http headers.

After some experiments it turned out that if I enable RAMMFAR option ( runAllManagedModulesForAllRequests=”true”) in web api web.config, the CORS delegating handler starts to work. However I don’t like turning on this option, even if it doesn’t really affect all managed modules in IIS, so I kept experimenting.

I found out that there is another handler defined in IIS, called OPTIONSVerbHandler. As soon as I removed it via application web.config file, CORS support started to work properly without need to enable RAMMFAR option.

This is system.webServer section in web.config:

Сегодня столкнулся с интересной проблемой. На одном из web api под IIS 8 не работала поддержка CORS из nuget-пакета Thinktecture.IdentityModel.
Здесь можно посмотреть пример использования этой библиотеки, и здесь - как нужно сконфигурировать приложение для корректной работы.
Просмотр запросов с помощью fiddler дал понять, что в ответ на http запрос OPTIONS сервер отвечает простым ответом ОК без указания нужных заголовков, в частности - Access-Control-Allow-Origin.

Опытным путем обнаружилось, что если на сервере включить опцию RAMMFAR ( runAllManagedModulesForAllRequests=”true”), то delegating handler для поддержки CORS начинает работать. Однако включать эту опцию не очень хотелось, пусть даже она влияет не на все managed модули, поэтому я продолжил исследования дальше.

Выяснилось что в моем случае в IIS установлен еще один хэндлер - OPTIONSVerbHandler. Как только я его убрал в web.config, приложение стало работать нормально при выключенной опции RAMMFAR.

Вот, что в итоге получилось в web.config:

Anders Heijlsberg introduces a new programming language: TypeScript, which is a typed superset of JavaScript. It will compile to normal javascript.

The TypeScript language specification is available under Open Web Foundation and the compiler implementation is available as Open Source.

Anders talk about TypeScript is available on Channel 9
http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript

Андерс Хайлсберг представляет новый язык программирования - TypeScript, который является типизированным надмножеством языка JavaScript, и компилируется в него.

Спецификация языка TypeScript доступна на Open Web Foundation, a компилятор выложен в Open Source

Андерс рассказывает о TypeScript на Channel 9:
http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript

1 2 3 4 5