Are there any simple examples on how to use Castle Windsor's Automatic Transaction Management? The documentation seems to be lacking some information. I see there are facilities for nHibernate, ActiveRecord, etc.... However, I'm looking for a simple implementation just to understand how it works.
Here's a simple sample app that uses ASP.NET MVC + Castle Automatic Transaction Facility + NHibernate facility.
Related
is there any code or docs about implement asp identity in clean architecture and how to apply CRUD operation in Application Layer with User Entity that inherit from IdentityUser in Domain Layer
I implement Asp identity in Domain Layer any ideas ??
I forget to mention that I use CQRS in Application layer
Here is a nice article provinding a lot of information on how to implement a clean architecture using DDD TDD and Identity.
Hope it covers your needs.
I want to build a RESTful service/API. I used some framework like play to build it but I want to try other more efficient ways. I heard that Jersey is a common library for building a REST API, and Spring is also a good framework. But I also saw some solutions like Spring+Jersey. Thus, I am a little confused about those REST API solutions.
Can anyone tell me what is the difference among those? Jersey REST, Spring REST and Spring+Jersey REST?
My goal is building a couple of REST APIs that take JSON as input/output. I have jar file as the backend process logic to process the input a JSON/object and return a JSON/object.
Jersey is the JAX-RS API example implementation provided by Sun, while Spring REST is of course Spring's implementation of the same API/JSRs. The major difference is that Spring REST easily integrates into other Spring APIs (if you wish) such as Spring Data Rest.
There are a few noteworthy differences between them - you can "embed" Jersey Resources (known in Spring as Controllers) within each other, to enable a separate class that is responsible for the sub-path of a certain path, while this doesn't appear to be available in Spring right now (you have to define the full path). Also, in my opinion Jersey gives better "out of the box" error responses (such as why it can not map a JSON payload to a Java bean using Jackson) while Spring is a bit more configurable but plainer without some additional work.
In the end the difference in choosing between them usually comes down to - are you already or do you plan to integrate any other Spring libraries into your application? If so Spring REST is the way to go as you'll have a much easier time integrating it, otherwise it is really just personal preference which you'd prefer to use. Personally I like Jersey but the power of other related Spring projects (such as Spring HATEOAS which I highly recommend) makes Spring the better choice. I don't think there will be a real determining factor in your case.
As your "gold" target is a simple API with JSON input/output, I'd recommend you follow the Spring REST guide.
One major difference is in the area of unit testing support.
Jersey Test Framework does not lend itself for mocking server side code - For example, if your REST Resource depended on a Service, you would like to mock the service when testing resource methods. However, Jersey Tests run a separate container and unit tests sort of make calls to the running instance of your REST resource - at this point of time, I have not found any documentation or way for mocking server side code.
On the contrary, Spring MVC tests do not require any containers - and are more well integrated with its controllers. Dependency Injection can be used to inject mock services / DAOs to have better unit tests.
I also find that documentation on Spring projects are more mature when compared to Jersey.
One subtle difference is in the instantiation of the resource (Jersey) or controller (Spring) objects.
Jersey new's a resource object for each request. Whereas, by default Spring treats controllers as beans with default scope of singleton. This can be overridden with a #Scope annotation (although if you do that it will get flagged by Sonar).
This default behavior of Spring has bitten our application several times. With the controller class being a singleton, all class members are effectively static. So values set handling one request will still be there for the next.
This is something to be aware of if your using Spring. My suggestion is to #Scope the controller class as prototype, even though that will earn you a warning if you do Sonar scans.
We have project developed in Silverlight/DevForce services, currently we plain to move code into HTML5. My question is it possible to reuse server side part of project, I means is it possible to reuse DevForce services or better migrate to WebAPI services? IdeaBlade has Breeze Js for HTML5, but it looks more as dataservice provider and not support DevForce services.
You might be asking whether BreezeJS offers a mechanism for handling arbitrary service calls between the client and the Web API running on the server ... in the manner of the DevForce "invokeServerMethod".
BreezeJS does not . The DevForce "invokeServerMethod" is helpful when you need to talk to the server for non-data reasons. You don't have to open and secure your own channel; instead you can share the DevForce secure data channel between client and server. It's also a convenient way to sent a package of entities. Setting up your own independent channel is not much fun.
But writing and communicating with a Web API service endpoint is much easier. Our thought is that you can manage your non-data communications quite well without the help of the BreezeJS EntityManager. So we don't see the need to implement the equivalent of "invokeServerMethod"
However, perhaps you have a scenario that would cause us to reconsider. We'd love to learn more.
Breeze doesn't integrate with DevForce today. I'd recommend adding the request to the Breeze UserVoice site. The Breeze team uses UserVoice to judge interest when incorporating new features.
A quick look shows me that there is already one DevForce related suggestion there: Support for DevForce models.
I probably suck as Googling stuff, but I couldn't find any link that mentioned whether its possible to integrate Spring.net with Oracle's coherance product.
Does anyone know if Spring.net has wrapper libraries for the same ?
Thanks in advance.
The spring integration project for .net is still listed as a spring.net extension project, it's status is "incubator" and it hasn't had any commits since March 2010.
From the project homepage:
The Spring Integration for .NET project will use the design and code
base of the Spring Integration project as a basis, adapting the code
as need to support .NET idioms and move in the direction to take
advantage of .NET only features such as Lambda expressions and
extension methods.
I'd suggest you first find out if Spring Integration for Java supports Oracle's Coherance and if so, you might have a slight chance to get this working in .NET too.
Oracle Coherence provides a native .NET client that you can use to access it from any .NET application, including Spring.NET-based apps.
Here is a link to docs:
http://docs.oracle.com/cd/E24290_01/index.htm
What you are interested in is covered in the Client Guide (Parts I and IV) and .NET API Reference.
My book, Oracle Coherence 3.5, also has two chapters on .NET and POF (Portable Object Format), as well as a full blown WPF sample application talking to a Coherence Java backend.
I have been using Linq-to-SQL. What is a good option for working with mySQL? I have been looking at NHibernate, Entity Framework, etc. Some comparisons (pros, cons) would be helpful
LLBLGen. The current version 2.6 is awesome. The designer is really easy to use, supports entity inheritance, type converters (which also can be used to bridge the gap between different types across RDBMS), validation, auditing, authorization and a ton more. Most importantly though, their documentation is stellar and their support forum is very responsive. The lead developer (who is also on stackoverflow) also answers users questions. I can't say enough about this tool, try it. It is well worth the cost.
The next version is probably going to blow everything else out of the game. In addition to being able to generate their traditional data later, you will be able to gen nHibernate mapping files, entity framework and linq2sql.
Here is a discussion comparing LLBLGen to Entity Framework and to nHibernate (of course it might be biased since it is on their forum).
http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=12811
http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=14659
Have a look at Mindscape LightSpeed. It includes LINQ querying and a Visual Studio designer that works with MySQL natively. You can update your database or sync changes from your database directly from within the LightSpeed designer also.
Mindscape also publish an open source repository of helpers for asp.net MVC which includes things they have built up to make development with LightSpeed and MVC easier (for example, you'll likely end up wanting a custom ModelBinder for whatever underlying model objects you use - Mindscape provide one that is richer than the default model binder).
There is a free version available to play with:
Mindscape LightSpeed
One of the guys at Mindscape has also written a fairly deep set of blog posts about building up an ASP.NET MVC solution using LightSpeed (although it's probably helpful no matter what you're using :-)
ASP.NET MVC & LightSpeed Blogs Posts
Nhibernate is quite mature and seems be to lighter compared to Entity framework.
Entity Framework works for most things in MySQL. You will notice problems here and there, but chances are they'll all be manageable issues.
Try DbLinq.
It's not a full port of Linq to SQL, but it does the basics.
I haven't used it yet, but there also Linq support in nHibernate now (check the link).
The biggest downside to Entity Framework is the lack of native Lazy Loading. I've used NHibernate and Entity Framework - personally I prefer the richness of NHibernate but Entity Framework is fairly quick and easy to get going and isn't as bad as the rep it sometimes get.
Check out Telerik's OpenAccess ORM. It's free for any free or Open Source database platforms (in your case, MySQL), and provides a slick and easy-to-use GUI. Not to mention that Telerik has great support forums and a huge library of video training.
OpenAccess offers LINQ support, POCO, forward- and reverse-mapping, advanced caching, lazy- and aggressive-loading, no reflection, medium trust, and more. I use it daily (for MS Sql and Oracle data access) and have found it to be a great solution in enterprise scenarios and for my own personal projects.
Try NEntityDb. It allows you query and save data to the database with .NET LINQ Expressions and Fluent API, and eliminate the need for most of the data-access code they usually you need to write.