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
-~----------~----~----~----~------~----~------~--~---

Reply via email to