Craig Stuntz

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

Posted by on in Blogs
Updating to ASP.NET MVC 2 Preview 2 Last week, I updated our main development branch to ASP.NET MVC 2 preview 2 (from preview 1). In this post, I'll list some of the features I've found, and also issues I encountered and how I resolved them. New Features Some of the new features of preview 2 have been discussed elsewhere, so I won't rehash them. But I've also noticed that there is a new attribute, [RequireHttps], which does what you would expect, when added to an action, and a new HTML helper, Html.HttpMethodOverride, which make...

Posted by on in Blogs

Posted by on in Blogs
Comparing C#, C++, and Delphi (Win32) Generics C#, C++, and Delphi all have a generic type and method language feature. Although all three languages are statically typed, they implement generics in very different ways. I'm going to give a brief overview of the differences, both in terms of language features and implementation. I presume that Delphi Prism generics work essentially the same as C# generics, which, as you’ll see, is different than Delphi/Win32 generics. Let me say at the outset that although all three systems work somewhat di...

Posted by on in Blogs
NDepend Review and Tips On and off for the past few months, I've been experimenting with the .NET static analysis tool NDepend. NDepend works somewhat differently than most other static analysis tools I've tried. Notably, Most tools tend to work on either compiled assemblies or source code. NDepend uses both. Most tools implement their tests in compiled, executable code. NDepend, on the other hand, uses a proprietary, domain-specific language called CQL. NDepend can enhance its analysis by importing analysis da...

Posted by on in Blogs
The Leadership Mistake I Keep Making Jim Holmes gave a very nice presentation on leadership at the last Columbus Architecture Group meeting. He has covered much of the same material in a series of posts which you can read on his blog. Maybe it's just the way that I think, but as I listened to him speak, I thought about the question of what I do most poorly in the area of leadership. Or, to put a more positive spin on it, the thing which I could change that would most improve my leadership skills. I think I know what the answer i...

Posted by on in Blogs
This Blog Is Now (Officially) Free I've been posting technical articles and source code on this blog for many years now, but I've never formerly specified a license for the material I've posted. Obviously, I wouldn't post it if I didn't want people to use what I've written, but I understand that my good intentions are not enough to provide the legal confidence some projects will require to include the code I've demonstrated in their work. Therefore, I've updated the About page to include formal licensing terms. In particular, ...

Posted by on in Blogs
Static Analysis and Generated Code In recent months, I've been thinking about the problem of static analysis in generated code. Static analysis means using tools like FxCop and NDepend (for .NET apps) lint (for C) and CodeHealer (for Delphi) to find potential problems in your source code. Generated code is code written not by a human being, but by a tool, such as generated classes for a Entity Framework or LINQ to SQL model, an import for a COM type, or code created by a form generator. Static analysis is intended to find code w...
How to Think Like the Entity Framework Presentation Available for Free Download My CodeRage presentation, "How to Think Like the Entity Framework (and why you might want to bother learning that in the first place)," is now available for free download....

Posted by on in Blogs
How to Customize ASP.NET MVC Authentication If you are developing a web application which requires authentication or security features not included in the regular ASP.NET membership feature, you might decide to implement these features yourself. But it seems as if the first instinct of many ASP.NET MVC developers is to do this by customizing their Controllers, because they've decided that AuthorizeAttribute can't possibly serve their needs. They will decide that the way to do this is to write some sort of parent Controller type which exam...

Posted by on in Blogs
About I am a software engineer living in Columbus, OH. I work for Improving Enterprises. You can also read my full résumé or look at some of my public source code. I am a member of TeamB and the ACM. In my spare time, I play Irish traditional music on the wooden flute and tin whistle. Contact To contact Craig: Legal Information The English text on Craig Stuntz's Weblog by Craig Stuntz is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. The s...

Check out more tips and tricks in this development video: