Skip to main content

Not ready for Entity Framework? Then What?

Will Smith and I started an offline thread based on his post "Uninstalling EF Beta 3". Granted, the ADO.Net Entity Framework is still beta and probably won't go gold until Summer, but I wondered what he would use instead. His team is solid but not advanced and he wants to keep complexity to a minimum while remaining as agile as possible. Here's my advice. Your thoughts?
You're probably wise in steering away from 3.5 stuff with an uninitiated staff. I'd probably encapsulate your data access leveraging the Enterprise Library Data Access Application Blocks. You could leverage CodeSmith and NetTiers to quickly generate the data access layer effectively shielding your less-advanced developers from the complexity (they simply call class library methods vs. code ADO.Net 2.0). Later, when you want to shift to ADO.Net Entity Framework or [less likely] LINQ to SQL, you can rip out this data access layer simply replacing it with EF or LINQ. Granted, [obviously] you'll have to adjust the consuming classes to leverage LINQ afterwards but it should be a less-invasive change.

Update: 3/4/2008: Related, I'm recommending the Repository Factory guidance pattern. From the site:
The Repository Factory is a guidance package that automates creation of entity classes that map to database tables and repository classes to read and write those entity classes. The generated code removes the tedium of writing a persistence-ignorant domain model.

This package was originally published as the "Data Access Guidance Package" as part of the Web Service Software Factory. Data access is a much larger problem space than just services, so we've decided to split this package out into its own project.

Comments

Popular posts from this blog

TFS Error | The type initializer for 'Microsoft.TeamFoundation.Build.Server.BuildInformationNodeBinder' threw an exception.

Posting this one for the search engines. If you ever receive the exception "The type initializer for 'Microsoft.TeamFoundation.Build.Server.BuildInformationNodeBinder' threw an exception.", more than likely, your drive space is at 0 on your TFS application tier box.

I encountered this at a client recently. The root cause was that IIS logs had filled up the OS drive (C:\). I switched IIS logging to the applications drive (D:\) which cleaned up the OS drive and resolved the issue.

Detailed message:


TF53010: The following error has occurred in a Team Foundation component or extension:


Date (UTC): 6/7/2011 4:18:53 PM

Machine: TFSATBOX

Application Domain: /LM/W3SVC/8080/ROOT/tfs-1-129519118182628600

Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727

Service Host: 7ecfbd77-b386-4d75-b038-b05474782696 (DefaultCollection)

Process Details:

Process Name: w3wp

Process Id: 3676

Thread Id: 5752

Ac…

Verified by Visa: Everything We Tell Folks to Avoid

Phishing is defined by F-Secure as: "Fraudulent e-mail or website claiming to be legitimate seeking indentifiable information. Phishing is an attempt to steal your personal data."When I recently attempted an online purchase from WalMart using my VISA card, being a security wanta-be, I immediately thought phishing when redirected to verifiedbyvisa.com and saw this dialog:

Seriously, these folks have to be kidding. You're asking for my personal data during a transaction and claim that's its a service "...at no additional cost." Wow! Thanks...but absolutely not, you jokers. As a malicious thief, I can go a long way with this data.

This is exactly the type of experience which aids malfeasance and the folks trying to steal personal data / identities. How long have we been working to educate folks to avoid providing this type of data under these type of circumstances? Years. And we're just now starting to turn the corner.

VISA, get rid of this! When folks submi…

Shrinking WSS (Sharepoint) SQL Server Log Files

Yesterday, while migrating a source repository from StarTeam to TFS, I received the following error:
"TF30042: The database is full. Contact your Team Foundation Server administrator."Excuse you? Sure enough, my 100+ GB drive was full on the server. But I'd only migrated around 1000 items. Surely SQL wasn't consuming 100MB per file.

Turns out (yes, there was a lot of crud on the drive but...) the majority of the space, almost 40GB was being consumed by the Windows Sharepoint Services WSS Content data and log SQL Server files. Huh? I still need to investigate and understand why this portal, which is 100% unused, grew so large. Regardless, here's what I did to resolve:

Since this is not yet a production database, I flipped the SQL recovery option from Full to Simple for WSS Content and several other databases. Detail here and here.
Executed the maintenance plan for all the databases to get backups and clear out some of these files. That didn't help much. The Auto_…