Sunday, March 30, 2008

EFExtensions , released on CodeGallery earlier this week by EF team member, Colin Meek, has a lot of brainy goo in it. So far I've looked at the pieces that Colin has explained in his first post (first post ever) about the Extensions. While most of the extensions in the first part of his post are replicating what Object Services does, the last chunk displays the real benefit of having them at hand.

EF Function Imports can handle READ stored procedures that return existing entity sets. At first I was looking at the extensions to see if they can return random objects, but I haven't seen that yet however there's a lot to look at still. (I'm picturing a generic method that reads the columns and creates an anonymous type on the fly rather than having to go through all of the mucking with the model to make this work. Of course, this is for read-only results.)

What Colin's post shows, however is sprocs that return shaped results. A standard function import can't do this...it needs to map to a single entity type.

So by combining a few of his extensions, he is able to extract the different types from the shaped results and mimic the object materialization that happens under the covers in expected scenarios. Additionally, he is able to add these entities manually into the change tracker.

It's pretty sweet and what's funny to me is that I was trying to do something very similar to this on the same day that Colin released the extensions. I had seen them pop into Code Gallery, made a mental note and a quick blog post without digging into them yet, then a few hours later asked on the forums, "Any way to grab sets of (unrelated) entities in one database call? ". Small world, eh? Now that I have a better understanding of some of the extensions, I will have to go back and see if this does the trick.

Sunday, March 30, 2008 8:43:22 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, March 28, 2008

Yep... no life.

Except for a few hours out to ski in the woods on Tuesday, I have literally been working from after breakfast to bedtime every day. I have basically been on this new schedule for a few months now and it is really unusual for me to be so focused.

Everyone warned me it would be like this.

It gets to the point where you just can't invent time and don't know what else to do but keep working until you just can't any more. One thing I won't do (and am not physically capable of doing) is cut back on my sleep.

I am definitely impressed that I can focus this well and be so driven. I just wish the pages would churn out more quickly.

When Michele Leroux Bustamante was writing Learning WCF, she told me that she felt she learned WCF at a depth which she never would have achieved if it hadn't been for the "exercise" of writing the book. I totally understand this now. Before I started, there were things that I knew well about Entity Framework, things that I had heard of but hadn't played with yet, things that I kinda knew but not really and obviously lots of things that I had no clue at all about.

So the first item in that list is easy to write about. Everything else is belaboured as I cannot bear to write a sentence unless I'm 150% sure of its accuracy.

I have had (rare) days where I wrote 20+ pages. On the other hand there have also been days (thankfully these are also rare) on which, if it weren't for screen shots, I managed to produce only 4 pages over the course of 12  hours. I have spent so much time turning over every stone, every pebble and every grain of sand in between.

It is definitely an amazing process.

The strangest and most unexpected thing is that I have actually lost weight because I'm not lingering in the kitchen or running upstairs for snacks. Or for that matter going to the store. Rich is away for a few days and the fridge is running low. I just eat what I can find and get back to work. If nothing else, I can always be grateful for losing a few pounds. ;-) Good thing I started out with plenty of extra.

And like they say about the Army, it's not a job (at least not a paying one), it's an adventure.

Friday, March 28, 2008 9:42:44 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Is Entity Framework right for your Applications? You'll probably want to answer this question before you start digging in deeply to learn this new data access platform that will be released very soon. Does it fit into my architecture? Will my DBA allow it? How will it play with my existing solutions? This BOF is intended as an interactive discussion where there will be plenty of experts in the room to get you started with some important decision making.

It won't happen unless it gets voted for so go vote!

Friday, March 28, 2008 6:57:52 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

About 3 years ago I moderated a session at PDC (or was it TechEd, I can't even remember :-)) called Going Solo. The room was literally overflowing into the hallway and it was a great discussion. Steve Smith and I are hoping to host a repeat at TechEd this year but we can't do it unless you vote for it.

Going Solo
Have you ever thought of going independent? This session aims to bring together independent developers with those who have toyed with the idea to share advice, lessons learned and more.

VOTE HERE!

Friday, March 28, 2008 6:48:34 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Roger Jennings wrote a dizzying (in a good way) post about stored procedures that I have not even had the chance to absorb yet but it's about creating database procedures after the fact that can be easily used with the entities and associations defined in your model.

Coincidentally, Noam Ben-Ami wrote a lengthy post on teh ADO.NET Team blog about using the designer to leverage DML stored procedures that already map directly to entities defined in teh CSDL, while the stored procedures might do perform additional functions, such as time-stamp checking. Stored Procedure Mapping

Friday, March 28, 2008 8:48:47 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

...then this piece, Screams, in the current New Yorker is for you. Be a fly on the wall when a bunch of old Jewish comedians gather to celebrate a book of their caricatures..

The Milton Berle Room at the Friars Club was the scene the other day of a party for Drew Friedman’s “More Old Jewish Comedians,” a sequel to “Old Jewish Comedians,” collected caricatures of such revered icons, now gone, as Myron Cohen, Groucho, Buddy Hackett, Burns, Benny, et al., along with Friars present and still carrying on. [more...]

Warning Label: Reading this article while consuming liquids may cause said liquids to eject from your nostrils.

Friday, March 28, 2008 7:54:29 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

In the EF forums, Danny Simmons lets an EF RTM cat out of the bag.

And, this looks like it has the possibility to be bigger than just for EF. The EF team worked with the WCF team to make ENTIRE GRAPHS serializable, and in an interoperable way. If you look at Ruurd Boeke's blog post,Circular references with WCF: solved a different way, about how he  achieved this, you can see examples of how WCF serialized entities before (non-interoperable) and after his own tweaks. Ruurd has been thinking about this problem for a long time, not just for EF, but for WCF in general, because it's the way that WCF serializes that causes the problem.

So the question is, did they just implement this specifically for EF, or will this have a broader impact? We'll see when the next CTP (as per Danny's comment, he says CTP not Beta4) of EF comes out.

Friday, March 28, 2008 7:39:25 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [5]  | 
 Wednesday, March 26, 2008

About three years ago, I noticed when perusing the speaker list for TechEd US (which is sorted alphabetically by first name) that there were a lot of Brians. Then I started counting and realized that there were more men named Brian speaking than there were women speaking.

I couldn't help but notice on this year's TechEd Developer speaker slate that there were only five Brians. Heck off the top of my head I can list more than 5 women.

  1. Me
  2. Kate Gregory
  3. Amanda Silver
  4. Sara Ford
  5. Lisa Feigenbaum
  6. Mary Chipman (SQL Server team)

There are more but I don't know them off the top of my head. :-)

Wednesday, March 26, 2008 7:00:36 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [1]  | 

It's great to see Colin Meek finally blogging. Colin has been a wealth of information on the MSDN Forums for Entity Fraemwrok related questions. It is also COlin who posted teh Entity Framework Extensions on CodeGallery a few days ago.

Colin talks about the extension in his first post and how they can be used to handle a variety of Stored Procedure scenarios in Entity Framework.

For what looks like a pretty complete list of the blogs of the Entity Framework team and others on the Data Programmability team at Microsoft, see the Resources page of the DataDeveloper.NET website.

Thanks to Alex for the heads' up....

Wednesday, March 26, 2008 6:40:07 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, March 25, 2008

Because of a bug in the way the schema files are created, the behavior for embedding the model into your assembly and the impact on using that assembly in other projects is a little funky. This will change with the next iteration of the EF that we will see as it has been fixed.

In the meantime, there are two things to keep in mind.

1) When you compile, even if you want the files embedded, choose the Copy to Output Directory option for Metadata Artifact Processing, then build, then change the option to Embed in Output Assembly.

2) If you make a change to the model and rebuild, after it is already being referenced by another project, you may or may not get the changes reflected in the assembly and therefore the client project will still fail. In most cases, doing the 2-step build will do the trick. In other cases, it is necessary to go into the bin directory of the model's project and delete all of the schema files (csdl, msl & ssdl) or just delete every thing in there, then do the two step rebuild again.

As I've been working on samples over and over and over, and adjusting my model, I've gotten into the habit of doing this.

One easy red-flag that you need to do this is if you get an error message complaining about C-side vs. O-side. That means that something in the CSDL is different than the classes (O=Objects) that were codegen'd. So you while the assembly does have the updated classes, it doesn't have the updated model.

Tuesday, March 25, 2008 9:30:49 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

RESOURCE SYSTEMS GROUP is a multi-disciplinary, employee-owned consulting firm specializing in the planning, analysis, and management of business, infrastructure and natural resources. We serve clients who share our belief that high-quality objective analysis is a prerequisite to resolving complex problems. More than just analysts, scientists, and engineers, we’re communicators – our study results are clear, concise, and directly applicable to a client’s particular questions and challenges. Our solutions are creative and grounded by 20 years of experience with clients as large as federal government agencies and Fortune 500 companies or as small as neighborhood interest groups and local municipalities.  

Senior Associate – Software Development

White River Junction, VT

 

This position involves working with the Technology Solutions Practice, supporting the firm’s software and analysis needs. The primary focus will be developing fully dynamic web-based solutions from interface to business logic to back end database design. Managing clients’ expectations throughout the project lifecycle is a key responsibility.  We are looking for someone who is organized, analytical, and experienced in delivering best practice solutions to join our team.

 

·         Minimum bachelor’s degree with emphasis in computer science or a related field

·         Minimum 3 years experience working on large client projects.

·         Demonstrated software development, programming, design and technical presentation skills.

·         Outstanding written and oral communication skills.

·         Practical experience in the following areas:

o    Web Development in HTML and CSS

o    Database programming in SQL

o    Modern object-oriented programming (e.g. C#, VB.Net, Java)

 

Please send resume and cover letter to Recruiting Director at employment@rsginc.com and indicate Senior Associate Software Development in the subject heading.

Recognized as one of the “Best Places to Work in Vermont” and recipient of the 2007 Dean C. Davis Outstanding Business Award, RSG employees enjoy excellent benefits, flexible hours and opportunities for advancement.

We are an equal-opportunity/affirmative action employer.

Please visit www.rsginc.com for more information on Resource Systems Group.

Tuesday, March 25, 2008 8:11:40 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, March 24, 2008

Cool - two in one day!

Another goody on the ADO.NET Entity Framework & LINQ to Relational Data Code Gallery page ...

Entity Framework Extensions Library. I'll subtitle this as "stuff we couldn't get into v1, but know you need"!

The first one today was a tool to help you visualize what different types of mapping in an EDM do and what their schema looks like - EF Mapping Helper.

Monday, March 24, 2008 1:38:20 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

from KIDSvt.com

 

Are you an ASP.NET / SQL Server Developer?  Are you looking for more clients?

 

In need of a freelance ASP.NET / Sql Server Developer to take over the web application needs of a small business.  We have an EXTREMELY urgent need to extract data from a sql server 2005 database into a “pretty” format in MS Word.  We’re willing to purchase the Aspose.Words ( www.aspose.com )software (or any other reasonably priced reporting software tool) to complete the project.  The Aspose.Words software allows you to generate a MS Word document from data in a sql server database, through your ASP.NET application, without having to use MS Word itself.   

 

Beyond this project, we’de like to build a relationship with a local .NET developer so we have a “go to” person to support our future web application needs. 

 

If you’re interested, please contact Susan Holson at 802-985-5482 as soon as possible.

Monday, March 24, 2008 12:30:50 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

There's a new very cool tool on MSDN Code Gallery from the EF Team called EF Mapping Helper.

What it does is allow you to select various mapping scenarios (eg. TPH Inheritance) and the helper will display a visual image of what the mapping does and the actual XML of the CSDL, SSDL and MSL so you can see what it looks like in the actual schema.

You can combine the mapping types to see how they all look together as well.

This is a huge benefit because sometimes it's just hard to set these things up, therefore how can you see the impact. It's a really great way to look at this - if you are not afraid to look at XML. :-) (Since the visual designer can't do everything, it's useful (to say the least) to know how to work in the XML.)

It will also give ideas of some of the cool things you can do with mapping in an EDM that you may not have thought about. EDM's highest power is in it's ability to really shape your conceptual layer in ways that you can't do with traditional ORMs. But learning all of the different ways to customize a model can be daunting. So I'm really happy to see this tool!

Here's a view of a TPH mapping (click on image for full size)

and a view of a model that contains a TPH and TPC (table per concrete type). It's quite dizzying, so I'd recommend looking at individual mapping scenarios first.

Monday, March 24, 2008 9:24:29 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, March 23, 2008

Bill McCarthy pointed out something I hadn't noticed before.

On the VSExpress product highlights page, it kinda rubs it in our noses.

On the other hand, to the right of the images, VB & C# are treated equally

Visual Basic 2008 Express Edition is the ideal tool for productively building object-oriented applications for Windows on the .NET Framework.
 
Visual C# 2008 Express Edition is the ideal tool for productively building object-oriented
applications for Windows on the .NET Framework.

Bill is a devout champion of VB when it comes to how Microsoft itself, positions the language.

Sunday, March 23, 2008 10:49:01 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, March 21, 2008

IdeaBlade has a 45 minute webcast demonstrating their Entity Framework implementation. They have taken EF and plugged it into their pre-existing framework which already knows how to do a lot of the things that the EF APIs can't do yet. They also have extended the design tools (even with a pluralizer sniff sniff). They have extended the EDMX by adding additional attributes (which apparently won't prevent the model from being used elsewhere) and replace the objectContext with their own object manager.

I'm really impressed. Because they already had their framework that they could plug EF into, they are light years ahead of me, who is starting from scratch trying to figure out how to make EF do these things on it's own - which in some cases is not an easy task.

