NuSoft's Hiring!
posted on 08/09/07 at 09:41:11 pm by Joel Ross
Matt Blodgett is joining NuSoft. He spilled the beans on his blog today. We've been emailing back and forth a bit, and I'm happy to hear he's coming on board.?Of course, he'll start two days later.
On a similar note, I think NuSoft is still hiring. If you're looking for something new in the Grand Rapids or Detroit area, drop me a line. My contact info's on the sidebar.
Categories: General
Presentation And Code From Last Night's MADNUG Meeting
posted on 07/18/07 at 10:15:35 am by Joel Ross
After giving my Code Generation talk last night, I promised I would post the materials, but I was too tired by the time I got home. And then this morning, I decided to just relink up the materials from the Day of .NET back in May, since it's exactly the same - only some namespaces have changed. So, anyway, here they are.
It was fun to get out and give a presentation to a group where I don't really know anyone. I've given the talk a couple of times before, but?always had some "friendly's" in the audience. It's a bit different when you don't know anyone - I was a bit more nervous, but I think I got everything across that I wanted to show, and it seemed fairly well received.
If you're just looking for the links in the presentation, I'll go ahead and list them out:
- CodeSmith Homepage
- HanselMinutes podcast on Code Generation
- CodeSmith Community Contributed Templates
- Code Generation Network
You probably don't need the last link, since that was a link to this blog.
Categories: General
Michiana Area. NET Users Group - I'll Be There!
posted on 07/16/07 at 02:42:47 pm by Joel Ross
I'm giving my Code Generation and CodeSmith presentation tomorrow night at MADNUG tomorrow night. This is the third time I've done this presentation, so I pretty much have it down now, so if you're in the South Bend, IN area, I'd love for you to come by and say hi!
Categories: General
Rendering Controls to a String
posted on 07/13/07 at 12:35:17 am by Joel Ross
This is probably my favorite little trick. It allows you to take a control and render it as a string.
Why is this useful? I can think of several spots you could use this. First, now that AJAX is much more prevalent, you could use it in an AJAX call - you'd have a custom method that you call to update a grid (rather than using an UpdatePanel). Your web service could use this trick to give the client the updated HTML needed to write back to the web page. Or you could just use this with a web service to allow another site to render data from your site - without forcing the other site to deal with how to render it.
But my personal favorite is what I did with Tourney Logic and Tourneytopia's standings updates. Whenever a round is complete, we send out emails to everyone with updates of the current standings. We already have a user control to do this (with a databound grid on it), so why duplicate effort? We just databind the grid and render the control to a string, and use that as part of the body for the email. So now our ASP.NET server controls are multi-purpose.
Categories: ASP.NET
AJAX Authentication & SSL
posted on 07/12/07 at 10:53:56 pm by Joel Ross
I'm currently doing some enhancements to a client's website to take advantage of a few of the cool new features available in ASP.NET 2.0, such as AJAX, master pages and themes. We'd upgraded the site shortly after we launched it originally (on .NET 1.1), but at the time, they didn't want to do much beyond performing the upgrade and getting the same functionality as they had before.
Now, some may be asking why upgrade if you don't plan to do anything with it, and that's a valid question. The reason is valid as well. They?have an internal application that runs on the same Common Business Layer (CBL) as the public website, and they are taking advantage of a lot of the .NET 2.0 features there, so it was important to get the CBL working against the .NET 2.0 framework, thus requiring the website to come with it. Plus, we eliminated 1000's of lines of code by converting to generics.
Anyway, now they want to go back and start using some of the features available. One of them is an AJAX login. Our goal is to offer a login box on any page - regardless of whether they are in SSL or not - but still be able to have them securely log in. We chose to use some of the built-in authentication services in Microsoft's implementation of AJAX to do it, and I was able get that working just fine. Now, we're not using the ASP.NET membership functionality, so we used a custom Authentication web service, which is also fairly straight forward.
What isn't straight forward is getting it to work via SSL. That's not to say it doesn't seem simple. According to the documentation, you add an element in the web.config file as such, declaring that it should be done via SSL:
<authenticationService enabled="true" requireSSL="true" />
Simple enough, if it worked. Which it doesn't. At least not for me. No matter what I tried, it always used the same type of connection for the web service call as the page had - if I was already in SSL mode, then it used SSL, but if I was in normal mode, it never made the call via SSL.
My solution? Since we're already using a custom web service for logging in and logging out, I already have a sub-element of the script manager specifying the path to the authentication service. Normally, that's a relative path, but it can be an absolute path as well, so I just set that be the full (https) address of my authentication web service:
<asp:ScriptManager runat="server">
??<AuthenticationService path="https://localhost/MyAuthService.asmx" />
</asp:ScriptManager>
I'm actually doing it in the code behind, so I can dynamically buidl the URL based on the URL the server is running on, and whether SSL should be used or not, but that's just an implementation detail. Bottom line:?when I make my authentication requests via AJAX, it's done via SSL. Of course, all this would be easier if requireSSL worked as described.
Categories: ASP.NET
CSS Stylesheet Variables
posted on 07/12/07 at 10:12:03 pm by Joel Ross
Here's?a post from Mads Kristensen from back in October about adding variables to CSS stylesheets. He provides a sample of what you can do, and then gives you a couple of different options for using it, depending on whether you have access to modify IIS or not.
I've been looking for something like this for a long time. One of my?biggest frustrations with web development is when colors need to be changed or widths need to be adjusted, and they are repeated throughout the style sheet. By being able to use variables for colors, widths, etc., it makes testing a few changes much, much easier.
I think it might be time to give this?a try and hopefully make CSS development a little simpler.
Categories: ASP.NET
New Blog Skin
posted on 07/11/07 at 12:29:58 am by Joel Ross
If you read this in a feed reader, then you probably haven't noticed any changes, but I just launched a new blog skin tonight. It's not completely mine?- it's based on a simple skin from Andreas Viklund, customized to work with b2evolution. Overall, I'm happy with the look, which I don't think I ever have been before.
While I was changing the site's look, I figured I'd take advantage of Feedburner's latest news - that their pro features are now free - and convert my feed over to Feedburner. So my new feed is at http://feeds.rosscode.com/RossCode. I'm pretty happy with that, and the link on the site has been updated as well.
If you take a look at the site, let me know what you think.
Categories: Blogging
Enumerations and Switch Statements
posted on 07/11/07 at 12:12:39 am by Joel Ross
Derik Whitaker posts about what he feels are best practices to using Enums in switch statements. He says that if the switch statement is the main path through a method, there should always be a default, and unless you have a specific thing to do in the default block, it should throw an exception.
Why is that a good thing? Because when you add new values to the enum, you get exceptions in places you didn't update your code. By throwing exceptions, it at least forces you to consider places where the enum is used, which is always a good thing.
Categories: Development
ScriptDoc - Javascript Documentation Generator
posted on 06/28/07 at 11:09:25 pm by Joel Ross
For a while now, we've been able to generate documentation for our server side code, including ASP.NET web applications - either using NDoc or Sandcastle, but the one thing that was missing was somehow documenting client side code. At MIX this past year, there was a bit of talk about how Microsoft planned on introducing a way to document your Javascript code - so you could have Intellisense in Orcas.
Well, it looks like someone (Bertrand Leroy) took that to the next logical step - create a document that can be used in Sandcastle, with the eventual target being a CHM file. This was released back in April, but I missed it. Since then, it's been moved to CodePlex, so it's getting a little more press now.
(via Sandcastle Blog)
Categories: Software
Windows Live Folders
posted on 06/27/07 at 11:17:52 pm by Joel Ross
The news has been all over the place about Microsoft getting into cloud storage with the release of the first public beta of Windows Live Folders. I quickly signed up for it, and signed in - only to be a little bit disappointed.
I'm not saying the service is no good - I don't expect much for free - but at the moment, it's missing one key peice of functionality, or at least I didn't see it. There's no way to either automate it or do it with a windows application. I want to be able to drag a file to a folder, and have it uploaded automagically.
Now, here's my guess: when this is released officially, it'll work with Folder Share?- it's got some of the same features, such as being able to share your files with others. Until then, it's still an interesting application - just not as useful as I would like it to be.
Oh yeah - they also opened up Live Photo Gallery, which looks pretty nice, but not all that interesting to me.
Categories: Software