A warning raise in my mind, looking at the documentation you provided: don't forget Microsoft programmers!
I'm not a Microsoft entusiasts (I learnt C# 3 month ago, while I'm used to Debian GNU/Linux from potato's days), but I hope that Mono will not lead DbLinq to be incompatible with the Microsoft environment. This is a key point in our decision. In the next 2 year we will develop in a Microsoft environment: by choosing DbLinq we need to know that its compatibility will be granted in the future (at least until linq will exists in the Microsoft environment :-D) Giacomo PS: I've sent you an invite on GTalk... On Fri, Feb 27, 2009 at 1:12 PM, Pascal Craponne <[email protected]> wrote: > One detail: on the tests page, the first column is the LINQ to SQL column. > The tests from this column use the official MS LINQ to SQL, so if they > succeed, do not consider that DbLinq is capable to do so. If they fail, you > may consider that the test sucks :) > Pascal. > > jabber/gtalk: [email protected] > msn: [email protected] > > > > On Fri, Feb 27, 2009 at 13:08, Pascal Craponne <[email protected]> wrote: > >> Hi Giacomo, >> this would be a great opportunity to DbLinq if you could contribute to it. >> I wrote some documentation that you can find at >> http://linq.to/db/documentation. There is an overview, but it is a real >> over-view (from very high :)) >> >> I'd answer to stable features by telling you what's unstable or still not >> implemented: >> - complex subexpressions (involving EntitySets): not implemented. >> - cascading: not implemented. >> - and a lot of SQL specific features >> >> You can find all unit tests results at page http://linq.to/db/Tests >> This will probably help you to see what's done and what's not: >> - If it doesn't work for all databases, then it's a missing engine feature >> - if it works for a few databases, then it's either to specific to these >> databases, or not implemented for the others. >> >> Regarding the support you could get: >> - Me (I wrote the current SQL generation engine, and refactored almost all >> the code... And I like that :)), probably available regularly and at least >> capable to answer to most of your questions, general or technical. >> - The Mono guys (Atsushi Eno, maybe Pablo IƱigo Blasco, he wrote a lot of >> unit tests and did a lot of work for the project, too). >> >> I had no contact recently with Mono people, so I can't even tell the >> status of Mono and their overall strategy. >> >> Since LINQ to SQL won't probably be maintained anymore by Microsoft, and >> since LINQ to Entities (the ADO Entity Framework) doesn't appear to be much >> convincing until now, there may be some future for DbLinq... If we work on >> it hard enough :) >> >> Pascal. >> >> jabber/gtalk: [email protected] >> msn: [email protected] >> >> >> >> On Fri, Feb 27, 2009 at 12:19, [email protected] <[email protected]>wrote: >> >>> >>> I'm evaluating DbLinq for production use against Oracle (and possibly >>> SQL server) backend in a Microsoft environment (no Mono/Linux, yet). >>> >>> If we will choise to invest on it we will dedicate some effort to the >>> project too. >>> >>> Since our customer require reliability, we absolutely need to reach a >>> stable (yet quite rich) set of functionality to build application upon >>> during the next 2/3 years. >>> >>> Since that, I've got a look to the code (from svn). >>> So I think DbLinq need: >>> >>> - a better documentation about the overall architecture (absolutely >>> urgent, to allow developers to help) >>> - a catalogue of the stable features provided by the different >>> providers. >>> >>> BTW, since to evaluate the use of DbLinq I need to know it a bit more, >>> I'd like to get involved too. >>> >>> >>> Actually I've noticed some bugs that I'm tring to fix (but with little >>> success, the appointed to me the need of better architecture and core >>> documentation) >>> As you could understand, to choice a tecnology upon which build >>> complex multi layer applications for the next 2 years, I need to >>> undestand also which support we could get from the community, and how >>> easily we could fix the bug we will encounter (obviously sending fix >>> back to the comunity too...) >>> >>> >>> Can you give me a more general overview? >>> >>> >>> Giacomo Tesio >>> >>> >>> PS: actually I'm working on >>> BUG 1: >>> >>> var res = from product in db.Products >>> join detail in db.OrderDetails on >>> product.ProductID equals detail.ProductID >>> join order in db.Orders on detail.OrderID >>> equals order.OrderID >>> select product; >>> >>> Exception thrown: >>> System.Reflection.TargetInvocationException was unhandled >>> Message="Exception has been thrown by the target of an invocation." >>> Source="mscorlib" >>> StackTrace: >>> at System.RuntimeMethodHandle._InvokeMethodFast(Object target, >>> Object[] arguments, SignatureStruct& sig, MethodAttributes >>> methodAttributes, RuntimeTypeHandle typeOwner) >>> at System.RuntimeMethodHandle.InvokeMethodFast(Object target, >>> Object[] arguments, Signature sig, MethodAttributes methodAttributes, >>> RuntimeTypeHandle typeOwner) >>> at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, >>> BindingFlags invokeAttr, Binder binder, Object[] parameters, >>> CultureInfo culture, Boolean skipVisibilityChecks) >>> at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, >>> BindingFlags invokeAttr, Binder binder, Object[] parameters, >>> CultureInfo culture) >>> at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, >>> Object value, BindingFlags invokeAttr, Binder binder, Object[] index, >>> CultureInfo culture) >>> at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, >>> Object value, Object[] index) >>> at DbLinq.Data.Linq.DataContext.SetEntitySetsQueries(Object >>> entity) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \DataContext.cs:line 389 >>> at DbLinq.Data.Linq.DataContext._GetOrRegisterEntity(Object >>> entity) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \DataContext.cs:line 319 >>> at DbLinq.Data.Linq.DataContext.Register(Object entity, Type >>> asType) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \DataContext.cs:line 496 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.QueryRunner.<Select>d__0`1.MoveNext >>> () in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar >>> \Implementation\QueryRunner.cs:line 137 >>> at System.Collections.Generic.List`1..ctor(IEnumerable`1 >>> collection) >>> at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) >>> at DbLinq.Mssql.Example.Program.Main(String[] args) in C: >>> \Projects\Labs\Linq\DbLinq\examples\DbLinq.Mssql.Example >>> \Program.cs:line 51 >>> at System.AppDomain._nExecuteAssembly(Assembly assembly, String >>> [] args) >>> at System.AppDomain.ExecuteAssembly(String assemblyFile, >>> Evidence assemblySecurity, String[] args) >>> at >>> Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() >>> at System.Threading.ThreadHelper.ThreadStart_Context(Object >>> state) >>> at System.Threading.ExecutionContext.Run(ExecutionContext >>> executionContext, ContextCallback callback, Object state) >>> at System.Threading.ThreadHelper.ThreadStart() >>> InnerException: System.NullReferenceException >>> Message="Object reference not set to an instance of an object." >>> Source="DbLinq.Mssql.Example" >>> StackTrace: >>> at nwind.Product.set_OrderDetails(EntitySet`1 value) in C: >>> \Projects\Labs\Linq\DbLinq\examples\DbLinq.Mssql.Example\nwind >>> \Northwind.cs:line 2492 >>> >>> BUG 2 (adding any where) >>> >>> var res = from product in db.Products >>> join detail in db.OrderDetails on >>> product.ProductID equals detail.ProductID >>> join order in db.Orders on detail.OrderID >>> equals order.OrderID >>> where order.CustomerID == "ID123" >>> select product; >>> >>> Exception thrown: >>> System.NullReferenceException was unhandled >>> Message="Object reference not set to an instance of an object." >>> Source="System.Core" >>> StackTrace: >>> at System.Linq.Expressions.Expression.AreReferenceAssignable >>> (Type dest, Type src) >>> at System.Linq.Expressions.Expression.ValidateNewArgs >>> (ConstructorInfo constructor, ReadOnlyCollection`1& arguments, >>> ReadOnlyCollection`1 members) >>> at System.Linq.Expressions.Expression.New(ConstructorInfo >>> constructor, IEnumerable`1 arguments, IEnumerable`1 members) >>> at >>> >>> DbLinq.Data.Linq.Sugar.ExpressionMutator.Implementation.NewExpressionMutator.Mutate >>> (IList`1 operands) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\ExpressionMutator\Implementation\NewExpressionMutator.cs:line >>> 54 >>> at >>> >>> DbLinq.Data.Linq.Sugar.ExpressionMutator.ExpressionMutatorExtensions.ChangeOperands >>> [T](T expression, IList`1 operands, Boolean checkForChanges) in C: >>> \Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\ExpressionMutator >>> \ExpressionMutatorExtensions.cs:line 79 >>> at >>> >>> DbLinq.Data.Linq.Sugar.ExpressionMutator.ExpressionMutatorExtensions.ChangeOperands >>> [T](T expression, IList`1 operands) in C:\Projects\Labs\Linq\DbLinq\src >>> \DbLinq\Data\Linq\Sugar\ExpressionMutator >>> \ExpressionMutatorExtensions.cs:line 116 >>> at >>> >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeOperator >>> (Expression expression, BuilderContext builderContext) in C:\Projects >>> \Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation >>> \ExpressionDispatcher.Analyzer.cs:line 838 >>> at >>> >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeNewOperator >>> (Expression expression, BuilderContext builderContext) in C:\Projects >>> \Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation >>> \ExpressionDispatcher.Analyzer.cs:line 857 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze >>> (Expression expression, IList`1 parameters, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 126 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze >>> (Expression expression, BuilderContext builderContext) in C:\Projects >>> \Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation >>> \ExpressionDispatcher.Analyzer.cs:line 72 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeLambda >>> (Expression expression, IList`1 parameters, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 518 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze >>> (Expression expression, IList`1 parameters, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 82 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeQuote >>> (Expression piece, IList`1 parameters, BuilderContext builderContext) >>> in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar >>> \Implementation\ExpressionDispatcher.Analyzer.cs:line 811 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze >>> (Expression expression, IList`1 parameters, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 86 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeJoin >>> (IList`1 parameters, TableJoinType joinType, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 991 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeJoin >>> (IList`1 parameters, BuilderContext builderContext) in C:\Projects\Labs >>> \Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation >>> \ExpressionDispatcher.Analyzer.cs:line 940 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeCall >>> (MethodInfo method, IList`1 parameters, BuilderContext builderContext) >>> in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar >>> \Implementation\ExpressionDispatcher.Analyzer.cs:line 159 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.AnalyzeCall >>> (MethodCallExpression expression, IList`1 parameters, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 142 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze >>> (Expression expression, IList`1 parameters, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 80 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.ExpressionDispatcher.Analyze >>> (Expression expression, Expression parameter, BuilderContext >>> builderContext) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq >>> \Sugar\Implementation\ExpressionDispatcher.Analyzer.cs:line 67 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery >>> (ExpressionChain expressions, Expression tableExpression, >>> BuilderContext builderContext) in C:\Projects\Labs\Linq\DbLinq\src >>> \DbLinq\Data\Linq\Sugar\Implementation\QueryBuilder.cs:line 225 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery >>> (ExpressionChain expressions, BuilderContext builderContext) in C: >>> \Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation >>> \QueryBuilder.cs:line 193 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.BuildExpressionQuery >>> (ExpressionChain expressions, QueryContext queryContext) in C:\Projects >>> \Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation >>> \QueryBuilder.cs:line 87 >>> at >>> DbLinq.Data.Linq.Sugar.Implementation.QueryBuilder.GetSelectQuery >>> (ExpressionChain expressions, QueryContext queryContext) in C:\Projects >>> \Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation >>> \QueryBuilder.cs:line 391 >>> at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetQuery >>> (Expression expression) in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data >>> \Linq\Implementation\QueryProvider.cs:line 100 >>> at DbLinq.Data.Linq.Implementation.QueryProvider`1.GetEnumerator >>> () in C:\Projects\Labs\Linq\DbLinq\src\DbLinq\Data\Linq\Implementation >>> \QueryProvider.cs:line 122 >>> at System.Collections.Generic.List`1..ctor(IEnumerable`1 >>> collection) >>> at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) >>> at DbLinq.Mssql.Example.Program.Main(String[] args) in C: >>> \Projects\Labs\Linq\DbLinq\examples\DbLinq.Mssql.Example >>> \Program.cs:line 52 >>> at System.AppDomain._nExecuteAssembly(Assembly assembly, String >>> [] args) >>> at System.AppDomain.ExecuteAssembly(String assemblyFile, >>> Evidence assemblySecurity, String[] args) >>> at >>> Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() >>> at System.Threading.ThreadHelper.ThreadStart_Context(Object >>> state) >>> at System.Threading.ExecutionContext.Run(ExecutionContext >>> executionContext, ContextCallback callback, Object state) >>> at System.Threading.ThreadHelper.ThreadStart() >>> >>> >>> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DbLinq" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/dblinq?hl=en -~----------~----~----~----~------~----~------~--~---