Some of the things that DEF can do that I am struggling with are

  • Use objects across tiers
  • Use objects across tiers without needing EF on the client
  • Roll back changes to the object cache
  • Query the object cache without hitting the database.

There's more, but it's too depressing to keep listing. I'm just kidding about it being depressing. I'm actually very happy to see someone prove that the EDM and the Entity Framework can be used (even if it takes some tweaking) in real enterprise applications.

I'm also a little envious. It would have been fun to work on this project with all of the resources and existing IP they had at their disposal.

Check out the video.

Friday, March 21, 2008 12:03:38 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [1]  | 
 Thursday, March 20, 2008

I am in the terribly pathetic position of having to try to let people know about my workshop because it was inadvertantly ommitted from the printed brochure which has been inserted in the past few issues of MSDN Magazine and aspNetPRO magazine.

My workshop is listed on the website and the online schedule, but not in the printed brochure, so I think lots of people who may be interested, will not even be aware of it.

This is the start of the full Data Access track at DevConnections. We'll have non-stop data access sessions for four straight days!

Here is a link to the Pre-Conference Workshop page.

SO here it is again:

VPR204: ADO.NET Entity Framework: From 0 to 60 (9:00am - 4:00pm)
Add'l Fee $399

Julia Lerman
This full day workshop will provide you with a full overview of the soon-to-be released ADO.NET Entity Framework, Microsoft's new core data platform. In this workshop, you will learn what the Entity Framework is and how it fits into your application and enterprise architecture. We will begin with an introduction to the Entity Data model, how to build it, and how to implement it in its simplest form. Then you will learn how to take advantage of the true power of the Entity Data Model by creating customized mappings and implementing it in real-world multi-tier architectures. You will learn how to query Entity Data Models using LINQ to Entities, Entity SQL with Object Services, and stream data with Entity Client. The workshop will also explore some of the more complex features of object services as well as offer guidance as to when and where to you will want to use the Entity Data Model and which of its core querying methods is right for different scenarios.

I'll be doing this workshop in at the Developer Summit in Stockholm on April 11th as well.

Thursday, March 20, 2008 10:07:16 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

To our right is Code Camp 9 in Waltham April 5-6.

To our left is the first Code Camp in Albany, Tech Valley Code Camp, April 19th. I'll be on a plane to Orlando that day for DevConnections.

Thursday, March 20, 2008 9:59:50 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

From INETA:

TechEd 2008: Get Involved with Birds-of-a-Feather

Contribute to the Community and Get Rewarded

June 3-6 Orlando, FL

Help Us Make the Birds-of-a-Feather Discussions a Success!

As we said in the February newsletter, INETA is once again coordinating the Birds-of-a-Feather (BOF) sessions at TechEd 2008. Based upon feedback, we have extended the deadline for topic submissions to Wed 4/2/2008 and the voting deadline to Mon 4/7/2008.

 

Announcing a program to recognize individuals who help make the BOF sessions a success!

 

If you sign up to host two sessions and moderate one session OR host three sessions, you will get the following special BOF Volunteer Package including:

  • A TechEd 2008 Day Pass allowing access to all conference sessions, hands-on labs, meals, etc. on Wednesday 6/4/2008 (20 available on a first-come, first-served basis).
  • Special BOF t-shirt.
  • From all the volunteers, five of their user groups will get an extra INETA speaker between now and the end of 2008.
  • Technology book from a major publisher.
  • Attend a special lunch on Wednesday 6/4/2008 for an informal discussion with some technology experts like INETA speakers and individuals from the Microsoft product teams.
  • Have access to the BOF team room Wednesday evening before and during the sessions where you can get food and drink, take a break and check in with other volunteers.

Contact us at noram.bofhelp@ineta.org to volunteer and make the BOF sessions a success!

 

Additional Reources: 

Bof Flyer,  February newsletter, topic submissions, voting, moderator instructions/guidelines

 

Please distribute this Bof Flyer to anybody that might be interested in attending TechEd.

 

Thank you.

 

The INETA BoF Team

Thursday, March 20, 2008 9:55:51 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Code Camp 9 has a beautiful new logo created by Bryan Philips.

Chris Bowen reports that the session for the April 5-6 Code Camp are filling up and the registrations are as well. At last count there are 40 sessions submitted.

Deadline for abstract submission is March 24th.

There is an introductory track this year which is a great opportunity for people who are new to presenting to do a session. In addition, Chalk Talks are a fabulous way to lead a conversation about something that you are interested in wtihout having to do the work of preparing a session and demos or worry about standing in front of an audience giving  presentation.

Submit sessions and register at www.TheDevCommunity.org.

Thursday, March 20, 2008 9:51:59 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  |