General
From time to time I throw a website together for some temporary purpose. The website collects some data from users and I need to make this data available for whoever I put the site together for. A perfect example of this is a website that I put together for my wife for some craft making event. She needed to allow friends to place orders for various craft activities so she knew what materials she needed to order. She needed to be able to see these orders as they were placed. For a website like t
Signing a .NET assembly with a strong name is easy in Visual Studio. However, what if this is a 3rd party assembly and you don't have the source? A look at signing an assembly with a strong name without changing the project or recompiling.
I've used Xobni off and on since it was first released and over the last few months it has stuck with me and I've become completely attached to it. With some of the initial releases it struggled with performance however, recent versions no longer have that problem. It performs well and doesn't seem to chew up resources. Best of all, it has become so smooth, so magical in what it does and how it does it, that as a developer, I have come to believe that the Xobni developers are true wizards, craft
I have a ClickOnce app in production and a support case was opened where the ClickOnce installer was producing the following error: "This operation is only supported on Windows 2000 SP3 or later operating systems." The weird thing is that the computer this error was happening on was Windows XP Professional SP2. Removing compatibility mode is the answer.
This week Google released their new browser, Chrome. There has been so much buzz about it that it's been deafening. It is seriously amazing how passionate people get about a browser. But let's face it, a browser is likely what most people use more than any other software on their computer now days. I spend so much of my time online. Performance is important to me, just like anyone else. Since Chrome's release, I've spent some time reading performance metrics in an attempt to see past the marketi
In the recent relaunch of this site, I created a new custom skin for Subtext. Since this is just a personal site, I threw things together fairly quickly, testing along the way with Firefox3 and IE7. Once I was getting closer to complete, I took a look at my new site in all the usual browsers, including IE6. Ugh, it looked terrible. I gave it some thought and made some decisions about supporting IE6. I'm not going to support it. Not on this site and not on others that I have a say in. I'm not tal
As a long time work-at-home developer, I’ve come to realize over the years how important it is to have the right work routine and balance to remain happy in both your professional and personal life. I’ve worked from my home 100% of the time for the last 6-7 years and had often worked from my home in spurts before that. Without question, it requires the right mindset and dedication. There’s an upside as well as a downside to working from home, but with the right routine you can be successful at i
I mentioned before about my return to blogging on ryanfarley.com and my renewed passion for programming. I've found myself moving from blog to blog reading things that continue to inspire me. I read a post from Justice Gray, titled "How I am becoming a better developer, part 1 of infinity". This was a great meme, and although I'm late getting to the table, I wanted to post some thoughts I have on becoming a better developer as well as some goals th
A meme that has been circulating lately online with .NET developers that I've enjoyed reading asks how you got started in software development (started by Michael Eaton). I just got through reading posts on this meme from Phil Haack and Joel Ross, so I decided to post my own story.
I've neglected this blog for quite some time now. Wow, it's been a while. I decided it was time for a relaunch. So, I've migrated the blog to Subtext (I stayed on .Text long after the project was dead) and have a shiny new look and feel. I figured if I put some time into the blog skin then I'd be more likely to keep posting.
A co-worker pointed out to me something cool that is coming in SQL 2008. A new keyword for MERGE has been introduced. This new type of statement reduces some of the tedious work you typically do when adding data to a table in SQL. As things are now, you will check for the existence of a row, and then proceed to update the matched row if it exists, or insert the new data if the matching row did not exist. The new MERGE keyword allows you to do this all in a single statement.
Dave Burke has a long running series of posts on his blog titled “CS Bytes” and “CS Nugglets”. If you work with Community Server at all, you've probably found that these posts are pure gold. Completely invaluable information that I look forward to every day. I'm not sure I'd enjoy working with Community Server as much without Dave taking the time to gather all the best CS info for me ;-)
My son, Trapper, just had his 9th birthday party this weekend. I had my friend, Neil (kungfootrooper.com) come, who just completed his new Darth Vader costume to give the boys something to gawk over. Even though I knew it was my fiend Neil underneath I can't even describe how powerful and awe-inspiring it was to be in the presence of Darth Vader. Neil is a big guy and makes a really menacing Darth Vader. It was an indescribable feeling and felt like the fulfillment of a childhood dream to stand
I've mentioned my love for my RSS aggregator before, GreatNews. This week I came across a new user-submitted style for GreatNews called Web-2-Zero, created by Jorwa. This is a great looking style and is very pleasing to the eye - despite the name ;-)
Internet Explorer 7 introduced the Windows RSS Platform. The Windows RSS Platform will be a core part of Windows Vista, but with IE7 it is now avilable on XP as well. The new functionality in IE7 to consume RSS feeds is made capable by the Windows RSS platform. This new functionality exists in Outlook 2007 also, giving you the ability to consume RSS feeds in Outlook folders ala Newsgator style, which can also synchronize with the Windows RSS Platform.
I've been a long time fan of TextPad. I live by my text editor. My text editor is probably one of the most highly used applications on my pc. Seriously. TextPad has been great and I've always loved it. I decided on TextPad years ago after I grew dissatisfied with UltraEdit, I've tried a few others along the way, such as Notepad2, but none would compare to my favorite TextPad. Funny thing is, I wasn't looking for a new text editor, but I came across a new one today that I had not heard of before
I was catching up on some Scott Hanselman posts today after going through Scott's new Utilmate Tools list (which is a great list) and came accross Scott's post on Console. Wow. I am in love. I've always been a big command-prompt junkie and this app is the cat's meow. A tabbed console windows app with better support for copy/paste and so much more.
Phil Factor had a great post where he spins the creation of the world as an IT project. A really amusing read.
I last posted about the null coalescing operator in .NET 2.0 and just had to post a follow up. I came accross a post on Born 2 Code .NET (via Dennis van der Stelt) where several examples of ?? syntactic sugar are listed to demonstrate how the null coalescing operator surpasses the ternary conditional operator (?:) and if constructs as far as usefulness and readability.
I blogged two years ago about the new nullable operator in .NET 2.0 (wow, was that really 2 whole years ago? Time flies.). Since then, I waited patiently for it's arrival. Ever since .NET 2.0 came out I've been wanting to return and blog about it again.
If you've written code to work with Outlook before, you'll have met the Object Model Guard's messages about a program trying to access Outlook. This change was a real pain for developers when it was first introduced. Since then we've all made our way around it by writing extended MAPI code or using things like Redemption or Outlook Security Manager.
I have a new favorite toy. Scott Hanselman mentioned Colibri on his blog so I thought I would give it a try. I can't tell you how much I am loving this cool tool. Colibri Type Ahead is a combination of a quick start/launch and search program you use to quickly start up applications installed on your pc.
You may have read it already, but it's working linking to over and over again, Jeff Atwood has an excellent list of warning signs for Code Smells. Be aware of these warning signs. If you are seeing them in your code, then...I'm sorry. I really didn't want you to have to find out like this. Hehe.
I came across this list on CodeProject of SQL Queries to analyze SharePoint details and usage. This is an awesome list. Granted it does bypass the SBS object model so isn't the recommended route, but still a great list of queries you could use to make reporting on your SharePoint sites a breeze
I started this blog in August of 2003, almost 3 years ago. I've made 176 posts in those 3 years. I don't post too often to my blog because I'm not all that big on posting stories about my kids, wife, dog, etc - although those do come in every now and then. Anyway, even when I have lulls where I am not posting as much, my traffic seems to stay pretty consistent. I'm actually amazed at how much traffic I get, especially when I consider how often I get around to posting (big thanks to all the visit
The one about my custom vanity license plate...
I came across Sky Software's EZShellExtensions.Net via The Daily Grind and decided to check it out. Wow. I have to say I just love this library. There are so many different kinds of shell extensions you can easily do with hardly any effort at all.
After my last post on adding items to the page head in ASP.NET 2.0, Karthik Nataraaj asked if there was a way to add meta tags as well. You are in luck Karthik. The HtmlMeta class is provided for just that. You can easily create a HtmlMeta object and add it to the Controls collection in the HtmlHead class exposed via Page.Header.
I am easy to please when it comes to small and simple things that make my life as a developer easier. For example, I came accross something I had not noticed before in ASP.NET while reading a post from Dave Burke. The HtmlHead class exposed by the Page class as Page.Header. I love this. It makes it so easy to get to, and manipulate the header attributes for a page. A simple act of changing the page's title, style, etc before was a pain. Now it's just setting a few properties.
There's something about the Web 2.0 buzz that's forced itself into the fore front over the last year that's never quite sat right with me. Milan Negovan recently made a post titled “Con 2.0” which summarized my own feelings on the subject perfectly (which Milan seems to do quite often). The problem with the hype around Web 2.0 is that there seems to be a real push to solve a problem I don't have. Sure the bells and whistles are cool and have a lot of “wow-factor” to them, but I seldom come accro
For anyone interested or those who work with MSCRM, I've decided to put up a new blog dedicated to MS CRM development. It's still just a wee baby, but I plan to post somewhat regular content there.
I was making some changes to a website where I had some PDF files and I wanted to be able to post thumbnail images of the PDF file. There were enough PDF files for me to want to take the lazy route and write some code to do it for me. I didn't want to go out and get some library that might have been able to do this for me, so I started poking around to see what I might already have to get the job done quickly.
I was playing around with various ways to launch SQL Reporting Services reports and came across a good tip. If you work with SRS then you'll likely know you can launch a report by simply accessing the Uri to the report. However, you can also specify format types to automatically export a report.
I have to say it, I love the new SQL Server 2005 Integration Services (SSIS). Wow. There is some really awesome stuff in there that really just blow me away. There are so many new things in SSIS that I just love - too many to mention. However, it is some of the smaller, less noticed, features that have come to be my favorites. Here are my top 3 small features in SSIS (so far).
Something I have always been a sucker for is tricking out my desktop. I love any kind of tweak or gadget that enhances my pc and the whole user-experience thing. It's one of the many reasons I am looking forward to Vista. I've been a fan of applications that trick out the desktop from the norm for years, so I thought I would share a few of my favorites.
I was speaking to a friend the other day about relaying e-mails via a local SMTP server. There was some problem with some code and the e-mails were not going out. In cases like this one of the first things I like to do (especially when you don't get to access the SMTP server directly, but you're relying on some other IT person to set up the relaying permissions correctly) is to manaully connect to the SMTP server and test sending out an e-mail or two.
I've been catching up on some blog reading lately, I've fallen a bit behind. Anyway, a post from Phil Haack has got me thinking. In this post, Phil talks about those projects that we all have found ourselves in from time to time where there is a limited budge and limited time and you just have to crank something out, something that might be mostly crap (or at least just not ideal) but functional, just so you can get things to phase 2 where you'll reengineer everything and do it right.
You can finally sleep at night, cancel the appointment with your therapist. At long last, you can be assured that you are pronouncing GIF correctly. Whew.
Something that's been one of the most interesting reads for me lately has been Dave Burke's set of posts detailing his war stories about migrating an ASP.NET 1.1 project to ASP.NET 2.0. Good stuff. ScottGu even got involved and had Dave send him a sample project so he could help determine what was causing the train to stall when leaving the migration station.
I've always been public about my descisions with which RSS reader to use. Last time I posted about this, I was using Sauce Reader and had found that it was bowing out from aggregator-land. Since then, I've used FeedDemon and have been a pleased, but not really that thrilled. I started using GreatNews and I've found that I like it (even though it's current version is missing a few things).
I started this blog a couple years ago, in August 2003. Back then, as I still do now, I live and breathe C#. So I picked a C#-ish title to reflect a bit of my passion for all things C.
I love to see how society evolves with technology. We're all so reliant on the internet now, thinking several years back things sure were different. I had a neighbor several years ago that was trying to teach his two young daughters to be hackers. His thinking was that the l33t haxor skillz would give his daughters an edge as they grew older and would put them ahead of the curve as far as their understanding of computers, networking, and programming. These skills would also put them in a positio
One thing that I just can't stand, is when a web page I build looks different in FireFox than how it looks in IE. Well, who doesn't?! The thing that really sucks is that there are things build in to how ASP.NET works that will cause this to happen. So unless you're checking your pages in FireFox (and other browsers) than you can bet they'll render quite a bit differently than in IE.
Poor Phil is suffering from Pagerankatitis. It might be due to a bad case of rel=”nofollow”, or maybe it's just that Phil is a hypochondriac ;-)
It's been over a week since my post about starting up my search for a new RSS Reader with the demise of my current aggregator Sauce Reader. Why is it so hard for me to find a reader that I actually like? I mean, there's a lot of them out there that are OK, but nothing that I can get really excited about.
I hate that, and it seems that every time I (or a co-worker) gets the error “Unable to Start Debugging on the Web Server” on a machine when attempting to debug an ASP.NET project, I have to scramble to remember what to look at. Here's a few things that has worked for me to get things working so you can debug your ASP.NET project when/if you ever get this error.
I wrote a post about my move to SauceReader as my RSS aggregator of choice a while ago. Sadly, Synop, the makers of SauceReader has closed their business and will no longer be updating SauceReader.
I posted a long time ago about MaxiVista and how I use it to extend my desktop onto my laptop. I've been using version 2 for a month or two now, and found that I love it even more than before.
If you visit my blog via a browser, you'll see that I added a “Recent Posts” section in the top left corner. This actually has some humor to it since I've been on a 82 day unplanned hiatus, so none of my posts are really “recent”. But, none the less, I wanted to share how I added that. I did absolutely no programming or changes to the blog controls. Just a few things to set up with NewsGator Online services and a single line to add to your blog (you can even add it in the “news” section if you u
Forgive me readers, for I have sinned. It has been 82 days since my last post. Hehe. Well, I'm not sure how it turned out to be that long. Wow. I think it was just one of those things where I got really busy, and then posting fell out of my normal routine, then that turned to a long, unplanned, hiatus.
I posted a bit about opening night, but my friend Neil just posted his account of the entire opening week of Star Wars III - a week in the life of a Storm Trooper. A great read and a busy week.
I found a few great tips while I was catching up on my blog reading this week that just had to be shared.
My kids and I went to hang with my friend Neil and the Arizona 501st Legion on the opening night of Revenge of the Sith. We had a blast. I would have died when I was a kid to have been able to talk with and get my picture taken with such an authentic looking Vader, Storm Troopers, or Jedi. It was great to see my kids every bit as excited as I would have been at their age.
Well, it is done. I've made a switch to a new RSS reader. I've used RSS Bandit for quite a while now. I tried many different readers and ended up quite satisfied with RSS Bandit. But it just didn't excite me any more. I had tried Sauce Reader in the past, although to be honest, I was so in to RSS Bandit at the time that I'm not sure I really gave it a fair shake, but I have now and I am really liking it so far.
I've been busy for a while so haven't made many posts. Anyway, I knew my registration on ryanfarley.com was coming up for renewal but kept on spacing it off - again back to the whole busy thing, but I thought I had set it to automatically renew (I use mydomain and they have that option). So yesterday I found out that I apparently did not have it set to automatically renew and it actually expired so things were down.
Many times you might need to perform some action on an ASP.NET postback based on the control that caused the postback to occur. Some scenarios for this might include a form with many regions, each having it's own CustomValidator and the ability to perform a postback when a button for the section is clicked. Another scenario might be to set focus back to the control that caused the postback.
Some miscellaneous linkage to some cool free tools and services.
Popular browsers, such as Internet Explorer and Firefox support something called Auto-Complete. You've seen this many times. You go to a online form and as you start to type in fields you get a drop-down showing values you've typed in that field before. This feature can be turned off, but it really is a useful feature and can save you a lot of typing when entering redundant values.
Not sure why, but I seem to be on a T-SQL kick lately - so here's another T-SQL post. One of my favorite T-SQL hacks ever is one that can flatten out data by taking a value from multiple rows and concatenating the values into a single string.
While we're on the subject of dates in T-SQL, I never liked getting the month and year for a date and sticking an '01' in the middle (then casting it all back to a datetime) to get the first day of the month for a given date value. Then you do the same to get the end date by getting the first day of the next month and subtract a 1 from it. This way is much better.
I was reminded of a SQL function to determine if a date was a weekday or a weekend I wrote a while back when I saw the requirements of a project a colleague was working on. You'll see this requirement fairly often in many business applications. A company might want to span certain activities over business or working days only. The requirement might be to only include business days in certain calculations. Either way, there are a few things to keep in mind when making this calculation.
Just caught on Rob Howard's blog about some incredible new addons for Community Server 1.0
I just have to say that I can't get enough of the new Battlestar Galactica on the SciFi channel. I loved the mini-series they aired last year but was bummed that it was so short and over way too soon. Now that it is a full series it is every bit as great as before. If you haven't watched it yet, don't expect anything like the old series from way back (but I like that too). No cheesy acting & comedic relief. Just really great sci-fi and an awesome story line.
I love to take the approach of solving computing problems through programming. Sometimes it backfires and I over-complicate the problem (I have been known to prematurely generalize from time to time). But usually I bask in the greatness of being a programmer and having the skills to make my life easier and remove redundant or tedious tasks programically.
After my last post, I decided to do what I outlined to throw together a quick search page for my blog.
I'll admit I was excited when the Google API was made available for public use. Nice idea and opens up some cool new ways to integrate searching into your applications or websites. That is, as long as you don't exceed the allowable 1000 queries per day as per the developer license. It was easy enough to use but it was still not enough to get me that fired up about using it. I have that same excitement now about the MSN Search (beta) site. But this time things are different. There is no daily que
In my last post, I outlined some ways to make the Web Browser control more useful in your C# applications, to include things such as printing and setting the text or html of the browser dynamically. That is all good, but in a typical application it does little for you if you can't interactively respond to events that occur in the document loaded in the browser control.
It can be a powerful thing to display dynamic HTML in your C# applications. It can give your applications a modern look and feel and can make displaying data in non-standard ways easy with some simple markup. We have the web browser ActiveX control that wraps up what we know as Internet Explorer. While I don't want to get into the in's and out's of using the web browser in your applications, I do want to demonstrate a few things that will make the use of the web browser easier so you can integra
Setting focus to controls in your ASP.NET application is a part of giving your end users the feel that they have come to expect. Making your web applications act more like Windows applications is a key to success (IMO). While setting focus to controls is a very small part in achieving this, it does get you one step closer to having a polished web application that your users will love to use. It will be taken for granted, but something this small should be since it is expected beha
Tips on allowing inserts to identity columns and also for reseeding the identity value for a table.
When the TextMode property of an ASP.NET TextBox is set to Password the value set in the Text property will not display at runtime. This can be a pain, however it is actually by design to prevent the unmasked password from being displayed in the HTML source of the page. While the security reasons are good to not display the masked password value, leaving it unmasked in the source, it is also necessary at times to display the masked value in the TextBox.
I'm in the same boat as Scott Mitchell on this one. I practically live inside of SQL Enterprise Manager. Been using it for years abd years. But I never knew about this.
Chow down on those biscuits. Yummm. They keep bringing out the things they think I need, to the point where I buy into the idea that I need it too, but in the end I'll find out I am just eating people. What exactly am I talking about here (besides a classic 70's sci fi movie)? The endless Desktop Search applications coming out. MSN's is out now, thrown into the mix with Google, Copernic, X1, and Yahoo has one on the way too (via licensed X1).
I guess I don't need to do this frequent enough to remember this because I always seem to forget. To comment out a server control from your aspx page you cannot use <!-- and -->. Obviously, this is a server control, so you use server side comments
I posted before about my friend, Neil, who recently dropped the cash for some Imperial Tighty Whities (hehe). His post about our trip to Wal Mart has received numerous posts so we talked about the need for a separate blog dedicated to his life as a Storm Trooper. I cranked out a custom .Text skin for the site and it's up and running at KungFooTrooper.com.
Google just had to go and mess up a great thing. Google Groups was the greatest thing around, until Google decided to mess it up and make it totally useless.
Call it noise, call it the next big thing, or just call it stupid. Define it how ever you want. Blogging has become a huge thing in today's world. It has changed my daily routine. It has changed how I look for help with my work. It opened up a whole new world of people to meet, learn from, and be annoyed at.
I got a class that does will retrieve the associated icon for a file, but never thought of posting it. Cathi Gero posted some code to make this a simple task so you can get the icon for a file in a single call (But it would be great if this were just built into the FileInfo class). Great stuff.
Maybe my expectations were too high. Maybe I misinterpreted what they were doing. Who knows. But I was really expecting something great from Telligent System's Community Server and it feels like it is lacking. Don't get me wrong, it is some exceptional work. Well, each of the Community Server applications are exceptional - by themselves. However, with the combination of great minds like Rob Howard (ASP.NET Forums), Jason Alexander (nGallery), and Scott Watermaysk (.Text) I was expecting the inte
Some interesting news via Mike Gunderloy about the Google Deskbar that I thought was really interesting. Their plugin development kit is for use with .NET. Not COM or standard DLLs, but .NET. That's cool. I don't use the Deskbar too much since I don't want yet another thing to cramp the space on my Windows taskbar, but still that is cool and hopefully a sign of things to come from Google (and give developers the much desired ability to extend the Google Desktop Search with .NET plugins too)
OK, there is not an Olympics for T-SQL - but there should be. A friend of mine and I were talking the other day about “gold-medal” T-SQL we've come accross. The one that wins the gold for me is the code I found a long time ago on SQL Server Central from Masar Ivica that creates a PDF file from scratch in a stored procedure. No external tools used. No PDF libraries or anything, just good old T-SQL (plus use of the FileSystemObject to write out the file itself - but still all done in the stored pr
Note to self. DateTime.MaxValue does not equal SqlDateTime.MaxValue. Those 3 damn miliseconds.
If you do any work with ORM models (that's ORM as in Object Role Modeling, not as in Object-Relation Mapping) then you'll want to check out Scot Becker's blog at ObjectRoleModeling.com He's been posting like a madman with great tips and info related to ORM and Visio. His latest post on modelling multiple inheritance and setting primary supertypes saved me this week with a model I had the potential to really screw up.
Last week I was one of the millions who apparently blogged about the Google Desktop search. Everywhere you look there's all kinds of praise and buzz about the Google Desktop search. I've been using it and it's saved me some time looking for old e-mails in Outlook and newsgroup posts I made using Outlook Express. Cool. However, I seem to read a lot of posts about people wanting to use it to search for only specific types of files. So, here is the (un)official Google Desktop Search tip #1
I just re-read article from earlier in the year on evolt.org again that outlines 10 tips to make your pages load faster. I like to re-read stuff like that to remind myself of the things I am getting lazy about.
One of the cooler VS.NET addins that I've come accross. The CopySourceAsHTML addin allows you to copy source code in VS.NET as syntax-highlighted HTML. I've always used a tool I made to convert the code to formatted HTML - but this makes so much more sense.
Google has released it's beta Desktop Search. Search through Outlook, Outlook Express, IE history, Word, Excel, Powerpoint, text. Coolest part, now when I go to Google.com and search for something online it can include local desktop items too.
Eric Gunnerson made a post related to performance of generics today which has some merit to it (but isn't that the case for about anything from him?!). Focus on the big picture when designing for best performance...
I read an interesting post from Paul Wilson regarding the never-ending debate of whether to use stored procs or dynamic SQL for your data layer. As I mentioned before, I've always been a stored proc kind of guy. Why? Really just because I love them. I love to get a change of scenery everynow and then and work with some T-SQL. But after reading Paul's post I got thinking. I've never really even given the dynamic SQL route a try. We'll I've tried it, I love the idea of O/R mappers, but really just
I just read a new post on the Daily WTF. Although this one does raise some question of it's validity of being from real live production code, I tend to belive it because I've come across my share of completely idiotic & inane code from time to time. This one takes the cake.
A lot of SQL 2005 information has surfaced recently and I am as giddy as a school girl (how's that for a phrase that is bound to result in some Google weirdness?!). I've been more excited about this than about anything (Well, except for the release of .NET 2.0 of course). Here's a bit of SQL 2005 linkage for some good reading.
You know normally this is the kind of thing I'd hear from RoudyBob.NET, but since Bob is on a Blogging Hiatus, I guess someone still needs to mention cool new uses of RSS.
That's right. I have at many times been both. Hehe. A great post on Dive into Mark that talks about why specs matter and goes on to classify developers as assholes or morons when it comes to software specifications. Awesome read.
A friend of mine called me yesterday about a scheduling application he is working on. His question was so simple, or so it seemed, but it really drove me nuts. Basically he just wanted to find out if two date ranges intersected at all. Simple enough. It was one of those kinds of answers that you immediately start rattling off the solution, but every thing that started to come out of my mouth was failing my mental unit testing. I'll admit it threw me for a loop for a short bit.
What a busy month. I moved into a new house. Which moving for me means I am also moving my office since I work from home. Getting things back together again, getting the network up, setting up phones, internet, etc, etc. It is all a big pain. Meanwhile trying to balance getting my house back to normal and everything out of boxes with doing the same for my office. Ugh.
There's likely been times that you might have thought that it would make things convenient to write back to your .NET application's config file. The framework provides simple methods for reading from the config file, but gives you nothing for writing values back to the config file. It is easy enough to write values back to the file. It's only XML. When I need to do this sort of thing I use a class that wraps up the ability to read and write settings in the config file.
So I am back in the saddle again after a few weeks out teaching a T-SQL/DTS class and then vacation. Always hard to get back into the swing of things after a few weeks out (not to mention the couple hundred new blog posts I have waiting for me in RSSBandit and another hundred or so e-mails to get through). Anyway, to get me back into posting mode, I'll pass along a few quick tweaks to make your programming/computing life easier that I've picked up over the past few weeks (Wish I could give credi
Within the last hour Visual Studio 2005 Enterprise Architect BETA 1 just showed up on MSDN subscriber downloads. Everyone else please stop their downloads until I get mine down ;-) - Community previews are cool and all, but now the real fun starts!! Woot.
Milan Negovan has started a series of posts on his blog where he is analyzing and redesigning the microsoft.com start page. If you've ever had a peek at the microsoft.com site in Firefox, Opera, etc, then you will have noticed that it looks quite a bit different than in IE. But it's not just about cross-browser compatibility. Milan takes the time to walk you through how to design the site right using current web standards. It really is, as he puts it, a web standards showcase. It's not just talk
Just caught that the monthly MSDN magazines are downloadable in CHM format. Who knew? Well not me, but how cool of an idea is that?! Just go to view the issue on the MSDN Magazine site and you'll see the link to download it in the upper-right corner. Cool.
One of the cool new things introduced in ASP.NET 2.0 is Master Pages. Master Pages give you the ability to define a master page layout and look that is used throughout a site to give a consistent look & feel to all pages. Any updates or changes to the look & feel of the site is done in only one place - the Master Page. Something that might be useful is the ability to dynamically load a master page at runtime, for example based on user preferences or to implement a simple skinning ability for a s
Often with web applications you want to track traffic statistics to get a general idea of the number of visitors viewing a resource. Whether it be a web page, an RSS feed, an e-mail or whatever, you might want an inconspicuous way to determine that it has been "viewed". A common tactic for tracking visitors is the use of what is known as web bugs. Web bugs are small 1x1 pixel images that will be put on a web page or e-mail that will log information about the requestor each time it is requested o
Over the last year or so I've been trying to make by web UIs more CSS driven and not use tables as often as I do. But it is an ongoing battle. Who ever said that old-habits die hard wasn't kidding. The use of tables comes out so natually when I write my markup that it is second nature. It is the way I have always done web UI layout. Problem is that tables are inflexible, have a tendency to get messy fast as you get deeper and deeper embedded tables, but worst of all they are slow for the browser
I just read an awesome article from Brad Wilson (posted to his DotNetDevs site) about implementing the Visitor pattern using Reflection. Man, that was some truly great stuff. A must read. I've been working on something similar in C# 2.0, but going the route of using generics instead. The Reflection route is very interesting but as Brad mentioned, you'd have to use some sort of caching scheme to offset the performance penalties.
There are some really cool changes coming in ASP.NET's web.config files that I am really excited about. I'll just point out a few that I've used (I hate going back to 1.1 because I can't use them). The web.config file in ASP.NET 2.0 allows you to set a lot of things that will apply everywhere in your site.
OK. So I don't really want to jump on the VB bashing train, I mean, isn't it just too easy of a target? Not that I care for VB or anything, but this was just too funny to not pass along!
Scott Hanselman posted a good reminder on multi-layered/tiered design. If you have already read it, read it again and live it. If you haven't read it yet, then shame on you for not subscribing to Scott - and you call yourself a .NET developer?! Go read it.
If you come from C/C++/MFC and getting into C#, you might find Joseph Newcomer's C# for MFC Programmers Quick Equivalents Map useful. Although not the best looking page on the internet, it has a lot of really good info. Thanks, Joseph!
I agree with Josh. Blog and aggregator software that do not support the CommentAPI really don't go well with me. I find that if a blog does not support it I usually just don't comment and I especially don't read post comments. Also, I refuse to use a reader anymore that doesn't support it.
I posted about a week ago about the new nullable value types in C# 2.0. Since then the new C# Language Specification has been released - which now includes a section on nullable value types, so it has gained a bit of buzz in the blogsphere over the past week. Eric Gunnerson posted on the C# Team FAQ a little more related to nullable types and answers the question Why don't nullable relational operators return "bool?" instead of "bool"?.
Every now and then I diverge from my usual C# (or at least technical) content. I guess now is one of those times. Since I typically don't like to stray to non-technical or programming content, I decided to post a few random items that I would not post on normal days (when I am feeling normal?) all at once.
I found something really cool from Dirk Primbs - a managed provider for NNTP! What a cool idea. Dirk wraps all the NNTP protocol and socket work into objects that implement the interfaces from System.Data to give you a really cool way to read NNTP data. How about querying a newsgroup with a SQL select statement?!
Often in applications you have the need to launch a browser window to a specified URL. I recently evaluated various RSS readers where links to blog posts could be launched in an external browser window. What I found was that most of these applications would simply shell out the URL to launch and let Windows open it in the default application for http. The problem is that shelling the URL will pass it off to the default application, but not necessarily the a new instance of the default applicatio
For the last year or two, I've been switching from reader to reader. While each one had features that I loved, they all seemed to fall short on one thing or another and I was never really 100% pleased with any of them. I went from SharpReader, to RSSBandit, to NewsGator, to SharpReader again, to FeedDemon, back to SharpReader, to Gush, back again to NewsGator, and then Sauce Reader. Just as I was about to start building my own aggregator, I decided to give RSSBandit another try (after reading ho
Josh Ledgard made a post a couple of weeks ago that I've been giving a lot of thought to lately about “ignoring the A-List bloggers”. Often when you find a blog you like, you just read it. Everyday. Whether the post is good and about something that interests you, or something that you'd never read otherwise, if it were not on a blog you subscribe to. All these posts that do nothing for you end up eating up a big chunk of your time (well they can add up - how much depends on which blogs you subsc
Adam Nathan, the one who brought us the excellent pinvoke.net Wiki, had released an addin for Visual Studio that integrates the pinvoke.net site and allows you to insert DllImports for API declares right into your code. I read about this a few days ago and I just tried it today. Really cool stuff. You can both insert DllImports into your code, or submit DllImports to the Wiki, all from within VS.
At times I'll build a suite of related, but separate applications. Even though each application is a separate executable, I like to be able to integrate the applications so they can work together. Sending messages between your applications is a great way to do just that.
When you build Windows applications in .NET, by default your application will not have support for XP Themes, or Visual Styles. It is an easy enough task to do, and I think it goes a long way in giving your application a complete and professional look & feel. When Windows Forms 2.0 comes out with Visual Studio 2005 support for XP themes will be enabled by default in your Windows applications. However, for now you have two options for enabling XP theme support.
Leave it to Bob to track down all the cool RSS feeds coming out. Microsoft has put out an RSS feed for Security Bulletins. Stay secure.
OK. I admit it. At times I do generalize prematurely. Premature generalization is a term given to the act of adding functionality or abstraction to your code simply to account for the “what if...” cases that might (or might not) arise in the future. Sometimes referred to as “over-abstraction”. Your requirements might be to code X, but you think it would be really cool to also account for the possibility of YZ so you abstract, or overly generalize your code to include for the future possible need
A friend of mine, Neil, who works for a “BigCo”, shares his insight on the problems and causes of offshoring, developer laziness, and the difficulties of getting any real work done. It is one of the most insightful posts I've read on the subject to date.
P/Invoke.NET...it is about time someone put up a site like this. And the fact that it is a Wiki makes it even better and something that will likely grow to include about anything. If you ever need to find a P/Invoke definition for a Win32 function, this is the place to look.
"The goal of normal forms is to avoid certain data anomalies that can occur in unnormalized tables." SQL for Smarties: Advanced SQL Programming by Joe Celko
There are times that you'll see a Window that has a close button in the titlebar, but it is disabled. This is often found in applications where the dialog/window changes it's status past a stoppable point so the Windows close action is removed so the user cannot close the dialog to stop the process (For example when installing a Windows service pack). You might want to produce this same effect in your own applications. While there is nothing built into the .NET Framework to do so, with a few Win
A while back I helped a friend with determining how to count the number of lines contained in the TextBox. He needed to count each line - whether it was a line wrapped from the line above it, or from a carriage return to start a new line. Using Windows Messages you can easily get to this information.
At times you might want to take images from an ImageList and use them as Icons in your application with things like a NotifyIcon or a StatusBar etc. The ImageList stores it's images as System.Drawing.Image objects, but converting them to Icons is easy.
This one is just too cool to not pass along. I came across something cool from RoudyBob again. This is something from Greg Reinacker, maker of NewsGator. Greg has written an app that will publish your Windows Event Log entries as an RSS feed. How cool is that?! I think I'll start putting it on my live servers and build a custom aggregator to let me know of problems.
About time! Just heard via Bob Roudebush's blog that the MSDN subscriber downloads area now has an RSS feed to notify you of newly posted downloads. Awesome!
Something that I think is often overlooked in the .NET Framework is the cool stuff you can get at using OleDbSchemaGuid to retrieve database schema information. I just thought of this again earlier today when I was reviewing a C# database application where ADOX was used via interop to retrieve schema. Why use the extra overhead of interop to get to ADOX when you have something built into the framework that will accomplish most of what can be done via ADOX? However, you'll find that ADOX is used
Scott Watermasysk has posted an excellent article that explains Generics in it's simplest form possible. Call this Generics 101. An awesome read to get you really pumped up (if you're not already) about Generics. Thanks Scott!
I realize Longhorn is still only in it's pre-alpha stages, but please put the order of the taskbar right-click menu back how it was before (in previous versions of Windows). This thing is driving me crazy!
I've always been the kind of guy who loves using command prompts. I guess that is partly a reason why I got deep into *nix back in college. No windows, just a trusty command prompt. That carried into how I worked in Windows. I still to this day add a shortcut to the command prompt in the quick start area because I love using them.
There are times when you are integrating your .NET applications with other existing applications that you cannot modify and is possibly even non-.NET application. This can often result in problems integrating your .NET application's windows with the other application. However, this can be accomplished. You can easily obtain the handle (HWND) of the other application and convert it to a System.Windows.Forms.IWin32Window which can be used in your .NET application.
Tony Schreiner, who works on the IE team at Microsoft, has posted about some of the changes coming for IE in XP SP2. Many many great changes, such as the new information bar to lessen the modal dialog madness - but my favorite is the new option on the authenticode dialog “Never install software from Company X”. About frickin' time! I can finally opt to never see a prompt to download something like Gator again!
The other day I posted again about using Dispose. I guess I just can't post about Dispose without also mentioning using. For those not aware of what using is, I am not talking about the using directive (where you include namespaces in your code such as using System.Text; etc) but the using statement. The using statement defines a scope for an object where the object will be automatically exposed at the end of the scope. The using statement goes hand in hand with calling Dispose since that is wha
Scott Mitchell (of 4GuysFromRolla.com) has a cool new article up on MSDN that has a pretty complete and detailed dip into URL Rewriting. An awesome article - Scott really walks you through the entire process. This article will give you everything you need to implement URL Rewriting in your ASP.NET apps.
I see things surface from time to time on the question of Dispose vs. Close on objects that implement IDisposable. I posted a while back my ideas on why calling Dispose is not only correct, but necessary. To me the facts are clear, but you'll find the question arise frequently. There seems to be two areas of FUD (fear, uncertainty, doubt) surrounding the use of Dispose.
About time. In the tradition of nerd diners in other areas, Paolo Hutchinson suggests we do one here. Count me in.
FYI, I'm going to be changing a few things this week on my blog. Basically the URL will change slightly (I'll be going back to the standard port 80 instead of the freaky port 82 that it get's redirected to now). Old links will still work and will end up in the right place. However, for those subscribed to the RSS feed, you'll need to modify the URL in your reader or you won't get any of the new posts. The change should take place on Tuesday.
I just caught some news from Neil (who kinda speaks Elvish) that Peter Jackson (LOTR director) is planning the film the LOTR prequel “The Hobbit”. And all the geeks rejoice.
Carter Maslan has made available yet another Longhorn concept application video (See here and here for others). This time focusing on the financial services industry. Big focus on WinFS and Indigo in this one.
As a follow-up to my last post about an article on CodeProject, I should point out that I do live by Scott Hanselman's Rule# 0x3eA
According to the Gematriculator my blog is 38% evil.
You know, I always get so bugged at those “Learn to program in 21 days” books. I mean, WTF?! What can you possibly learn in 21 days about programming? That is one of the reasons why the development job market is so flooded now days. People wanting to get into programming because “it would be a good line of work”. They spend their $49.95 and buy their book, spend their 21 days with the book and then call themselves programmers.
I just read Jim Blizzard's blog and apparently got tagged. Now I have to spread the word about DevDays. Phoenix DevDays will be March 16. I'm going to be attending in Phoenix and in Minneapolis MN too! I am really psyched.
Well, it's about time. Microsoft has finally released a web administrator for SQL Server. I just installed it. Not bad. It really is about time that Microsoft released something like this. It a pain to have to load Enterprise Manager everywhere. This tool does most of the more common things you'd typically do in SQL. I haven't really looked at security though. But all in all a really cool tool. No longer needed to go installing Enterprise Manager all over the network anymore.
I just read a shocking article where a concerned parent made the horifying discovery that his son was a computer hacker. Reginal Gibbons and his wife Carol, being modern parents, decided that their children's education would benefit from using a computer. So they purchased a computer and installed many fun application programs such as Microsoft Word and Adobe Photoshop. Imagine their horror when their youngest daughter Cindy, rushed into the room and blurted out “Peter is a computer hacker!”.
You know, I'm not really one to follow Exchange related stuff. But the blog by the Microsoft Exchange team has one of the coolest names of about any blog I've ever read.
I posted before about a concept application from Carter Maslan of Microsoft showing off things like Avalon & Indigo in a real-world concept application. Carter's put out another one. This one focused on the health care industry demonstrating real-time collaboration via Indigo secure messaging where two doctors can remotely discuss and analyze X-Rays, integration with WinFS for document storage for faxes records etc. Really cool stuff.
Came accross a change coming in the next version of Internet Explorer via ASP.NET Developer Center on MSDN. Any URLs containing a user id and password will be disabled. For example, if I have a secure site and I want to avoid the logon dialog, I could use a URL like the following: http://myusername:mypassword@www.supersecretplace.com/.
I was using Qwest Dex to search for the address of a restaurant in my area. I used the "view map" link so I could see where it was located. Here's the map I got...
Well holy crappolie. Andy Smith posted a real nugget of info related to CSS classes that I had no idea about. Maybe everyone else knows about this - but it sure was news to me. You can put multiple CSS class names inside the same class attribute separated by a space. Who knew?!
Great article from Joel Spolsky on what he calls “Fire and Motion“ and finding the motivation to move forward. Maybe I am normal after all? ;-)
There's a great new reference on MSDN that makes attempt to map Win32 API to their .NET Framework equivalent. So if you're having trouble making a certain translation, or would like to avoid a p/invoke here or there, this is a pretty long list that might help you out.
Ever since I posted my “Rory as Tom Jones” picture, my blog as been going crazy with traffic. Just goes to show that everyone loves Rory.
I was listening to Don Box again on .NET Rocks. He is a true rock star. The Led Zeppelin of developers. Anyway, when talking about Don's days at DevelopMentor and the whole “COM is Love“ thing that Don started there, Mark asked Don if COM is truely dead. Don had a great follow-up to that question.
Rory Blyth posted anorther great comic of coding a data compression algorithm with guest celebrity “computar enthusiast” Tom Jones. It is a real hoot.
I love multiple monitors. I can't even imagine trying to work without multiple monitors and don't think I could ever go back to a single monitor.
Want to be blown away by new technology coming in Longhorn? Want to see a real-world application using Avalon & Indigo? Sure we've seen all the demos and PDC slides showing off these new technologies, but one of the most difficult things (for now) is to visualize how you might put these technologies to use in a real-world application.
Rory Blyth has solved the issues around the RSS vs. ATOM debate and has introduced a new and improved syndication format that will not only revolutionize the blogsphere but will save precious resources on “the computer that the internet runs on”. Another Simple Syndication, to be more commonly known as ASS. Simple. Elegant. Beautiful.
So yesterday a debate surfaced that seemed to have the entire online programming community all worked up. Rob Howard, Microsoft ASP.NET Program Manager, posted to his blog about using stored procedures in SQL server. Many comments both for and against Rob's arguments in his post ensued. Things got a little heated when Frans Bouma stepped into the debate. Frans took his ideas to his own blog, and then you see the entire blogging community step in (via their own respective blogs) to add their own
Something really cool that is coming in the Whidbey release of ASP.NET is Web Resources. ASP.NET Web Resources will allow you to add and reference items such as images and CSS files directly from your compiled assembly.
I cannot tell you how excited I am for the arrival of XAML. I loose sleep at night already just thinking about the cool possibilities. But I have to say, leave it to Microsofties to pronounce it “zamel” (as in rhymes with camel).
I recently came accross something cool (albeit small) for a quick way to discover SQL Servers on your local network. I'm not talking about a programatic way to do so (that's that NetServerEnum API and DMO are for), but more of just a manual way without needing to discover them through SQL Enterprise Manager etc.
Can you tell a coder from a cannibal? Can you tell which people spent their time hacking computers, and which spent their time hacking up people?
So I have been using Lutz Roeder's .NET Reflector since it's first public release (when .NET was still in beta). It is a great tool. Since it's early releases Lutz added in functionality for decompiling .NET assemblies etc. I never really gave it any thought since I always used Anakrino for that.
Anakrino is a great tool. I've always loved it. However, someone mentioned to me some differences that Reflector has for decompiling - so I decided to take another look. Reflector's decompiling is f
I spent a few hours this week reading articles on various sites with speculations on Revolutions. I have to say I am now more excited than ever to see it...
So a few years ago, DevelopMentor was giving out “{ C# is COOL; }” shirts - back when .NET was still in beta. COOL was an internal codename for C# (C-style Object Oriented Language). Anyway, I want one (the shirt that is). See a picture of Chris Sells wearing one here. So, I realize that I am a couple of years too late in trying to get one of these, but anyone happen to know where I can get one?
A friend of mine, Scot Becker - President and Principal Consultant of Orthogonal Software, has put up a blog focused on object role modeling. If you work woth ORM, or really any kind of data modeling - you really need to check out this blog. It's pretty new, but already has some great content and ORM tips.
We all have our own collection of cool utilities and tools. Tools that make your work easier and you'd feel lost, abandoned, and stupid without. Scott Hanselman recently posted his list of tools he can't live without in his blog. All I have to say is...wow! This is an awesome list.
So I made the move to Office 2003 this weekend. It has some really cool new stuff. It is only a beta2 release, but I have always been fine with moving a MS beta2 release into production. Newsgator rocks. You can consume RSS feeds right in Outlook. So, you could have my blog { public virtual blog; } delivered right to Outlook.
Well, I finally decided to put my blog up. I'll be posting here my rantings and ramblings on subjects such as C#, .NET, programming, and life in general. I'm usually not a very outspoken guy, but I am a whole other person at the keyboard. I'll try not to scare you too much ;-)
|
|
News
Sponsor
Sections
|