News, examples, tips, ideas and plans.
Thoughts around ORM, .NET and SQL databases.

Showing posts with label website. Show all posts
Showing posts with label website. Show all posts

Tuesday, August 21, 2012

Moving towards openness

Remember the days when every website wanted to maintain its own database of users and related data? To download some restricted content you have to register there, provide a password, successfully forget it after a couple of minutes and use "Restore password" feature every time you visit the website later.

The same kind of website was our corporate X-tensive.com website. Moreover, our support website was configured to work with users from x-tensive.com only. Until...

Until we rejected the model above and switched to OpenID authentication scheme and made all versions of DataObjects.Net available for download without registration. The same change was applied to support.x-tensive.com — now anyone who has OpenID may log in and post an issue/feedback.


Having that done, we closing user registration area on x-tensive.com as now it doesn't have any sense, however, all user accounts will be preserved and users may sign in in their x-tensive.com profile as usual.

Note for owners of DataObjects.Net licenses: we launched new customer area, don't miss it. All your license-related data is migrated from x-tensive.com to get.dataobjects.net website.

Saturday, August 11, 2012

9-th anniversary, new prices, community edition and much more

Hello everybody!

Today we are celebrating the fact that 9 years ago the first version of the award-winning, revolutionary ORM named DataObjects.Net was released. Due to this we are launching our new edition & pricing policy, new customer area and we are hoping that you'll like it.

DataObjects.Net 4.5.4 final

The main change in this version in addition to all listed in RC 1 & RC 2 is Community edition support. Download it from official website or from NuGet repository.

Community edition

Many users requested Community Edition of DataObjects.Net with full set of features and with possible limitation of number of persistent types. Well, here it is, the Community edition is rolled out today. It has the following characteristics:
  • The edition is absolutely free.
  • Anyone can obtain it from our website.
  • It contains 2 hardware licenses (means it can be installed onto 2 workstations at once).
  • Number of persistent types is limited to 20.
  • The license is issued for 1 year as regular licenses.
Obtain Community edition.

Professional edition

Professional edition is available for $150 and includes 2 hardware licenses. Comparing to the previous pricing scheme (500 euro), the price cutting is more than 65%. Moreover, 3 items are available for $120 each and 5 items - just for $100.

Get Professional edition.

Ultimate edition

Ultimate edition also gets its new shiny price, from now it is available only for $1500 instead of 2500 euros. The edition provides the unlimited number of hardware licenses. Ultimate edition contains access to the source code no more.

Get Ultimate edition.

Access to source code

We extracted 'Access to source code' feature to a separate package to make it available to all our customers, not only for Ultimate edition owners as it was earlier. So anyone, even an owner of Community edition has a chance to dive deep in DataObjects.Net white and black magic. The price for the package is set to $500. The source code is available in download area of our website.

Get access to source code.

New customer area

We are inviting you to the new customer area that we have built for you for better and easier license management. No more registration, we migrated to OpenID authentication scheme. We added license sharing feature, so your developers won't bother you with anything concerning licenses and hardware locks, you may share the license with all of them.

The area can be accesses by clicking on 'My Account' link in the main menu:


Soon you'll receive our invitation e-mail. We need you to log in the area to get your licenses associated with your account. Don't forget to periodically check your mailboxes!

Join the celebration! Thank you!

Links:


Monday, November 28, 2011

DataObjects.Net 4.3.8 RC 1 & 4.4.1 RC 1 are published

Today DataObjects.Net 4.3.8 RC 1 & DataObjects.Net 4.4.1 RC 1 are published and available for download.

Just as a reminder: the list of fixes, updates and new features is here, the detailed overview of index management-related features is here.

No special actions for migration to the new version are required except updating the references.

We are waiting for your feedback! Write to us to support@x-tensive.com.

Thank you!

Tuesday, May 03, 2011

DataObjects.Net is updated to build 7487

Hello All,

