C#/Development
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
I love Growl. In my opinion it is something that should be built into the OS and I wish that every app supported sending Growl notifications. Lately I have been using Growl to get notifications from my own applications. This has been a great way to get instant feedback from applications while testing or when problems happen. However, instead of building in support for Growl, I add these notifications via a custom target for NLog so the notifications are configurable as part of the logging soluti
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 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.
There are many secure websites out there that provide useful information but do not have a public API to access it's data. A prime example of this is the LinkedIn website. You might love to gather some info from LinkedIn, but their promise to deliver a public API has yet to come to fruition. The problem is, the pages with all the good data are secure, requiring the user to log in before accessing these pages. Let's say we want to scrape this data from these pages programatically? We need to auth
I posted yesterday about setting ASP.NET Browser control properties differently for different browsers by using device filtering syntax for setting the properties. I've received some questions via e-mail about that post so I wanted to follow up on some additional things I've found on this topic.
Isn't it great when you work with a tool day after day and you thought you knew everything there was to know about it? Then find out something that has been there for a long time that you somehow missed? Here's two things that have been in ASP.NET since version 2.0 that I somehow missed until just recently.
If you have a website that maintains a list of events for users, it is a great idea to allow users to selectively add those events to their own calendar. Using automation from a website with something like Outlook is a bad idea. It would be blocked by the browser's security and your users might use something else for their calendar. Fortunately, many main-stream (most?) calendar applications, such as Outlook, Windows Calendar on Vista, and a whole lot more, support the iCalendar specification.
In my last post I mentioned some of the podcasts that I've been listening to that have inspired me as a .NET developer. I thought it would be a good idea to start a list of all the podcasts that have taken over my Zune lately and some that I am planning on checking out.
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.
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 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.
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 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
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.
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 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
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
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
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)
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.
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 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.
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.
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.
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
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.
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!
When I work with web services I want things to work the same way as if I were working with a local layer that returns objects, not data. I don't want my code outside of the service to even see the data, just the objects that represent the data. Who doesn't? There are some things to know when it comes to consuming objects returned by a web method and they're not what you might expect on first attempt.
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"?.
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?!
The C# 2.0 specification will bring a lot of changes to the language. One of those changes will be the addition of nullable value types via the “?” type. In addition to the nullable type and the “?” syntax is the “??” operator.
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
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.
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.
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.
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!
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.
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.
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
I came across an interesting article on CodeProject today. The article discusses an attribute based strategy for automatic population of instance fields and properties on an ASP.NET page from parameters supplied via properties of the Request object (.QueryString, .Form etc...). A very interesting approach. I am not endorsing using it and haven't really considered the performance impact that this might have - but what I found interesting was the approach. I really like to see people think outside
An awesome new article from Eric Gunnerson showed up on MSDN this week that focuses on the cost of calling code dynamically. Eric compares the speeds between direct call, using Type.InvokeMember(), calling through an interface, & calling via a delegate. It should be no surprise that Type.InvokeMember() lost out to the others by a long shot. That's not to say you shouldn't use Type.InvokeMember, it has some great uses - but you should know what you're getting yourself into.
Last month Microsoft released a new application block. This application block of re-usable code and samples, can be used to model your own applications to allow them to detect the presence or absence of a network connection, cache data for use while offline, and re-synchronize data and tasks with the network once the application goes online.
Do you know what the difference is between using SET and SELECT when assigning varaibles in T-SQL? Well, there is a difference. I came accross a great article by Narayana Vyas Kondreddi from the UK that describes the difference between the two.
I don't hear as much about Whitehorse as I do the other new things coming in Whidbey, but I am really excited about it. Whitehorse is basically an integrated design system that goes far beyond the design stage. Whitehorse targeted at designing & validating service-oriented distributed systems. But what makes Whitehorse so cool is how the design and the code is meshed so tightly together than ever. It forces the developer to stick to the original design. And if the design changes, so does the str
A must read for developers is the new document on MSDN describing changes in the up and coming Windows XP service pack 2 that effect developers. Take a look.
Ryan Jameson posted a link to a really cool GDI+ FAQ that has some really great info. If you're doing anything with GDI+ it is a great place to start.
I just read a post from Mitch Walker (program manager on the Longhorn SDK team) about how they used XAML to make the Terrarium game application “skinnable”. I've never really been that into Terrarium - I made my own herbivore organism and all but I guess I just never really understood the game. Anyway, that's not my point. My point is that in this article it shows you how to do something really cool - and that is how you can dynamically apply style from a XAML file to your application at runtime
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.
A friend of mine (who apparently refuses to blog, but I'll link to him anyway) is working on a new app with a “plugin” architecture. I love that kind of stuff. One of his plugins has a dependency on another assembly. Things were not working well - even when he attempted to load the dependent assemblies into the AppDomain. We hunted around to find a solution and came accross a cool new event I was not aware of before - the AssemblyResolve event.
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.
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.
Dave Wanta (of kbAlertz.com and 123aspx.com) has put together some really great info on the System.Web.Mail namespace at SystemWebMail.com. This FAQ is one of the most amazing & complete .NET resources I've seen in a while. Really awesome stuff.
Hummm. An HTML table-like control for WinForms? The possibilities are endless (I've always been a fan of the HTML table)
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.
Rico Mariani, an Architect on the CLR team and someone who definately knows his stuff, posted to his blog a few weeks ago two things you should avoid in .NET for better memory usage. These two things are fairly common in .NET code especially when old habits are lingering from previous non-.NET languages. Here's a quick recap (I'll also post a link to the full article at the end of this post). Although there are always exceptions, here are some guidelines for better memory usage in .NET.
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.
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
Wesner Moise posted about a cool new feature in his blog, .NET Undocumented. Background spell checking in Avalon TextBoxes - ala Word style.
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?
Do you ever just think about everything that is available to you in the .NET Framework? I mean, the classes seem almost endless. There is everything for simple to very complex tasks. I often find myself just reading the framework docs. I can get really caught up in there. So much to learn...
Here’s a great post from Eric Gunnerson’s blog on some new terminology we’ll see with generics...
I finally listened to the latest .NET Rocks show with Juval Lowy. BTW, if you're a .NET developer, or really any kind of developer, .NET Rocks is a great audio show to listen to. Always great guests and topic discussed. Well worth the time to listen to. Anyway, Juval discusses the new features coming in C# 2.0. Great Stuff
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
|