Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Map Java architecture stack to Microsoft

Coming from Java background, I am now working in a Microsoft shop where we use MS technologies only. Can you please map this architecture stack to the MS world? I am not looking for equivalents to specific layers of the stack, but a proven end-to-end stack that is known to work in the real world:

Thanks!

Architecture Stack:
Hibernate
Spring DAO
Spring Declarative transaction management
Domain model POJOs
Spring MVC
BlazeDS
Flex
Flex Interactive data visualization for charting and interactive data analysis

Cross cutting concerns:
Security using Acegi+ACL (Data content authorization for user roles)
Testing with Mock Objects
Deployment using Ivy+Ant
Logging with Log4J

like image 515
user284094 Avatar asked Mar 02 '10 05:03

user284094


2 Answers

Architecture Stack:

  • Hibernate -> NHibernate
  • Domain model POJOs -> Domain Model POCOs
  • Spring MVC -> ASP.net MVC
  • BlazeDS -> RIA Services
  • Flex -> Silverlight

For DI, you can just go for spring.net if that is what you are familiar with. Spring and Castle Windsor are probably the most mature, followed closely by StructureMap.

Cross cutting concerns:

Security using Acegi+ACL (Data content authorization for user roles)

probably have to roll your own.

Testing with Mock Objects

.net methods are not virtual by default like java, which dramatically limits what a dynamic proxy (the secret sauce that makes mocking frameworks work in static language) can do. Either Rhino.Mocks or Moq would be the most used that are free, and use the dynamic proxy approach. There is also Typemock Isolator which will mock pretty much anything, but it is 800$/seat.

Deployment using Ivy+Ant

Ivy would be Cruise Control if you want free, and TeamCity if you want good (caveat: I am a jetbrains fanboi ;-) Ant would be NAnt or MSBuild (virtually the same thing)

Logging with Log4J

Two main choices, either log4net or the Microsoft Enterprise Library Logging Block (love their names) log4net is definately the more lightweight of the two choices, but it depends what you want to do

like image 80
Matt Briggs Avatar answered Oct 14 '22 02:10

Matt Briggs


The following are not so much exact equivalents, but more alternatives used in the .NET world.

Spring MVC -> ASP.NET MVC

Flex -> Silverlight (client side only)

Flex interactive data -> Silverlight charting or ASP.NET Charting

Hibernate -> ADO.NET entity framework.

EDIT:

I think the following would be a good starting point (I have left out the things I do not know anything about, such as "declarative transaction management").

SQL Server
ADO.NET Entity Framework
.NET RIA Services
Silverlight (charting components are included in the Silverlight toolkit)

For logging I prefer log4net.

As for reporting and data analysis you might also want to look at SQL Server Analysis Services and Reporting Services.

Also check out Team Foundation Server for testing, automated builds and deployment.

like image 42
Henrik Söderlund Avatar answered Oct 14 '22 03:10

Henrik Söderlund