Craig Stuntz

F# • Compilers • Programming Languages • Functional Programming • Web

Posted by on in Blogs
Want to Beta Test the Next Version of InterBase? The InterBase roadmap says that the next version will probably include native 64 bit and Windows 7 support, cloud deployment, and enhance password security. Want to help beta test it? You can sign up now....
What is Homomorphic Encryption, and Why Should I Care? The March 2010 issue of the Communications of the ACM includes a technical paper with an introduction entitled "A First Glance of Cryptography's Holy Grail" (ACM subscription required). That's enough to catch my attention. The paper itself, Computing Arbitrary Functions of Encrypted Data, describes a relatively new algorithm for homomorphic encryption. Although these words may be unfamiliar to many, the subject matter is terribly important, because, like public-key encryption, which paved the...
Don't Depend Upon the ASP.NET Membership Tables One very popular option for implementing user security in ASP.NET is to use Forms Authentication with the SQL Server membership provider. This provider creates several database tables to store user-related information, as well as a number stored procedures. From time to time, a developer will attempt to add the ASP.NET Membership/Forms Authentication tables to their Entity Framework model (or LINQ to SQL, NHibernate, etc.) model. Before doing this, they will often have created referential con...

Posted by on in Blogs
jqGrid and XSS Security Version 3.5.2 of jqGrid included an important new feature: Now when autoencode is set to true we encode the data coming from server and not only when we post it (secutity fix) Prior to this, you were required to encode the data yourself. Now personally, I think that should be the default. But it would have been a breaking change for the grid, since there are a few cases where you want to display unencoded data (I'll discuss these exceptional cases in a second). It's really easy to make t...

Posted by on in Blogs
Entity Framework Models and Source Control As you're probably aware, an Entity Framework model is stored in a single XML file, with the extension EDMX. Developers occasionally ask if this means that two people cannot work on the entity model concurrently. My answer to this is, "It depends." But I can give you some tips to make it easier. Obviously, if you use a source control tool which locks files on check out, then working concurrently on just about anything will be impossible. So I'm going to presume that your source control tool s...
join in LINQ to SQL and LINQ to Entities Considered Messy, Redundant In this post I will demonstrate that use of the join keyword in LINQ to SQL and LINQ to Entities is nearly always wrong. LINQ queries which you write with the join keyword are harder to read and write than queries you write using associations, and they require knowledge of database metadata which is not required otherwise. This introduces the potential for errors and makes maintenance harder. Many people ask how to do a "left join" in LINQ to SQL, and unfortunately, the answer they nearly alw...

Posted by on in Blogs
Crossword No. 2 DotNetSlackers just published a crossword puzzle I created; you'll see the grid below. The puzzle is focused on .NET and programming themes, including a Delphi reference here and there. The site editors wanted an article to go with the puzzle, so I wrote an article explaining how I created the puzzle. The article is full of spoilers, so if you'd like to try and solve the puzzle yourself scroll down to the bottom of the article to find the grid and clues before reading the article at the top....
Projecting Onto a Presentation Model with the Entity Framework and ASP.NET MVC In this post, I will demonstrate how to map entity models to views in an ASP.NET MVC application without worrying about implementation details like eager loading, lazy loading, or having to manually optimize SQL for the task at hand. I will argue that expressing the relationship between an entity model in the presentation model in a LINQ projection is far simpler than other methods of doing this mapping. Imagine that you've been asked to write a new web application to track employees for a cu...

Posted by on in Blogs
Delphi Developers: Go Buy CodeHealer If you're doing commercial Delphi development and you're not already doing static analysis in your automated build, go buy CodeHealer now. Nick Hodges has arranged a 1/2 price special offer. There is no good reason not to use static analysis. If you are the sort of person who doesn't allow hints and warnings in your code, and has configured your build to fail on any hint or warning (and I hope that you are), then you'll love static analysis; it takes this kind of discipline to the next level....

Posted by on in Blogs
Interview With Me At Delphi.org Jim McKeeth interviewed me for Episode 34 of The Podcast At Delphi.org....

Check out more tips and tricks in this development video: