Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Вниз

Net 2.0 и все-все-все   Найти похожие ветки 

 
DiamondShark ©   (2005-11-07 18:35) [0]

Пошли в тираж
Net 2.0
SQL 2005
и, кажется, VS2005

Какие мысли по поводу?


 
Джо ©   (2005-11-07 18:38) [1]


> Какие мысли по поводу?

Скоро версий фреймворков будет как собак нерезанных.


 
Piter ©   (2005-11-07 18:52) [2]

DiamondShark ©   (07.11.05 18:35)
Какие мысли по поводу?


Delphi относительно скоро придет пипец, MS все подберет под себя.


 
cyborg ©   (2005-11-07 18:54) [3]


> [2] Piter ©   (07.11.05 18:52)

Уточни "скоро" это сколько, лет 700-800? :)


 
Piter ©   (2005-11-07 18:56) [4]

Народ! Я понимаю что в теме оффтоп - но зато в топе подержу :)

Объясните - каким образом идет взаимодействие с .NET?

Ну вот например с WinAPi - через DLL, все понятно. Вызываешь функции Windows API и работаешь. Они если надо вызыват другие функции и т.д.

Окна создаются экспортируемой функцией CreateWindow, например.

А как в .NET? Язык я так понимаю может быть любой. Тоже на библиотеках, DLL все построено? То есть, это фактически просто новая версия WinApi, просто более "логичные", "продуманные" функции или как?

Разъясните плиз на примитивном уровне :)


 
Piter ©   (2005-11-07 18:58) [5]

cyborg ©   (07.11.05 18:54) [3]
Уточни "скоро" это сколько


года 3-4. Потом останутся только старые проекты, которые будут поддерживаться. Ну возможно более-менее активно все это проживет еще лет 6-7.


 
cyborg ©   (2005-11-07 18:59) [6]


> [5] Piter ©   (07.11.05 18:58)

Так и запишем! :)


 
DiamondShark ©   (2005-11-07 19:20) [7]


> Piter ©   (07.11.05 18:56) [4]

Ты издеваешься, признайся.


> Объясните - каким образом идет взаимодействие с .NET?

Взаимодействие кого с .НЕТ?


 
Igorek ©   (2005-11-07 19:51) [8]


> SQL 2005
> и, кажется, VS2005

Да Студия тоже вышла.

> Какие мысли по поводу?

Если, они такие же глючные как беты, то есть мысля, что покупать не стоит.

> Net 2.0

А вот второй фреймворк - это хорошо. Только если он вылизанный и долго продержится без апдейта. Иначе - маздай недоношеные реализации!

Плохо только, что нету доков хороших и книг.


 
Sergey Masloff   (2005-11-07 20:08) [9]

>А вот второй фреймворк - это хорошо. Только если он вылизанный и долго >продержится без апдейта.
А вот что он с первым несовместим это совсем нехорошо. А если через полгодика третий появится...

А 2005 студия пока (второй день) в глюках не замечена. Если не считать того что я в ветке про NET написал


 
Piter ©   (2005-11-07 20:13) [10]

DiamondShark ©   (07.11.05 19:20) [7]
Ты издеваешься, признайся


нет

DiamondShark ©   (07.11.05 19:20) [7]
Взаимодействие кого с .НЕТ?


взаимодействие исполняемого кода с функциями .NET
Или что там вместо них?

Я ведь не разбираюсь - поэтому и спрашиваю.
Более того - спрашиваю уже не первый раз, никто еще не ответил почему-то :)

Я привел аналогию - каким образом "обычный" код взаимодействует с системой?

Есть понятие библиотек, DLL. Они грузятся в адресное пространство процесса, есть соглащения о вызовах, поэтому ты можешь из Delphi вызывать функции DLL библиотеки, написанной на C.

Таким образом и реализуется функционал.

Например, хочу создать окно - вызываю DLL функцию CreateWindow.

А каким образом все это в .NET реализовано? Там же тоже есть интерфейсы, окна? Вот как например создать окно с помощью .NET?
Тоже вызвать какую-то функцию и получить какой-то дескриптор окна?
А как вызов функций реализован, тоже по технологии библиотек или как?

