Как развить кодовую базу.NET по версиям.NET

Гуглить немного сложнее, когда у тебя есть только символы;) Используемые термины - «условный оператор javascript».

Если вы видите более забавные символы в Javascript, вам следует сначала поискать операторы Javascript: список операторов MDC . Единственное исключение, с которым вы можете столкнуться, это символ $ .

Чтобы ответить на ваш вопрос, условные операторы заменяют простые операторы if. Пример лучше всего:

var insurancePremium = age > 21 ? 100 : 200;

Вместо:

var insurancePremium;

if (age > 21) {
    insurancePremium = 100;
} else {
    insurancePremium = 200;
}

8
задан DannyT 26 June 2009 в 22:47
поделиться

4 ответа

По моему довольно резкому мнению, уже давно пора прекратить поддержку .NET 1.1. Единственная веская причина, по которой я все еще использую .NET 1.1, - это то, что вам все еще нужно поддерживать оборудование, которое .NET 2.0 не поддерживает - и в такой последний момент я не уверен, что мы можем назвать это веской причиной.

На самом деле, помимо аппаратной поддержки, я не думаю, что слышал о каких-либо веских причинах, по которым машина не должна обновляться до .NET 3.5 SP1. Что касается приложений .NET 2.0, .NET 3.5 SP1 - это просто .NET 2.0 SP2. Вы должны задаться вопросом, почему кто-то не хочет внедрять пакет обновления, который существует почти год.

Все остальное .NET 3.0 и .NET 3.5 - это просто дополнительные сборки, которые не могут повлиять на код, который их не использует.

Итак, я ' d уравновесить мое желание обслуживать всех моих клиентов с продолжающейся стоимостью поддержки .NET 1.1. Возможно, вы продолжаете поддерживать его, но взимаете дополнительную плату за поддержку и много за любые новые функции. То же самое, в меньшей степени, с .NET 2.0.

Еще одна более дикая мысль: не позволяем ли мы компаниям .NET 1.1 продолжать поддерживать их, как будто это не требует дополнительных затрат? Неужели мы оказываем им какую-либо услугу, помогая им держать голову в песке? Даже если они слишком заняты, чтобы увидеть это, не пройдет много времени, прежде чем какой-нибудь стартап начнет с ними конкурировать и выиграть большую часть их бизнеса, не потому, что они лучшая компания, а потому, что они используют WCF и ASP.NET MVC и AJAX, а также все интересные функции, о которых люди .NET 1.1 могут только мечтать.

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

Еще одна более дикая мысль: не позволяем ли мы компаниям .NET 1.1 продолжать поддерживать их, как будто это не требует дополнительных затрат? Неужели мы оказываем им какую-либо услугу, помогая им держать голову в песке? Даже если они слишком заняты, чтобы увидеть это, не пройдет много времени, прежде чем какой-нибудь стартап начнет с ними конкурировать и выиграть большую часть их бизнеса, не потому, что они лучшая компания, а потому, что они используют WCF и ASP.NET MVC и AJAX, а также все интересные функции, о которых люди .NET 1.1 могут только мечтать.

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

Еще одна более дикая мысль: разве мы не даем возможность компаниям .NET 1.1, продолжая поддерживать их, как будто это не требует дополнительных затрат? Неужели мы оказываем им какую-либо услугу, помогая им держать голову в песке? Даже если они слишком заняты, чтобы увидеть это, не пройдет много времени, прежде чем какой-нибудь стартап начнет с ними конкурировать и выиграть большую часть их бизнеса, не потому, что они лучшая компания, а потому, что они используют WCF и ASP.NET MVC и AJAX, а также все интересные функции, о которых люди .NET 1.1 могут только мечтать.

в меньшей степени, с .NET 2.0.

Еще одна более дикая мысль: разве мы не даем возможность компаниям .NET 1.1, продолжая поддерживать их, как будто это не требует дополнительных затрат? Неужели мы оказываем им какую-либо услугу, помогая им держать голову в песке? Даже если они слишком заняты, чтобы увидеть это, не пройдет много времени, прежде чем какой-нибудь стартап начнет с ними конкурировать и выиграть большую часть их бизнеса, не потому, что они лучшая компания, а потому, что они используют WCF и ASP.NET MVC и AJAX, а также все интересные функции, о которых люди .NET 1.1 могут только мечтать.

в меньшей степени, с .NET 2.0.

Еще одна более дикая мысль: разве мы не даем возможность компаниям .NET 1.1, продолжая поддерживать их, как будто это не требует дополнительных затрат? Неужели мы оказываем им какую-либо услугу, помогая им держать голову в песке? Даже если они слишком заняты, чтобы увидеть это, не пройдет много времени, прежде чем какой-нибудь стартап начнет с ними конкурировать и выиграть большую часть их бизнеса, не потому, что они лучшая компания, а потому, что они используют WCF и ASP.NET MVC и AJAX, а также все интересные функции, о которых люди .NET 1.1 могут только мечтать.

1 компании, продолжая поддерживать их, как будто это не связано с дополнительными расходами? Неужели мы оказываем им какую-либо услугу, помогая им держать голову в песке? Даже если они слишком заняты, чтобы увидеть это, не пройдет много времени, прежде чем какой-нибудь стартап начнет с ними конкурировать и выиграть большую часть их бизнеса, не потому, что они лучшая компания, а потому, что они используют WCF и ASP.NET MVC и AJAX, а также все интересные функции, о которых люди .NET 1.1 могут только мечтать.

1 компании, продолжая поддерживать их, как будто это не связано с дополнительными расходами? Неужели мы оказываем им какую-либо услугу, помогая им держать голову в песке? Даже если они слишком заняты, чтобы увидеть это, не пройдет много времени, прежде чем какой-нибудь стартап начнет с ними конкурировать и выиграть большую часть их бизнеса, не потому, что они лучшая компания, а потому, что они используют WCF и ASP.NET MVC и AJAX, а также все интересные функции, о которых люди .NET 1.1 могут только мечтать.

11
ответ дан 5 December 2019 в 10:04
поделиться

I maintain a project for .NET 2.0, .NET 3.0, .NET 3.5 CF 2.0, CF 3.5, Mono 2.x and Silverlight 2.0 - I do most of this using a combination of project (build) files and #if directives, to minimise/localise the amount of duplicated code.

Mostly I output the same dlls - although I have created some 3.5-specific dlls to cover things like extension methods.

An important job is to make sure you set this up so that you can build/test them all quickly - for example, I have a single "build.bat" that will check that it compiles in all of them (it is really easy to introduce illegal syntax).

For 1.1, I imagine you could use MSBee, but you might need a "csc" - but there are some pretty fundamental changes (such as no generics), so it might be an order of magnitude harder...

3
ответ дан 5 December 2019 в 10:04
поделиться

Здесь очень важны ваши файлы сборки. Вместо использования препроцессора я бы использовал MSBuild (найдите MSBee для компиляции кода .NET 1.1 с помощью MSBuild), чтобы создать файл сборки, в котором будет указано, как строить каждую платформу. сборка.

2
ответ дан 5 December 2019 в 10:04
поделиться

Это похоже на то, что довольно быстро может испортиться. Вы либо собираетесь поддерживать несколько потоков одной и той же кодовой базы, нацеленной на разные фреймворки (в этом случае вы обязательно захотите рассмотреть ветки в своем SCM), либо вы будете разлагать функциональность на классы, которые выполняют дискретные задачи для разных фреймворков. .

Я думаю, что в основном это будет зависеть от того, как вы ожидаете роста кодовой базы в будущем. Если вы ожидаете ограниченных изменений в замененных версиях, я бы просто пошел дальше и переделал большую часть новых функций в .NET последнего поколения, чтобы использовать новые языковые функции. Большинство ваших новых функций появилось в версиях 3.0 и 3.5, поэтому я бы предпочел попытаться привлечь клиентов к ним, если это возможно;

1
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: