Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Anders Hejlsberg - Programming data in C# 3.0

2 minutes, 19 seconds


Right click “Save as…”

Anders talks about a feature he's working on for C# 3.0 that aims to make data programmable in a general purpose and truly object oriented syntax; something that just doesn't exist today.

Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • yagyag yag
    Just wanted to point out that this is actually being worked on by a cross-language team. IOW, this isn't only a C# thing, but should be usable across .NET languages.

  • CharlesCharles Welcome Change
    Excellent point. The merging of general purpose and database programming is certainly an effort that will require multiple teams working together. Anders is tasked primarily with thinking about the C# end of the spectrum. This is what he meant by "local focus".

    Thanks for pointing this out, Yag.

  • Of course what he's really talking about is Cw (That's C Omega)...

  • ATAT
    To accomplish this goal Anders need to go to network databases instead of relational.

    Network databases has much more similarities to OO programming language compared to 0 similarities in relational databases and SQL.

  • I sure hope they have read Foundation for Object / Relational Databases: The Third Manifesto by
    Chris J. Date...

  • I am glad to see that C# 3 mixs concepts of the data-programming languages and the general-purpose programming languages. This feature not only refers to SQL, also refers to XPath, XQuery among others. It is the same concept that Comega.
  • Isn't this something that will be improved with Object Spaces?

    Does Anders have a blog btw?

  • I like the idea of seperating object persistence from object programming. Have you considered using attributes to define the object / database mapping in a similar way to XML serialization?

  • scobleizerscobleizer I'm the video guy
    Nope, I asked him if he could do one, but he said he's too busy (has several kids at home).
  • CorvaxCorvax Corvax

    Do you think it will be easier to change data access model instead of programming language? I know the WinFS team has many good ideas in this area. I would prefer to access data from a programming language directly by URL and object model. For example:

      Database db = new Database("db://amazon.com");
      XML list = db.Search("Author like 'Hugh Darwen'");
      foreach (XML book in list) {
        wishlist.Add(book.Title + ", " + book.ISBN);

  • 哪位知道Anders Hejlsberg的blog.暂时还是用delphi.不过c#很棒的。

  • tcholzertcholzer Vita contingit, vive cum eo.

    I think that is terrific for C#, however, to be accurate that ability does exist today in MSFT Visual Foxpro.

  • Anders doesn't have a blog, but I do. 

    I'd be happy to convey what information that I can about data programming in C# 3.0. 

  • recently ms research had relased prev comega compiler and some docs

  • COmega has a lot of data integration concepts built into it.  Will any of these appear in C# 3.0?  I can't say exactly, except that I was the developer that put them into COmega.  Small world.  Wink

  • I agree with yag, it should definatly be a cross-language team (and one would assume it would be given the depth of the undertaking). I look forward to more posts to give some understanding of how this develops... (i.e. if it expands/encompases COmega or not).
  • yagyag yag
    This is a cross-language (and cross-team and cross-division) effort. You'll be seeing more and more over time.

  • joe.wurzburgerjoe.​wurzburger Scary, I know
    God, this is so true.  It seems like we spend half of the time in our shop writing freakin' queries inside of our DAL, mapping database types to DAL types and presentation-layer types, and other flavors of data-related plumbing.  It used to seem like debugging was all about finding where I'd accidentally stomped on memory or mismanaged a pointer ... now it seems to be all about a bad character in a SQL string or handling DBNull.Value correctly.

    If there was some compiler awareness of and native control over database constructs, it would be like butter.
  • wOOdywOOdy wOOdy
    Data and OO ? Ever heard of that strange MS product called "Visual FoxPro" ? It's already there since almost 10 years... See www.msdn.com/vFoxpro

  • Daniel MDDaniel MD I like pretty pictures

    Hi all, have to agree with wOOdy on this one...

    Microsoft people these days, just try to solve everything with new programming languages, or exotic syntaxes, etc... Never really thinking deep enough about what they are doing, I know you are all very smart people (I hope, at least that is why I bought MSFT stock J ) but adding 10 new features per year on a language should not be the goal, addressing the issues that developers are having problems with, thinking ahead of the curve predicting new problems and spending more time planning than implementing, is what I want from a language vendor, not a new version every 12 months, with more “tricks” to be learned, that wore not properly addressed in previous versions.


    I want issues solved not arisen, by my programming languages.
    The real issues don't need to be solved with programming languages, no C#, J# whatever# or Cw, can fuse two very different ways of managing data.
    Most problems people are facing today will not be solved by new languages nor mixing syntaxes, and I must say that the idea of C# 3.0 being some sort of super-glue (OO/SQL) is very appealing... initially.
    Still, if you think about it for a little wile, that means new and esoteric syntax to be learned, the first version will probably be very limited, it will be very messy, and of course a new version of SQL server will have to be adopted, a new standard will have to be approved so that the other SQL database vendors can be compatible, etc... It will be a very big mess and you know it.


    C# 3.0 Super-Glue, has a higher probability of being a problem than a solution, (added complexity for sure, "oh no COM/COM+ all over again").

    Instead you should improve on proven solutions (TOOLS) Visual FoxPro, is a great tool, developing the proper tools in my opinion is the way MS, SUN, etc... Should be going, pass the Imperative, go Declarative, but use the proper tools to make Declarative a proper developer ecosystem.


    IMHO new, innovative, better tools is the way to go.

    Oh boy, I let myself get a little carried away, sorry for the long post. But I believe those building new tools that make the developer life easier, and enable him to be more productive, more creative, and simply more fun will be the winners.

    Best Regards,
    DAniel MD

  • PQPQ
    I've been playing around with the Comega preview and am looking for a hint on how to bind a stream to a datagrid or similar tabular structure in a form. Can I assign a stream in some way to the Datasource property of a Datagrid? How do I specify the members to be displayed?

    Any clues?
  • Tamir Khasontamir The computer is no better than its program.
    Just for fun Wink Following my article
  • Christian Liensbergerlittleguru <3 Seattle
    Perhaps Opf3 can fill the gap already with .net 2.0 ?


    It's actually doing the mapping by using attributes.

  • zidaduritsukidoji Spoon? what spoon
    I created an article on what I miss comparing Delphi to C#, and how it could be improved. Also related to COmega.

    I'd like some comments on it, though it's not very in-depth, just some small language features that I'd like to see changed or added...

  • If it is anything like Comega, that would be absolutely great. 

    While you are at it, could you include the Spec# features (http://research.microsoft.com/specsharp/) as well? That would be great for both developer productivity (less runtime bugs to track down) as well as for the user!

    Any news on including Spec# in C# 3.0?

  • Coming from the Java world and just having dived into the world of .Net, I thought that Microsoft's view on this was more a pragmatic one, viewing Java's fascination with persistence layers as a mere academic exercise catering to unsatisfied egos and instead focusing on "getting the job done" without digging too deep into the Pandora´s Box of object/relational mappings. Having said that, I don't say that the ideas of extending C# with object/relational mapping constructs are necessarily wrong. For example, having used the open source library/product/framework Hibernate for that in my latest project was clearly a positve experience. However, I wonder if putting the equivalent(?) into the language itself is the way to go. The KISS principle should be applicable here as well. In my humble, newbie view, C# is already balancing on the edge, with simplicity and elegance on one side (an improved Java) and with complexity and too many sharp (pun intended) edges (C++++) on the other. Adding to this the functionality of Comega might tip it off in the wrong direction and alienating developers as a result due to the resulting complexity. So, my question is really: Wouldn't it be enough to settle for an addition to the class libraries - say, like a .Net-ified Hibernate - instead of cramming even more expressiveness into an already very expressive core or is it really proven necessary to add native operators to achieve the desired results? Btw., are there alternative .Net libraries (open source or commercial) that provide object/relational persistence (corresponding to Java's Hibernate) already? Please, view my opinions as curiosity, not criticism. Wink Regards /Par Eklund --- Why doesn't newlines work for my post? --
  • there is net hibernate version  - nhibernate http://nhibernate.sourceforge.net - works very well


    it is not the same as comega ; not everything can be done thru librariers :O)

    "data store / imperativ code impedance mismatch" problem for sure has to be solved (and allready is - but only in academia not in mainstream - a lot of those "object" databases do not have ability to execute imperativ code on database and only allows to store "object" data structures)

    for sure ms will do something with this informatics holy grail - watch out for september and first WinFS public info @pdc2005
  • How about making the CLR into a Database?

  • Have you seen http://www.suneido.com ? Although not .NET tool, I can deeply recommend to look at this kind of development IDE. It is completely integrated platform. At least reading FAQ and intro about suneido can provide quick "voila!" for you. I am currently working in c# for smart devices (netcf), but IDEAS od Suneido are very good. Main concept of source code library stored structurally in RDBMS, driven by very little "kernel" is practically the same as concept of czech RDBMS PC-FAND, 15 years old.
    Both these tools are build for DATA processing and specifically FAND "THE PROBLEM descriptability" is far more powerfull and easier than in any SQL based RDBMS today, may be Yukon CAN be nearest ......

  • Well if Anders would have just implemented the simplicity of database interfaces that was done in Delphi.  It wouldn't be such a major issue with C#.

  • .NET's getting messier and messier... sigh.

    Someday they need to ditch backwards compatibility and start fresh again -- throw out System.Collections excluding generics, throw out anonymous delegates etc.

    And for God's sakes, please don't mix API names with platform names. .NET 3.0 is the last .NET there can be short of another insane branding change. They threw a wrench into it. Literally.

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.