Как стать автором
Обновить
13
0
Сергей Роговцев @lair

Архитектор

Отправить сообщение

Чистота важна в том смысле, что если я попробую на своей (разработческой) машине, то я не могу быть уверен, что записи, которые я там увижу, не от тех паков, которые я сам ставил после.

Я это не могу проверить, у меня нет чистой лабораторной машины (ну и это для меня не важно, на самом деле).

Inter-process communication через HTTP-сервер? Я думал вы сильно старше и уже прошли этот этап )

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

Тут уже ничего не скажу — до такого уровня использования PS не доходил.

Это цитата из вступительного раздела, а операции с объектами и их свойствами - третья глава в 101. Так что это где-то в районе базового уровня.

Слушайте этот .NET SDK

...почему вы считаете, что это SDK?

не отображается в списке системных компонентов

А почему должен?

Так что ".NET SDK" это скорее условное название, чтобы хоть как-то это обозначать.

Это называется .NET Framework

Какой-либо официальной информации по этой версии нет

Есть. Идете вот сюда и смотрите, какие версии имеют зеленую галочку (поставлены по умолчанию): https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies#version-information

(я, кстати, был неправ, и рантаймом правильно называть CLR, но это еще более третья вещь, которая у вас вообще нигде не упоминается)

Версия v4 это точно не Core, внутренних версий старше 4й внутри Windows я пока не встречал, так что видимо оно называется Net Framework.

Тогда утверждение "Рантайм для приложения на .NET это просто библиотека, либо поставляемая вместе с приложением либо взятая из системы." - неверно. Рантайм для .NET framework приложения - это .NET Framework, и он существенно больше, чем "просто библиотека".

Так в чем вопрос?

В том, с чего вы решили, что с Windows поставляется SDK, а не рантайм.

Что и событийную обработку? И асинхронщину с многопоточностью? Неужели до работы с отладчиком так и не дошли за годы практики?

А откуда это внезапно взялось? Речь шла про то, что можно написать код на C# в блокноте на машине, где нет ничего другого, и вам сказали, что можно с равным успехом это сделать в PowerShell.

Ну там ввод-вывод, передача данных. Через внешние файлы будете реализовывать?

Если понадобится - то да. Или можно HTTP-сервер внутри поднять. Если кому-то хочется развлекаться, то там всё есть.

Я же написал уже что неграмотный, так что поделитесь откровением.

Ключевое - вот: "PowerShell accepts and returns .NET objects". Поэтому взаимодействие с .NET - неотъемлемая часть работы в PowerShell (а командлеты просто это прячут под удобный синтаксис).

Лично мне как разработчику - большое: я знаю, что можно сделать из PS, если припрет. Лично мне как админу (если бы я был админом) - тоже больше: я знаю, что PS надо опасаться не меньше, чем любого приложения на .NET.

Угу, а отлаживать этот код вы как собираетесь?

Так же, как и код на C#, написанный в блокноте - с помощью вывода в консоль и такой-то матери. И это я в свое время как раз делал, так что не понимаю, в чем тут вопрос.

Как взаимодействовать с ним после запуска?

А зачем мне с ним взаимодействовать?

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

Я вас еще раз спрашиваю: вы понимаете, что такое powershell, когда говорите, что вызов кода на .net не имеет к нему никакого отношения?

Не совсем так. Внутри этой папки есть еще с номерами версий, вот то что внутри уже SDK.

Нет, то, что внутри - это разные версии .NET framework.

Рантайм для приложения на .NET это просто библиотека, либо поставляемая вместе с приложением либо взятая из системы.

Вы говорите про .NET (который современный, который раньше был .NET Core), или про .NET Framework (в котором это совершенно точно не так)?

Разделение на SDK и рантайм ни разу не формальное а очень даже реальное

Я спрашиваю, как вы отличаете, что есть что.

Вам говорят, что WinAPI доступен из PowerShell. Примеры кода показывают, что доступен. Не вижу противоречия.

Я выше по треду уже ответил что на самом деле это не PowerShell такой умный, это код на C# с динамической компиляцией внутри

...и что? Речь как раз о том, что из PS можно вызвать любой код на .NET, в том числе динамически скомилированный. Поэтому, как вам и пишут, из PS можно получить (и люди регулярно получают) доступ к WinAPI.

А вы понимаете, как работает PowerShell?

Запускабельные бинарники вроде csc.exe точно есть только в SDK
Присутствует (не установлен как компонент и не удаляем стандартными средствами) и .NET SDK и рантайм

Как формально вы разделяете SDK и рантайм? На основании чего вы говорите, что csc есть только в SDK, хотя он лежит в C:\Windows\Microsoft.NET\Framework64 (это, насколько я помню, папка именно рантайма)?

Компилятор C# (там еще компиляторы Visual Basic и JScript) есть только в .NET SDK

В этот момент у меня все-таки есть два вопроса.

  1. Компилятор есть только в SDK или в рантайме тоже?

  2. На обычной пользовательской винде из коробки стоит только рантайм или SDK тоже?

Я просто хорошо помню, как я каждый раз при подготовке себе рабочей машины ставил туда SDK.

Вы "не один год" собирали материал о том, что в любой современной инсталляции винды есть csc?

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

А что представлять-то? Обычный пранк, я таких много помню. Не понимаю, что тут уникально интересного.

Поняла, о чем вы – если говорить про команды, в которых процессы идут параллельно

...то может быть станет понятно, что ваше утверждение про "все в IT знают" избыточно обобщено?

Но в такой ситуации происходит много двойной работы.

Или, наоборот, не происходит лишней. Но это старый спор.

Мы стараемся делать так, чтобы после того, как разработчик получил ФТ (функциональные требования), правки в макеты фичи не вносились.

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

Да, у нас иначе. Нет никакого смысла делить работу на дискавери и деливери, если больше половины времени эти процессы (анализа и разработки) идут параллельно.

Все, кто работает в IT, знают, что в разработке новых фич продукта и поддержке старых выделяются два последовательных процесса:

  • Discovery — это все действия до начала разработки.

  • Delivery — все, что касается создания кода.

Я вот работаю в IT и не знаю этого. Ну и да, вопрос, как вы это собираетесь делить в любой сколько-нибудь активной современной разработке, мне не понятно.

Информация

В рейтинге
6 033-й
Откуда
Montreal, Quebec, Канада
Дата рождения
Зарегистрирован
Активность