Вот что я спрашиваю... ну неужели непонятно...


 
pasha_golub ©   (2005-11-07 20:18) [11]


> DiamondShark ©   (07.11.05 19:20) [7]
>
>


Я тоже не понимаю этого. Если честно, потому что не читал. Но если кто на пальцах покажет, буду премного благодарен. Авось, не все так плохо как я себе представляю.

Ну, а ежели кто показать не хочет, а поплевать на нас с Питером хочет, милости прошу. :0)


 
Gero ©   (2005-11-07 20:21) [12]


> [5] Piter ©   (07.11.05 18:58)

Ветку обязательно сохряню и покажу тебе ее через 3-4 года :)


 
pasha_golub ©   (2005-11-07 20:24) [13]


> Gero ©   (07.11.05 20:21) [12]
>
>

Полнится людьми добрыми земля русская. :0)


 
Piter ©   (2005-11-07 20:25) [14]

Gero ©   (07.11.05 20:21) [12]

а что такого? Я знаю о .NET чисто поверхностно, я не ОБЪЯСНЯЮ КАК, я СПРАШИВАЮ как?

Если я сказал где-то НЕВЕРНО - пожалуйста, цитату в студию.

Имхо, все что я утверждал - это все абсолютная правда.

Или ты удивляешься тому, что я не знаю о .NET?

А что здесь такого? Я программлю в D7, видел D2005 только один раз 10 минут, .NET"ом не интересуюсь в общем, так откуда мне знать?

Или я чего то не увидел?

Я также не имею вообще представление о технологии Corba - потому что никогда с ней не работал. А также о всяких mts серверах.
Вот ты много о них знаешь?

Я думаю, вообще ничего. И что удивительного, если ты о них спросишь?

В общем, я не понял вашего удивления :)


 
Piter ©   (2005-11-07 20:26) [15]

Gero ©   (07.11.05 20:21) [12]

ой, извини пожалуйста. Мы с Пашей вообще не о том подумали, а ты оказывается цитируешь совсем не тот пост :)


 
Piter ©   (2005-11-07 20:27) [16]

Gero ©   (07.11.05 20:21) [12]
Ветку обязательно сохряню и покажу тебе ее через 3-4 года


тогда ок, сохраняй, показывай :)


 
pasha_golub ©   (2005-11-07 20:35) [17]


> Piter ©   (07.11.05 20:27) [16]


Минь, не умрет Делфи через 3-4 года... Такое не умирает, такое приспосабливается. :0)


 
Sergey Masloff   (2005-11-07 20:37) [18]

Piter ©   (07.11.05 20:13) [10] , pasha_golub ©   (07.11.05 20:18) [11]
Ни фига я не понимаю. Но если телепатор меня не подводит - и вас интересует взаимодействие кода на разных языках - то проблем нет.
 Есть сборки в которых реализованы разные классы. Да сами сборки физически это dll. В них кроме самих классов содержатся и метаданные то есть описание этих классов. На основании этих метаданных и осуществляется обращение к реализации. Так как метаданные описываются формально то прочитать их и соответствующим образом обработать можен любой язык реализованый в .нет.

то есть  потом берешь и пишешь

class MyHello
{
 public static void Main()
 {
   System.Console.WriteLine("Достал этот хелловорлд!");
 }
}


То есть явно указываешь что в пространстве имен System нужно найти описание класса Console в нем найти описание функции WriteLine() и вызвать ее с параметром.

В одной сборке может быть описано несколько пространств имен.


 
pasha_golub ©   (2005-11-07 20:42) [19]


> Sergey Masloff   (07.11.05 20:37) [18]


> Но если телепатор меня не подводит - и вас интересует взаимодействие
> кода на разных языках - то проблем нет.

Скорее всего, что так...

Вопрос по ответу, если можно...

Разные языки, по идее, должны по-разному работать с метаданными... Не работать, а представлять, использовать что-ли... Значит ли это что какой-то из языков будет использовать все преимущества, в то время как другие будут поддерживать только "основу"?

Зы Пишу из собственного мироощущения, посему прошу просить за глупость. :0) Просто напрашивается какая-то аналогия с ADO, BDE...


 
эльф пьяного образа   (2005-11-07 20:44) [20]

