Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/84: Рейтинг темы: голосов - 84, средняя оценка - 4.61
21 / 20 / 7
Регистрация: 17.02.2011
Сообщений: 318
1
.NET 4.x

Пожалуйста объясните, что такое сборка на простом примере

11.04.2012, 07:21. Показов 17150. Ответов 12
Метки нет (Все метки)

Здравствуйте товарищи специалисты. Почитал статейки про сборки, и ни как в голове не укладывается, что это такое. Вот например есть ехе файл моей программы, у него есть ресурс в виде иконок. Говорят что это уже сборка, тогда из чего она состоит?
Мне кажется что это ехе файл, с точкой входа и описанием необходимых библиотек (с описанием GUI). Но сама сборка называется сборкой только в момент работы ее в памяти. то есть области памяти, в которой лежит мой экзешник и скопированные в эту область памяти необходимые мне компоненты.

И кстати, каком образом моя программа находит необходимые мне компоненты по GUI, ведь записей в реестре больше не делается?

Поправте меня пожалуйста если я ошибаюсь.
P.S. Пожалуйста не отсылайте меня на читание статеек.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2012, 07:21
Ответы с готовыми решениями:

Объясните, пожалуйста, создание экземпляра класса в примере
Добрый день, имеем пример кода: using System; // Абстрактный класс может быть унаследован от...

Что такое логические операции (желательно объяснение на примере)
Оператор Значение & И | ИЛИ ^ Исключающее ИЛИ && Укороченное И || Укороченное ИЛИ ! НЕ...

Делегаты и их применение, желательно на простом примере
Я читаю книгу М. Фленов - Библия C# и дошел до темы "Делегат" но не как не могу понять (два раза...

Что такое стек, объясните подробно на примере Delphi
Ну в общем я объявляю указатель на переменную например a: integer; ukaz: ^a; понимаю что для...

12
6032 / 3440 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
11.04.2012, 10:24 2
Цитата Сообщение от leonidSDF Посмотреть сообщение
Пожалуйста не отсылайте меня на читание статеек.
ну тогда сюда выложу. Вот что пишет MSDN
Сборки образуют базовую единицу развертывания, управления версиями, повторного использования, областей действия активации и разрешений безопасности для приложений на основе .NET. Сборки принимают форму исполняемого файла (EXE) или файла библиотеки динамической компоновки (DLL); они являются стандартными блоками платформы .NET Framework. Среда CLR получает от них сведения, необходимые для реализации типов. Сборку можно представить как коллекцию типов и ресурсов, формирующих логическую единицу функциональности и собранных для совместной работы.

Сборки могут содержать один или несколько модулей. Например, крупные проекты могут быть спланированы таким образом, чтобы несколько разработчиков работали каждый над своим модулем, а вместе эти модули образовывали одну сборку. Дополнительные сведения о модулях см. в разделе Практическое руководство. Создание многофайловой сборки.

Сборки имеют следующие свойства.

-Сборки реализованы как EXE- или DLL-файлы.

-Сборки можно поместить в глобальный кэш сборок, чтобы обеспечить их использование несколькими приложениями. В глобальный кэш сборок могут быть включены только сборки со строгими именами. Дополнительные сведения см. в разделе Сборки со строгими именами.

-Сборки загружаются в память только по мере необходимости. Если сборки не используются, они не загружаются. Благодаря этому сборки обеспечивают эффективное управление ресурсами в крупных проектах.
....
немного обобщая можно сказать, что сборка это приложение состоящее из нескольких исполняемых файлов (модулей), один из них exe, остальные dll.

Добавлено через 2 минуты
на всякий случай, если все-таки захочется ещё почитать, вот ссылка http://devoid.com.ua/csharp/en... ework.html
2
21 / 20 / 7
Регистрация: 17.02.2011
Сообщений: 318
11.04.2012, 10:45  [ТС] 3
Это я и прочитал...
...Ну тогда так.
Я уже что-то для себя понял исходя из этих статей, поясните? правильно ли я все понял. или в чем-то ошибся.
Мой проект, помимо jit компилятора использует DLL библиотеки Net frameWork. Когда пытаешься перейти к определению каких нить методов, он указывает даже файлы этих dll. И исходя из этого, все таки, что это такое, сборки, сборкой являются эти dll, которые запускаются с моим файлом. Мой файл без dll. Или exe+dll, которые требует мое приложение и скомпонованное в памяти, и запущенное из памяти.
0
540 / 541 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
11.04.2012, 11:04 4
Сборка (Assemblies) - самостоятельный, функциональный модуль, "логическая" dll (dll, динамически подгружаемая библиотека - windows стандарт программных модулей). Сборки бывают двух типов - статические и динамические. Статическая сборка физически состоит из одного или нескольких файлов. Эти файлы объединены манифестом . Манифест - часть сборки, декларирующая метаданные , то есть описывающая сборку и параметры для ее использования.
Если сборка состоит из одного файла, манифест встраивается в PE (portable executable) код, формируя однофайловую сборку. Если же сборка не ограничена одним фалом, то вы можете как включить манифест в один из файлов с PE кодом, так и разместить его в отдельном файле.Среда выполнения выполняет программный код, только если с ним ассоциировани манифест. Сборка может иметь только одну точку входа (Main, WinMain, DllMain).
Читать полностью - Assemblies (сборки)
1
21 / 20 / 7
Регистрация: 17.02.2011
Сообщений: 318
11.04.2012, 12:23  [ТС] 5
Что вы из цитатников мне вырезки даете, я это и сам прочитал.
Вот скажите, мой проект это однофайловая сборка, но он также использует файл платформы NET, какую ни будь DLL, этот dll также входит в понятие сборки к моему файлу?
0
Эксперт .NET
15555 / 11804 / 3097
Регистрация: 17.09.2011
Сообщений: 19,716
11.04.2012, 12:46 6
Цитата Сообщение от leonidSDF Посмотреть сообщение
мой проект это однофайловая сборка, но он также использует файл платформы NET, какую ни будь DLL, этот dll также входит в понятие сборки к моему файлу?
Нет, в вашу сборку этот файл не входит, но ваша сборка зависима от этой DLL.
2
21 / 20 / 7
Регистрация: 17.02.2011
Сообщений: 318
11.04.2012, 15:12  [ТС] 7
Спасибо. Тогда получается моя сборка зависит от сборки .NET которая и представляет из себя сборку dll?
0
Эксперт .NET
15555 / 11804 / 3097
Регистрация: 17.09.2011
Сообщений: 19,716
11.04.2012, 15:50 8
Цитата Сообщение от leonidSDF Посмотреть сообщение
получается моя сборка зависит от сборки .NET
Да.

Цитата Сообщение от leonidSDF Посмотреть сообщение
которая и представляет из себя сборку dll?
dll - часть сборки.
2
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 47
01.10.2018, 17:20 9
Можно сделать проверку на использование собственной сборки?
ну что то типа if (сборка используется) { выводим это} else { выводим другое}

К чему я это спрашиваю, если сделать программку, и какой -то функционал вы не успели доделать, или планируете добавить его в след обновление... просто делаем какую то надпись типа" будет реализовано в след году", а после "года" мы дорабатываем сборку, и копируем в папку с приложением, новую сбоку с заменой прежней? Так это выглядит в программах?
0
1405 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,321
Записей в блоге: 1
02.10.2018, 11:40 10
Цитата Сообщение от linkel Посмотреть сообщение
если сделать программку, и какой -то функционал вы не успели доделать
использовать
C#
1
2
3
4
#if Debug
//код который надо реализовать
#endif
// Код который уже реализован
тогда у вас будет компилится в дебаг версии один код а в релизе другой.
1
Администратор
Эксперт .NET
13970 / 11331 / 4592
Регистрация: 17.03.2014
Сообщений: 22,912
Записей в блоге: 1
02.10.2018, 13:01 11
linkel, если хочется иметь возможность сделать апгрейд программы именно путем замены сборки, то делаешь библиотеку с методом который вызывает основная сборка в котором пишешь код вывода сообщения "будет реализовано в след году". Далее вносишь изменения в эту сборку и когда она готова заменяешь ее. При условии что имя сборки, ее версия и имена типов останутся без изменений, основная сборка подхватит замену без всяких проблем.
1
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 47
02.10.2018, 18:15 12
Цитата Сообщение от V_Monomax Посмотреть сообщение
использовать
C#
1
2
3
4
#if Debug
//код который надо реализовать
#endif
// Код который уже реализован
тогда у вас будет компилится в дебаг версии один код а в релизе другой.
Спасибо за ответ!

если у меня кода вообще нет, есть только текст?

Просто хотел узнать реализацию процесса обновления приложений.

Добавлено через 37 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
linkel, если хочется иметь возможность сделать апгрейд программы именно путем замены сборки, то делаешь библиотеку с методом который вызывает основная сборка в котором пишешь код вывода сообщения "будет реализовано в след году". Далее вносишь изменения в эту сборку и когда она готова заменяешь ее. При условии что имя сборки, ее версия и имена типов останутся без изменений, основная сборка подхватит замену без всяких проблем.
а каким путем еще возможно апгрейд программы? вот приложения которые используют большинство, как они обновляются?
Я думал заменой сборок)

Ps просто я не программист, все изучаю сам)
0
Администратор
Эксперт .NET
13970 / 11331 / 4592
Регистрация: 17.03.2014
Сообщений: 22,912
Записей в блоге: 1
02.10.2018, 18:29 13
Цитата Сообщение от linkel Посмотреть сообщение
а каким путем еще возможно апгрейд программы? вот приложения которые используют большинство, как они обновляются? Я думал заменой сборок)
С помощью программы установки или встроенного автообновления. В любом случае файлы приложения заменяются на обновленные.

Цитата Сообщение от linkel Посмотреть сообщение
Ps просто я не программист, все изучаю сам)
Программст это тот кто пишет программы. Как он этому научился роли не играет.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2018, 18:29

Объясните на простом примере пошагово, как решать задачу на Delphi?
Пожалуйста объясните на простом примере пошагово, как решать задачу на языке Delphi.

Объясните пожалуйста, что такое i, j, k в программе
#include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include "locale.h" #include...

Объясните пожалуйста что такое многофайловый проект
Объясните пожалуйста что такое многофайловый проект. Гуглила, толком ничего не нашла. Есть вот...

Объясните, пожалуйста, понятно, что такое энтропия
Желательно с примерами. А то в интернете найденные мной определения не очень понятны.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru