ASP.NET News from Blogger:
Karl Seguin [MVP]
Total News: 159
A little while ago I decided to move my blog to openmymind.net. I owe a lot to Brendan and CodeBetter, but I have an itch to talk about a broader set of topics than what I feel is appropriate her...
So you want to contribute to an OSS project, but its hosted on github and you don't know where to start. This guide will cover the basics you'll need to get contributing - something made relat...
No one would blame you for strictly associating NoSQL with performance. Most of the back and forth about NoSQL - an umbrella term given for non-relational storage mechanisms - has squarely put the foc...
Today I came across shapado.com - a StackExchange-like open source system running on ruby and mongodb. It took a couple clicks and a few keystroke, and I had http://jobs.shapado.com/ setup and running...
Earlier this month I detailed the implementation of the bson serialization we used in Norm - the C# MongoDB driver. I've since extracted the serialization/deserialization code and created a standa...
At the start of the year, I finished a 5 part series on ASP.NET performance - focusing on largely generic ways to improve website performance rather than specific ASP.NET performance tricks. The serie...
There's a new video up on www.asp.net which aims to help developers pick between ASP.NET WebForms and ASP.NET MVC. The video boils down to 5 benefits per technology which Microsoft thinks you shou...
I once posted a semi-serious post entitled The 7 Phases of Unit Testing. The phases are:
Refuse to unit test because "you don't have enough time"
Start unit testing and immediately star...
BSON is a binary-encoded serialization of JSON-like documents, which essentially means its an efficient way of transfering information. Part of my work on the MongoDB NoRM drivers, discussed in more d...
iptables is a linux application that allows you to configure the built-in linux firewall. There are abstraction layers built on top of it, including nice GUIs, but I recently had some very basic rules...
I recently needed a configuration mechanism which would detect changes without requiring an application domain restart. I also wanted to move away from XML. This is what I came up with (and hopefully ...
Exception handling has been talked about a lot over the last decade and a half. However, despite a general consensus on how to properly handle exceptions, a divide on usage continues to exist. Imprope...
Ever since ASP.NET MVC was announced/released, there's been a lot of talk about it with respect to ASP.NET WebForms. People want to know which technology they should use, and are likely confused b...
There have been some good, informative, comments to this series. One in particular, from Dan Sargeant, deserves to be addressed directly - in large part because its something I overlooked but need to ...
Its hard to get everyone to agree on what core competencies developers should have. I've long believed that knowledge of C is fundamental to becoming a great developer. Actually, C in general, me...
The previous parts of this series focused on small pieces of code we could use to maximize real-world performance - largely based off of YSlow recommendations. In this final installment we'll thin...
In part 3 we created three helper functions to use when including css, js and images in our pages. As you might expect, YSlow has something to say about how to maximize the performance of such files b...
In part 2 of the series we looked at ways to tweak our headers to maximize performance. One of those tweaks was the addition of far-reaching expiry headers for static files (images, css, js). What hap...
In part 1 we looked at integrating a javascript compressor as part of our build process to shrink javascript files for production (at the time, I didn't realize that it would lead to a series). It...
About a month ago, I found myself transforming data for the reporting portion of our application. Like many reporting systems, ours works off of date ranges, with statistics grouped together by the da...
My migration from SQL Server to PostgreSQL for an upcoming project continues. On day 1 I managed to get the application up and running quickly, thanks to NHibernate. Ayende was kind enough to post som...
Last night I decided to accelerate our plan to migrate from SQL Server to PostgreSQL and gave it a quick attempt to see what the work involved was. I was hoping that due to our usage of NHibernate, an...
Writing effective unit tests is as much about the test itself as it is about the code under test. All the experience in the world isn't going to help you write clean and meaningful tests against h...
Today I updated the CodeBetter.Canvas project to target the latest releases of NHibernate (2.1), FluentNhibernate (1.0 ) and Nhiberate Linq (1.0).
More importantly is the switch away from the MVC WebF...
Today I vowed to learn the Spark View Engine. While I don't hate ASP.NET's MVC WebForm View Engine, its clearly outclassed by the other MVC stacks. So, given my views (hahaha) on the matter an...
I was recently playing with the idea of implementing disk-base caching for pages that had a high read-to-write ratio. On top of being practically read-only, these pages also require quite of bit of da...
I've updated the Foundations of Programming license to a Share-Alike (as opposed to a no derivatives) license.
As always, you can download it from:
http://codebetter.com/media/p/179694.aspx
OR
ht...
In my last NHibernate post I mentioned that NHibernate is great because it does the heavy lifting for the common tasks that make up 95% of my data access layer, while letting me tweak the remaining 5%...
Please, Just Remember One Thing
Just for a few seconds forget everything you know about NHibernate.
Good.
Now, before I snap my fingers and everything comes flooding back, the only thing you need to k...
A month ago I released CodeBetter.Canvas, a simple application with equally simple goals:
Provide developers with a starting point for new ASP.NET MVC projects
Provide developers with a learning tool...
Almost two years ago, to the day, I completely gave up on Silverlight. How do I remember the day so clearly? Because every now and I again, I get an email notification that someone has replied to my f...
Making the untestable testable with Anonymous Methods and Dependency Injection
It can be frustrating to want to write unit tests, only to hit some code which is rather untestable. Take for example, ...
Jan recently asked:
"Something I don't see being addressed that often - When you say you
read a lot, is that on your own time, or do you actually spend time at
work reading? I think spending ...
I spend a lot of time learning. I read a lot, work on small projects that let me experiment, and blog (which is probably the best way to learn). I don't see how you can be effective or successful ...
I recently wrote a code-heavy 3-part series on validation. Half-way through, I realized that a sample application would
probably help bring together all the incoherent code snippets I was throwing aro...
So far we've built-up a small foundation for a custom validation framework in part 1, and then tied that to a jQuery plugin for our client-side validation in part 2. In this part we'll look at...
1 - Refuse to unit test because "you don't have enough time"2 - Start unit testing and immediately start blogging about unit testing and TDD and how great they are and how everyone shoul...
Validation - Part 2 - Client-Side
In Part 1 we looked at our basic framework for validation - a set of attributes, an interface, and some configuration objects. Now we'll see how these can be use...
There are a lot of good and free frameworks to help you deal with validating user-submitted data. You can use attribute-based frameworks, such as Castle Validators or .NET 3.5 Data Annotations to deco...
For those who missed it, Joe Stagner commented that www.asp.net costs millions of dollars to run. Since Joe was a little vague about exactly what that meant, I'm going to assume that he's talk...
Earlier this morning, I commented on twitter that I was starting my 2nd full-fledged ASP.NET MVC project, and was finding myself writing a massive amount of infrastructure code. Ironically, having to ...
Not too long ago, I had a need to tie a number of svn repositories together. What I wanted was to create a 1 repository with a number of sharable assets (images, language files, 3rd party libraries, s...
Roughly 4 months ago I nerd-raged all over the efforts of a small team at Microsoft who put together a sample MVC application. Despite some pretty loud outcry, the response at Microsoft was pretty slo...
The nice thing about mocking frameworks is that they let you test the interaction of your units painlessly. For example, given the following code:
public class UserRepository
{
private readonly IDat...
I've been asked a couple of times about hooking up NHibernate with multiple databases. You may need to do so for sharding purposes or as a business function. For example, we allow customers to dep...
When it comes to project management, I tend to favor the less-is-more approach. For the most part, I think teams should be self-managed and organized. I've never seen project managers actually add...
#karl_custom_4 code{color:#833;background:#fcfcfc;}
#karl_custom_4 h4{margin:30px 0px 0px 0px;font-color:#fff;font-weight:bold;border-bottom:1px dashed #ccc;font-variant: small-caps}
When it comes...
I have a little CSS trick that I'd like to share. It's a little embarrassing because CSS/HTML and all that goodness certainly aren't my forte. Also, this is a pretty basic trick, but maybe...
Why aren't I an MVP?
There's a problem with the MVP program I'd like to talk about. The fact that I'm no longer an MVP (haven't been for over a year now) isn't the problem, me...
#karl_custom_1 code{color:#833;background:#fcfcfc;}
#karl_custom_1 h4{margin:30px 0px 0px 0px;font-color:#fff;font-weight:bold;border-bottom:1px dashed #ccc;font-variant: small-caps}
The purpose b...
View Other bloggers