Так, (шелестит страницами), открываем Рихтура, кхе-кхе, чего пишут, а вот

.NET Framework состоит из двух частей: общеязыковой исполняющей среды (common language runtime, CLR) и библиотеки классов Framework Class Library (FCL).

Microsoft реализовала CLR и FCL для различных версий Windows, включая
Windows 98/98 Second Edition/Me/NT 4/2000, 32- и 64-разрядные версии Windows...

Как я уже говорил, управляемые модули содержат метаданные и код на промежуточном языке (IL). II, — не зависящий от процессора машинный язык, разработанный Microsoft после консультаций с несколькими коммерческими и учебными институтами, специализирующимися на разработке языков и компиляторов.
IL — язык более высокого уровня в сравнении с большинством других машинных языков. Он позволяет работать с объектами и имеет команды для создания и инициализации объектов, вызова виртуальных методов и непосредственного мани пулирования элементами массивов. Он даже имеет команды генерации и захвата исключений для обработки ошибок. IL можно рассматривать как объектно-ори ентированный машинный язык.
Обычно разработчики программируют на высокоуровневых языках, таких как
С# или Visual Basic. Компиляторы этих языков создают IL-код. Между тем такой код может быть написан и на языке ассемблера, и Microsoft предоставляет ассемблер IL — ILAsm.exe.


а дальше чего, ууу дальше интересно. Прямо жаба.


 
Sergey Masloff   (2005-11-07 20:47) [21]

pasha_golub ©   (07.11.05 20:42) [19]
Есть некий аналог ассемблера - IL. В нем можно реализовать все.
Есть некое обязательное ядро которое ОБЯЗАНЫ реадизовать все языки для .NET ну и соответственно есть мелкие нюансы которые поддержаны в одних языках и не поддержаны в других. То есть у них всех есть некое общее подмножество. Оно только часть общего множества но часть очень большая.


 
Джо ©   (2005-11-07 20:49) [22]

[19] pasha_golub ©   (07.11.05 20:42)
>  Значит ли это что какой-то из языков будет использовать
> все преимущества, в то время как другие будут поддерживать
> только "основу"?

Угу, именно. Не все языки в полной мере поддерживают все возможности CLR. Но в таких случаях всегда можно извернуться, написав фрагменты кода прямо на IL.


 
pasha_golub ©   (2005-11-07 21:12) [23]


> Sergey Masloff   (07.11.05 20:47) [21]


> Джо ©   (07.11.05 20:49) [22]

Спасиб, ребят. Одно смущает. Это будет работать только из под Винды. А почему бы это не опустить на более низкий уровень... Машинный или физический, называйте как хотите. Прав ли я?


 
Sergey Masloff   (2005-11-07 21:18) [24]

pasha_golub ©   (07.11.05 21:12) [23]
> А почему бы это не опустить на более низкий уровень... Машинный или >физический, называйте как хотите. Прав ли я?
А на фига? Наоборот так есть возможность переноса этого хозяйства в будущем на другие платформы. Вернее уже есть - MONO правда не знаю насколько функционально все это.
 А так на самом деле там же код для процессора генерится прямо на стадии выполнения. И кешируется. То есть когда ты функцию вызываешь второй раз выполнится уже ранее сгенерированый код без пенальти по производительности. А код этот (теоретически) может быть процессороспецифичный. Вобщем вроде и правда ниже не нужно опускать.


 
Джо ©   (2005-11-07 21:20) [25]

[23] pasha_golub ©   (07.11.05 21:12)

Да, в принципе, никто не мешает сделать процессор, понимающий IL "напрямую". Очень возможно, что рано или поздно это будет осуществлено. Например, изначально были процессоры понимающие язык PostScript, а он ведь тоже не столь уж примитивен.
Собственно, примитивность набора комманд в микропроцессорах - это вечный бич разработчиков компиляторов.

Мои рассуждения в этой области конечно-же звучат по-дилетантски, но, надеюсь, что слишком большой ереси я не высказал :)


 
Piter ©   (2005-11-07 21:31) [26]

Sergey Masloff   (07.11.05 20:37) [18]
и вас интересует взаимодействие кода на разных языках


фактически да - именно так. В том числе взаимодействие с системой, но так как система тоже написана на каком-то языке, то вопрос именно о взаимодействии между языками, между исполняемыми кодами, сгенерированными различными компиляторами.

В WinApi это взаимодействие было на уровне вызова процедур и функций с помощью соглашений о вызовах, интересно было про .NET послушать...


 
Piter ©   (2005-11-07 21:53) [27]

Sergey Masloff   (07.11.05 20:37) [18]

вот такие вопросы возникли, если можно:

1) насколько знаю, .NET это сейчас вроде прослойка между программой и WinApi опять же. То есть, весь функционал .NET сводится в конце концов к вызову WinApi функций.

Вроде менять этого не собираются. То есть, .NET это просто очередной, удобный (может быть) инструмент.

То есть, априори программы, написанные на .NET будут уступать в производительности WinApi аналогам?

2)
Sergey Masloff   (07.11.05 20:37) [18]
То есть явно указываешь что в пространстве имен System нужно найти описание класса Console в нем найти описание функции WriteLine() и вызвать ее с параметром


А можно поподробнее?
Опять же, с WinApi все понятно - библиотека проецируется в ВАП процесса, ты вызывваешь функцию - а фактически передаешь управление по определенному адресу, исполнется код библиотеки в твоем адресном пространстве.

А что насчет .NET? Тоже самое фактически? .NET библиотеки также грузятся в ВАП твоего процесса?

3) И правильно ли я понял общую идеологию - если обычные DLL - это совместимость на уровне функций и процедур (из одного языка можно вызывать функции, реализованные на другом языке), то .NET - это совместимость на уровне объектов?

То есть, я допустим загружу DLL, экспортирую из нее класс TWindowsClass и реализую своего наследника - TMyClass, который, например, фактически может перекрывать виртуальные функции, которые написаны вообще на другом языке?

4)
Sergey Masloff   (07.11.05 20:47) [21]
Есть некий аналог ассемблера - IL


То есть, Delphi под .NET уже генерирует код не для x86 процессоров, то есть там нету уже: mov EDX, EBX :)

А генерирует IL код, верно? И в этом коде уже нет понятия регистров, стека и т.д. Зато есть понятия классов, например?

5) Джо ©   (07.11.05 20:49) [22]
написав фрагменты кода прямо на IL


а можно пример IL кода? Как он будет выглядеть? :)
Просто жутко интересно :)

Вот опять же ассемблер в "людском виде" это те же:

mov EBX, EDX

Простейшая операция копирования. А какими понятями в IL оперируют?

Sergey Masloff   (07.11.05 20:47) [21]
Есть некий аналог ассемблера - IL. В нем можно реализовать все


ну как все? Видимо, далеко не все.
Как я понимаю, те же драйвера разве будут писаться на IL?


 
Piter ©   (2005-11-07 21:59) [28]

Sergey Masloff   (07.11.05 21:18) [24]
А так на самом деле там же код для процессора генерится прямо на стадии выполнения. И кешируется


опять же, правильно ли я понимаю - будет некий EXE"шник - это сама программа с IL кодом. После первого запуска будет сгенерирован уже EXE с машиными кодами дял конкретного процессора?

А как это реализовано? Где уже непосредственно хранится этот второй EXE? В том же каталоге, что и сама IL-программа?

Или компиляция происходит при каждом сеансе Windows?

А не слишком ли долго будет происходить компиляция таких монстров, например, как 3D-Studio Max? (если будет написан на .NET)

И как по объему? То есть, у меня есть IL-программа, а при этом будет сгенерирована машинная программа для моего процессора, которая будет еще где-то занимать место на винчестере, даже больше может быть оригинального IL файла. Так?


 
iZEN ©   (2005-11-07 22:02) [29]


> DiamondShark ©   (07.11.05 18:35)
>
> Пошли в тираж
> Net 2.0
> SQL 2005
> и, кажется, VS2005
> Какие мысли по поводу?


Всё, что есть нового в языке C# 2.0 уже было давно в J2SE 1.5. Ничего нового.

