First, none of this is NDA. Others discussing it are Ayende and Sam. Here's a quick rundown of how you would get Linq to entities working:
- Create the metadata file using the wizard.
- Select some database tables to map to objects.
- Wait for the designer to generate the mapping meta data.
- Wait for the designer to generate some partial classes that might serve as entity objects.
- Add code to these new classes to do interesting things within your domain.
- Using Linq queries to work with these objects and watch the SQL be generated and sent to the database.
This sounds easy when you remember that the designer is generating all the ugly goo that _has_ to be there. First, the classes must inherit from the mapping base class. They are working on a way to make it implement an interface instead. This is a non-starter first of all because it would require the domain assembly to carry around a reference to a data access dependency. Next, for dirty-tracking, each property mutator must raise an event to let the framework know that a property changed. Every property. Let me repeat: Every property setter must raise an event for dirty tracking to work. This is another non-starter. The team plans to have all this generated for you in partial classes.
I have email addresses for several people on the team, and I'll be letting them know what is so compelling about NHibernate and why the above issues have to be resolved before RTM and not after.
In some cases, you don't care if the classes are data-transfer objects instead of domain objects. In that case, use Linq to SQL, not Linq for Entities. With Linq to SQL, you can use DTOs all over the place and work with the data pretty easily. Heck, you could even use Linq to SQL to create your own data layer for hydrating your domain objects manually from the DTOs you decorate with the Linq to SQL attributes.
Linq to Entities is a different animal and is meant to persist domain objects. Domain objects ARE the most important part of the application. The domain defines the business problem scope. Persisting to a data store is secondary to the domain model's structure and behavior.
I want Linq to Entities to succeed. I want frameworks and tools to continually get better; therefore, I will be communicating with the product team to voice my strong concerns over the current direction.
It’s time to vote for Tech Ed BoFs. Go here to vote. https://www.msteched.com/BOF/Voting.aspx
My submitted BoFs are as follows. Please vote for them.
- Techniques for writing less code (frameworks, libraries, and tools)
Join C# MVP Jeffrey Palermo for a lively discussion on frameworks, libraries, and tools that enhance productivity by reducing the amount of code required to deliver the same functionality in a program. The list is not a closed list. Attendees are expected to share success/horror stories about the frameworks, libraries, and tools they’ve used. Come quickly find out the secrets they won’t teach you in training courses.
- Agile development with .Net
Agile development methodologies are gaining more and more traction in the software industry. Join Jeffrey Palermo and many others for this popular BOF that has attracted 70+ attendees in past Tech Eds. We’ll discuss basic principles of Agile development including people over process and delivering working software at the beginning of a project, not just at the end. We’ll share common successes and challenges from all the attendees, so bring your story.
I got the link from the AgileAustin online group: http://groups.google.com/group/AgileAustin/t/e0370f2d6a210e40
A new VP at Adobe has introduced Agile methods to the Photoshop group, and they turned from waterfall to agile. . . with commendable results: fewer late nights, work weekends. . .and. . . wait for it. . . fewer bugs with the same feature load delivered on schedule.
This is very important to me since I manage the Engineering department at Vital Insight, Inc. It’s a given that my department is much smaller than the Photoshop department, but this is evidence that Agile methods scale from the small teams on up to very large organizations.
Read the full article here: http://www.regdeveloper.co.uk/2007/03/08/adobe_cs3_development/
This is not a trivial topic, but it’s necessary at times to have classic ASP pages controlled by security in ASP.NET. Scott gives some tips on how to accomplish this.
Scott also refer’s us to Stefan Schackow’s excellent book: ASP.NET 2.0 Security, Membership, and Role Management. This is really a GREAT book. I’ve read every word of it. In fact, I was a technical editor for the book, so I can attest to its excellent technical content and depth.
Today, I made a commit to Subversion that encompassed over 200 code files. What was the change? I moved a delegate from sharing a code file with a class to be in its own file and put it in another namespace. Pretty harmless change, but so much code uses this very common delegate. As you know, I'm using Resharper, so here are my keystrokes:
- F6 to "move" the Type.
- TAB
- down arrow (to move delegate to new file).
- ENTER
- F6 (to move to new namespace)
- {type in new namespace}
- . . . wait 10 seconds for Resharper to make appropriate changes to "using" statements in over 200 code file.
- CTRL+SHIFT+S (save all)
- CTRL+SHIFT+B (compile)
I run my automated build (with 1450+ test), and check in.
I remember back to when I didn't use a refactoring tool. You know what I would have done? I wouldn't have made the change. The overhead would have been too great. I would have left the misplaced delegate definition.
Please. Do yourself a favor. Don't develop with POVS (plain old Visual Studio). Use a coding add-in. Use Resharper. Use CodeRush/Refactor. Use JustCode! Use something!
Texas is 171 years old today. Check out Noah Coad’s post (it’s a lot prettier than mine). Make sure to watch the video. I was on that dance team in college.
I use Gmail for most of my mail these day. Today has been hard. Gmail has been down since mid-morning, so I can’t access my mail. Not with FireFox, not with IE, not with WAP, not with the Java Mobile phone applet I have.
With all the rave about software as a service and applications and data “out there in the cloud”, this highlights a downside – there is no one I can call, no one I can fire for this mishap. My only recourse is to wait, and wait, and wait. . .and then switch to another email account!
I just HAD to write this up. My company’s software has just crossed the 1400 automated test cases line. I still remember when the software was new and when I was coaching my team on why we should write unit tests. Now, the number of tests just climbs and climbs.
We have 1417 (as of right now) NUnit unit tests, NUnit integration tests and FIT integration tests. We test the following types of things:
- That each public method of each class does the right thing.
- That each database table is the correct structure and has the right permissions.
- That each NHibernate mapping is configured correctly.
- That each logical service does the right thing.
- That the system as a whole operates when integrated.