Статьи

Технології .NET Framework і Mono

  1. архітектура .NET
  2. середовища розробки
  3. Історія версій .NET Framework
  4. .NET Framework 1.0
  5. .NET Framework 1.1
  6. .NET Framework 2.0
  7. .NET Framework 3.0
  8. .NET Framework 3.5
  9. .NET Framework 4.0
  10. Мови програмування в .NET
  11. Мови, що поставляються разом Microsoft Visual Studio
  12. Чи не вбудовані, але активно підтримувані мови
  13. Критика реалізації технології Microsoft .NET Framework
  14. проект Mono

.NET Framework - програмна платформа, мобільна бінарна середу , Випущена компанією Microsoft в 2002 році і дозволяє працювати скомпільований додатків на будь-якій апаратній платформі в середовищі Windows. Основою платформи є виконуюча ( бінарна ) Понеділок Common Language Runtime (CLR), здатна виконувати як звичайні програми, так і серверні веб-додатки. NET Framework підтримує створення програм, написаних на різних мовах програмування.

Вважається, що платформа .NET Framework стала відповіддю компанії Microsoft на набрала на той час велику популярність платформу Java компанії Sun Microsystems (нині належить Oracle).

Хоча .NET є патентованою технологією корпорації Microsoft і офіційно розрахована на роботу під операційними системами сімейства Microsoft Windows, але існують незалежні проекти (перш за все це Mono і Portable.NET), що дозволяють запускати програми .NET на багатьох інших операційних системах.

Розробка платформи почалася в 1999 році. 13 січня 2000 року було озвучена нова стратегія компанії, що отримала назву Next Generation Windows Services (скор. NGWS, рус. Нове покоління служб Windows). Нова стратегія повинна була об'єднати в єдиний набір існуючі та майбутні розробки Microsoft для надання можливості користувачам працювати з Всесвітньою павутиною з бездротових пристроїв, що володіють доступом в Інтернет, як зі стаціонарних комп'ютерів. Було заявлено, що незважаючи на величезні можливості домашніх комп'ютерів, корпорація вважає важливим забезпечення гарантованої роботи служб нового покоління і на пристроях, відмінних від ПК, тобто "нетбуках", що спираються на серверну підтримку.

З огляду на невеликої потужності джерел живлення мобільних пристроїв, зберігання і передача додатків повинна здійснюватися серверами, тоді як на той момент практично вся інформація користувача і ПО зберігалися на стаціонарних комп'ютерах локально. Тоді ідея переходу до "сервероцентріческой" моделі мала міцну підтримку серед керівників найбільших IT-компаній, так як обіцяла забезпечення прив'язки, залежно кінцевого користувача від сервера.

У Microsoft на той момент було безліч причин переходу до нової стратегії. Компанія домінувала на ринку операційних систем і веб-браузерів, володіла безліччю напрацювань в галузі програмного забезпечення для Інтернету, включаючи портали MSN і WebTV, а також мала частку в компаніях, що займалися наданням ПО в прокат через Інтернет. Крім того, у корпорації було безліч різних (і часто несумісних між собою) середовищ і технологій програмування, оскільки розробка інструментів для програмістів була язикооріентірованной, тобто для Visual Basic існував свій набір додатків, а для C ++ - свій. Тому однією з цілей розробки нової платформи, було об'єднання всіх найбільш вдалих напрацювань в рамках єдиної платформи та їх уніфікація.

Крім того, ставилося завдання проходження усіх актуальних тенденцій в області програмування на той момент. Так, наприклад, нова платформа повинна була безпосередньо підтримувати об'єктно-орієнтованість, безпеку типів, збірку сміття і структурну обробку виключень. Крім того, корпорації необхідно було надати свою відповідь набирала популярність платформі Java від Sun.

Згідно з озвученими на той момент планам, в них входила розробка нової версії операційної системи, а також нової версії середовища розробки для програмістів, яка була б призначена для розробки веб-орієнтованих додатків. Крім того, переведений на нову платформу повинен був бути і Microsoft Office. Прикладом нових послуг, введених Microsoft, є служба Passport, що представляє собою електронний гаманець, який дозволяє користувачам зареєструвавшись одного разу здійснювати онлайн-покупки без необхідності введення на різних сайтах номерів кредитних карт і персональних даних.

Основою для нової стратегії компанії послужила розробка Windows DNA 2000, представлена ​​у вересні 1999 року. Windows DNA 2000 об'єднала в собі нову версію СУБД SQL Server і нові програмні інструменти для полегшення розробки веб-додатків.

Першим кроком до нової версії платформи стала Windows 2000, яка була однією з частин технології Windows Distributed interNet Applications (DNA) 2000, під рамках якої була представлена ​​остання на той момент схема трирівневої моделі програмування, вперше представлена ​​на Windows NT 4.0.

На той момент ця схема складалася з клієнтської частини (Windows- або веб-додаток), середнього рівня, який базувався на компонентах COM +, і бази даних (як правило SQL Server. NGWS повинна була змінити шлях розробки Windows DNA на виняткове використання XML як стандарту обміну даними. XML був обраний тому, що був розвитком мови розмітки HTML, що став основною мовою розмітки у Всесвітній павутині, а крім того він надавав зручний спосіб опису даних. У моделі NGWS кожна частина трехзвенной структури (клієнтську програму, проміжний з ой і база даних) повинна була взаємодіяти з іншими за допомогою XML-пакетів. Для спрощення розробки коду з використанням XML передбачалося, що нова версія Visual Studio буде генерувати XML-код, звільняючи розробників від необхідності ручного написання XML-коду.

Так, наприклад, планувалося, що розробники зможуть писати веб-сайт для електронної комерції цілком на новій версії Visual Basic, а завдяки тому, що обмін інформацією буде відбуватися за допомогою XML, розробники зможуть створювати клієнтські програми, що функціонують на Linux, Solaris і Mac OS . Тобто, для того, щоб додаток або операційна система могли взаємодіяти один з одним потрібна була лише підтримка стандарту з їх боку.

Для демонстрації свого задуму Microsoft запустила веб-сайт Passport, зайшовши на який, користувач міг безкоштовно завести собі електронний гаманець (eWallet), спрощує процес здійснення покупок в інтернет-магазинах.

Через півроку Microsoft перейменувала платформу в Microsoft.Net, оголосивши при цьому, що "стратегія корпорації цілком і повністю буде визначатися платформою .Net", а всі продукти Microsoft з часом будуть переписані для підтримки цієї платформи. Крім цього зміни повинні були торкнутися і серверні додатки - Microsoft SQL Server, Exchange, BizTalk, а офісний пакет Microsoft Office повинен був бути перетворений в Office.Net.

До цього часу було приурочено і опублікування документа під назвою Microsoft .NET: Realizing the Next Generation Internet (англ. Microsoft .NET: Створюючи Інтернет наступного покоління) на офіційному сайті Microsoft. У ньому наводився загальний огляд нової платформи, а сама поява нової платформи описувалося як якась "революція". У цьому документі вперше було описано (хоча і короткий) технічної реалізації платформи. Так, розробникам пропонувалося замість ручного набору великої маси коду збирати свої додатки з готових блоків, що мало прискорити розробку ПО. До таких "будівельним блокам" ставилися, зокрема, наступні модулі:

Identity (рус. Особистість) - технологія, яка об'єднує Windows-аутентифікацію і Microsoft Passport, створена для забезпечення різних рівнів безпеки, починаючи від паролів і електронних гаманців і закінчуючи смарт-картами і пристроями біометричної ідентифікації.

12 листопада 2000 року Microsoft опублікувала на своєму сайті .NET Framework SDK Beta 1, який містить все необхідне для перших дослідів з новою платформою. Однак, через "вогкості" програми компанія рекомендувала ставити її тільки на комп'ютери, призначені виключно для тестів. Даний SDK міг працювати лише в Windows 2000, Windows NT 4.0 (що містить NTOP для підтримки ASP.NET), Windows 98 і Windows ME, причому стабільна робота з незадовго до цього вийшов SQL Server 2000 зовсім не гарантувалася. Дана версія містила величезну кількість помилок, починаючи з проблем при установці і закінчуючи неповною підтримкою власних просторів імен в залежності від версії Windows.

Основною ідеєю при розробці .NET Framework було забезпечення свободи розробника за рахунок надання йому можливості створювати додатки різних типів, здатні виконуватися на різних типах пристроїв і в різних середовищах.

Другим принципом стало орієнтування на системи, що працюють під управлінням сімейства операційних систем Microsoft Windows.

архітектура .NET

Програма для .NET Framework, написана на будь-якому підтримуваному мовою програмування, спочатку перекладається компілятором в єдиний для .NET проміжний байт-код Common Intermediate Language (CIL) (раніше називався Microsoft Intermediate Language, MSIL). У термінах .NET виходить збірка, англ. assembly. Потім код або виповнюється віртуальною машиною CLR, або транслюється утилітою NGen.exe в виконуваний код для конкретного цільового процесора. Використання віртуальної машини переважно, оскільки позбавляє розробників від необхідності піклуватися про особливості апаратної частини. У разі використання віртуальної машини CLR, вбудований в неї JIT-компілятор "на льоту" (just in time) перетворює проміжний байт-код в машинні коди потрібного процесора. Сучасна технологія динамічної компіляції дозволяє досягти високого рівня швидкодії. Віртуальна машина CLR також сама піклується про базову безпеки, управлінні пам'яттю і системі винятків, позбавляючи розробника від частини роботи.

Архітектура .NET Framework описана і опублікована в специфікації Common Language Infrastructure (CLI), розробленої Microsoft і затвердженої ISO і ECMA. У CLI описані типи даних .NET, формат метаданих про структуру програми, система виконання байт-коду і багато іншого.

Об'єктні класи .NET, доступні для всіх підтримуваних мов програмування, містяться в бібліотеці Framework Class Library (FCL).

У FCL входять класи Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation та інші. Ядро FCL називається Base Class Library (BCL).

середовища розробки

Середовища розробки, що підтримують .NET:

  • Microsoft Visual Studio (C #, Visual Basic .NET, Managed C ++, F #)
  • SharpDevelop
  • MonoDevelop
  • Embarcadero RAD Studio (Delphi for .NET); раніше Borland Developer Studio (Delphi for .NET, C #)
  • Zonnon
  • PascalABC.NET

Додатки .NET також можна розробляти в текстовому редакторі, просто викликаючи компілятор з командного рядка.

Історія версій .NET Framework

Microsoft почала розробляти .NET Framework в 1999 під ім'ям "Next Generation Windows Services" (NGWS). У 2000 році була випущена перша бета-версія .NET 1.0.

версія

номер версії

дата виходу

Visual Studio

За замовчуванням в Windows

1.0

1.0.3705.0

1 травня 2002 року

Visual Studio .NET

1.1

1.1.4322.573

1 квітня 2003 року

Visual Studio .NET 2003

Windows Server 2003

2.0

2.0.50727.42

11 липня 2005 року

Visual Studio 2005

3.0

3.0.4506.30

6 листопада 2006 року

Visual Studio 2005 + розширення

Windows Vista, Windows Server 2008

3.5

3.5.21022.8

9 листопада 2007 року

Visual Studio 2008

Windows 7, Windows Server 2008 R2

4.0

4.0.30319.1

12 квітня 2010 року

Visual Studio 2010

Visual Studio 2010

Генеалогічне розвиток технологій .NET Framework

.NET Framework 1.0

Перший випуск .NET Framework вийшов 5 січня 2002 роки для Windows 98, NT 4.0, 2000 і XP. Загальна підтримка, здійснювана компанією Майкрософт, закінчилася 10 липня 2007 року, розширена підтримка закінчилася 14 липня 2009 року.

.NET Framework 1.1

Наступний реліз .NET Framework вийшов 1 квітня 2003 року. Це була перша версія, автоматично встановлюється разом з операційною системою (Windows Server 2003). Для більш старих операційних систем .NET Framework 1.1 була доступна у вигляді окремого установчого пакета. Загальна підтримка, здійснювана компанією Майкрософт, закінчилася 14 жовтня 2008 року, а розширена підтримка закінчиться 8 жовтня 2013 року.

.NET Framework 2.0

Версія 2.0 була випущена одночасно з Visual Studio 2005, SQL Server 2005 і BizTalk 2006. З виходом версії 2.0 була додана підтримка настроюються (узагальнених, вихідних, generic) класів, анонімних методів, повна підтримка 64-бітових платформ x64 і IA-64.

.NET Framework 3.0

Версія .NET Framework 3.0, що вийшла в 2006 році, спочатку носила ім'я WinFX, що відображало її суть: розширення .NET Framework 2.0 із збереженням всіх бібліотек і додаванням чотирьох нових компонентів:

  • Windows Presentation Foundation (WPF) - презентаційна графічна підсистема, яка використовує XAML
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)
  • Windows CardSpace

.NET Framework 3.5

Випущена в листопаді 2007 року .NET 3.5, як і версія 3.0, використовує CLR версії 2.0. Нововведення в порівнянні з .NET Framework 3.0 включають в себе:

C # 3.0 і VB.NET 9.0

Доданий мову LINQ і провайдери LINQ to Objects, LINQ to XML і LINQ to SQL

ASP.NET AJAX включений в поставку.

Розширено функціональність WF і WCF.

Додано простір імен System.CodeDom.

.NET Framework 4.0

Microsoft анонсувала .NET 4.0 29 вересня 2008 року. Перша бета-версія з'явилася 20 травня 2009 року, разом з бета-версією Visual Studio 2010. Нововведення включають в себе:

  • Parallel Extensions - PLINQ (Parallel LINQ) і бібліотеку паралельних завдань (Task Parallel Library), призначені для спрощення програмування для багатопроцесорних і розподілених систем;
  • Нововведення в Visual Basic і C #;
  • Технологія Managed Extensibility Framework (MEF);
  • Повна підтримка IronPython, IronRuby і F #;
  • Підтримка підмножин .NET Framework і ASP.NET в варіанті "Server Core";
  • Підтримка Code Contracts;
  • Засоби моделювання Oslo і мова програмування M, призначений для створення предметно-орієнтованих мов і моделей

Остаточна версія .NET Framework 4.0 була випущена 12 квітня 2010 року разом з остаточною версією Visual Studio 2010 року.

Мови програмування в .NET

Однією з основних ідей Microsoft .NET є сумісність програмних частин, написаних різними мовами. Наприклад, служба, написана на C ++ для Microsoft .NET, може звернутися до методу класу з бібліотеки, написаної на Delphi; на C # можна написати клас, успадкованих від класу, написаного на Visual Basic .NET, а виключення, створене методом, написаним на C #, може бути перехоплено і оброблено в Delphi. Кожна бібліотека (збірка) в .NET має відомості про свою версію, що дозволяє усунути можливі конфлікти між різними версіями збірок.

Мови, що поставляються разом Microsoft Visual Studio

C #

J # - останній раз був включений в Visual Studio 2005

VB7 (.NET)

JScript .NET

C ++ / CLI - нова версія Managed C ++

F # - член сімейства мов програмування ML, включений в Visual Studio 2010

Чи не вбудовані, але активно підтримувані мови

Підтримують .NET неактивно.

Ada - см. A #

APL

Boo, заснований на Python

COBOL

Component Pascal (ближче до Oberon ніж до Pascal)

Delphi: Delphi 8, Delphi 2005-2010, Delphi XE

Eiffel

Forth

FORTRAN

Haskell

IronRuby - реалізація мови Ruby

IronPython - реалізація мови Python

Lexico

Lisp

Mercury

Mondrian

Nemerle - гібридний функціонально / імперативний мову

Oberon for .NET (ETH) - незначні розширення для .NET. Проект припинений.

Oxygene

Perl

PHP

PascalABC.NET

Prolog

RPG

Smalltalk

Zonnon - повністю інтегрується в Visual Studio

Критика реалізації технології Microsoft .NET Framework

Реалізація платформи .NET Framework викликала і викликає безліч нарікань. Одним з головних об'єктів критики є менш раціональне використання ресурсів системи в порівнянні з іншими технологіями. Так, наприклад, кілька додатків, що виконуються в керованому середовищі, прагнуть захопити більше ресурсів, ніж додатки того ж типу, але що володіють більш прямим доступом до ресурсів комп'ютера.

Невдоволення розробників викликає і той факт, що керований CIL-байткод, що не піддався обфускаціі, легко може бути декомпілювати в порівнянні з природним кодом. Подібна вразливість може призвести до втрати комерційної таємниці або дати можливість обходу механізмів контролю дотримання ліцензійних угод.

Нові версії платформи (3.5 і далі) викликали нову хвилю невдоволення тим, що

вони не встановлювати в версії Windows, що передували виходу Windows 7, що змушує користувачів витрачати чимало часу на їх установку.

З технічної точки зору платформа також піддається критиці через відсутність підтримки викликів Streaming SIMD Extensions (SSE) в керованому коді. Правда, в Mono вирішили цю проблему, додавши підтримку SIMD Extensions версії 2.2 в простір імен Mono.Simd. Ще одним приводом для критики є підтримка стандартів, фактично обмежують кроссплатформенную реалізацію .NET Framework, в результаті чого

повноцінна реалізація платформи присутній лише для Windows. Частково, відсутність мобільності компенсується розробкою кількох версій платформи для мобільних пристроїв, а також урізаними версіями .NET Framework для інших операційних систем. Однак, незважаючи на близькість стандартів, прийнятих при розробці цих версій, кінцеві реалізації повною сумісністю не володіють.

проект Mono

Mono - проект зі створення повноцінного втілення системи .NET Framework на базі вільного програмного забезпечення. Основний розробник проекту Mono - компанія Xamarin, раніше Novell. Після укладення Microsoft домовленості з Novell, платформа Mono була офіційно визнана реалізацією .NET на Unix-подібних операційних системах: Linux, Mac OS X і інших. (Хоча Mono успішно працює і під Microsoft Windows). Однак домовленість стосується лише Novell і клієнтів Novell; також технології ASP.NET, ADO.NET і Windows Forms були стандартизовані ECMA / ISO, і використання їх в Mono знаходиться під загрозою юридичних претензій з боку Microsoft (претензії можливі тільки в країнах, де існують патенти на програмне забезпечення). Mono надає реалізацію ASP.NET, ADO.NET і Windows.Forms, але в той же час рекомендує не використовувати ці API.

Проект очолює Мігель де Икаса, відомий розробник, засновник проекту GNOME. Реалізації Mono існують для наступних операційних систем:

  • Microsoft Windows,
  • Linux, BSD (FreeBSD, OpenBSD, NetBSD),
  • Solaris,
  • Mac OS X,
  • Apple iOS,
  • Wii.

Підтримуються платформи:

  • s390,
  • SPARC,
  • PowerPC,
  • x86 / x86-64,
  • IA64,
  • ARM,
  • Alpha,
  • MIPS,
  • HPPA

Чи знаєте Ви,

що "гравітаційне лінзування" нібито спостерігається поблизу далеких галактик (але не в масштабі зірок, де воно повинно бути за формулами ОТО!), Насправді є термічним лінзуванням , Пов'язаним зі змінами щільності ефіру від нагрівання міріадами зірок. Детальніше читайте в FAQ по ефірної фізиці . НОВИНИ ФОРУМУ що гравітаційне лінзування нібито спостерігається поблизу далеких галактик (але не в масштабі зірок, де воно повинно бути за формулами ОТО
Лицарі теорії ефіру 13.06.2019 - 5:11: ЕКОЛОГІЯ - Ecology -> ПРОБЛЕМА ГЛОБАЛЬНОЇ ЗАГИБЕЛІ бджіл ТА ІНШИХ запилювачів РОСЛИН - Карім_Хайдаров.
12.06.2019 - 9:05: ВІЙНА, ПОЛІТИКА І НАУКА - War, Politics and Science -> Проблема державного тероризму - Карім_Хайдаров.
11.06.2019 - 18:05: ЕКСПЕРИМЕНТАЛЬНА ФІЗИКА - Experimental Physics -> Експерименти Серлі і його послідовників з магнітами - Карім_Хайдаров.
11.06.2019 - 18:03: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від Андрія Маклакова - Карім_Хайдаров.
11.06.2019 - 13:23: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від В'ячеслава Осієвського - Карім_Хайдаров.
11.06.2019 - 13:18: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від Світлани Віслобоковой - Карім_Хайдаров.
11.06.2019 - 6:28: Астрофізики - Astrophysics -> До 110 річчя Тунгускою катастрофи - Карім_Хайдаров.
10.06.2019 - 21:23: ВИХОВАННЯ, ОСВІТА, ОСВІТА - Upbringing, Inlightening, Education -> Просвітництво від Володимира Васильовича Квачкова - Карім_Хайдаров.
10.06.2019 - 19:27: СОВІСТЬ - Conscience -> Вищий розум - Карім_Хайдаров.
10.06.2019 - 19:24: ВІЙНА, ПОЛІТИКА І НАУКА - War, Politics and Science -> ЗА НАМИ страви - Карім_Хайдаров.
10.06.2019 - 19:14: СОВІСТЬ - Conscience -> РОСІЙСЬКИЙ СВІТ - Карім_Хайдаров.
10.06.2019 - 8:40: ЕКОНОМІКА І ФІНАНСИ - Economy and Finances -> КОЛЛАПС СВІТОВОЇ ФІНАНСОВОЇ СИСТЕМИ - Карім_Хайдаров.

Новости