VS2005? А нафига? Есть мультиплатформенные Eclipse и IDEA, в которых работа с кодом гораздо лучше организована и нет завязки на системные службы.

SQL 2005? Зачем? Есть же бесплатный Oracle 10g Express. ;))


 
Piter ©   (2005-11-07 22:06) [30]

Блин, и еще один вопрос у меня :)

эльф пьяного образа   (07.11.05 20:44) [20]
.NET Framework состоит из двух частей: общеязыковой исполняющей среды (common language runtime, CLR) и библиотеки классов Framework Class Library (FCL).


теперь вроде немножко догоняю...

А ведь получается можно сделать так - написать на обычном Delphi код, который сможет вызывать функции .NET? Ну чисто теоретически?


 
Sergey Masloff   (2005-11-07 22:06) [31]

>1) насколько знаю, .NET это сейчас вроде прослойка между программой и >WinApi опять же. То есть, весь функционал .NET сводится в конце концов >к вызову WinApi функций.
>
>Вроде менять этого не собираются.

Вроде бы собираются

>То есть, априори программы, написанные на .NET будут уступать в >производительности WinApi аналогам?
Не совсем. Там код процессорный генерится при первом вызове и кешируется. Говорю ж - вызвал функцию 1 раз потерял время на работу "компилятора" который код для x86 сгенерил. Второй вызов - уже бесплатно. Отработает ранее сгенерированный код.

>Опять же, с WinApi все понятно - библиотека проецируется в ВАП >процесса, ты вызывваешь функцию - а фактически передаешь управление >по определенному адресу, исполнется код библиотеки в твоем адресном >пространстве.
Ну там на основании этого описания генерится код который выполняется точно там же. Тут без разницы

>А что насчет .NET? Тоже самое фактически? .NET библиотеки также >грузятся в ВАП твоего процесса?
Что значит грузятся? целиком конечно не грузятся. Грузится сгенерированый код твоего приложения.

>то .NET - это совместимость на уровне объектов?
Ну что-то в этом роде. И не только объектов - типы данных тоже унифицированы. Не надо ломать голову что там за lptcstr и др.

>TMyClass, который, например, фактически может перекрывать виртуальные >функции, которые написаны вообще на другом языке?
Да

>То есть, Delphi под .NET уже генерирует код не для x86 процессоров, то >есть там нету уже: mov EDX, EBX :)
На стадии выполнения есть на стадии загрузки можно сказать нет

>А генерирует IL код, верно? И в этом коде уже нет понятия регистров, >стека и т.д. Зато есть понятия классов, например?
Только стек и есть. Все параметры передаются через стек регистров нет

>а можно пример IL кода? Как он будет выглядеть? :)
>Просто жутко интересно :)

.method private hidebysig static void  Main() cil managed
{
 .entrypoint
 .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
 // Code size       26 (0x1a)
 .maxstack  8
 IL_0000:  nop
 IL_0001:  call       void [System.Windows.Forms]System.Windows.Forms.Application::EnableVisualStyles()
 IL_0006:  nop
 IL_0007:  ldc.i4.0
 IL_0008:  call       void [System.Windows.Forms]System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool)
 IL_000d:  nop
 IL_000e:  newobj     instance void SimpleWindowsApp.MainForm::.ctor()
 IL_0013:  call       void [System.Windows.Forms]System.Windows.Forms.Application::Run(class [System.Windows.Forms]System.Windows.Forms.Form)
 IL_0018:  nop
 IL_0019:  ret
} // end of method Program::Main


>ну как все? Видимо, далеко не все.
Все описаное спецификацией .NET

>Как я понимаю, те же драйвера разве будут писаться на IL?
врядли ;-))


 
Джо ©   (2005-11-07 22:07) [32]


>  [27] Piter ©   (07.11.05 21:53)

Вот HelloWorld на IL:

.assembly HelloWorld
{
}

.namespace _2
{
.class private auto ansi beforefieldinit MainClass
{
 .method public hidebysig static void Main(string[] args) cil managed
 {
  .entrypoint
  .maxstack  1
  ldstr      "Hello World!"
  call       void [mscorlib]System.Console::WriteLine(string)
  ret
 }
}
}


 
Agent13 ©   (2005-11-07 22:24) [33]

Хорошая новость: релизы Express версий целый год будут доступны для скачивания бесплатно, как и беты, хотя изначально предполагалось просить за них по 50 баксов. Непонятна одна вещь, цитирую мелкомягкое чаво(http://msdn.microsoft.com/vstudio/express/support/faq/default.aspx#pricing):

11. You said “free for one year” — what does that mean, exactly? Will you be charging for this later?
We originally announced pricing of Visual Studio Express at US$49. We are now offering Visual Studio Express for free, as a limited-in-time promotional offer, until November 6, 2006. Note that we are also offering SQL Server 2005 Express Edition as a free download, and that this offer is not limited to the same promotional pricing period as Visual Studio Express.


Так вот что это за расплывчатый ответ? Я надеюсь, если эту студию поставить, она не загнётся через год? :)


 
jack128 ©   (2005-11-07 22:26) [34]

Piter ©   (07.11.05 21:53) [27]
насколько знаю, .NET это сейчас вроде прослойка между программой и WinApi опять же. То есть, весь функционал .NET сводится в конце концов к вызову WinApi функций.


По твоему все программирование сводится к вызову WinAPI ?? Это не так.
Piter ©   (07.11.05 21:53) [27]
То есть, априори программы, написанные на .NET будут уступать в производительности WinApi аналогам?

нет. il- компилятор сможет НА ЛЕТУ скомпилировать программу с учетом текущей конфигурации компа. На пример у тя стоит Пень4, а у мя - Атлон64. Одна и таже .NET-программа у нас будет выполнятся по разному с учетом особенностей этих процессоров.  По крайней мере в теории.
Piter ©   (07.11.05 21:59) [28]
Где уже непосредственно хранится этот второй EXE?

В памяти. Насколько я знаю при повторном запуске компиляция повторяется..НО не что не мешает записывать скомпилированный код прямо в сам EXE-файл

Piter ©   (07.11.05 21:59) [28]
А не слишком ли долго будет происходить компиляция таких монстров, например, как 3D-Studio Max?

Компилируется не вся программа, а только та её часть которая должна сейчас выполняться.
Piter ©   (07.11.05 21:59) [28]
И как по объему? То есть, у меня есть IL-программа, а при этом будет сгенерирована машинная программа для моего процессора, которая будет еще где-то занимать место на винчестере, даже больше может быть оригинального IL файла. Так?

А тебя не смущает, что своп занимает место на диске??


 
Piter ©   (2005-11-07 22:43) [35]

Sergey Masloff   (07.11.05 22:06) [31]
>Вроде менять этого не собираются.

Вроде бы собираются


хм. Сначала я тоже так думал, что WinApi уберут, будет .NET ориентированные операционка, и уже WinApi функции будут реализованы через .NET :)
То есть, наоборот :)

Но мне тут сказали, что все не так, FCL так и будет через WinApi работать.

Я просто запутался... Так как же? :)

jack128 ©   (07.11.05 22:26) [34]
А тебя не смущает, что своп занимает место на диске??


не смущает.
То есть, выходит, что будет новая компиляция при каждой загрузки WIndows?

Странно... а разве можно так быстро компилировать? Delphi и то вон быстрый компилятор, но наверняка IDE Дельфовое, которые написано на Дельфи, компилируется немало времени...


 
Lamer@fools.ua ©   (2005-11-07 22:43) [36]

>>DiamondShark ©   (07.11.05 18:35)

Наша команда 2-го числа перешла на 2005-ю Студию (ну и соотвественно 2-й фреймворк).

Пазитифф:
1. Много вкусностей в IDE (заметно улучшился IntelliSense, появились CodeSnippets, Refactoring etc.).
2. Generics в 2.0 - вещь кульная и рульная. Плюс ещё всякое-разное.
3. Работает, вроде, стабильно. Слетала пару раз, но это когда я в TestDriven"е Abort нажимал. Вероятно, какая-то несовместимость у него с новой Студией.

Негатифф:
1. По-моему ещё нету FxCop"а для 2-го фреймворка.
2. Раньше собирали документацию NDoc"ом. Теперь - болт. NDoc"а для 2.0 нету. Надеемся, что пока нету.

