Don't worry: I only work on MS platform :) Joining our effort with Mono team is a situation where everyone has to win, MS .NET users included.
Pascal. jabber/gtalk: [email protected] msn: [email protected] On Fri, Feb 27, 2009 at 17:48, Giacomo Tesio <[email protected]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---
