Исходные коды .net 3.5 sp1 для отладки в Visual Studio

    28 августа на блогах MSDN появилось сообщение о том, что стали доступными исходные коды свежей версии .net Framework 3.5 sp1. Как и ранее, исходные коды доступные через сервера Reference Source Code Center.

    Сообщается, что в настоящее время доступны исходные коды для следующих обновленных библиотек и сборок:
    • mscorlib.dll
    • system.dll
    • system.data.dll
    • system.drawing.dll
    • system.web.dll
    • system.web.extensions.dll
    • system.windows.forms.dll
    • system.xml.dll
    • Microsoft.Visualbasic.dll
    • System.Web.Routing.dll
    • System.ComponentModel.DataAnnotations.dll
    • System.Web.Abstractions.dll
    • System.Web.DynamicData.Design.dll
    • System.Web.DynamicData.dll
    • System.Web.Extensions.Design.dll

    Так же, вскоре ожидается пополнение списка сборками для отладки WPF-проектов.

    Настройка Visual Studio для работы с исходными кодами


    Для работы с исходниками необходимо настроить студию так как это показано здесь. Приведу последовательность действий в картинках:




    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 42

      +1
      Майкрософт публикует все больше исходников…
      Я этому рад. Не хочется смерти майкрософт))) Но приятно что конкуренция со стороны оперсорс заставиляет майкрософт быть более расторопнее.
      Исходники опубликованы под лицензией «readOnly». Интерсно как повлияет это и то, что опубликованы исходники второго фраймворка, на разработку Mono?)
        0
        Да они и так были доступны через рефлектор
          0
          Честно, никогда не смотрел на сложные сборки через рефлектор))
          Но смотрел на дизассемблированный код С++(довольно простой, так что дизассемблировался хорошо) и знаю, по наслышке, что это код даже из классных рефлекторов примерно тоже самое: всех финтов языка (перегрузки, перечисление и т.д.) там вы не увидете.
          А даже если рефлектор будет продвинутый и выдаст вам чудо-код, то он будет оформлен не по-человечески)
          Да тут свой код через месяц без комментариев, когда видишь, думаешь «неужеле я писал это всего месяц назад?», ничего не помнишь)))
          А тут, прям, исходнички… скомпиль и все…
            0
            Я случайно высказал похожую мысль. Не списывал. Честно! :)
              0
              Приятно знать, что кто-то думает как «ТЫ» ))
                0
                Судя по комментариям и отзывам коллег, такая мысль появляется у любого кто работал с рефлектором над сколько-нибудь сложной задачей.
              0
              В .Net есть метаданные, так что рефлектор дает вполне читаемый и понятный код, ибо все имена, кроме локальных, сохраняются, все «перечисления, перегрузки» тем более. И даже лямбды и анонимные методы будут представлены в первозданном (почти) виде.

              Так что рефлектор — это хорошо. К тому же в исходники от microsoft попадают не все классы.
                0
                Я насчет «перечислениий и перегрузок» ошибся(
                Но, в целом, я имел ввиду то, что написал Yustos: habrahabr.ru/blogs/net/38583/#comment_917859
              0
              Если код хорошо структурирован и комментирован, то рефлектор уходит далеко на задний план.
              Одно дело посмотреть как IsNullOrEmpty работает. Но, например, мне было очень сложно разобрать способ работы Select у DataTable через рефлектор :(
              Даже не представляю себе объем работы, если понадобится отладить сложный кусок по результатам рефлектора.
              Надо еще посмотреть. Исходники должны быть во сто крат полезнее рефлектора.
              –2
              Я не параноик, но есть версия, что открытие исходных кодов под той лицензией, что у них, вставляет палки в колеса таким проектам как mono. Если обнаружат совпадения, то это можно будет использовать в суде.

              Я не параноик и очень рад, так как отлаживать код сейчас проще.
                +1
                Нафига им зажимать mono? o_O они наоборот сотрудничают с новелом)
                  +1
                  смерть моно невыгодна MS, насколько я понимаю.
                  0
                  Исходники .NET Framework из-за особой архитектуры .NEТ были доступны изначально. Их можно было дизассемблировать в читаемый вид даже с помощью кустарной проги, написанной «за 10 минут» на самом .NET :) (хотя тут Reflector перешагнул всех)
                  Чуть позже MS опубликовала Rotor — это спец. проект, в котором была открыта большая часть исходников .NET Framework (с комментариями), и даже исходники некоторых частей CLR. Именно этот релиз очень сильно двинул вперед разработку Mono.

                  А последнее действие MS — это открытие доступа к некоторым исходникам последней версии .NET Framework с возможностью их дебага (но без возможности изменять что-либо). Естественно при условии, что вы используете Visual Studio. На разработку Mono это скорее всего никак не повлияет.

                    0
                    По поводу дизассемблированных кодов я писал чуть выше.
                    А вот по поводу Mono и что это никак не повлияет вы, наверное, имели ввиду то что разработчики и так общаются напрямую в рамках соглашений Новеля и Микрософта?
                      0
                      Microsoft всегда шла навстречу разработчикам Mono.

                      Но текущий шаг ориентирован не на них, а на обычных разработчиков.
                        0
                        Crypto, благодаря Вам решил-таки узнать про Rotor (Shared Source Common Language Infrastructure) и про сотрудничество Novel и Micsosoft узнать поболее. Спасибо
                  –6
                  Как то все у Microsoft сделано через одно место. Как то несколько часов убил пытаясь прикрутить исходники к студии. Не заработало, потому что была неправильная версия .NET фрэймворка, вроде beta. И как это обычно бывает у Microsoft, диагностика просто отвратительная, точнее ее вообще нет, ни сообщений об ошибках, на записей в лог файлах, ничего. Нет чтобы использовать обычные файлы архивов с исходниками, они придумали какой то специальный сервер. Что за маразм?
                    +12
                    Некоторые как всегда начинают искать виновного в своей криворукости за пределами своего рабочего стола.

                    Если Вы не читаете рекомендации по установке ПО на сайте Microsoft, и вдруг у вас во время установки что-то не получается, то это не значит, что Вы-то сделали всё правильно, а в Microsoft как всегда облажались.
                    Если Вы не знаете, как смотреть логи, то это не значит, что их нет.
                    Если Вы не знаете, зачем «они придумали какой то специальный сервер», то это не значит, что их решение заведомо неправильное.

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

                    На свежеустановленную систему какой .NET Framework нужно ставить?
                    Microsoft Update предлагает 1.1 и 2.

                    Интересно, почему и то и другое? Почему не только последнее?
                    Они не совсем обратно совместимы?

                    Почему не предлагает ставить 3.5?

                    Или же закрыть на все глаза и ставить 3.5?

                    Ну не совсем я понимаю.
                    Объясните.
                      0
                      Ставь всегда последний Framework (сейчас это .NET Framework 3.5 SP1)
                      Все фреймворки обратно совместимы
                        0
                        Спасибо.

                        Потолстел он однако.
                        Имеется в виду размер дистрибутива.
                          0
                          Потолстел он за счет того, что и сам фреймворк вырос и в инсталлятор включили все возможные версии (x86, x64, ia64).
                          Интересно об этом написал в своем блоге Scott Hanselman.
                          А так же сделал сайт SmallestDotNet, что может сэкономить трафик, кому актуально.
                          0
                          Крипто прав, но это теория.
                          На практике многие проги требуют именно 2.0
                          Из личного опыта: ставь сначала второй а поверх 3.5 (sp1)
                            0
                            Вот то, что 1.1 нужно иногда ставить для старых прог — слышал и видел, а насчет 2.0 странно. 3.5 изначально же базируется на 2.0, просто содержит кучу расширений.
                              0
                              Мы с приятелем устанавливали венду ему, и когда дело дошло до драйверов то атишная утилиа (Catalyst Control Panel кажись) потребовала именно второй версии( А у меня ее инсталятора уже даже не было))

                              Ниже (http://habrahabr.ru/blogs/net/38583/#comment_918900) self описал подробнее
                                +1
                                так и есть, но версия 3.5, точно также подошла бы вам как и версия 2.0, о чем собственно и речь
                              0
                              3.0 полностью включает 2.0 (инсталлятор)
                              3.5 полностью включает 3.0 и 2.0 (инсталлятор)

                              Так что ставить 2.0 отдельно нету никакого смысла. Это «матрёшка»
                            0
                            не успел ссылку докинуть: msdn.microsoft.com/en-us/library/47a587hk.aspx
                              0
                              Специально можно ничего не ставить. Если понадобится — он сам скажет какой нужен и предложит скачать.
                              Я, относительно недавно, обнаружил, что в Висте не стоит фреймвёрк 1.1, и не узнал бы, еслиб старая прога не понадобилась.
                                0
                                Т.е. если драйвера, а точнее Catalyst Control Panel (от ATI) требуют .Net Framework версии не менее 2 (а драйвера уж хочешь не хочешь а ставить нужно), то ставить именно версии 2?
                                Или же все же 3.5?

                                Каким образом можно узнать установлен ли .Net Framework в системе или нет и его версию?
                                Через «Установка и удаление программ» не предлагать.

                                Здесь ведь вот в чем вопрос…
                                на примере эволюции ОС видно, что от версии к версии пользователь получает больше возможностей и всевозможных улучшений (Не будем разводить полемику о частностях. Имеется в виду общий тренд.).т С .Net Framework для конечного пользователя (Петя, который любит ставить разный софт и играть в игрушки) эта закономерность как то стирается.
                                Особенно это видно при обновлении с Windows Update, Microsoft Update или же с локального WSUS.

                                Смущает еще одно:

                                WSUS предлагает обновления как первой линейки .Net Framework так и второй.

                                Почему одновременно? Разве второй не перекрывает первый?

                                Очень хотелось бы прочесть развернутую статью на эту тему.
                                  0
                                  Развернуто — долго ждать.
                                  А если кратко, то:
                                  если нужно РАЗРАБАТЫВАТЬ к примеру под .NET 2.0, то должен быть установлен .NET 2.0. Старая добрая Студия 2005 требует именно .NET 2.0. И при её установке он тоже установится, независимо от того, какой фреймфорк уже стоит. Всё потому, что Студия 2005 не знает ничего про фреймфорк 3.0 или 3.5.
                                  С другой стороны, если на компе УЖЕ установлен к примеру .NET 1.1, то винда естественным образом предложит обновить его как независимый продукт. А на компе фреймфорки разных версий замечательно стоят рядом и не жужжат.
                                  С «третьей» стороны, в ту же Висту установлен .NET 3.0, и это означает, что в ней по-умолчанию пойдут ВСЕ приложения, которые написаны на 1.1, 2.0 или 3.0. Более того, если 3.0 устанавливается на чистую машину, то сразу установится и .NET 2.0, т.е. .NET 2.0 как бы входит в дистрибутив 3.0 (потому что 3.0 — это всего лишь набор классов, дополняющий, но не изменяющий 2.0), а если .NET 2.0 уже установлен, то 3.0 просто доустановит все эти WCF, WWF и пр.

                                  Если обобщить, то можно сказать, что дистрибутив каждого следующего фреймворка содержит все необходимое для запуска программ, написанных под предыдущие, но предназначен для разработки только под текущую версию .NET.
                                    0
                                    Еще уточнение:
                                    Есть два вида «инсталляторов» .NET Framework. Первый — это т.н. Microsoft .NET Framework X.X Redistributable Package. Он предназначен для выполнения .NET-приложений текущей версии и более ранних.
                                    А чтобы разрабатывать приложения под конкретный .NET X.X, нужно установить Microsoft .NET Framework X.X Software Development Kit (SDK). Именно он идет с конкретной версией студии (1.1 с 2003-й, 2.0 с 2005-й, 2.0, 3.0 и 3.5 с 2008-й).
                                    0
                                    Ставьте 3.5, меньше потом вопросов будет (от ПО).

                                    .NET Framework удивителен тем, что его установка заключается лишь в копировании файлов.
                                    Файлы лежат тут: WINDOWS\Microsoft.NET\Framework\…

                                    Второй не перекрывает первый, а дополняет его. Загляните в папку, указанную выше, вы там увидете следующие папки:
                                    v1.0.3705
                                    v1.1.4322
                                    v2.0.50727
                                    v3.0
                                    v3.5
                                    (так у меня, у Вас может быть больше, может быть меньше).

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

                                    Если например, кто-то написал программу для .Net 1.0 использующую System.Data, эта программа только 1.0 версию и сможет использовать и она будет её хотеть, несмотря на то, что во всех других папках есть свой System.Data.

                                    Вот так вот, если кратко :)
                                      +1
                                      >.NET Framework удивителен тем, что его установка заключается лишь в копировании файлов
                                      Это очень неправильное утверждение. Установка .Net Framework внутри очень сложна.
                                        +1
                                        А вы-то сами заглядывали в эти папки? :) И какие фреймворки ставили на какую систему?

                                        У меня в Vista установлен был 3.5, 3.5SP1 + 3.0 был установлен изначально. Вышеуказанные папки (v1.0, v1.1) есть, но в них только пару конфигов лежит, и ни какого первого фреймворка нету.

                                        Насчет дополнений во фреймворках.
                                        v1.0 была первой версией
                                        v1.1 — исправляла много багов. (v1.0 не включена, просто имеют общую CTL)
                                        v2.0 — опять же, пофиксили баги + добавили много всего нового. (тоже самое, что и v1.1 предыдущие фреймворки включены просто в CTL, но физически они никак не присутствуют после инсталляции)
                                        v3.0 — v2.0 + WPF, WF, WCF, Windows Card Space
                                        v3.5 — v3.0 + AJAX, LINQ, Peer2Peer Networking, WCF and WF Integration
                                        v3.5sp1 — v3.5 + багфиксы, работа с SQL 2008, ADO.NET Data Services Framework, Entity Framework, ASP.NET Dynamic Data ну и ещё по мелочам.

                                        Поэтому, вывод — «дополняют» на сегодняшний день все версии больше 2.0, а предыдущие перекрывают друг друга.
                                          0
                                          Век живи век учись. Спасибо :)
                                        0
                                        «Перекрывает» тут неуместное слово. Global Assembly Cache в .NET устроен так, что обеспечивает мирное сосуществование разных версий одних и тех же сборок, поэтому установка новой версии .NET Runtime никогда не затирает предыдущих версий. Тем самым гарантируется, что программы, разработанные для более ранних версий, будут и дальше нормально работать, т.к. для них ничего не изменилось. Отсюда и обновления для каждой выпущенной версии отдельно.

                                        Другое дело, что .NET 2.0 Runtime, устанавливаемый вместе с .NET 3.5, немного отличается от оригинального .NET 2.0 в плане функциональности (а не только багфиксами), что теоритически способно нарушить совместимость. Отличия между ними описаны здесь и здесь. На практике же шансы случайно что-то зацепить из SP1 довольно малы, и совсем этого избежать поможет вот этот пост.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        0
                                        Кто-нибудь может их выложить чтобы скачать?

                                        p.s. У меня нету windows, а посмотреть интересно.

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

                                      Самое читаемое