Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I've used Spring and Spring.NET quite a bit, but I would like to see what else is out there. Can anyone recommend a good Java or .NET framework that I could try to learn?
Here is a list of IoC containers from the good Mr. Hanselman...
Castle Windsor is very popular, you could do worse than learn that.
On the .Net side, Ninject is probably the most interesting, on the Java side, I would say check out Google Guice. That being said, DI is DI, and they all more or less do the same thing. The differences are mostly in how they are configured.
Google Guice is very good - unless you really need it, there are no .xml configuration files - everything is done via annotations, and in an ideal world you can avoid setter methods, injecting your dependencies via the constructor.
I'd suggest JBoss Seam. It has a very different dependency injection model than Spring. Seam's DI is bidirectional and able to inject values at every stage in an object's life (not just during initialization).
It's certainly not a good for everything, but if your looking to try different things in DI, this is interesting.
Look at Seam's home page.
So in the wide world of software you feel the need to learn what is 'assumed plumbing' rather than expand your base? You just use IoC. It's not even optional for anyone serious. This is going on like a decade now.
Go master Functional Programming in say F#. Master the new IObserver and related work coming in .NET 4.0 as the conceptual pairing to IEnumerable. Write a domain specific language for your domain of choice. Create New abstractions, don't simply relearn old ones.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
Background:
Around next year I will finish university and wanna learn some skills that help me in the industry. For that, I choose to learn Spring Boot, cause I currently like the JVM environment and already have "ok´ish" knowledge in Java and Servelt/Tomcat. In addition, I got some basics in kotlin through app development, so I know that I like both Java and Kotlin.
Question:
If I got it right, Kotlin is the first class citizen in Spring Boot now, but the industry is really slow in adapting new technologies.
So if I learn Spring in Kotlin,
can I easily switch to Java Spring?
do companies care?
do I miss out on other, more important skills that I can learn instead?
Thanks in advance for every input :)
Gretings Pascal
So if I learn Spring in Kotlin,
You will learn Spring, using Kotlin. Spring is a JVM framework, the API you will interact with is the same in Java or Kotlin.
can I easily switch to Java Spring?
You can even mix Kotlin and Java in the same project and it will work, however I do not advise doing so. It's also possible to translate from Java -> Kotlin (IntelliJ does this if you paste java code in a .kt file!) or Kotlin -> Java, however the output code is not very nice :)
do companies care?
You should ask this to your superiors, it depends a lot on the company policies. In general, Java has a much bigger market specially for big companies which move slow and are afraid of changes. Kotlin is mostly sought for Android development, on which Spring is not recommended.
Nevertheless, if you already know Java and just are interesting only in learning Spring I suggest you use Java for this.
do I miss out on other, more important skills that I can learn
instead?
I'm also a Java and Kotlin programmer for the backend and I can say that the Kotlin opportunities are mostly for Android development, it's odd to find roles for Kotlin backend development.
If you're looking to prepare for your first job I'd say don't worry on learning a new language, Java has a lot of opportunities. I suggest you focus instead on learning the other important aspects of development (databases, cloud services, containers, testing, software engineering, networking, etc.) those will be far more valuable than knowing two very similar programming languages.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
What would be a good Java framework to explore for someone looking to learn? I've played around with the Android api but had someone ask what other frameworks I had experience with so I thought I should spend some time working with another. What's the best bang for my time?
There are many java frameworks but we can categorize two parts.
Standard Frameworks
JSF
JSP & Servlets
JPA
EJB
Non Standard Frameworks
Spring
Strut
Wicket
GWT
Hibernate
Seam
Play
Others
For web frameworks i suggest : Spring, Hibernate, Struts, Primefaces (cool stuff) .
It really depends on what it is you're trying to gain experience with. If you are looking for web frameworks, gaspyr named some decent ones you should try (I've worked with Spring myself). If you are looking to develop just desktop applications or embedded solutions, I would just go with tackling the standard JRE, and take special note on how the differences between how applications, applets, and servlets run. It's always good to know about the underlying libraries themselves rather than just understanding the syntax and attempting to use a framework to solve all problems without understanding how they might work under the hood.
But this is a really open ended question, and it's difficult to know exactly what you're looking for and why.
Framework choice depends on many factors and good documentation is not the least.
There is incredible book "Spring in Action" if you will decide to start with Spring.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I have read the Wikipedia article on JavaFX and several other articles and I believe I have a decent understanding of what it is and what it does.
My question is simple: what do Java EE best practices dictate one uses for the presentation? Or, is it possible to use them both? Either way, can someone give an example of when it would be appropriate to choose one over the other, and why?
Thanks for any help with this; I'm just not seeing why anyone would ever want/need to stray from JSF.
JavaFX and JSF are two very different animals. I think of JavaFX as Oracle's version of Adobe Flex (or Flash?). It runs on a JVM, which means it's a heavier client for the browser. JSF uses standard HTML controls and interaction.
Running in a VM, like JavaFX or Flex means that you don't have to worry as much about browser capabilities like you do with standard HTML/Javascript, but it also means you are at the mercy of the VM implementor to get the platform on browser XYZ and fix platform and security bugs as they arrive. Another consideration is that some corporate environments may not like allowing plugins like flash/java in the browser.
Running pure HTML/Javascript will likely get you going on more devices and is lighter weight than needing to load a VM into the browser (never thought I would call JSF 'lighter weight'.) jQuery and other javascript frameworks have lessened the worries about cross-browser compatibility somewhat but not completely.
So, the answer is the same here as it is for every other question like this: "It Depends." What are your needs? Are you doing an annoying restaurant website where you feel like the menu (even though it's just an image) needs to be loaded by a heavy plugin? Perhaps JavaFX will fit the bill. Are you doing a simple CRUD app and you want to complicate things by using a difficult component based framework? JSF can help you with that.
JSF is pretty rich in UI compared to spring or struts but has a jargon of maintaining session and additional jars. But if you use richfaces, ibmfaces or primefaces your life will be much easier. JSF is a specification and you need to use its implementations like richfaces or myfaces.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
In the course of my work i need to develop an authorization engine ( i'm already authenticated and i check access of a user to an action ) in order to store all the authorization logic inside a same place and be able to reuse it and i have created the mini library.
http://github.com/eltados/canny
what do you think about it?
Is there any lightweight Authorization engine library i could have a look at?
I'd use Spring Security before I developed anything of my own. Authorization and authentication are cross-cutting concerns. Spring properly puts them in aspects that you can configure down to the method level.
I only had a brief look and was wondering whether you had considered the following questions:
I'm not a fan of using a static attribute to store the Authorisation object and all the rules, this could lead to problems in clustered environments or when multiple applications share an appserver (I'm thinking shared classloader problems with JBoss here)
The canny engine provides no out-of-the-box functionality for dynamically accessing authorisation stores. As far as I can tell in order to get user/permission information from LDAP or a database, a custom rule needs to be created.
I'm not sure whether having the definitions of the rules in code is the best place, as it will mean having to rewrite/rebuild/redeploy code to change the rules.
Note, maybe I have misunderstood some of the concerns, but the readme and test classes were a little bit sparse.
Personally, Spring Security has been my Authentication/Authorisation framework of choice.
Hope that helps.
Three years later... You want to use XACML and a XACML authorization engine. There are open-source alternatives (WSO2, Heras AF, Sun XACML) and vendors alternatives (Axiomatics, IBM...).
Disclaimer: I work for Axiomatics.
Our solution can be an authorization service or used as a library you embed within your application - see more at http://www.axiomatics.com/
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Which is your top 3 open-source APIs (in Java) you recommend as an example of well-designed piece of art?
That would be code that you had pleasure to browse through and got some insights from it.
Any problem domain acceptable.
Emphasis here is on educational/study quality of code, complexity level - intermediate to top.
Thanks a lot for responses.
I think that google collections is a great place to start. Josh Bloch advised the development of a lot of it, and it's a very well done API. While Spring is great, it's a little hard to know where to start. A good introduction to google collections is "coding in the small with google collections" (I can't post the actual link because of stackoverflow spam filter).
1.Spring
2.Hibernate
Spring - it's a very well written and designed framework. It's a hell of a big bit of software but if want an example of how to build in a modular manner you can't go to fair wrong looking at the spring code base
The sources of the java libraries are well documented.
In my experience the most valuable works include the documentation of desgin decisions, if you see a nice API it would be very interessting what could be the alternatives to that. Unfortunatly this is mostly burried mailing-lists of a project.
Not an external library - but the java.util.concurrent package is very nicely written. The code isn't simple, but it's very well thought out and, in my opinion, has been written brilliantly.