| |
Genome 4.2 released - Feb 10, 2010
Supports now Visual Studio 2010!
read more...
|
Updated roadmap - Dec 22, 2009
learn more about the upcoming Genome v4.2 release
read more...
|
Genome 4.1 released - Mar 31, 2009
Read more about what's new in this release.
read more...
|
New Product Video released - Jan 16, 2009
Get a quick overview of Genome v4.
read more...
|
|
|
| |
|
|
| |
|
|
|
| |
4.2: released 10th of February, 2010 (build 4.2.1.37) 4.2 service release 1: released 17th of February, 2010 (build 4.2.2.40) Support for Microsoft Visual Studio 2010 RC and .NET 4.0 It is here! This Genome release can also integrate with Microsoft Visual Studio 2010 RC. Visual Studio 2008 is supported side-by-side with the same installer. Improvements in testability With this release we have improved the testability of Genome applications again. We have made efforts to enhance unit testing capabilities and also to make the database integration tests running faster with SQLite in-memory database. The following list contains the most important changes in these topics, and the references to the detailed descriptions. Stub proxy generation framework Maybe one of the most important improvements is that we have created a new stub proxy generation framework inside the Genome Testing Extensions package. The created stubs are completely detached from any DataDomain or Context instances, so they behave like a value object or POCO. These stub objects can be used to provide sample domain entities for unit testing. IDataDomain and IConext interfaces To make it easier to write unit test for codes that uses the DataDomain or the Context classes of Genome, we have introduced two new interfaces (IDataDomain and IContext) that contain all the important methods and properties of the DataDomain and Context classes. The business logic can be implemented in a way that it depends on the new interfaces, and these dependencies can then be mocked out for a unit test. The infrastructure for managing the active context (Context.Push(), Context.Current) has been refactored to work with any IContext object, so these infrastructures can be also used in unit tests to inject the mocked IContext object to the application logic. IDataDomain.Delete() method If a part of your business logic needed to create, update and delete persistent objects, previously you had to use both the Context and the DataDomain classes of Genome, as the method for creation (New) was defined on the DataDomain class, but the method for deleting was defined on the Context class. To reduce the number of dependencies of these codes and making the unit testing easier, we have introduced an additional Delete method on the DataDomain class and on the IDataDomain interface. The additional Delete method is equivalent to the Context.Delete() method, and the old method can still be used. With this change you can reduce the dependencies to IDataDomain of these business logic methods. Using SQLite in-memory databases for database integration testing One of the main problems with writing database integration tests is that the execution of these tests is relative slow. As Genome now provides integration with SQLite databases, and since SQLite supports in-memory databases, we have investigated how this can be used to increase the performance of the database integration tests, even if the application being tested does not use SQLite database to store its data. We have provided a sample and a step-by-step guidance how you can configure your project for this. The result is promising: we have measured the same integration test running almost 5 times faster with SQLite in-memory databases (running 100 tests in 7 seconds). Support for SQLite 3 database engine (including in-memory databases) Genome now supports SQLite 3 databases with the SQLite.NET provider for .NET. For using SQLite support the desired ADO.NET provider (System.Data.SQLite) and the TechTalk.Genome.SQLiteProvider.dll assembly has to be referenced in the project. We currently support the 1.0.65.0 version of the SQLite.NET provider which is available here: http://sqlite.phxsoftware.com/. Genome Fluent Mapping Extensions (GFMX) Genome Fluent Mapping Extensions (GFMX) allow you to map your persistent classes and their members with C# (or other .NET language) code. This makes the mapping more type-safe and provides better integration for different refactoring tools (e.g. rename property). The extension pack can be also used as an example, how different mapping features can be automated. The fluent mapping still validated compile-time, so using GFMX does not increase the application load time. Also, it can fully be combined with the classical XML mapping (even for a class) providing full backwards compatibility and a possibility for smooth transition to GFMX. Changes in Oracle database support The Microsoft OracleClient provider has been deprecated in .NET 4.0. Fortunately this does not mean that you cannot use it anymore, but there will be no more improvements in the provider in the further .NET releases. We have also stared to prepare for this change. As a first step we have moved our Oracle integration that uses the OracleClient provider into a separate assembly. In the future we will provide an alternative Oracle provider that uses the ODP.NET provider from Oracle. For the users of Genome who have been using the Oracle provider, the new provider assembly (TechTalk.Genome.OracleProvider.dll) has to be added to the project references of the schema project. The new provider assembly is located in the Bin folder of the Genome installation. List of breaking changes To support testability, a number of minor breaking changes has been introduced with Genome v4.2. These changes have to be resolved manually. Please review the What's New of the online help for further details. Fixed issues (since Genome 4.1.2) The following issues have been fixed in Genome 4.2: - 1200: GDMX: Possibility to automatically add namespace and assembly if a property is created in the code with SqlHierarchyId type
- 1420: Misleading error message for TransientField/LinqInitializer
- 1421: Default initialization for NOR discriminator member might cause a failure during creation
- 1423: SqlCE and MsSql2008 providers are not signed
- 1425: CommitFailed events fired before the database connection is closed
- 1476: GMX: compilation fails with "No DataDomainSchema project found among the referenced assemblies." on x64
- 1479: QueryProvider generated for derived interface does not implement base interface members
- 1481: Prepared query with null value check generates incorrect SQL
- 1483: BoolMapping might not work with MsSql2005
- 1484: Collections of new objects having server-generated id might be cleared after flush
|
|
| |
|
|
| |
|
|
|