Происходя из среды Java, я теперь работаю в магазине Microsoft, где мы используем технологии MS только. Можно ли отобразить эту стопку архитектуры на мир MS? Я не ищу эквиваленты определенным слоям стека, но доказанный от начала до конца складывают, который, как известно, работает в реальном мире:
Спасибо!
Стопка архитектуры:
Быть в спящем режиме
ДАО Spring
Управление транзакциями Описания Spring
Модель предметной области POJOs
Spring MVC
BlazeDS
Flex
Flex Интерактивная визуализация данных для построения диаграммы и интерактивный анализ данных
Сквозные проблемы:
Безопасность с помощью Acegi+ACL (Авторизация содержания данных для пользовательских ролей)
Тестирование с фиктивными объектами
Развертывание с помощью Ivy+Ant
Вход с Log4J
Стек архитектуры:
Для DI вы можете просто перейти на spring.net, если это то, с чем вы знакомы. Spring и Castle Windsor, вероятно, являются наиболее зрелыми, за ними следует StructureMap.
Общие проблемы:
Безопасность с использованием Acegi + ACL (авторизация содержимого данных для ролей пользователей)
, вероятно, придется менять самостоятельно.
Тестирование с использованием имитирующих объектов
.net-методы по умолчанию не являются виртуальными, как java, что резко ограничивает возможности динамического прокси (секретный соус, который заставляет имитирующие фреймворки работать на статическом языке). Чаще всего используются бесплатные бесплатные Rhino.Mocks или Moq, использующие подход динамического прокси. Также есть Typemock Isolator, который издевается над чем угодно, но он стоит 800 долларов за место.
Развертывание с использованием Ivy + Ant
Ivy будет круиз-контролем, если вы хотите бесплатно, и TeamCity, если вы хотите хорошего (предостережение: я фанатик с реактивными мозгами ;-) Ant будет NAnt или MSBuild (практически то же самое)
Ведение журнала с помощью Log4J
Два основных варианта: либо log4net, либо блок ведения журнала корпоративной библиотеки Microsoft (люблю их имена) log4net определенно является более легким из двух вариантов, но это зависит от того, что вы хотите сделать
{ {1}}Это не столько точные эквиваленты, сколько альтернативы, используемые в мире .NET.
Spring MVC -> ASP.NET MVC
Flex -> Silverlight (только на стороне клиента)
Интерактивные данные Flex -> диаграммы Silverlight или диаграммы ASP.NET
Hibernate -> структура сущностей ADO.NET.
РЕДАКТИРОВАТЬ:
Я думаю, что следующее будет хорошей отправной точкой (я упустил то, о чем я ничего не знаю, например, «декларативное управление транзакциями»).
SQL Server
ADO.NET Entity Framework
.NET RIA Services
Silverlight (компоненты диаграмм включены в набор инструментов Silverlight )
Для ведения журнала я предпочитаю log4net.
Что касается отчетов и анализа данных, вам также может потребоваться обратиться к службам SQL Server Analysis Services и Reporting Services.
Также посетите Team Foundation Server для тестирования, автоматической сборки и развертывания.
Я бы добавил одну вещь, поскольку я не думаю, что об этом еще упоминалось, - это то, что Unity является реальной (и более простой!) Альтернативой Spring:
.NET-магазины обычно более предписательны в том, что "разрешено", поэтому сначала спросите своих коллег, прежде чем нырять и просто выбирать что-то.
Я использовал Spring.NET и Castle Project, и оба они довольно надежны, но не 1:1 по функциональности с их аналогами на Java. Магазины MS часто стремятся держаться ближе к материнской компании, поэтому чаще всего используют такие вещи, как MS Enterprise Library/Unity (солидная, но многословная), ASP.NET MVC, Silverlight и Entity Framework.
Для CI есть TFS (Team Foundation Server, бесплатная версия теперь поставляется с Visual Studio), но если вы хотите придерживаться свободного программного обеспечения, есть CruiseControl.NET, nAnt, nUnit, в общем, возьмите Java-проект, преобразуйте "j" в "n" и, возможно, найдется продукт ;)
.Я знаю, что у пары из них есть эквиваленты:
log4j -> log4net
Hibernate -> NHibernate
Spring -> Spring.net
Также, кажется, что POJO не так уж специфичен для java (ну, я полагаю, что часть J специфична :)). Я думаю, что "простой старый объект C#" можно считать эквивалентом...
Я нашел кое-что, Sharp + Silverlight дадут мне 80%? Считается ли это лучшей практикой в мире .NET?
http://wiki.sharparchitecture.net/MainPage.ashx
Самый большой недостающий кусок, который я вижу, это функциональность Acegi+ACL...