|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.07.2011, 11:07 | #1 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Линкер для .NET
|
08.07.2011, 12:00 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
хм, а почему линкер то?
ну начну с начала, dotNET приложения состоят из IL кода(возможно в смешении с обычным процессорозависимым), который есть ничто иное, как байт-код для виртуальной машины. dotNET использует JIT-компиляцию, изза чего приложения занимают больше памяти, чем обычные, но в тоже время скорость выполнения не страдает. за исключением времени нужного на проведение JIT(это или при старте приложения или же при первом использовании кода). в отличие от Java, MS сделали финт ушами, и dotNET-приложения/библиотеки являются обычными(на вид) exe/dll, работает это за счет того, что вся мета-информация и код, хранятся внутри exe, которая затем подгружается ядром dotNET(MSCOREE, единственный импорт таких библиотек), со всеми проверками на соответствие версии фреймворка требуемой.(*) при старте exe(загрузке dll) MSCOREE запускает _CorExeMain(_CorDllMain) которая ищет метаинформацию о фреймворке, если находит, то загружает нужную версию фреймворка(ну и дальше грузятся библиотеки классов). *: Код:
может чтото упустил, задавайте вопросы, отвечу в меру знаний. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
08.07.2011, 12:22 | #3 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Это все, конечно, очень бла-ародно. А что мешает линковать mscore.dll?
|
08.07.2011, 12:36 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
всмысле запихивать внутрь exe?
ну: 1)став частью exe он не сможет обновлятся. 2)я всетаки немного не верно сказал, mscoree лишь загрузкич для нужного фреймворка по сути. сами же библиотеки, для 4-го фреймворка здесь E:\WINDOWS\Microsoft.NET\Framework\ v4.0.30319 (clr.dll, clrjit.dll) да и библиотеки классов, тоже не включишь в себя(хотя в теории такое можно) 3)эти dll платформозависимые, тогда теряется смысл dotNET. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
08.07.2011, 13:06 | #5 | |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Новая версия моей программы всегда была бы скомпилирована с новыми библиотеками .NET. А так я вынужден использовать старый .NET 3.5, чтобы не заставлять пользователя качать обновление ради одной программы.
Цитата:
Microsoft в последнюю очередь волнует платформонезависимость. Да и пользователю проще выбрать ссылку для скачивания для Win или Linux, а не загружать обновление фреймворка ради одной программы. |
|
08.07.2011, 13:16 | #6 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
там и линкера то нету в общем то. в итоге ваш exe будет размером со все используемые библиотеки. это уж проще сам фреймворк скачать... одна из целей практически любого фреймворка это именно разделяемые ресурсы, dll, библиотеки классов, etc. Цитата:
флэш же обновляют. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
08.07.2011, 13:38 | #7 | ||
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Классы не являются цельными объектами. Оптимизатор может спокойно удалить неиспользуемые методы.
Цитата:
Цитата:
Upd. Для справки: последний фреймворк весит 48 МБ. Последний раз редактировалось ds.Dante; 08.07.2011 в 13:40. |
||
08.07.2011, 14:24 | #8 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
||
08.07.2011, 14:32 | #9 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
к сожалению тут решили за нас.(но это не ко мне претензии) Цитата:
опять же, если не заставляли выбирать этот фреймворк, то стоило заранее узнавать это. Цитата:
и вообще, а вам нужны новинки 4-ки то?(или для понта?) Цитата:
а то недогоняю, пользователи его обычно ставят ради каких то приложений. PS: про размер знаю, со своим GPRS то(правда безлимит) PPS: самое худшее в dotNET фреймворке, это то что что 4,0 не включает в себя предыдущие релизы.(у меня был прикол, что есть все кроме 3,5, который довольно много весит) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 08.07.2011 в 14:34. |
||||
08.07.2011, 14:36 | #10 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Ну хорошо у скольких пользователей на компах стоит 4-й Фреймворк? И оно им надо чего-то там доустанавливать?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net | gammaray | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 2 | 22.11.2010 17:36 |
Компоненты для Delphi 8 for .NET | KyzDmitry | Компоненты Delphi | 0 | 07.07.2009 15:18 |
Линкер выдает ошибку Error: Fixup overflow | Terasbetoni | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 27.04.2009 13:03 |