September 2004 - Posts
Did you know that you can do some pretty complex things with .NET's late binding in ASP.NET 1.X? I had a problem where I needed to be able to kick out dates in a specific format. I didn't want to use a helper method, which involves compiled code, so I found a solution.
1<%# CType(DataBinder.Eval(Container.DataItem, "DateAdded"), DateTime).ToString("dd MMM yyyy") %>
Your datatype on the DataItem can be a string or a DateTime object. Either way, you must do the conversion first, otherwise there would be an implicit conversion, which is not allowed in late-binding code. The bold part is the name of the date property on the object you are binding against.
As with any late-binding, you'll have a slight performance delay on the first hit, but that's just cause the page is recompiling. It'll be fine after that.
All I can say is, I'm really glad that I don't live in Florida. But the people that do live there need your help. I can't even imagine what it would be like to live through four hurricanes within the same six weeks. The shelters are packed, and people need food and supplies. So please be as generous as you can, the holidays are coming soon. Click the links below to donate.

Microsoft hasn't updated their icon redistributables since VB4. There is
a suggestion in the
MSDN Product Feedback Center for Microsoft to add the Office 2003 / VS2005 icons to the installer, so that people can build standardized GUIs. Since Microsoft bases their priorities on votes, you can help us put it on Microsoft's radar by
voting for it. It would be really nice of that made it into the RTM version.
Tomorrow night I'll be giving a two-part presentation on the Provider Model for the Arizona .NET Users Group in Phoenix. Here's what I have on tap:
Session 1: Understanding Provider Model Architecture
I'll start out with a rundown of interface vs. base class architectural approaches, using GenX.NET and VisualBlogger as real-world working examples. We'll dive deep into the implementation in .NET 2.0, which is the basis for several new APIs in the BCL. Forget building custom providers (we'll do that later), I'll demonstrate how to build static, thread-safe Provider APIs.
Session 2: Providers In Action
This session will be heavy on the demos. Demo 1 will be an overview of ASP.NET 2.0, with a brief walkthrough of Visual Studio 2005. Specifically, we'll take a look at the Membership API and the new Login controls that hook into the API. Demo 2 will detail how to build a custom Membership provider that stores Member information in an XML file using typed datasets. And for my personal favorite, Demo 3 will take a look at how to use the new base class-based Provider architecture for ADO.NET 2.0 to create dynamic data access layers that can change based on the connection string.
Tomorrow night, 6-9pm. Directions are here. Hope to see you there.
Hey all you victims of the "dry heat". I've started a "Nerd Dinner" blog for Phoenixites over at Jim Blizzard's NerdDinner.com. I want to set up dinners for once a month, starting sometime in mid-October. I'm open to suggestions on day of the week and venue... right now I'm thinking Thursday nights at Arizona Mills Mall.
And since Phoenix people are so special, I decided to give our blog a bit of Valley flair. Check us out.
I know you do. Jim and James, those enterprising guys that brought you
HotOrNot.com, are running
VoteOrNot.org. It's a twist on the old fashioned "get-out-the-vote" drive. It's pretty much a bribe to get voters registered, but hey, whatever works. You gotta love democracy. At any rate, it's for US Citizens only, and you have to be a registered voter of any party. If you're not registered, they provide links to do it electronically. There are only 47 days until the election, and you have to be registered soon. So what are you waiting for?
Get started here, and we both could win $100,000.
Hey Microsoft... WTF? What is the deal with forcing companies to have Active Directory deployed to use Team Foundation Server? Why not just use ADAM and make it transparent to the deployment process?
Suddenly, it makes the whole concept much less appealing.
One of the tricks I learned a while back was that, when using any kind of
templated server control, you can put the template definition in a user control,
and load it programmatically using Page.LoadControl(controlLocation). This is particularly
useful in large web applications, where you may use the same template over and
over again. This way, if you make a change to one, it gets propagated to all
instances.
It's also useful to note that Page.LoadControl instantiates the user control's class, so any
events, like the Load event, get fired.
Initially, I thought that maybe it just parsed the text in the control and
instantiated what's in the text, but thankfully, that isn't the case. It's
extremely important in my situation, because the template I'm loading contains
it's own templated control that must programmatically load a template.
At any rate, hope this information is useful to someone.
In all the hubub of late, I forgot to give mention to the fact that ComponentArt has released Web.UI 2.0,
their new component suite. I've been working with this version for almost 6
weeks now, and I have to say that these guys really know how to do things right.
Their stuff just keeps getting better all the time. They've completely
re-written ASPnetMenu, which is now Menu 2.0 for ASP.NET, and it's really a
pleasure to program against. The really awesome thing about it is, now you can
nest User Controls as menu elements. It's wild some of the things you can
accomplish now.
At any rate, I'm using all of their controls very heavily in a new project
I'm working on, and I couldn't be happier with the result. If you need some high
class navigation controls, forget Infragistics or ComponentOne. Check out ComponentArt instead.
Scott pushed new changes to weblogs.asp.net sometime earlier this week. I hate very strongly dislike them. I don't hate them because the posts are shorter. I don't hate them because they make you click through to the posts. I hate very strongly dislike them for 3 reasons:
- No more blog list on the home page. I liked it much better when it was grouped by number of posts. Then, you didn't go to the bottom of the list, because nobody cares about someone who posts 3x and then loses interest.
- RSS feed truncation. What's the point in having a feed if you're not going to syndicate the whole thing? I thought there was an optional feature that could be used to do this... why am I being forced to do it if I don't want to? Why is it being forced on my readers?
- It doesn't solve the real problem.
So what is the real problem? The problem is, there are too many people blogging here. The question I have is, why on earth are MS people being syndicated in two different uncategorized places? Why do other members of the community have to deal with this crap? Microsoft doesn't like to be called the Borg, but the weblogs.asp.net feed is like being plugged into the Hive Mind. It's a jumbled, disorganized disaster. Microsoft has zero blogging strategy, and it shows.
So, if you're going to shorten the aggregate home page, fine. But you'd go a long way to saving on bandwidth costs if you just moved the Microsoft people to blogs.msdn.com once and for all, and gave weblogs.asp.net back to the community where it belongs.
My point is not so much that I'm bagging on Rob or Scott or anyone else. I'm a huge .Text fan. They're getting a lot of crap right now, and they only kind of deserve it. Some community discussion would have been nice, or some private warning. But my point is that Microsoft as a company has no corporate blog strategy whatsoever, and the community is getting the short end of the stick because of it. Something has to be done, and it's not just ScottW and Rob's problem. It's Bill and Steve's problem.
More Posts
Next page »