И потому когда вам приходится общаться с FAT32/NTFS/etc — приходится вспоминать и про кодировки.
Ну опять же, не надо нести чушь и все валить в одну кучу. Можно просто открыть документацию (это не больно и глаза у почитателя Linux от чтения документации Microsoft не выпадут):
Character Sets Used in NTFS stores file names in Unicode.
In contrast, the older FAT12, FAT16, and FAT32 file systems use the OEM character set. For more information, see Code Pages.
Non-Unicode applications that create FAT files sometimes have to use the standard C runtime library conversion functions to translate between the Windows code page character set and the OEM code page character set. With Unicode implementations of the file system functions, it is not necessary to perform such translations.
А относительно Linux написано:
0x6 __le16 name_len Length of the file name.
0x8 char name[EXT4_NAME_LEN] File name.
…
The unix/posix layer of linux doesn't care which encoding you use. It stores the byte sequence of your current encoding as-is.
видать поэтому пришлось:
Linux filesystems do not enforce a encoding (but foreign mounted ones may perform encoding transormations, e.g. from cp1252 for FAT), but by strong convention it is always utf-8. For the past several years it has been considered a severe bug if any other encoding is used in a package.
Т.е вписать в спецификацию NTFS fs кодировку — это хрень, вписать codepage=value для mount при монтировании FAT & VFAT filesystems, опять же согласно спецификации fs — это тоже хрень.
А вот тупо писать поток байт как имя файла, а потом пытаться договорится, что бы другая сторона попробовала прочитать — это очевидно прогресс? Ну ну…
Подход «у нас везде и всюду UTF и нет никакого UTF, кроме UTF-8» позволяет избавиться от огромного количества костылей и, главное, не требует переписывать кучу кода 20-30-40-летней давности: он и так отлично работает…
И не будет никакого разрушения структур данных, когда вместо однобайтового $(U+24) в приложение прилетит какой 4-х байтовый символ (Musical Symbol G Clef если браузер не показывает)
Так ладно бы просто хранить папирусы со времен постройки пирамид с одном двух-экземплярах, так еще и каждый житель Египта должен это делать на протяжении 8..12 тыс. лет, который просто захочет поинтересоваться этим вопросом!
А какое вообще дело файловой системе до UTF-8, извините? UTF-8 была как раз разработана так, чтобы файловой системе не нужно было знать про кодировку.
NTFS хранит именование файловых объектов в Unicode UTF-16 кодировке.
Utf-8 была сделана из тех соображение, что наиболее часто применяемые символы языков отбражались кодом меньшего размера и имеет размерность от 1 до 4 байт на символ.
Просто из соображений экономии места, и к файловым системам вообще никакого отношения не имеют.
Q: Which of the UTFs do I need to support?
A: UTF-8 is most common on the web. UTF-16 is used by Java and Windows. UTF-8 and UTF-32 are used by Linux and various Unix systems. The conversions between all of them are algorithmically based, fast and lossless. This makes it easy to support data input or output in multiple formats, while using a particular UTF for internal storage or processing.
И если это действительно так — проблем нет.
А вот если файловая система таки сделана так, чтобы знать про кодировку — да, начинаются беды.
Ну, с таким подходом к дизайну проблемы у файловых систем точно будут, хотя бы потому что нужно как-то расчитать место под структуры даных отвечающих за именование файловых объектов. При этом одинаково нормально должно хранить именования как китайском языке, так и русском и монгольском и ронго-гонго и египетские картуши. На вcем, что предусмотренно стандартом.
Файловая система отвечает только за сохрание, но никак не за отображение данных в иных программах. Некоторые файловые менеджеры на Windows не могут отобразить те имена, что показывает Explorer. 7Zip может так наименовать, что фиг кто потом показать может нормально имя файла. И ничего — файловая систем отлично работает.
раз у нас есть Windows, которая в UTF-8 не умеет и с которой нам приходится общаться, то от попоболи в этих местах избавиться не удастся.
У WinAPI обычно две версии функций — для ASCII именования и для Unicode UTF-16 именования. Другие варианты бывают редко и специфические. Началось это с Windows NT 3.51 и продолжилось в Windows 95. То, что консольный софт работает с кодовыми таблицами ASCII — ну что тут поделать. тяжелое legacy.
Как в обычной (даже публично доступной) базе проверить/проследить, что никакие данные в ней не были изменены после изначального занесения? А никак — только если эти «контрольные точки» содержат полную копию всей этой базы данных, а проверка заключается в последовательном сравнении всех записей из проверяемой базы с сохраненным «эталоном» (а кто кстати проверит что сам «эталон» не был изменен?).
А вот это лукавство :) Просто пример из жизни — есть склад. Провели инветариазацию, составили акт и все стороны подписали.
Через пол года опять проводят инвентаризацию — взяли последний акт и карточки складского учета, расчитали остатки. Сравнили с фактическими. Если сошлись, сделали новый акт. Предыдущий уничтожили и завели новые карточки складского учета. Никто не хранит на складе карточки учета и акты с момента постройки склада.
И такая системы работает столетиями.
Раскопали египеские пирамиды -и ученые по карточкам складского учета узнали кто сколько съел лепешек/зерна/мяса. Раскопали глиняные таблички — узнали налоги пару тысяч лет назад. Без всякого блокчейна.
Тут появляется «новая технология» и заявляет, что нужно было хранить папирусы с момента египетских пирамид, что бы узнать количество коз/золота в Египте 21 века, путем пересчета всего движения за последние 8..12 тысяч лет? Не смешно. Ей богу грустно…
Возвращаясь к апдейтам — я слышал, что описанные проблемы не возникают на серверных редакциях не по причине того, что там отсутствует какой-то функционал (в частности, OneDrive можно поставить на Windows Server без каких-либо проблем),
Microsoft Hyper-V Server 2016 is a stand-alone product that contains only the Windows hypervisor, a Windows Server driver model, and virtualization components.
Сомневаюсь что сюда он станет :) Ну, вопрос не в этом. :)
а по причине того, что не_секьюрити апдейты просто не пушат, пока аналогичные апдейты не пройдут тестирование на Windows 10 машинах
Очень сильно в этом сомневаюсь, ибо до сих пор не читал про такю политику и не слышал. Что апдейты серверов «складывали» инфраструктуру на сутки — видел раза 3. Да и вроде до сих пор патчи для серверов и клиентов были в разных пакетах, даже если фикс был один. Надо будет посмотреть.
А что есть несколько каналов для распространения обновлений — это факт.
Возможно Вас интересует что-то вроде этого Assign devices to servicing channels for Windows 10 updates и этого Windows Server Semi-Annual Channel overview
Вообще MS недавно анонсировала умный механиз, для уменьшения трафика — не пушить на конечные машины все что нужно или не нужно, а по умному смотреть нужет патч конечному пользователю или нет.
Значит, с драйверами как минимум проблем не должно быть.
Производитель драйверов может просто не разрешить ставить драйвера в ОС, которую не протестировал. А в список не протестированных ОС может попасть серверная. Например, у вас терминальный сервер и никому в здравом уме не придет туда ставить карты для CAD ( вроде NVidia Quadro /AMD RadeonPro), зато есть для серверов виртуализации отдельные линейки (вроде AMD MxGPU). Нюансы есть.
А с обновлениями как обстоят дела, проблемы, описанные в статье, проходят мимо серверных редакций ОС?
Опять же — нету на клиентских ОС компонента вроде DNS сервер, KMS сервер, Hyper-V сервер и т.д.
Есть линейка Hyper-V сервер, так у нее GUI вообще нет, только консоль и API для удаленного управления.
Есть Nano Server — специально для использования внутри виртуальных машин. Очевидно, что у Nano Server не будет проблем с клиентом OneDrive и редиректом клиентских папок, потому что OneDrive там просто не станет.
У Windows 10 точно не будет проблем с обновлением SqlServer, только потому что Exchange обновил схему Active Directory и репликация стала колом, потому что один из серверов леса AD обновился чуть раньше, чем другие.
У серверов будет свой квест у клиентов свой:) Чудес не бывает :)
Хреново вышло :) Поэтому и не убирают, зато активно запускают «legacy» на Arm со своим транслятором из x86, что бы в чередной раз не получить граблями в лоб
Я уже некоторое время как от многих знакомых слышу мнение, что по возможности на личных рабочих станциях… следует использовать серверные версии Windows, ибо… проблемы минимизированы:… лучше ...,… больший выбор ..., полная совместимость с ..., больший срок поддержки и т.д. и т.п —… только лишь одни плюсы.
Сказки это безусловно хорошо, но читать мануалы еще лучше. Ядро у них то одинаковое, другое дело что используются разные преднастройки да приоритетов процессов, размеров буферов и и т.д. Всетаки профили нагрузки у них разные. Хотите настроить почти что угодно в Win — поковыряйте политики локальные. Драйвера? Так у них один DDK и одна модель драйверов, разве что по умолчанию для сервера требуются WHQL драйвера, но админ может туда все равно засунуть хоть самописную дрянь на свой страх.
Что из сервера по умолчанию убраны почти все стразики — это уже давно так, равно как и политика безопастности — «все что не разрешено — то запрещено».
с точки зрения пользовательского кода я хочу (, могу и буду)
рассматривать окружение базовой комплектации ОС как единое целое.
Никто не ограничивает Вас в своем праве "… мочь и хотеть ..."
Но вы бы могли захотеть и смочь прочитать про
mklink
mklink [[/d] | [/h] | [/j]] Link Target
To create a symbolic link named MyDocs from the root directory to the \Users\User1\Documents directory, type:
mklink /d \MyDocs \Users\User1\Documents
Ну а что MS реализовала отдельное Shell приложение, включающее работу с Shell Links файлами и реализовав расширяемый интерфес в виде задекларированных COM интерфейсов этого приложения- это да. Это они конечно крупно облажались. Нужно было прямо в драйвера вшивать, сразу что бы даже не User Mode драйвер этот работал, а Core Mode.
А чего мелочиться что? Давайте и Word прямо в ядро ОС запихаем? Чего это Word файлы «черeз отвратительный COM открываются»?
Ну и в Linux запихать LibreOffice то в ядро? csv файлы тоже как-то убого открываются-показываются…
The Windows UI provides users with access to a wide variety of objects necessary for running applications and managing the operating system.
Shell Development Scenarios
The following development scenarios relate to application development:
Extending the Shell, which consists of creating a data source (versus consuming the Shell data model)
Implementing a subset of the Shell data source tasks
Supporting libraries and item views in Windows Explorer
Using the common file dialog
Implementing Control Panel items
Managing notifications
A Shell link is a data object that contains information used to access another object in the Shell's namespace—that is, any object visible through Windows Explorer.
, а для второго еще и нужны права администратора, которые получаются только через этот же отвратительный API, да еще и с перезапуском приложения. Ну, знаете, приятного немного
То-то на Ubuntu у меня потребовало права админа, когда я кусок системного софта ставил, что бы просто создавать файлы VmWare
Может просто чуть захотите и сможете почитать мануалы Windows, прежде чем в вентилятор кидать всякое-разное?
Жду когда в обиход войдёт практика засорения места преступления ДНК тысяч посторонних людей и торговля инструментами-расходниками для этой практики.
Порядка 400 USD была цена «синтетической ДНК» из опубликованного лет 5 назад исследования синтетической ДНК для признания в криминалистике. 10 USD сделать отпечатки пальцев. Тогда еще кто-то опубликовал снимок руки канцлера германии где четко были видны отпечатки пальцев в высоком разрешении с публичного мероприятия.
Так что сейчас найти и опознать человека — по ДНК, отпечаткам пальцев (их же в каждом телефоне понатыкано), появился FaceID (будет очень удобно искать по видеокамерам), по голосу — так половина населения уже отметилось в Сири/Алисе/Кортане/Алексе, которые «голос распознают» в облаках. Половина населения Земли уже добровольно сдали свою биометрику кому попало. Вторая половина на подходе. Лет через 5 — будут все «оцифрованы и опознаны», кроме мертвых.
Я бы за такое разработчикам руки бы вырвал. У меня, например, всегда данные и система хранятся на разных дисках/разделах именно с использованием этого механизма. Грохнулась винда или надо переставить — ты не заморачиваешься тем, что у тебя на системном разделе что-то важное есть.
Есть простое правило — сдохни сам, но данные клиента трогать нельзя и обязан сохранить их любой ценой.
Да понятно что проблем есть. Понятно что накосячили. Почему накосячили не на чем-то принципиально новом, а том что давно известно и есть инструментарий не самый сложный что бы предупредить такие — вот это любопытно.
да даже банально «создать ярлык на рабочем столе» делается только через него
Это функционал Windows Shell. к Win API имеет отношение не больше, чем Word/Excel COM API :) Вам никто не мешает сделать свой Shell для Windows.
LDAP
Это в общем такое-же прикладаное ПО со своим API, так же как и API SqlServer.
Если уже пытаться ссылаться на COM API, то возможно Вы имели ввиду низкоуровневый функционал типа CoInitializeEx, CoCreateGuid, CoCreateInstanceEx, CoDisconnectContext, CoGetCurrentProcess, CoGetMalloc и т.д. который без сомнения используется в вышеперечисленном Вами ПО.
авторизация в сетевой shared папке,
Подозреваю, что это будет что-то типа функций WNetUseConnectionA и WNetConnectionDialog. Посмотрел в SDK исходники. Но это, опять же не COM API.
Проблема с COM в том, что использовать его на уровне ядра OS — весьма дорогостоящее и не безопасное занятие, с учтетом того, что учитываются байты данных и наносекунды на переключение режимов Core<->User Mode.
На прикладном — сколько угодно.
Были у MS идеи в начале 200х сделать объектное API для OS. Звучало и выглядело красиво, идею долго вынашивали и пытались сделать, но оказалось что это весьма «дорого» и отказались.
Лучшее что смогли родить из этого — это .Net /.Net Core на прикладном уровне.
Hyper-V так себе решение проблем legacy — на него Windows 95 не
Да, решение не идеально. А минимальная Supported Windows client guest operating systems: Windows XP with Service Pack 3 (SP3).
Попробуйте железо под нее сейчас найти? или на новом железо эта ОС заведется?
Жизнь — боль :)
Нет, у Заказчика оказались правила не покрываемые ни одним инструментом, уговорить не удалось. Пришлось разобраться некоторыми нюансами компилятора & VS и написать свои. Оказалось проще дать, чем объяснять что голова болит :)
дело в том, что я хочу заниматься разработкой, а не настройкой и борьбой с окружением, и кому знать, как не MS, как лучше всего работать с их инструментами?
У меня не было проблем. Разворачивание инфраструктруры разработки (сети, сервера & виртуализация, MS AD + Exchange/CRM/Sharepoint/MS project, TSF & Buld & Test Agents) занимало максимум 40 часов с нуля (с момента распаковки серверов из коробок). Типовое время развертывания нового проекта — порядка 20..30 мин и дальнейшего поддерживания не требовалось (года полтора так точно), кроме как смена состава команды и, возможно, дополнительных отчетов или flow чуть «подточить».
Может у меня и было поэтому проблем, что я сам при случае могу натыкать админа носом и сам все развернуть.
Это не слой абстракции, а реализация связи компонентов ПО между собой.
МС накопили огромный технический долг, разгрести который они едва ли смогут в ближайшее время.
Не знаю какой долг они там накопили, но API периодически расширяется и обновляется, компоненты кода переписываются. То, что у МС legacy software как гиря на ногах — они для решения этой проблемы предпринимают некоторые действия. Hyper-V идет в комплекте с ОС уже лет как 7 — запускайте что нужно из бизнес решений.
Убрать работу с Legacy Software? У MS есть такой опыт — Windows Phone & Windows RT.
То, что пихают кучу «стразиков» в ОС — кто в этом не без греха? Я бы хотел иметь возможность биометрику в Андроиде иметь отдельными компонентами, но увы все идет «в сборе». Системы полатежей — также «в сборе»
Ну опять же, не надо нести чушь и все валить в одну кучу. Можно просто открыть документацию (это не больно и глаза у почитателя Linux от чтения документации Microsoft не выпадут):
А относительно Linux написано:
видать поэтому пришлось:
Т.е вписать в спецификацию NTFS fs кодировку — это хрень, вписать codepage=value для mount при монтировании FAT & VFAT filesystems, опять же согласно спецификации fs — это тоже хрень.
А вот тупо писать поток байт как имя файла, а потом пытаться договорится, что бы другая сторона попробовала прочитать — это очевидно прогресс? Ну ну…
И не будет никакого разрушения структур данных, когда вместо однобайтового $(U+24) в приложение прилетит какой 4-х байтовый символ (Musical Symbol G Clef если браузер не показывает)
NTFS хранит именование файловых объектов в Unicode UTF-16 кодировке.
Utf-8 была сделана из тех соображение, что наиболее часто применяемые символы языков отбражались кодом меньшего размера и имеет размерность от 1 до 4 байт на символ.
(hexadecimal) | (binary)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
Просто из соображений экономии места, и к файловым системам вообще никакого отношения не имеют.
Ну, с таким подходом к дизайну проблемы у файловых систем точно будут, хотя бы потому что нужно как-то расчитать место под структуры даных отвечающих за именование файловых объектов. При этом одинаково нормально должно хранить именования как китайском языке, так и русском и монгольском и ронго-гонго и египетские картуши. На вcем, что предусмотренно стандартом.
Файловая система отвечает только за сохрание, но никак не за отображение данных в иных программах. Некоторые файловые менеджеры на Windows не могут отобразить те имена, что показывает Explorer. 7Zip может так наименовать, что фиг кто потом показать может нормально имя файла. И ничего — файловая систем отлично работает.
У WinAPI обычно две версии функций — для ASCII именования и для Unicode UTF-16 именования. Другие варианты бывают редко и специфические. Началось это с Windows NT 3.51 и продолжилось в Windows 95. То, что консольный софт работает с кодовыми таблицами ASCII — ну что тут поделать. тяжелое legacy.
Не надо валить все в одну кучу.
А вот это лукавство :) Просто пример из жизни — есть склад. Провели инветариазацию, составили акт и все стороны подписали.
Через пол года опять проводят инвентаризацию — взяли последний акт и карточки складского учета, расчитали остатки. Сравнили с фактическими. Если сошлись, сделали новый акт. Предыдущий уничтожили и завели новые карточки складского учета. Никто не хранит на складе карточки учета и акты с момента постройки склада.
И такая системы работает столетиями.
Раскопали египеские пирамиды -и ученые по карточкам складского учета узнали кто сколько съел лепешек/зерна/мяса. Раскопали глиняные таблички — узнали налоги пару тысяч лет назад. Без всякого блокчейна.
Тут появляется «новая технология» и заявляет, что нужно было хранить папирусы с момента египетских пирамид, что бы узнать количество коз/золота в Египте 21 века, путем пересчета всего движения за последние 8..12 тысяч лет? Не смешно. Ей богу грустно…
Китайский вариант «Эшелона» получил апдейт? Полагаю что китайская разведка будет просто в восторге от новой фичи:)
А с чего это вы взяли что файловые системы заточены на UTF-8?
А это в каких частях системы? а-ля Блокнот или WinAPI или консоль или PowerShell? можете уточнить?
Microsoft Hyper-V Server 2016 is a stand-alone product that contains only the Windows hypervisor, a Windows Server driver model, and virtualization components.
Сомневаюсь что сюда он станет :) Ну, вопрос не в этом. :)
Очень сильно в этом сомневаюсь, ибо до сих пор не читал про такю политику и не слышал. Что апдейты серверов «складывали» инфраструктуру на сутки — видел раза 3. Да и вроде до сих пор патчи для серверов и клиентов были в разных пакетах, даже если фикс был один. Надо будет посмотреть.
А что есть несколько каналов для распространения обновлений — это факт.
Возможно Вас интересует что-то вроде этого Assign devices to servicing channels for Windows 10 updates и этого Windows Server Semi-Annual Channel overview
Вообще MS недавно анонсировала умный механиз, для уменьшения трафика — не пушить на конечные машины все что нужно или не нужно, а по умному смотреть нужет патч конечному пользователю или нет.
Производитель драйверов может просто не разрешить ставить драйвера в ОС, которую не протестировал. А в список не протестированных ОС может попасть серверная. Например, у вас терминальный сервер и никому в здравом уме не придет туда ставить карты для CAD ( вроде NVidia Quadro /AMD RadeonPro), зато есть для серверов виртуализации отдельные линейки (вроде AMD MxGPU). Нюансы есть.
Опять же — нету на клиентских ОС компонента вроде DNS сервер, KMS сервер, Hyper-V сервер и т.д.
Есть линейка Hyper-V сервер, так у нее GUI вообще нет, только консоль и API для удаленного управления.
Есть Nano Server — специально для использования внутри виртуальных машин. Очевидно, что у Nano Server не будет проблем с клиентом OneDrive и редиректом клиентских папок, потому что OneDrive там просто не станет.
У Windows 10 точно не будет проблем с обновлением SqlServer, только потому что Exchange обновил схему Active Directory и репликация стала колом, потому что один из серверов леса AD обновился чуть раньше, чем другие.
У серверов будет свой квест у клиентов свой:) Чудес не бывает :)
Сказки это безусловно хорошо, но читать мануалы еще лучше. Ядро у них то одинаковое, другое дело что используются разные преднастройки да приоритетов процессов, размеров буферов и и т.д. Всетаки профили нагрузки у них разные. Хотите настроить почти что угодно в Win — поковыряйте политики локальные. Драйвера? Так у них один DDK и одна модель драйверов, разве что по умолчанию для сервера требуются WHQL драйвера, но админ может туда все равно засунуть хоть самописную дрянь на свой страх.
Что из сервера по умолчанию убраны почти все стразики — это уже давно так, равно как и политика безопастности — «все что не разрешено — то запрещено».
Никто не ограничивает Вас в своем праве "… мочь и хотеть ..."
Но вы бы могли захотеть и смочь прочитать про
To create a symbolic link named MyDocs from the root directory to the \Users\User1\Documents directory, type:
mklink /d \MyDocs \Users\User1\Documents
Ну а что MS реализовала отдельное Shell приложение, включающее работу с Shell Links файлами и реализовав расширяемый интерфес в виде задекларированных COM интерфейсов этого приложения- это да. Это они конечно крупно облажались. Нужно было прямо в драйвера вшивать, сразу что бы даже не User Mode драйвер этот работал, а Core Mode.
А чего мелочиться что? Давайте и Word прямо в ядро ОС запихаем? Чего это Word файлы «черeз отвратительный COM открываются»?
Ну и в Linux запихать LibreOffice то в ядро? csv файлы тоже как-то убого открываются-показываются…
То-то на Ubuntu у меня потребовало права админа, когда я кусок системного софта ставил, что бы просто создавать файлы VmWare
Может просто чуть захотите и сможете почитать мануалы Windows, прежде чем в вентилятор кидать всякое-разное?
Порядка 400 USD была цена «синтетической ДНК» из опубликованного лет 5 назад исследования синтетической ДНК для признания в криминалистике. 10 USD сделать отпечатки пальцев. Тогда еще кто-то опубликовал снимок руки канцлера германии где четко были видны отпечатки пальцев в высоком разрешении с публичного мероприятия.
Так что сейчас найти и опознать человека — по ДНК, отпечаткам пальцев (их же в каждом телефоне понатыкано), появился FaceID (будет очень удобно искать по видеокамерам), по голосу — так половина населения уже отметилось в Сири/Алисе/Кортане/Алексе, которые «голос распознают» в облаках. Половина населения Земли уже добровольно сдали свою биометрику кому попало. Вторая половина на подходе. Лет через 5 — будут все «оцифрованы и опознаны», кроме мертвых.
Я бы за такое разработчикам руки бы вырвал. У меня, например, всегда данные и система хранятся на разных дисках/разделах именно с использованием этого механизма. Грохнулась винда или надо переставить — ты не заморачиваешься тем, что у тебя на системном разделе что-то важное есть.
Есть простое правило — сдохни сам, но данные клиента трогать нельзя и обязан сохранить их любой ценой.
Это функционал Windows Shell. к Win API имеет отношение не больше, чем Word/Excel COM API :) Вам никто не мешает сделать свой Shell для Windows.
Это в общем такое-же прикладаное ПО со своим API, так же как и API SqlServer.
Если уже пытаться ссылаться на COM API, то возможно Вы имели ввиду низкоуровневый функционал типа CoInitializeEx, CoCreateGuid, CoCreateInstanceEx, CoDisconnectContext, CoGetCurrentProcess, CoGetMalloc и т.д. который без сомнения используется в вышеперечисленном Вами ПО.
Подозреваю, что это будет что-то типа функций WNetUseConnectionA и WNetConnectionDialog. Посмотрел в SDK исходники. Но это, опять же не COM API.
Проблема с COM в том, что использовать его на уровне ядра OS — весьма дорогостоящее и не безопасное занятие, с учтетом того, что учитываются байты данных и наносекунды на переключение режимов Core<->User Mode.
На прикладном — сколько угодно.
Были у MS идеи в начале 200х сделать объектное API для OS. Звучало и выглядело красиво, идею долго вынашивали и пытались сделать, но оказалось что это весьма «дорого» и отказались.
Лучшее что смогли родить из этого — это .Net /.Net Core на прикладном уровне.
Да, решение не идеально. А минимальная Supported Windows client guest operating systems: Windows XP with Service Pack 3 (SP3).
Попробуйте железо под нее сейчас найти? или на новом железо эта ОС заведется?
Жизнь — боль :)
А не подскажете какое именно API? про DirectX -знаю.
Нет, у Заказчика оказались правила не покрываемые ни одним инструментом, уговорить не удалось. Пришлось разобраться некоторыми нюансами компилятора & VS и написать свои. Оказалось проще дать, чем объяснять что голова болит :)
У меня не было проблем. Разворачивание инфраструктруры разработки (сети, сервера & виртуализация, MS AD + Exchange/CRM/Sharepoint/MS project, TSF & Buld & Test Agents) занимало максимум 40 часов с нуля (с момента распаковки серверов из коробок). Типовое время развертывания нового проекта — порядка 20..30 мин и дальнейшего поддерживания не требовалось (года полтора так точно), кроме как смена состава команды и, возможно, дополнительных отчетов или flow чуть «подточить».
Может у меня и было поэтому проблем, что я сам при случае могу натыкать админа носом и сам все развернуть.
Это не слой абстракции, а реализация связи компонентов ПО между собой.
Не знаю какой долг они там накопили, но API периодически расширяется и обновляется, компоненты кода переписываются. То, что у МС legacy software как гиря на ногах — они для решения этой проблемы предпринимают некоторые действия. Hyper-V идет в комплекте с ОС уже лет как 7 — запускайте что нужно из бизнес решений.
Убрать работу с Legacy Software? У MS есть такой опыт — Windows Phone & Windows RT.
То, что пихают кучу «стразиков» в ОС — кто в этом не без греха? Я бы хотел иметь возможность биометрику в Андроиде иметь отдельными компонентами, но увы все идет «в сборе». Системы полатежей — также «в сборе»