З.Ы.
На SQL2005 заказчик решил пока не переходить, посему не щупал пока.

З.З.Ы.
На второй день работы оказалось, что перестал работать наш сервер приложений: возникало неуловимое исключение AccessViolationException где-то в недрах после закрытия клиента. Грешили на новый фреймворк с новым ремоутингом и со слезами на глазах уже собирались переходить обратно на 2003/1.1, но выяснилось, что виноват NOD32. После чего последний почил с миром, а на наших лицах снова воцарилась гримаса счастья.


 
Piter ©   (2005-11-07 22:46) [37]

Как пример еще приведу - у меня D2005 грузилась просто жуткое количество времени.

А если бы она еще при этом и хотя бы частично компилировалась - это вообще навернео ужас?


 
Sergey Masloff   (2005-11-07 22:49) [38]

Lamer@fools.ua ©   (07.11.05 22:43) [36]
>Наша команда 2-го числа перешла на 2005-ю Студию
Да, смелые вы ребята. А вдруг что?
Нет, я полгодика выжду.


 
Piter ©   (2005-11-07 22:55) [39]

Sergey Masloff   (07.11.05 22:06) [31]
>А что насчет .NET? Тоже самое фактически? .NET библиотеки также >грузятся в ВАП твоего процесса?
Что значит грузятся? целиком конечно не грузятся. Грузится сгенерированый код твоего приложения


хм. Вот тут не понял.

Ведь обычные DLL сразу и полностью проецируются в ВАП процесса, а тут как?

Вообще, если я не совсем достал, расскажите - как вообще происходит взаимодействие? Ведь сам по себе IL код не может ничего сделать?

Вот на примере WinApi:

- Запускается EXE, в его таблице импорта прописана функция LoadLibrary и GetProcAddress.

Соответственно, нужные библиотеки статически загружаются Windows в ВАП процесса (всякие тонкости оставим), в таблице импорта прописываются адреса этих соответствующих 2-ух функция в адресном пространстве.

Далее программа, зная адреса функций LoadLibrary и GetProcAddress в своев ВАП - просто передает им управление, тем самым загружая любые библиотеки и узнавая адреса нужных ей функций опять же в своем ВАП. Таким образом можно сделать что угодно.

А как в .NET?

Вот есть некая FCL библиотека. Что МОЙ процесс с ней сделать может? Также загрузить в свое адресное пространство и узнать адреса уже ОБЪЕКТОВ и их функций, реализованных в библиотеке? Или как?


 
Lamer@fools.ua ©   (2005-11-08 00:11) [40]

>>Piter

Могу поделиться Рихтером "Программирование на платформе Microsoft .NET Framework". PDF. В архиве ~20 МБ. У него очень подробно расписано, что там и как работает.

Бо я чувствую, шо иначе эти вопросы в ветке никахда не закончатся :o)

>В книге подробно описано внутреннее устройство и функционирование об-
щеязыковой исполняющей среды (CLR) Microsoft .NET Framework. Подробно из-
ложена развитая система типов .NET Framework и разъясняются способы управ-
ления типами исполняющей средой. Хотя примеры в книге написаны на С*, пред-
ставленные в ней концепции относятся ко всем языкам, ориентированным на
работу с .NET Framework. Книга ориентирована на разработчиков любых видов
приложений на платформе .NET Framework: Windows Forms, Web Forms. Web-сер-
висов, консольных приложений, служб и пр. Предполагается знакомство читате-
ля с основными концепциями объектно-ориентированного программирования
и знание языков программирования.



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.016 c
9-1120952011
Тестер1
2005-07-10 03:33
2005.11.27
Кто нибудь пытался выдрать анимацию из игры Братья Пилоты ?


4-1123483601
Evgenxxxx
2005-08-08 10:46
2005.11.27
Com порт


1-1130910884
zsv
2005-11-02 08:54
2005.11.27
Ограниченная учетная запись и Рабочий стол


4-1127313146
Still Swamp
2005-09-21 18:32
2005.11.27
Как сделать окошко которое не будет на себя переключать фокус


6-1124186136
AMB
2005-08-16 13:55
2005.11.27
Почта из Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский