Використання номерів версій в Visual C # (Sharp)

Номери версій надають спосіб управління можливостями і надійністю додатки Концепція номера версії майже зникла з ринку пакетного прраммного забезпечення Візьмемо, наприклад, версії операційної системи Коан Microsoft: Windows 95, Windows 98, Windows 2000, Windows XP, Windows Vista і т д

Але в області відкритого програмного забезпечення використання номерів версій широко поширене і вважається дуже важливим Іноді може здатися, що номери версій схожі на номер лотерейного квитка, але в них є своя і законів Розуміння цієї закономірності полегшить вам вибір відкритого прраммного забезпечення Важливо, що застосування стратегії номерів версій із свм програмним забезпеченням полегшить ваше завдання відстеження власних збірок

Розуміння номерів версій

Скажімо, ви хочете завантажити програму з відкритим вихідним кодом Capivara (пррамма для управління і синхронізації файлів на мові Java) Ви заходите на сайт програми і бачите, що для скачування доступна сама остання версія з номером 082 Номер версії складається з трьох частин, які мають таке значення

•&nbsp&nbsp Основний номер У прикладі основний номер – 0 Якщо основний номер менше одиниці, то версія вважається з розряду бета Але часто бета-версія зовсім не означає, що програмою не можна користуватися Зміна основного номера версії вказує істотні зміни у функціональності програми Тобто те, що працювало у версії 1, може не працювати у версії 2 Прикладом може служити серверний проект HTTPD Apache, де версії 1x і 2x є двома різними реалізаціями

•&nbsp&nbsp Додатковий номер У прикладі додатковий номер дорівнює 8 Цей номер визначає незначні функціональні зміни в програмному обеспеніі Зміна додаткового номеру версії (наприклад, з 7 на 8) указивт нові можливості, але стара функціональність продовжує поддержіват Зміна додаткового номеру також може вказувати виправлення помилок або заплатки

•&nbsp&nbsp Номер заплатки У прикладі номер заплатки дорівнює 2 Номер заплатки вказує версію програми з латкою для виправлення помилок чи інших змін Зміни не включають нові можливості, і функціональність не змінюється

При завантаженні програми з відкритим кодом зазвичай надається вибір декількох версій Наприклад, можуть пропонуватися версії 423 і 429 (бета) Так як більшість людей хоче все найновіше і останнє, то ви можете іитивать спокуса завантажити версію 429 Але я б порадив вам завантажити версію 429, т к бета є бета, і хто знає, як вона буде працювати А версія 423 счітаея налагодженої, і тому ймовірність неприємних сюрпризів від неї набагато менше, ніж від версії 429

При випуску програмного забезпечення з відкритим вихідним кодом разработчі часто використовують наступну термінологію:

•&nbsp&nbsp Stable (Стабільна) – версія стійка до збоїв, і її можна застосовувати для пришленних цілей

•&nbsp&nbsp Unstable (Нестабільна) – версію не слідують застосовувати для промислових цілей, але вона, швидше за все, працездатна з деякими збоями

•&nbsp&nbsp Nightly (Нічна) – версія, працездатність якої приймається під Зімніть може працювати, а може, й ні Навіщо взагалі потрібні нічні версії Вони призначаються виключно для розробників, щоб можна було отслівать протікання розробки і контролювати її певні аспекти

•&nbsp&nbsp Alpha (Альфа) – версія для демонстрації концепцій, на основі яких буде розроблено плановане ПЗ Але наявність обіцяної можливості в альферсіі далеко не завжди означає, що вона буде реалізована в поставляється версії

Управління версіями збірок

Номери версій збірок NET відрізняються від номерів версій для програм з відкрилися вихідним кодом Далі наводиться приклад присвоєння номера версії збірці

.NET:

[assembly: AssemblyVersion(&quot1100&quot)] [assembly: AssemblyFileVersion(&quot1100&quot) ]

Атрибути AssemblyVersion І AssemblyFileVersion МОЖНА додати В будь-яке місце в збірці або додатку Якщо ви використовуєте Visual С # Express, то атрибути, швидше за все, вставляються в файл AssemblyInfocs

Номер версії складається з чотирьох частин Зліва направо це основна версія, долнітельная версія, номер збірки і модифікація Номер складання може відображати номер добової збірки, але він не є обовязковим Ідентифікатор модіфаціі може бути довільним числом, але він теж не є обовязковим Для своїх збірок я застосовую Про як номер модифікації, а номер збірки вважаю номером заплатки

У Visual С # Express є вбудований механізм, який автоматично обнояет номера збірки і модифікації Можна також скористатися утилітою для управління версіями або оновлювати номери вручну Утиліту gacutil можна пренять багаторазово з множинними версіями (рис 129)

ПРИМІТКА

Додаткову інформацію з використання інструментів для управління веіямі див у наступних блогах:http://weblogsaspnet/bradleyb/archive/2005/l2/02/ 4321 SOaspx іhttp://wwwbiasecuritieseom/blogs/jim/archive/2003/10/08/166aspx

На рис 129 збірка versionAssembly була додана в кеш GAC три рази під тря різними номерами версій: 1000, 1100 і 1200 Це дає додатком або інший збірці опцію звернення до будь-якої з трьох версій однієї і тієї ж збірки

Щоб додаток або складання могли використовувати іншу збірку, для них неоодімо створити посилання на неї При компіляції програми або збірки в ній дається посилання на конкретний номер версії збірки Наприклад, якщо вказано посилання на версію 1100 збірки versionAssembly, то тоді буде виконана версія 1100 даної збірки

Додавання в конфігураційний файл перенаправлення на збірку

Скажімо, що додатку або складанні потрібна використовувати нову версію збої VersionAssembly Щоб дати додатком знати про нову версію збірки, неоодімо оновити конфігураційний файл програми, який посилається на просту версію Оновлення конфігураційного файлу включає перенаправлення на нову версію збірки По суті, перенаправлення дає додатком знати, що при запиті певної версії збірки слід замість неї завантажити нову веію Далі наведено приклад перенаправлення версії:

&lt?xml version=&quot10&quot?&gt cconfiguration&gt

&ltruntime&gt

&ltassemblyBinding

xmlns=&quoturn:schemas-microsoft-corn:asmvl&quot&gt

&ltdependen tAs s embly&gt

&ltassemblyldentity name=&quotVersioningAssembly&quot

publicKeyToken=&quotbd42f9cb2b40dlb&quot culture=&quotneutral&quot /&gt

&ltbindingRedirect oldVersion=&quot1100&quot

newVers ion=&quot1200&quot/&gt

&lt/dependentAssembly&gt

&lt/assemblyBinding&gt

&lt/runtime&gt

&lt/configuration&gt

Цей конфігураційний файл містить XML-елемент assembiyBinding, визначає колекцію зборок, з якими ми будемо мати справу Ця колекція збірок вставлена ​​В елемент dependentAssembly Елемент dependentAssembly Містить два дочірніх елемента: assemblyldentity І bindingRedirect Елемен т assemblyldentity використовується для ідентифікації збірки, для якої здійснюватиметься перенравленіе посилання, І містить дочірній елемент dependentAssembly

Елемент bindingRedirect містить два атрибути: oldVersion І newVers ion Атрут oldversion ідентифікує посилання на стару версію збірки в викликає збірці або додатку Якщо виявлена ​​посилання на стару версію збірки, то за допомогою атрибуту newversion визначається нова версія збірки, яку нуо викликати замість старої У прикладі номер старої версії-1100, а нової –

1200 У новому номері збільшено додатковий номер, щоб вказати нову версію збірки Але звязує перенаправлення байдуже, посилається Чи атрибут newversion на нову або стару версію збірки Ідентифікатори версій, які вказуються в атрибутах newversion і oldversion, є лише тим, чим вони є – ідентифікаторами

Джерело: Гросс К С # 2008: Пер з англ – СПб: БХВ-Петербург, 2009 – 576 е: ил – (Самовчитель)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*