Как стать автором
Обновить

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

Apache Maven это не только «менеджер компонентов», но и среда управления жизненным циклом приложений.
Я в курсе. Но он же и менеджер пакетов, что имеет непосредственное отношение к теме.
НЛО прилетело и опубликовало эту надпись здесь
Не знал. А поподробней?
У Microsoft есть подобие менеджера пакетов для Web: Microsoft Web Platform
А, вообще, идея хорошая и восстребованная.
Byldan, NMaven, Maven.net не смотрели?
Это все немного не то. Componento не занимается сборкой проектов, а является исключительно менеджером пакетов.
Нужен AppStore для .NET (а в перспективе для любых приложений для Windows)
С похожими условиями — платное размещение; проверка исходников программистами Microsoft; поиск, покупка, оплата кредиткой, установка и удаление приложений в пару кликов.

Я никогда не покупал столько софта, пока у меня не появился iPhone.
Таких апсторов есть тысячи.
Те же даунлоад.ком, да еще и без левого контроля цензуры.
1. такой аппстор всего один — у Apple
Репозитории Linux немного похожи на аппстор, своей централизованностью (весь софт в одной куче), кое-каким удобством установки софта (через стандартный менеджер пакетов). исходники проверяются (опенсорс всё-таки).
поиск, установка, удаление — всё есть.
денег нет. аудитория ограничена гиками и сисадминами.
разработчикам коммерческого прикладного софта там делать практически нечего.

2. тысячи файлопомоек и софтоотстойников — это просто какие-то сайты в сети.
их минус как раз в том, что их тысячи.
они не интегрированы в систему
нет единого менеджера софта
каждую программу нужно устанавливать по-своему, а удалять — как повезёт.
их использовать ничуть не проще, чем популярные варезники — так зачем платить больше? :)

вы действительно не видите разницы между AppStore Apple и тысячами апсторов?

за четыре года у меня никогда не возникало желания купить софт под мои Winmobile-коммуникаторы — искать софт и сайт продавца гуглем, читать отзывы по форумам, вручную скачивать и устанавливать, и при это ещё и платить (каким-нибудь странным способом). затратив точно такие же усилия я мог получить бeсплатно взломаную версию.

за полгода использования iPhone я купил пару десятков программ, просто потому, что купить нужную программу можно очень просто и удобно, в пару тыков пальцем в экран.

В этом сокровенный смысл AppStore — пользователям очень просто купить нужный софт.
Разработчикам очень просто выставить свой софт на продажу.
Apple — радуется росту популярности своих коммуникаторов и имеет (если вообще) небольшой процент с продаж софта.

Все в выигрыше.
А гики и бедные студенты могут и дальше пользоваться тысячами апсторов и устанавливать софт из Сидии или качать его с варезников.
AppStore — гавно :)

Почему? Да потому что централизация — это плохо… Плохо когда кто-то «один» решает чему быть а чему не быть. Аргумент — «им веднее» не прокатит…

Для примера: я могу в AppStore купить программу для подделки дипломов государственного образца? :)))
я согласен поступиться возможностью покупки программы для подделки дипломов государственного образца ради удобства использования централизованного аппстора с тысячами существующих в нём программ

Если я на определенном сервисе не могу купить нужную мне программу то удобство такого серсиса рано НУЛЮ! :)
чёрт, да ты тролль, однако
Так черт или троль? :)

И как бы я оргументировал что полезность AppStore для меня и кучи других людей равна НУЛУ :)))
Идея хорошая, украду для проекта. Спасибо.
какая именно идея? :)
Скачал и попопытался запустить:
D:\componento>componento.exe list /remote
octalforty Componento 1.0 Alpha 1
Copyright © 2009 octalforty studios

Unhandled Exception: System.ComponentModel.Composition.CompositionException: The
composition produced a single composition error. The root cause is provided bel
ow. Review the CompositionException.Errors property for more detailed informatio
n.

1) Could not load file or assembly 'System.Data.SQLite, Version=1.0.61.0, Cultur
e=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. An attem
pt was made to load a program with an incorrect format.

64-битная Windows?
Да
System.Data.SQLite — это такая хитрая штучка… Это т.н. mixed-mode assembly, которая, в отличие от fully managed, компилируется под строго определенную архитектуру процессора. Выхода два — либо найти ту же версию System.Data.SQLite.dll для x64, либо скомпилировать Componento только для x86. Для начала попробую поискать библиотеку.
Собственно, вот — специальная сборка для x64. Должная сработать, пробуйте.
Оп-ля, мой косяк — ошибся с версией.
Попробуйте еще раз — я обновил архив, все должно заработать.
Если запустить без параметров или с параметром /remote, то упадет с IndexOutOfRange- или NullReference-(убивать! убивать!)-Exception
В курсе, спасибо.
Еще вопрос: что делать, если я хочу у себя в компании развернуть репозиторий с артефактами, а не тянуть непонятно откуда (так в maven)? Как настроить ваше приложение?
Пока все просто: по умолчанию Componento пытается загрузить список компонентов отсюда. Так что если на локальном веб-сервере разместить файл packages.cpri, то componento list /source http:// localhost/ (/packages.cpri добавляется автоматически) должно сработать. Вот только устанавливать компоненты придется командой componento install mycomponent /source componento+http://localhost — префикс componento+ необходим, чтобы понимать, что это — репозиторий, а не что-то еще; непоследовательное же его (префикса) использование — издержки альфы.

