Saturday, March 01, 2008

Confession: I had never heard of Microsoft Master Data Management before seeing Jamie Thompson's blogpost, MDM -> Entity Framework -> ADO.Net Data Services. Better together?. MDM is a BI tool created by a company called Stratature, which Microsoft acquired in June. Jamie writes more about that in Microsoft purchases Stratature. Notice which technology MDM is listed under on Microsoft's website.

Jamie sees a strong connection between MDM and entity framework's capabilities, however he points out one big disconnect which is that EF can't create EDMs on the fly at run time.

But can't it? We've actually seen some explorations into this with the long ignored Jasper project, an incubator project that was previewed at last year's MIX conference. I wrote an article about Jasper for OReilly which you can read to get an idea of what that's all about: Build Dynamic Database Applications in .NET with Project Codename "Jasper" .

The short explanation is that Jasper dynamically generated an EDM on the fly at runtime by pointing to a database. Then some intelligent dynamic controls use Convention over Configuration to make assumptions about what you want to do with whatever data model was created. Dynamic languages are core to how Jasper works.

Jamie points out that Brian Dawson and Jeff Derstadt both expressed interest in his questions about bridging the two and providing the ability to dynamically create EDMs. Well, they've already got some of that work done. Maybe it will revive some interest in the ideas that were being put forth with Jasper.

I also grinned when Jamie said he had "cheated" by manually adding associations into an EDM based on an MDM database because MDM didn't infer the relationships. That's not cheating; that's what the conceptual layer is for! :-)

Saturday, March 01, 2008 12:52:45 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, February 29, 2008

Scott Guthrie has written about Using Expression Blend with Silverlight 2.0 in this blog post.

I just wanted to highlight one of the screenshots from his blog post.

Ooooh - look at ALL of those controls!!!

 

Friday, February 29, 2008 5:38:58 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [2]  | 

Andy Conrad shares with us another preview of what's coming at MIX08.

Windows Live Services will now have AtomPub payloads. These will match the ADO.NET Data Services payload format and therefore you will be able to use the various client libraries for ADO.NET Data Services (.NET, ASP.NET AJAX nad Silverlight .NET) to consume the Windows Live Services.

Sure makes it handy when things align like this.

Early on in the Astoria life cycle, they were talking about having a common format with WIndows Live, but at that time it was variation on POX (plain old xml) they were calling Web3S.

Then they bagged that and settled on ATOM and JSON.

Earlier this month, Pablo Castro wrote about AtomPub support "From our (Microsoft) perspective, you could imagine a world where our own consumer and infrastructure services in Windows Live could speak AtomPub with the same idioms as Astoria services".

So here is that world.

See more at MIX!

Friday, February 29, 2008 8:52:01 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Wednesday, February 27, 2008

I give in.

For years, every time a publisher has asked me "so Julie, when are you going to write a book for us?" I had my answer ready. "I'll do it when you are prepared to give me a $50,000 advance, come to my house weekly to cook dinner and clean the house and also pay for a full year of marriage counseling." So they finally go the point of my not-really-that-funny joke and stopped asking.