Today, May 3, both stable versions of DataObjects.Net (v.4.3 & v.4.4) were updated to the latest revision, 7487.

Bugs fixed:

- Field with type of object is not initialized in DTO on query execution. Here is the detailed scenario, although simplified:
public class MyEntity : Entity
{
  [Field, Key]
  public int Id { get; private set; }

  [Field]
  public string Text { get; set; }
}

public class DTO1
{
  public int Id { get; set; }

  public DTO1(MyEntity entity)
  {
    Id = entity.Id;
  }
}

public class DTO2
{
  public object DTO1 { get; set; }
}

using (var session = Domain.OpenSession()) {
  using (var t = session.OpenTransaction()) {

    var q = session.Query.All()
      .Select(c => new DTO2 {DTO1 = new DTO1(c)});
    Assert.IsNotNull(q.First().DTO1);
  }
}

Updates:

- Entity.IsMaterializing flag is added to help distinguishing the case when Entity is being materialized from the case when it is being created via ordinary constructor. Usage:

// Overriding Entity.OnInitialize method
protected override void OnInitialize()
{
  base.OnInitialize();

  if(!IsMaterializing)
    // Make some new entity initialization logic
}

The updated installers as well as binaries can be downloaded from the official website: dataobjects.net.

UPDATE:
The detailed scenario is added to the bug fixed.

Monday, April 25, 2011

DataObjects.Net stable versions are updated

Hello All,

On Friday, April 22, both stable versions of DataObjects.Net (v.4.3 & v.4.4) were updated to the latest revision. A couple of bugs are fixed:

- Persistent interface with paired EntitySet field bug
- Alias generator for computed columns was generating not so smart aliases
- Upgrade from 4.3 to 4.4 version threw an exception ("No upgrade handler is found for assembly 'Xtensive.Storage', version '1.0.0.0'.").

The updated installers as well as binaries can be downloaded from the official website: dataobjects.net

Sunday, March 06, 2011

Nightly builds are back

Hello All,

After some intense efforts of our developers the nightly builds are back and starting from this weekend are available on the downloads page. The first one (build #7299) is already published.

Next builds will appear in the section on a regular basis as soon as fixes are applied to the codebase. The current technological process provides the ability to produce a fresh build within less an hour, so I am sure you will appreciate the innovation.

There is still a couple of tasks that should be done to achieve better level of usability and transparency: for instance, a build should contain information about the changes that are made in it, so a visitor could get an idea which one he should download and install.

Another exciting bit of news concerning nightly builds is that they will be available for everyone, not only for owners of Professional & Ultimate editions as it is stated on the prices page. The page will be updated soon to reflect this change.

Thank all of you who use DataObjects.Net, who visit our support website, who report tricky bugs and request new awesome features. We are trying our best to deliver you mature and solid framework. Thanks for your choice.

Thursday, November 04, 2010

New DataObjects.Net website

... has been launched!

P.S.
In case you find anything that doesn't work as expected, please, get us informed.

Thanks in advance.

Monday, November 01, 2010

Development news

Sorry for keeping the silence - I really haven't been writing here for a while. Usually this means we're quite busy with some new stuff, and in this case this is absolutely true. We're working on two main features we're going to bring quite soon:
  • DataObjects.Net v4.4 - it brings really dramatic changes; most important of them are described in the following part of this post.
  • New, dedicated DataObjects.Net web site. We know we should do this much earlier, and now even our own patience is finished ;)
Some details:

Website

It is almost finished, and will be launched quite soon. Few screenshots:

 
 

Hopefully, you'll like it.

DataObjects.Net v4.4

