none
Встроенная в PowerShell документация по .NET RRS feed

  • Общие обсуждения

  • Почему бы не добавить в дистрибутив PowerShell ВСЕ ее документированные возможности. Очень сложно выискивать классы, их методы, свойства и подствойства. Почему бы не положить в инсталяшку исчерпывающий справочник? Не для WMI (как сабжект), а все остальное. Почему я как пользователь должен методом тыка решать System.Net.IpAddress класс или тип?  
    18 декабря 2009 г. 19:07

Все ответы

  • Мм.. Во-первых это наверное в отдельный топик надо :)
    Во-вторых, System.Net.IpAddress это .NET, самостоятельный фреймворк и к PS имеет лишь чуть большее отношение чем WMI или COM.
    В-третьих .NET Framework прекрасно документирован - http://msdn.microsoft.com/en-us/library/system.net.ipaddress.aspx Не везде конечно присутствуют примеры на PS, но над этим ведутся работы :) Впрочем и с C# перевести не сложно.
    В-четвертых, документация по MSDN в оффлайн виде занимает если не ошибаюсь пару DVD. Вы хотите получать такие объемы в автообновлении? Я нет :)
    В-пятых, а что конкретно вам неудобно выискивать? Определения методов можно посмотрев вызвав метод без скобок:
    PS C:\Users\xaegr.LAB> [system.net.ipaddress]::IsLoopback
    MemberType          : Method
    OverloadDefinitions : {static bool IsLoopback(ipaddress address)}
    TypeNameOfValue     : System.Management.Automation.PSMethod
    Get-Member и Format-List * вообще волшебные командлеты. А уж если использовать PowerTab то вообще все, включая классы .NET и WMI будут дополняться по табу.


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    19 декабря 2009 г. 7:37
    Модератор
  • System.Net.IpAddress это просто пример. Почему его привел? Смотрел на msdn System.Net.Webclient, увидел, решил посмотреть свойства и методы в PowerShell. Для чего попытался создать новый объект:

    $a=new-object system.net.ipaddress

    но не тут-то было... Методом тыка (по другому не назовешь) решил испробовать как тип:

    [system.net.ipaddress] | gm

    и о чудо.. Так вот почему бы не включить документацию по доступным типам и классам? Хотя бы названия и список методов и свойств. Сомневаюсь что это займет dvd. В худшем варианте 2-3 Mb.  Чтоб пользователи не тыкались как слепые щенята, а посмотрели справку и выбрали подходящий класс, тип, метод или свойство. Откуда мне узнать что существует тот или иной System.*; Microsoft.* etc? Лазить в онлайн справочники не выход. Согласитесь.

    А так получается изучение русского по надписям на заборах.

    > Get-Member и Format-List * вообще волшебные командлеты.

    Вот честное слово, хочется материться. Это как я умею водить машину, но не знаю Москвы. Доедь с барикадки до нижней красносельской и побыстрей и чтоб без пробок.
    19 декабря 2009 г. 15:11
  • >Смотрел на msdn System.Net.Webclient, увидел, решил посмотреть свойства и методы в PowerShell. Для чего попытался создать новый объект
    Раз уж смотрели на MSDN, почему не обратили внимание на http://msdn.microsoft.com/en-us/library/system.net.ipaddress.ipaddress.aspx ? Я понимаю что не очевидно, но очевидного API не бывает, .NET и так сильно проще чем Win32API.

    >Откуда мне узнать что существует тот или иной System.*; Microsoft.* etc? Лазить в онлайн справочники не выход. Согласитесь.
    Ну несчастные программисты так и делают :) Точнее делают только если у них не установлена VS, у них к ней как раз прилагается документация (та самая) и возможности автодополнения. Им правда для этого приходится ставить студию - достаточно немелкий софт, платный к тому же.
    Впрочем... нам повезло, у нас автодополнение классов не хуже, и для этого даже не приходится ставить софт. PowerTab (скрипт PS) с этим прекрасно справляется. Чтобы узнать о существовании System и т.д., надо лишь набрать [ и нажать tab. Дальше легко. Посмотреть конструкторы: [system.net.ipaddress]: и tab. Это конечно не полноценная документация, лишь названия, методы, свойства, конструкторы, и т.д. Но вы вроде этого и хотели?
    База PowerTab (которую он кстати генерирует самостоятельно, из присутствующей в системе информации. Как? Можно посмотреть в коде скрипта) занимает около 1 мб. Это XML, почти ничего лишнего. Как раз то что вы и просили.
    Но всё же очень, и очень рекомендую посмотреть вот это - http://xaegr.wordpress.com/2008/02/04/powertab-screencast/ и попробовать таки PowerTab. Это действительно очень полезная штука.
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    20 декабря 2009 г. 21:28
    Модератор
  • Поддержу. Василия. Как только мы пытаемся что-то сделать в Powershell выходящее за рамки его операторов - сразу попадаем в .NET Framework! Понятно, что хочется получить полный справочник его компонент и прямо в Powershell... И этот справочник есть! И называется он MSDN SDK - качаете, устанавливаете раздел документации и пользуйтесь! Вот только нет никакого резона включать MSDN Library в дистрибутив Powershell и увеличивать его размер с нескольких мегабайт до гигабайта.
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    21 декабря 2009 г. 13:23
    Модератор
  • Лазить в онлайн справочники не выход. Согласитесь.
    как по мне так очень даже хороший выход =) привычный, проверенный.

    эээ...
    22 января 2010 г. 18:16
  • > как по мне так очень даже хороший выход =) привычный, проверенный.

    Кому как. По мне, так это совсем не выход. Нельзя же судить обо всех по себе. Почему вы на даче, в поезде, может и на работе, должны зависеть от таких обстоятельств, как отсутствие сети? Предоставьте справочные материалы для любого. Не надо весь MSDN - там многое offtop. Только базовые сведения - название всех классов с кратким, но понятным описанием. Дай бог пара мегабайт.. Всех дел то узнать о самом наличии того или иного класса или типа - вот что самое трудное. Как, например, вы узнаете о том что есть System.Net без доступа к сети - только случайно из $error =)
    23 января 2010 г. 10:04
  • >Только базовые сведения - название всех классов с кратким, но понятным описанием. Дай бог пара мегабайт..
    Только названия, без описаний занимают около 1мб.
    >Всех дел то узнать о самом наличии того или иного класса или типа - вот что самое трудное. Как, например, вы узнаете о том что есть System.Net без доступа к сети - только случайно из $error =)
    Вы принципиально не хотите решить свою проблему? Я уже упомянул выше PowerTab, он позволяет с помощью автодополнения узнать о наличии классов и namespace'ов .NET.

    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    23 января 2010 г. 10:53
    Модератор
  • > Вы принципиально не хотите решить свою проблему? Я уже упомянул выше PowerTab

    Не буду врать. Не понравился. И он не входит в дистрибутив. Но это все субъективно. Вопрос же не в powertab, а в том что бы все было "чики-пуки-из_коробки" - либо документация, либо cmdlet, выводящий в хост базовую информацию о всех доступных классах, методах и свойствах, a-la `get-class' и параметры `-methods', `-properties', `-all'.

    Вы все упираетесь, не хотите согласиться, что встроенная в POSH документация далеко не полная. Если уж делать, то делать по максимуму. Неужели элементарные вещи необходимо доказывать и оспаривать. POSH это алаверды питонам, пхпам и перлам или новое средство администрирования?  
    23 января 2010 г. 19:08
  • >Не понравился. И он не входит в дистрибутив.
    То есть мое сообщение не читали. Я предложил посмотреть как он перебирает .NET, и использовать это.

    >Вопрос же не в powertab, а в том что бы все было "чики-пуки-из_коробки"
    У команды PowerShell ограниченные ресурсы, бюджет. Достаточно большие, но ограниченные. Поэтому они, как мне кажется вполне разумно, предпочитают реализовывать не конкретные решения, тысячи командлетов из коробки и т.п., а возможности. Дать возможность в PowerShell сделать чтото, чтобы люди уже сами _могли_ разработать конкретные решения. Поэтому в 2.0 появилась возможность исполнения кода .NET языков, а следовательно WinAPI, классы, перечисления и т.д.. Поэтому появились Remoting, Eventing, и транзакции, которые сами по себе может не сильно то нужны, но зато предоставляют огромные возможности. Поэтому я обычно против добавления в релиз функционала который не необходим 100% людей, и реализуется несколькими строками скрипта. Потому что это отвлекает команду от разработки действительно важных вещей - возможностей.

    Если вы считаете это перечисление классов .NET которое несложно получить скриптом, действительно необходимой, - https://connect.microsoft.com/powershell к вашим услугам. Оставляйте свое предложение там, опишите причины, это действительно может что то изменить если будет убедительно и важно для многих.
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    24 января 2010 г. 6:48
    Модератор
  • > То есть мое сообщение не читали.
    С чего вы так решили? И читал, и смотрел powertab конечно.

    > У команды PowerShell ограниченные ресурсы, бюджет.
    Тогда все понятно.

    Давайте закроем это обсуждение. Оно только косвенно затрагивает тематику данного форума.
    24 января 2010 г. 11:07
  • >Давайте закроем это обсуждение.
    Я так понимаю вы не открыли предложение на Connect? То есть даже сами не считаете что оно может показаться кому то важным?

    >Оно только косвенно затрагивает тематику данного форума.
    Ну вообще говоря оно с 4го сообщения перестало иметь какое либо отношение к теме топика даже :) Сейчас попробую отрезать в отдельную тему, а закрывать я думаю не стоит - вдруг родится полезная идея.
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    24 января 2010 г. 12:14
    Модератор
  •  Им правда для этого приходится ставить студию - достаточно немелкий софт, платный к тому же.

    http://www.microsoft.com/express/Downloads/

    Visual Studio 2008 Express Editions are free development tools.
    Register your product within 30 days from installation.

    MSBF
    1 февраля 2010 г. 14:47