Then Microsoft went and created this thing called Entity Framework which intrigued me... a lot. I played with it and learned plenty about it. I wrote some articles which were extremely frustrating because they have a limitation on how long they can be. I have been speak at conferences and user groups about it for over a year, but can never fit everything I want to say in a 60 or 75 minute slot (finally I'm doing full day sessions at a few conferences!). I have written a gazillion blog posts about it and answered lots of questions in the forums.

But still I wasn't happy. Entity Framework was leaking out of me and I could not satisfy my need to talk and write about it.

So I finally gave in and talked to a few publishers and said that it was time.

I am now writing a book for O'Reilly called "Programming Entity Framework". I have actually started writing it already and am hoping to have it in print in October. This gives me a short time frame to write it in since there are about 3 monhts needed for the actual production of the book so it has to be done by then.

Call me crazy. But, really, I was going to self-combust otherwise. I'm so happy having a valid excuse to play with Entity Framework every day now.

There is a much bigger problem though with this. It's not that my husband and I will probably be eating spaghetti for the next 4 months or the dust bunnies that will be taking over our house.

The problem is that the animal which I really want to have on my cover has been used already for a VBA book (which I have). Of course, that would be a Newfoundland dog. How perfect is a dog? Isn't data an old faithful friend? And we're teaching it some new tricks with Entity Framework! Maybe we could have a write-in campaign to convince them to let me have another Newfie!

Anyway, until there is an official cover, I have invented this one for myself:

Wednesday, February 27, 2008 4:09:05 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [7]  | 

While I will always promote the value of being able to read C# and mentally convert it to VB  and being able to read VB and mentally convert it to C# is a skill I think all VB and C# developers should try to have, admittedly, having to do it with a whole book does sometimes get tiresome.

If you are a VB programmer and constantly plagued with having to translate from C# when you are reading advanced programming books, this list is for you.

Chris Williams has just added a page to his I LOVE VB.net website called Serious VB Booklist.

These are not books filled with Hello World samples.

He is just building up the list now, so it's light. That doesn't mean there aren't very many published, just not very many on his list yet. Let him know if you have any additions.

VB
Wednesday, February 27, 2008 3:24:57 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Ruurd Boeke had an Entity Framework tool he was writing and wanted to share, so he created a common project on CodePlex that can be used as a container for any other ENtity Framework projects that people are working on. IT's called EF Contrib.

Ruurd is working on an easy way to implement IPOCO in v1 of Entity Framework.

Michael DeMond (also known as MichaelD!) has added a plug-in EDMX code generator.

If you have an E.F. tool that you would like to share or that you would like to get other developer to help you build, this is a great one-stop place to host it.

The url is codeplex.com/efcontrib. Easy enough to remember!

Wednesday, February 27, 2008 2:38:49 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, February 26, 2008

I recently had a fun chat with Carl and Richard about my favorite topic, the ADO.NET Entity Framework.

It is now online at www.dotnetrocks.com. (http://www.dotnetrocks.com/default.aspx?showNum=319)

And just for fun, the first person (who I have not already told privately) who can identify a particular symptom of my latest dive into a new level of insanity will be gauranteed a free copy of the tangible expression of this insanity when it is available. (Is this cryptic enough for you? :-))

Tuesday, February 26, 2008 11:20:17 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [7]  | 
 Monday, February 25, 2008

I have always said that Mike has a dream job. He gets to play with development tools, blog about them , present on them and make videos about them as his job!

No, Mike is not giving up this dream job (he's also pretty smart!) but they are adding to his team in the U.K.

Check out his blog post that includes a link to the job description.

If I didn't love living in Vermont so much......

Monday, February 25, 2008 10:44:49 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, February 23, 2008

One of the points Faisal made in his post Coming soon to LINQ to SQL is that there will be support for the new types in SQL Server 2008 in the next release (SP1?).

It made me wonder if the LINQ to Entities and Entity SQL will gain these before Entity Framework is released?

One of the benefits of Entity SQL is that it in addition to the canonical functions that it supports (for all providers), it also support provider specific functions and provider primitive types. So for Entity SQL it's a matter of getting the types into the data provider.

For LINQ to Entities, they also need to get it into the Entity Framework APIs. Perhaps they are doing that along with the LINQ to SQL update?

Note: Dont' miss Danny Simmons' reply in the comments!

Saturday, February 23, 2008 9:58:07 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [2]  | 
 Friday, February 22, 2008

This morning, Scott Guthrie has finally made public the list of features that we will see in Silverlight 2.0. He also include links to EIGHT tutorials all at once, rather than waiting for them blog post by blog post.

Scott says "We are shortly going to release the first public beta of Silverlight 2". All bets are on the obvious: at MIX08 in a few weeks.

Among the new features are

  • a bevy of built-in controls (even controls for databinding)
  • Support for WCF (goodbye to the hacks we have had to perform so far)
  • Cross domain support (hip hip hooray!)
  • LINQ to XML support (more hoorays - now I don't have to send things off to a web service to leverage LINQ to XML)

The first beta will be about 4MB and take a whopping 4-10 seconds to install.

See Scott's post for all of the juicy details and the links to the 8 tutorials.

Friday, February 22, 2008 12:30:51 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Thanks to Bill McCarthy for pointing out that videos from the Lang.NET symposium are now online and offering his thoughts on those which he has watched already. Read more...

[A New DevLife Post]

Friday, February 22, 2008 8:57:33 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Thursday, February 21, 2008

If you've been wondering, and many of us have, Faisal Mohamood, LINQ to SQL Program Manager, gives us a hint in this blog post: Coming soon to LINQ to SQL. It's hard to tell if he's talking about things coming in VS2008 SP1 or if we will have to wait much longer.

Update: Charlie Calvert's blog indiciates that these are for next release. But that doesn't quite clear it up. I'll just pretend that I believe this means, literally the next time something is released, which translates to SP1.

Thursday, February 21, 2008 4:30:39 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Wednesday, February 20, 2008

I found out recently that I will be giving not one, but two sessions related to Entity Framework at TechEd 2008 US Developer.

Advanced Entity Framework: Entity Data Model in the Enterprise

and

.NET 3.5 Data Access Guidance

I'm sure there will be plenty of other ADO.NET/EF/Data Services sessions there as well.

Since we'll be nearing the end of "the first half of 2008" which is the period of time in which E.F. is supposed to be released, this could end up being E.F.s coming out party. But, it's only early June, and there will be 3 more weeks in the first half of 2008 after that, so it's hard to call it at the moment.

Wednesday, February 20, 2008 5:23:31 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [1]  | 

Thanks to Guy Burstein for letting us know that there's a new CTP out for SQL SErver 2008 that now works with VS2008. I'm assuming it will work with VS2005, too!

SQL Server 2008 February CTP and Visual Studio 2008 Support

Wednesday, February 20, 2008 11:00:11 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, February 18, 2008

People are more willing to believe guidance from someone at Microsoft than someone outside of Microsoft, therefore I'm happy that Danny has written a blog post on a topic he has answered a few times in the forums and I have pointed to previously as "evidence" in my own blog posts.

This blog post addresses the question about how long to keep an objectcontext around. Danny reiterates what he has advised in the forums:

Standard cases:

Websites/Web services - shortest lifetime as possible. Create the context, do query/savechanges, kill the context

Client apps (winforms, wpf, console) - it's okay to leave the context hanging around. IT was designed for that purpose and will make change tracking and updates to the db a lot easier.

Edge cases:

Huge amounts of data to deal with for updates? Handle them in batches. You might want t take a look at the experiments with updating that Alex James has been writing about (see below for links) for a different look at updates.

Client app with data that you would like to cache combined with data that changes: for example, a list of product categories that doesn't change much as well as order data that changes frequently. I've seen the back and forth discussions of this scenario in the forums. Danny recommends using a single context and how to manage that data within that context.

Read all the details here

Alex James blog post series:

  • Rolling your own SQL Update on top of the Entity Framework - Part 4
  • Rolling your own SQL Update on-top of the Entity Framework - Part 3
  • Rolling your own SQL Update on top of the Entity Framework - Part 2
  • Rolling your own SQL Update on-top of the Entity Framework - Part 1
  • Monday, February 18, 2008 9:02:01 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
     Sunday, February 17, 2008

    Remember how I recommended subscribing to the WebDevTools blog only a few weeks ago? (grin) Well, it continues to pay off!

    Vishal Joshi has written a blog post about the tools for building MVC that will be previewed at MIX. Usually these goodies are shown first at MIX and then in blog posts.

    Tooling Features Overview of ASP.NET MVC Framework for MIX 2008 shows some of the improvements made to the tools for creating MVC apps and more handily creating unit tests for them.

     

    Sunday, February 17, 2008 1:18:28 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
     Friday, February 15, 2008

    Microsoft announced 14 high level promotions yesterday including those of ScottGu and Soma! read more

    [A New DevLife Post]

    Friday, February 15, 2008 6:21:01 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

    A while back, Pablo Castro had created a PopFly block from an Astoria service. It no longer seems to work, presumably because he created it with the preview bits, not the CTP bits.

    I want to use a Popfly example in my upcoming DevConnections session Web Mashups with ADO.NET Data Services , so I decided to try to create one myself. It took a little hairpulling, but I've succeeded.

    I created an ADO.NET DataService with an EDM as the source data. I used Northwind for my data model.

    In order to create and test the block in Visual Studio 2008, I downloaded the Popfly Explorer plugin and built up a Northwind class that has a single exposed function of getCustomers.

    SInce I'm just starting out with this, my popfly block merely returns some read-only data from the service. It's not interactive (i.e. you can't drill in to anything in the block) because that will require me needing to learn how to build a display block as well. So for the time being, it's just spitting out an array of objects that contain only two properties: CompanyName and Details which is just some aggregated data about the customer orders.

    I had some problems with the SDK and had to work around them.

    1) There is a getXML function but it wasn't returning anything. So I used the getText function instead then manually created an XML doc from the results.

        var root = "http://www.thedatafarm.com/dataservices/northwind/awdataservice.svc/Customers?$expand=Orders";
        var result = environment.getText(root);
        var doc=new ActiveXObject("Msxml2.DOMDocument.3.0");
        doc.loadXML(result);

    2) Popfly's handling of javascript is not exactly the same as the results I was getting when testing in VS2008. Specifically with variable declarations. Declaring a variable and giving it a value in one line of code resulted in incorrect data when I ran the test in Popfly (even though it was perfectly fine during debugging in VS2008). THerefore I had to break up those code lines. It took me quite a lot of testing before I thought of this (I thought it had something to do with the use of toString and wasted some time going down that road).

            var orderCount;
            orderCount=orders.length;
            var orderTotal;
            orderTotal = 0;

    I selected an existing block for displaying my data, the NewsReader, and wired it up to my block.

    The last step was to define what will be displayed. There's a simple view:

     

    but that only gets me to the objects, not the properties. So I had to go into the "advanced" view and modify the script, by adding ".CompanyName" and ".Details"  where the array was being called.

             var result = newsReader.addNewsItem(data["thedatafarmAstoriaNorthwind"][i].CompanyName,
    "2/15/2008", data["thedatafarmAstoriaNorthwind"][i].Details,
    "http://www.thedatafarm.com");

    et voila!

    So this was just a "can I even make it work?" test and now that I have gotten past it (and spent all of those extra hours dealing with the above mentioned anomalies, so you don't have to now...hopefully the next iteration of this beta SDK will make things a little easier), I'll continue exploring.

    I have shared it and the name is "thedatafarmAstoriaNorthwind". I tagged it as "Data" so it should be under there.

    Friday, February 15, 2008 12:38:50 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

    An ADO.NET team project called Jasper was announced and demo'd at last year's MIX conference. I played with the available bits and wrote an article about it for O'Reilly: Build Dynamic Database Applications in .NET with Project Codename "Jasper"

    Not much has been heard about Jasper since then, while the other incubator project that was announced at MIX has evolved into ADO.NET Data Services.

    Jasper, in the meantime is stagnant and hasn't even been updated so that it can be used in VS2008.

    In the Jasper forum, someone finally just came out with it and asked: "Is Jasper Dead?"

    Andy Conrad replies:

    We have no news about Project Jasper because we really have nothing interesting to report.

    The project team wants to port the code base/ functionality over to the DLR, hence we are waiting for that to mature before doing so.  We are also thinking of doing a DLR based Astoria client with Jasper like functionality, but need to get Astoria V1 done.

    As I have posted before, if folks want us to update the Jasper CTP for VS 2008 RTM or have any ideas of what direction we should go in, they should post to the newsgroup or send email. 

    So it sounds like there was not enough interest expressed in the project and therefore it is just shelved for now.

    As Holger Froebe suggests in reply to Andy's answer, if there was a VS2008 version for people to play with, more people would very likely be playing with it and help drive interest.

    Friday, February 15, 2008 9:52:34 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
     Wednesday, February 13, 2008

    Dell started selling their own TabletPC recently. Since it looks comparable to my Lenovo Thinkpad, I took a closer look the specs and compared them. And the results are....[read more]

    [A New DevLife Post]

    Wednesday, February 13, 2008 9:36:24 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  |