Есть мысль организовывать хранилище компонентов в виде well-known структуры папок, но пока это на уровне идеи.
Проект интересный, потребность в менеджере пакетов есть, Maven тяжеловат и с .net не очень хорошо дружит.
Отметил бы два момента —
во-первых в build-process это все должно легко встраиваться — tasks для nant/msbuild сразу надо
во-вторых привыкших к визуальным средствам .net разработчикам объяснять что еще надо зависимости в отдельном файле описывать — … — хотелось бы просто скармливать те же файлы с проектами visual studio менеджеру пакетов, а он бы извлекал из них необходимые зависимости и скачивал библиотеки.

Да и кстати еще посмотрите на Ivy.
Слабо себе представляю нужду.
Если для Java есть EJB, то в .NET я не вижу такой единой спецификации компонентов и даже для Java это не так, потому что мир JavaBeans не ограничен. А так сваливать в кучу разнородных элементов с разными API? CodeProject, CodePlex, Sourcefourge имеют ещё и обсуждения где можно почитать об практике использования, pros и contras каждого, а здесь ну будет рейтинг в надцать попугаев, а оcтальное?
Хотя возможно для веб дивелопера это и имеет какой-то смысл, да и то в рамках одного движка, ведь не будут работать модули для DotNetNuke в SharePoint. А если порубать всё на сегменты, то изза небольшого количества компонентов для конкретного продукта смысл небольшой.
Как build-process в мире .NET не так уж принято перестраивать сторонние компоненты, а для личных проэктов msbuild достаточно мощная система.
Из тех примеров что с наскоку увидел с Maven это продукт для создания пакетов, но его нужда как раз особенностях java пакетов(упаковка в jar, метаданные, ресурсы, структура размещения файлов), в большинстве этого нужды в .NET нет. А для дистрибуции всё таки принят msi и другие системы распространения.
Ну вы видимо не совсем поняли зачем нужен проект. Задача менеджера пакетов — не в том чтобы выбрать нужную библиотеку (для этого — да, CodeProject, CodePlex n etc.), а в том чтобы для имеющегося проекта собрать все необходимые пакеты без лишних трудозатрат.

>Если для Java есть EJB

EJB в коматозном состоянии уже черт знает сколько лет, плохой пример.

>Как build-process в мире .NET не так уж принято перестраивать сторонние компоненты

Ну как вас сказать — не знаю что принято, а я большинство open-source библиотек, которые использую собираю из исходников изначально.

>Из тех примеров что с наскоку увидел с Maven это продукт для создания пакетов, но его нужда как раз особенностях java пакетов(упаковка в jar, метаданные, ресурсы, структура размещения файлов), в большинстве этого нужды в .NET нет. А для дистрибуции всё таки принят msi и другие системы распространения.

Аналог .jar для .NET — это не .msi отнюдь, а просто Assembly (.dll)

>Ну вы видимо не совсем поняли зачем нужен проект. Задача менеджера пакетов — не в том чтобы выбрать нужную библиотеку (для этого — да, CodeProject, CodePlex n etc.), а в том чтобы для имеющегося проекта собрать все необходимые пакеты без лишних трудозатрат.

Я посмотрел например maven, в мире .NET болшую часть действий исполнять просто не нужно, а действий вроде регистрации COM+ объектов в java мире просто не нужно. А msbuild уже достаточно мощный инструмент, нужно только отбросить предубеждение и покурить документацию. А тянуть привычки из других языков которые в .NET выглядят как излишество не вижу смысла.

> Ну как вас сказать — не знаю что принято, а я большинство open-source библиотек, которые использую собираю из исходников изначально.
Те некоторые opensource библиотеки что я использую, так или иначе имеют файл проэкта, так что в свой проэкт добавить вызов построения не составит труда. Это две-три строчки в msbuild файле.
/>


У любой сторонней библиотеки есть некоторый цыкл разработки, обычно не синхронизированный с вашим, потому перестраивать все зависимости у библиотек которые не меняются по меньшей мере неразумно. А перестроить раз в месяц в лучшем случае не думаю что большая проблема.

Идея хорошая.

Я думал такое сделать (если добавить новый Tab в Add Reference… в VS, будет совсем удобно, а это вполне возможно). Но тут важен сам сайт (репозиторий компонентов, etc). Это сделать интересно, но долго.

(мелочь: название не очень: octalforty Componento, скорее с Java ассоциируется).
Неплохая идея. Я на данный момент использую ClickOnce в надежде что каждый кто один раз найдет мое приложение может потом постоянно его обновлять. Иметь каталог — неплохо, особенно когда хочется просто побродить и поискать что интересного есть под .Net.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории