C # Architecture Recommendations vs. JavaEE

When I first switched from Java to C #, I was really impressed with the power of C #. However, it seems to me that C # does not yet provide a reliable infrastructure in how JavaEE works.

Every time I try to integrate C # functions into scalable or complex architectures, it always comes down to the following: How can I flip this so that it can be MVC / MVP ? For example, data binding has led to more headaches than I have managed.

MSDN has a lot of documentation related to architecture and patterns. However, for the most part, they are "textbooks" and do not take into account how these concepts relate to .NET functions.

JavaEE EJBs and Apache Struts both seem to support MVC architectures. Like most JavaEEs, they tend to focus on the concepts of separation and scalability, making them candidates for large-scale projects.

Apache puts it this way: Struts is like "standing on the shoulders of a giant." Can I break into .NET too?

The best one liner I could come up with is:

Is there any structure building structure for C # commonly used in large-scale projects?

I disagree with the analogy: I feel that .NET is Power Rangers and JavaEE is Megazord ...

Disclaimer I am selling in C # for Java. I have done several small and medium scale projects in C #, mainly using MVP separation; I'm just trying to "fill the void."

+4
source share
1 answer

.NET does not have a truly single, comprehensive architecture that you can or should use. It depends on the type of application you are writing.

Since you are directly asking about MVC / MVP and data binding, I think one of your problems is the UI architecture and separation of concerns. This is handled very differently in web and desktop applications.

For web applications, the relatively recent ASP.NET MVC framework provides you in the right direction. It might be better (and I expect v.2 to be), but I'm already very happy with it.

For desktop applications, the Windows Presentation Foundation gives you a good opportunity to separate the logic from the user interface using the MVVM template implementation .

I suspect, however, that you are looking for something more structurally based than this. Today, in the base class library, we don’t actually have such a thing, but on the other hand, there are many open source DI containers that can help you build complex, large-scale applications.

Some common DI containers:

I'm not sure if this is useful or not, since I really don't know Java well enough to understand exactly what you need, but I hope you find it a little useful.

+5
source

All Articles