Обновить
Комментарии 54
простите, что в понимаете под копипастом (я на хабре всего пару дней)?

Текст проработан и написан мной, код тоже мой. В нем отражено мое понимание темы, ни как не претендующие на истину. Из книги здесь только 2 картинки.
Ну, у меня на столе лежит та самая книга Рихтера, и особой разницы не вижу.
Спасибо, но я не претендую на ОСОБУЮ разницу.
Я в интернете не нашел ни чего подобного, что хоть как-то объясняло работу CLR и было на русском. Вот и решил написать то, как я это понимаю и вижу. Знания мои брались в том числе из Рихтера, я об этом написал в конце топика.
Клонирования здесь нет. Есть переработанный материал.
Логично, потому что объяснениями работы CLR на русском занимается Рихтер. Например, здесь
может быть я оскорбил ваши чувства своим постом, но получить в первый же день в карму минус 1… Пропадает желание и энтузиазм писать и совершенствоваться.
Ну, допустим, не -1, а 0, и это нормально.

Я то, как говорится, тут причем? Это все сообщество.
ни кого не обвиняю.
да, теперь 0, но был -1 в карме. Кому-то спасибо за +
Ни как нельзя узнать кто + ставил?
Вы поменьше о ней беспокойтесь, а то еще и возможность пропадет.
с каких пор Рихтер что-то объясняет на русском?

заметили материал который вам известен? промолчите, зачем наезжать на автора?
многие не читали и не собираются читать Рихтера, так пусть материал будет в сети в таком авторском виде
НЛО прилетело и опубликовало эту надпись здесь
Кст, а на русском она будет? А то знание английского не позволяет комфортно (без словаря) читать данный труд :(
почему часть? третья редакция книги
>>> Visaul Basic, например, не работает с такими значениями.
>>> VB не может вызывать оба метода.

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

Вначале код немного не c#'арпный если мягко сказать, наверно писался ещё во времена 1.0. Вместо метода можно было использовать свойства и т.д.

MS вообще делают хорошее дело со своим .net объединить столько языков.
Что говорить до сих пор холивары идут какой асемблер лучше, не то что язык.

А если хочется написать, что то на unmanaget коде, делайте импорт.
Как пример по моему, говорят хром написан наполовину на asm))
я писал чтобы понять можно было быстро во времена 4.0
Да мне всё нравится, даже забекапил в evernote статью, мало ли в черновики перенесёте.

Тут просто не очень .net жалуют. Во всяком случае очень мало комментариев собирают, не знаю как насчёт рейтинга не интересуюсь этим.

Пишите дальше, не обращайте внимания.
да я не гонюсь за рейтингом. Я в удовольствие собираю материал.
Здесь не только про .NET, но и вообще любые технические статьи не жалуют.
О том, что сейчас находится в тренде, в «потоке», т.е. у всех на слуху — обзор нового iPad, обсуждение работы Почты, Яндекса, описание проблем с Internet Explorer.

Можно взять самые обсуждаемые посты за последние несколько дней и написать свой на схожую тематику — это почти гарантирует хорошие оценки и интерес пользователей.
Спасибо, но я не хочу писать то, чем пока не интересуюсь. Пусть об этом пишут другие.
Имхо тут имеет место быть некоторый сарказм со стороны JayDi (не в обиду ему будет сказано). На самом деле любая статья технического (или около-технического) характера, написанная человеком, который разбирается в теме, здесь приветствуется и оценивается высоко. Просто отдельные хаброжители воспринимают информацию из некоторых статей, как давно и повсеместено известную, отсюда их негативная реакция. В любом случае, спасибо вам за труд и высокой оценки хабровчан вашим будущим статьям!
Лучше бы кто-будь про управление памятью в .NET написал, с зарисовками и поподробнее, а то Рихтер тут не все хорошо разъяснил, на мой взгляд.
Мм, оптимизация кода в .NET заключается исключительно в удалении nop? А зачем их туда собственно ставить? оО
В целом они нужны для поддержки режима «редактирование и продолжение выполнения»
Команды NOP позволяют ставить брейкпоинты на управляющих командах типа for, while, if.
А. ну вобщем-то, я так и подозревал.
В принципе, логично.
Но я ожидал что оптимизация несколько большее подразумевает :D
Я тоже раньше думал, что это на какие-то спец. команды меняет, но походу все и так подставляется сразу по ходу компиляции.
но там есть еще средства, я потом напишу про них. Когда побольше соберу инфы.
в частности использование стека для хранения переменных повышает быстродействие, избавляя от копирования и сборки мусора
Спасибо. Очень интересная статья. Сам при изучении .net делаю краткий конспект по прочитанным темам, чтобы в случае чего не искать это в книге, а открыв свой блокнотик, быстренько посмотреть и продолжить писать программу.
Платформа .NET огромна… Всё в блокнотик не запишешь :( Хотя копипасты в, например, Гугл Нотпад, раньше делал регулярно.
так я записываю сейчас, по мере изучения, именно про сам c#. а всё из .net действительно не запишешь в блокнотик.
есть вещи, которые часто спрашивают на собеседовании, есть которые лучше помнить, чтобы не ляпнуть чего-то. А есть вещи, которые повышают навык написания «оптимального кода»
В общем-то статей по .NET от Microsoft на русском достаточно много в сети, а вот о наиболее популярной альтернативе — Mono, достаточно мало. Может кто посоветует ресурс? А то как — то не комфортно иногда делать проект как opensource на препроитарной платформе :)
Уточню децл про модификаторы доступа.

.net доддерживает ещё один модификатор:

protected private

Его нет в C#, но он есть, например, в С++\CLI.

Означает, что поле доступно наследнику в рамках одной assembly.
То есть наследник из левой сборки обломается, наследник из той же сборки получит доступ.
Это модификатор internal && protected (в отличи от protected internal = internal || protected).
Ну если хочется прям академической точности))
IL модификаторы доступа называются:

famorassem — family or assembly — это protected internal в терминах C#
famandassem — family and assembly — это protected private в терминах С++\CLI

в терминах C# protected internal и internal protected значат ровно одно и то же — ваше утверждение что это два разных смысла — неверно.

Получить famandassem модификатор доступа в C# нельзя никаким способом.
Опа, щас перечитал комент bobermaniac — всё он правильно сказал.
Ложная тревога.
Стоит ли говорить, что компиляция во времени исполнения никак не ускоряет работу программы?
Компиляция во время исполнения производится всего 1 раз и не всех функций, а только тех, что были вызваны. Если это серверное приложение, к примеру, то компиляция 1 раз вообще не берется в расчет, зато что мы имеем? Мы имеем максимально оптимизированный и приспособленный код к условиям среды и платформы. Это дает огромную производительность. Думаю, что будущее именно за управляемым подходом к работе.
А если это десктопное приложение, пользователь бы наверно предпочел, чтобы компиляцией занимался разработчик, а не утяжелял программу компилятором.
Ну тем не менее большинство десктопных донетных приложений прекрасно устраивают пользователя.

Мне вот интересен вариант, при котором .NET приложение, скомпилированное сразу в нативный код ngen'ом, будет иметь преимущество. Может кто подскажет? Или же это преимущество будет видно только, скажем, при загрузке приложения, когда дергается много разных методов?
> Ну тем не менее большинство десктопных донетных приложений прекрасно устраивают пользователя.

Возможно, эти пользователи имеют негативный опыт работы на старых компьютерах, не знают, что сегодня хорошо написанные приложения запускаются сразу, не заставляя ждать. У меня нет и не будет .NET фреймворка. Он тяжелый, плохо написан (так как, например, часто требуется держать несколько версий), требует установки в папку Windows, в которую я не хочу пускать всех подряд.

> Или же это преимущество будет видно только, скажем, при загрузке приложения, когда дергается много разных методов?

Ага, вы наверно рах в год загружаете приложения? Нормальный пользователь делает это постоянно, и ожидание раздражает.
установка в папку windows и ад dll — как раз то, от чего пытались избавиться создавая .net. Все зависит от желания разработчика, какую сборку он хочет создать. Фишка .net в том и заключается, что приложение полностью ложиться в папку и может быть удалено вместе с папкой без проблем. словно документ вордовский.
>тип, по-видимому — это аналог класса C#

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

Это новое веяние моды? Звучит престраннейше, еще и выделено. Если не секрет, зачем нужна техническая статья, в правильности которой не уверен даже автор?!? Т.е. читатель либо должен сам обращаться к первоисточникам, чтобы убедиться, что автор не ошибся, либо уже быть знакомым с материалом и «проверить» понимание автора?
Если отойти от «предостережения», то соглашусь с bobermaniac
Хорошая, годная копипаста.
чтобы в чем-то убедиться нужно взять и попробовать самому.
Дельный совет, только кому вы это рекомендуете?
Если мне, то я большую часть из это пробовал еще лет семь назад. И сейчас все новое пробую.
Если автору, то, наверное, ему следовало пробовать до публикации, чтобы не было необходимости писать в начале технической статьи
Я не претендую на абсолютную правильность излагаемого материала
тогда я соглашусь с тем, кто тут писал про ярую нелюбовь к техническим статьям.
Если вы пробовали это лет 7 назад, то почему вы уверены, что это вам должно понравиться и быть интересно и вообще написано для таких как вы? Это написанор для тех, кто знакомиться с .net и пытается разобраться что почем
А где я написал, что статья мне не понравилась?!
Претензии я высказал к подходу. Вы не уверены в правильности написанного материала. Новички же, которые читают подобные статьи автоматически предполагают обратное, т.е. правильность статьи. Возможно, Вам стоило потратить еще немного времени, доразобраться, перепроверить, попробовать самому и не вставляться в начало статьи фразу о неуверенности выделенную болдом?
вы понимаете разницу между академическим текстом и описанием «своими словами»?
В данном случае это — описание «своими словами». Естественно, что я считаю все приведенное здесь верным, но всегда оставляю вероятность что-то изложить не совсем точно. Хоть и весьма ничтожную вероятность…
это так странно, видеть CLR via C# на хабрахабре…
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.