As I wrote, we implement a set of dramatic changes there, but mostly they are related to refactoring we planned for pretty long time. Most important changes there include:
  • Elimination of most of of assemblies. We'll leave just Xtensive.Core, Xtensive.Aspects, Xtensive.Aspects.Weaver (not necessary to reference it) and Xtensive.Orm, so you should reference just 3 assemblies from your code. It's a result of significant internal refactoring + ILMerge.
  • We're starting to use actual assembly version numbers from this release. All assemblies there are marked as v4.4.0.0 (their file versions reflect minor revisions and build numbers). Assembly versions will be changed on each significant API change. Project upgrade tool will help to automatically upgrade your projects to the new version.
  • Namespace renaming:
    Xtensive.Storage is split into Xtensive.Orm (most of classes you need are there now) + Xtensive.Storage;
    Xtensive.Core.* are renamed to Xtensive.* (but Xtensive.Core itself is left as is);
    Xtensive.Modelling become Xtensive.Core.Modelling;
    Xtensive.Integrity is gone;
    there are few other less important changes.
  • Usage of Session.Current / Session.Demand() is optional now. This actually means explicit passing of Session is recommended now; old API fully works, but all such methods are marked as obsolete; there are new methods for any part of API that formerly relied on current Session (e.g. there is Session.Query.All<T>()). Automatic session activation on method call is optional now (this behavior is managed by one of SessionOptions flags); DO itself does not require it, but it can be used when it is convenient (e.g. this is still a recommended practice for web applications). We did this because of two issues:
    a) We discovered people tend to think DO isn't designed for concurrent operations (such as passing persistent objects to another thread). Of course, this isn't true, but "current Session" concept makes a different impression. There were people stating it as one of blocking issues.
    b) People used to different style, and finally we understood it's a bad idea to make them to study our own one.
    c) The advantage of this style is really subjective. It hides the complexity, although people used to manage it by their own in this case. Moreover, it doesn't bring any essential advantages to us - i.e. actually, framework does not need this feature to be enough extendable and flexible.
    d) This technique isn't friendly to new "async" and "await" in C# 5 (i.e. there shouldn't be async methods in SessionBound descendants), so its usage must be 100% optional.
  • SessionOptions brings 3 pre-defined combinations of flags now: ClientProfile, ServerProfile and LegacyProfile. Legacy profile is the mode you use now. Server profile is legacy profile without automatic session activation (since now this is optional). And finally, there is a client profile: each Session operating in this mode is created along with attached DisconnectedState, so it works nearly as DataContext in EF or Session in NH (from many points - even better). This mode allows people using different ORM frameworks to migrate to DO a bit easier.
  • Xtensive.Practices is finally separated there. Btw, it will be shipped with full source code.
All above changes are mainly related to API. But certainly, this isn't all:
  • We've actualized Manual. Btw, it's split in multiple topics in help, so it's much easier to study it there.
  • Samples are now organized by technology. Also, they don't require IIS and installation of "IIS Metabase and IIS 6 configuration compatibility" components for Windows to be executed from VS.NET. Sandbox projects are moved to samples. Finally, there is a good Readme.htm that fully explains how to create a sample database, compile and and run them.
  • We'll ship a set of .RAR archives allowing to download only necessary part of each build (e.g. just binaries). Actually, we already are.
All these changes (along with the dedicated web site) must make the product much more user-friendly - especially, for its adopters.

v4.4 will be released during November.

Further plans

We're pushing the development of DataObjects.Net in two directions:
  • Adding new and unique features and APIs. That's what distinguishes us from others. Frankly speaking, we've paused our activity here for a certain period, so our near-time goal is to push this part forward.
  • Adding old and widely adopted features / APIs. That's what makes DO easier to study and more compatible with others. We must propose an alternative to nearly any nice feature available in competing products. 
As you see, initial release of v4.4 is mostly focused on initial user experience and compatibility / similarity with competitors, but its subsequent updates (v4.4.X) will be devoted mainly to extensions.

Our further (pretty near) plans include:
  • Implementation of a small framework simplifying MVVM development with DO. The description is here (a bit outdated).
  • Implementation of access control / security extension - the preliminary description is here.
P.S. Right now you can download new DataObjects.Net v4.3.5 build 6600.