2. Значительно улучшенная обработка ошибок во время выполнения запущеной готовой программы, с использованием блоков try..catch
3. Пользовательские элементы управления (controls) позволяют выделять часто используемые шаблоны, такие как меню сайта
4. Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события
5. Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения
6. ASP.NET опирается на многоязыковые возможности .NET, что позволяет писать код страниц на VB.NET, Delphi.NET, Visual C#, J# и т. д.
7. Возможность кэширования всей страницы или её части для увеличения производительности
8. Возможность кэширования данных, используемых на странице
9. Возможность разделения визуальной части и бизнес-логики по разным файлам («code behind»)
10. Расширяемая модель обработки запросов
11. Расширенная событийная модель
12. Расширяемая модель серверных элементов управления
13. Наличие master-страниц для задания шаблонов оформления страниц
14. Поддержка CRUD-операций при работе с таблицами через GridView
15. Встроенная поддержка AJAX
16. ASP.NET имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах
Пример манифеста.
// Metadata version: v2.0.50727 .assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 2:0:0:0 } .assembly extern Microsoft.VisualStudio.HostingProcess.Utilities.Sync { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 9:0:0:0 } .assembly vshost { // пользовательские атрибуты (добавляются автоматически) .custom instance void [mscorlib]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( 01 00 2E C2 A9 20 4D 69 63 72 6F 73 6F 66 74 20 // ..... Microsoft 43 6F 72 70 6F 72 61 74 69 6F 6E 2E 20 41 6C 6C // Corporation. All 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 // rights reserved 2E 00 00 ) // ... .custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 ) .custom instance void [mscorlib]System.CLSCompliantAttribute::.ctor(bool) = ( 01 00 01 00 00 ) .custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 0A 76 73 68 6F 73 74 2E 65 78 65 00 00 ) // ...vshost.exe.. .custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 0A 76 73 68 6F 73 74 2E 65 78 65 00 00 ) // ...vshost.exe.. .custom instance void [mscorlib]System.Reflection.AssemblyDefaultAliasAttribute::.ctor(string) = ( 01 00 0A 76 73 68 6F 73 74 2E 65 78 65 00 00 ) // ...vshost.exe.. .custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 15 4D 69 63 72 6F 73 6F 66 74 20 43 6F 72 // ...Microsoft Cor 70 6F 72 61 74 69 6F 6E 00 00 ) // poration.. .custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 24 4D 69 63 72 6F 73 6F 66 74 20 28 52 29 // ..$Microsoft (R) 20 56 69 73 75 61 6C 20 53 74 75 64 69 6F 20 28 // Visual Studio ( 52 29 20 32 30 30 38 00 00 ) // R) 2008.. .custom instance void [mscorlib]System.Resources.NeutralResourcesLanguageAttribute::.ctor(string) = ( 01 00 05 65 6E 2D 55 53 00 00 ) // ...en-US.. .custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 0B 39 2E 30 2E 33 30 37 32 39 2E 31 00 00 ) // ...9.0.30729.1.. .custom instance void [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute::.ctor(string) = ( 01 00 0B 39 2E 30 2E 33 30 37 32 39 2E 31 00 00 ) // ...9.0.30729.1.. .custom instance void [mscorlib]System.Resources.SatelliteContractVersionAttribute::.ctor(string) = ( 01 00 07 39 2E 30 2E 30 2E 30 00 00 ) // ...9.0.0.0.. .custom instance void [mscorlib]System.Reflection.AssemblyKeyFileAttribute::.ctor(string) = ( 01 00 25 66 3A 5C 64 64 5C 74 6F 6F 6C 73 5C 64 // ..%f:\dd\tools\d 65 76 64 69 76 5C 46 69 6E 61 6C 50 75 62 6C 69 // evdiv\FinalPubli 63 4B 65 79 2E 73 6E 6B 00 00 ) // cKey.snk.. .custom instance void [mscorlib]System.Reflection.AssemblyDelaySignAttribute::.ctor(bool) = ( 01 00 01 00 00 ) // --- Следующий настраиваемый атрибут добавлен автоматически, не следует отменять преобразование в комментарий ------- // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. .publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 // .$.............. 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 // .$..RSA1........ 07 D1 FA 57 C4 AE D9 F0 A3 2E 84 AA 0F AE FD 0D // ...W............ E9 E8 FD 6A EC 8F 87 FB 03 76 6C 83 4C 99 92 1E // ...j.....vl.L... B2 3B E7 9A D9 D5 DC C1 DD 9A D2 36 13 21 02 90 // .;.........6.!.. 0B 72 3C F9 80 95 7F C4 E1 77 10 8F C6 07 77 4F // .r<......w....wO 29 E8 32 0E 92 EA 05 EC E4 E8 21 C0 A5 EF E8 F1 // ).2.......!..... 64 5C 4C 0C 93 C1 AB 99 28 5D 62 2C AA 65 2C 1D // d\L.....(]b,.e,. FA D6 3D 74 5D 6F 2D E5 F1 7E 5E AF 0F C4 96 3D // ..=t]o-..~^....= 26 1C 8A 12 43 65 18 20 6D C0 93 34 4D 5A D2 93 ) // &...Ce. m..4MZ.. .hash algorithm 0x00008004 .ver 9:0:0:0 } .module vshost.exe // MVID: {69704547-92AE-4E10-B632-1498EB2D0B50} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0002 // WINDOWS_GUI .corflags 0x00000009 // ILONLY // Image base: 0x017D0000 |
Описание директив манифеста
Директива IL | Описание |
assembly extern <имя Сборки> | Указывает внешнюю сборку, необходимую для работы данной (ссылка на общую библиотеку классов mscorlib) |
.publickeytoken <хеш> | Маркер открытого ключа подключаемой сборки. Необходим для точной идентификации сборки. |
.ver <версия> | Определяет необход.версию подключаемой сборки |
.assembly <имя сборки> | Указывает имя сборки. Текстовая строка |
.hash algorithm | Определяет алгоритм, по которому рассчитывался маркер открытого ключа данной сборки. |
.ver 0:0:0:0 | Определяет версию сборки. Основной и дополнительный номера версии, номер редакции и номер построения. |
.public | Открытый ключ, встраиваемый в сборку |
.culture | Указывает региональную принадлежность сборки и язык |
.module <имя файла> | Указывает имя основного модуля данной сборки. |
module extern<имя Файла> | Указывает имя внешнего модуля входящего в данную сборку, на который есть ссылки в коде данной сборки |
.imagebase <адрес> | Указывает адрес, по которому следует загружать данную сборку в адресное пространство приложения. |
.subsystem <константа> | Указывает на тип приложения. В нашем случае число 3 указывает на то, что приложение консольное. |
.file alignment <512> | Определяет выравнивание, использовавшееся компилятором при создании данного файла. |
.corflags <константа> | Директива является зарезервированной. |
.mresource public <название ресурса> | Указывает на то, что к сборке будет подключен общедоступный ресурс с заданным именем. |
.file <имя файла> | Определяет имя файла в котором располагается ресурс. |
stackreserve | Задает общий объем виртуальной памяти, выделяемой под стека в байтах. Для x86 и x64 по умолчанию 1 МБ. Используется для исполняемого файла. |
.entrypoint | Указывает на то, что точка входа в приложение будет располагаться в данном модуле. |
Дата: 2019-02-25, просмотров: 214.