Are there tools to help upgrade from DO 3.9 to 4.x? (at a minimum the persistence layer). Some documentation about the how to convert DO 3.9 features to 4.x (like DataService, sample how to implement RuntimeService, sample how to implement Lucene support, sample how to implement user/roles (and permissions). When i look at the examples all i can find are simple apps, same level as tests. I like to see an example with some business logic, reporting scenario's, UI paging / filtering large resultsets (with many tables involved), login/logout, exception logging in database (rollbacked transaction issues), best practices to upgrade large application (maybe separate upgrade app), etc.... Thanks |
Unfortunately, no.
Again, no. And, frankly speaking, I fear we have no time on writing this guide. But I'm certainly ready to answer on particular questions here.
The most close analogue is
Currently we don't ship any close analogue, but provide more generic API for this: you must implement Also, you can subscribe to
We don't support Lucene; moreover, actually we're quite rarely asked about its support. So currently implementation of this feature isn't scheduled.
Access control API will be available pretty soon as part of Btw, if you need something simple, you can start with your own model. Just create your own I can add that likely we won't provide our own authentication API in this version. We'll just provide a way to say who's current user - something like this:
Remember this is just an example. Actual API should be different.
That's true - we tried to build simpler examples with this version - they're easier to understand for newcomers. Likely, we'll publish some complex examples later, but actually, I don't see a real need for this. Our current goal is to describe all the features - their practical implementation is actually pretty obvious. Btw, if you're interested in complex BLL, see
Hmm, just checked and discovered we really never override event-like methods of Btw,
There is nothing special: you can use either our own LINQ query translator for reporting (we prefer this option), or rely completely on database structures and some third-party reporting engine.
It's pretty easy with LINQ - See AspNetMvcSample2 in Sandbox projects - it shows paging over ~ 100K of entities. But there is really nothing special.
Again, LINQ itself should work perfectly here:
This isn't what we're going to implement soon - mainly, because this is pretty specific to a particular application. We thought about implementing membership provider for DO, but finally found this not so attractive: in any particular case this is pretty easy (~ 1 day of work), but since we must implement this in general case, it will be more complex, and moreover, we'll need to document and support this. So we decided to postpone this. This explains why we don't implement other particular solutions, and that's why we extract
That's easy as 1-2-3: as far as I can judge, you should just catch it and log :) If this is done in the same transaction, nothing will be committed if the transaction will be rolled back because of this. Otherwise (e.g. if you're using separate
If you mean deadlocks and version conflicts, there are really no samples about this. Moreover, currently DO is incapable of reprocessing transactional method calls on deadlocks (but this will be done almost instantly of few users will vote for this feature here), so there is really nothing special. You should do this as you'd do this normally. E.g. that's pretty easy with ASP.NET MVC; regular ASP.NET requires some hacks like we used in v3.X; WPF applications need either our own automatic transaction reprocessing or some custom infrastructure for this (e.g. any data fetch attempt must be executed as delegate passed to a special method providing transaction + reprocessing for this).
No, we don't recommend you to use a separate upgrade app. I'd recommend you to use the approach used by us in nearly all the samples - i.e. just build the But the topic seems really poorly covered, so I'll write a dedicated post about this soon. Hopefully, this will help. |