Hi, We are testing our solution under VS2015. Our version of Dataobjects is 4.6. We have the following compiler error under VS2015, which concerns Postsharp 2.1 : POSTSHARP : postsharp warning PS0134: Cannot read '....pdb': Unknown custom metadata item kind: 6

There seems to be an incompatibility between Postsharp 2.1 and VS2015. Postsharp 2.1 isn't maintained, so the problem won't be solved in Postsharp 2.1 by Gael Fraiteur : http://support.sharpcrafters.com/discussions/problems/2783-unknown-custom-metadata-item-kind-6

They advise to upgrade to Postsharp 3.1 or 4.1. Is it a possibility regarding Dataobject 4.6 that you compile it with Postsharp 3/4 ?

Or do we have to ugprade to Dataobjects 5 ? If so, what should we be aware regarding the upgrade process ?

Regards, Benoit

asked Sep 24 '15 at 03:18

Benoit%20Nesme's gravatar image

Benoit Nesme
43202024


One Answer:

Hello Benoit Nesme

DataObjects 5 had had problems with build under VS 2015 too before we fixed them in 5.0.7 RC.

Upgrading to PostSharp 3.1 or 4.1 depends on changes in new version of PostSharp, I thing. We'll think about it.

Speaking of upgrade to DataObjects 5, we've changed some APIs and you might have to change your code.

  1. We've reworked validation framework. Some parts of legacy framework are supported but API changed a lot.
  2. We've changed ClientProfile mode. It affected EntitySet end Entity classes but not much. Some session options were deleted.
  3. We've removed support for .Net Framework 3.5.
  4. Xtensive.Core and Xtensive.Aspects are no loger exist, we merged them with Xtensive.Orm.
  5. Obsolete Transaction.OpenAuto() methods were removed.
  6. Logging framework was reworked.

Probably there are other changes which might affect your solution like removed methods or something like that. Amount of changes you have to do depends on what you use in the solution.

DO 5 have some improvements. Queries supports new methods. Added support for DateTimeOffset. Added support for non-transactional queries. Optimized persist actions. If you build several domains with same model than you defenetely should migrate to 5.0. We've implemented storage nodes. It allows you to build domain on different databases (or schemes) which use same model (have same structure) and switch between them easly. Also it saves memory. If you are interested in it I'll tell you more about storage nodes.

Anyway I'll help you with upgrade and answer your questions.

answered Sep 25 '15 at 08:30

Alexey%20Kulakov's gravatar image

Alexey Kulakov
77225

Thanks Alexey, We have our own Postsharp 2.1 aspects. Is Postsharp compatible with mono.cecil ? If not, how can we translate them ?

(Sep 28 '15 at 03:14) Benoit Nesme Benoit%20Nesme's gravatar image

Is it your own assembly with aspects which you inject into building process?

(Sep 29 '15 at 01:02) Alexey Kulakov Alexey%20Kulakov's gravatar image

Our own assembly uses our postsharp aspects as well as dataobjects. Example of aspects we wrote : [RetriableTransaction], [Timing]

(Sep 29 '15 at 10:55) Benoit Nesme Benoit%20Nesme's gravatar image

I suppose our weaver can work with Postsharp side by side. But you should create right building sequence based on MSBuild targets

(Oct 01 '15 at 03:05) Alexey Kulakov Alexey%20Kulakov's gravatar image
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
toggle preview

powered by OSQA