By Tom Hundley on
6/13/2009 7:54 PM
If you have a rad combo box and the dropdown width is larger than the width, you'll get the annoying horizontal scroll bars. You can fix this in css by using the "!important" tag. Thanks to Telerik support for this fix:
.rcbScroll
{
overflow-y: auto;
overflow-x: hidden !important;
}
Tom Hundley
Elegant Software Solutions, LLC
Reference:
http://www.telerik.com/community/forums/aspnet-ajax/combobox/horizontal-scroll-problem.aspx
|
By Tom Hundley on
12/16/2008 9:55 PM
You may or may not know that you can't used host headers with SSL certificates. Without getting into the details, the basic reason for this is that the host headers are embedded in the HTML header, which is encrypted with SSL, and thus IIS can't open the header to get the host header information. Therefore, instead of using host headers for 443, you simply use IP address. This is fine, but if you have 100 sites to encrypt, you would need to have 100 IP addresses. Well, actually, this WAS fine until ICAN started cracking down on the number of public IP addresses you could have.
So how do you get around having multiple IP addresses? Well, if you are a hosting provider, you'll end up enjoying the $2K - $100K SSL hardware accelerators you can buy. They're actually pretty cool. But if you're not a hosting provider and you're a simply company trying to secure web pages on multiple subdomains such as www.something.com, customers.something.com, and freakydeak.something.com, the answer is to purchase a wildcard certificate and assign it to *.something.com. Super! But you might notice as you start to implement your solutions, the host header problem is still there. Grr. Well, don't fret- there is a solution. You can modify the IIS6 metabase, but since its almost 2009, I'm just going to talk about Windows Server 2008 and IIS 7.
...
Read More »
|
By Thomas Hundley on
12/13/2008 12:58 PM
SQL: Guids v Integers
I have heard many debates about using integers v unique identifiers as primary keys. When asked my opinion, as a consultant, the only correct as answer is this: “it depends”. There is no right or wrong answer and each situation must be examined on its own merits. I will state, however, that most people don’t have thorough enough knowledge of SQL to understand the implications of using guids as primary keys, so their arguments quickly lose validity. The concepts are really quite simple.
Let’s start with discussing the difference between a primary key and a clustered index. When a primary key is created on SQL server, it is created as the clustered index by default. The clustered index is simply the physical sorting of the data. Many people don’t realize that the clustered index may be changed and it does not have to be the primary key. This affects index fragmentation and is directly related to the fill factor of the data pages. Fill factor is simply the percentage of each page...
Read More »
|
By Tom Hundley on
11/8/2008 3:59 PM
After installing SP1 for Visual Studio 2008 Team Suite, the functionality of Database Edition (data and schema compare) surprisngly doesn't work with SQL Server 2008. Here is the fix:
http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en#filelist
Tom Hundley
Elegant Software Solutions
|
By Tom Hundley on
11/7/2008 9:38 PM
If you need to remove a column from a Telerik RadGrid at runtime, subscribe to the grid's DataBound event, find the column by its unique name, and set its display property to false. This is the correct way to do this without breaking the filter functionality. For a long time I was subscribing to the grid's ItemDataBound event and hiding each dataitem for the column- only now did I realize that the filter was broken by doing it that way.
Example
protected void rgPartDispositionHistory_DataBound(object sender, EventArgs e)
{
rgPartDispositionHistory.MasterTableView.Columns.FindByUniqueName("PeopleSoftId").Display = isTwtc;
}
Tom Hundley
Elegant Software Solutions
|
By Tom Hundley on
9/2/2008 11:15 AM
The "out of the box" password complexity requirements for the ASP.Net Membership system is this:
7 characters minimum
1 symbol character
A client asked for a more complex password (a common request):
8 characters minimum
at least 1 number
at least 1 lower case
at least 1 upper case
at least 1 symbol character
I tested a lot of regular expressions and most of them didn't work. I finally found one that works well:
^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).*$
Simply set the "passwordStrengthRegularExpression" attribute of the provider section in the web.confg to this regular expression and badda bing, you're good to go. See this link for a list of all the attributes in the config.
You might want to seriously look into using the Password Strength Ajax Extender available from the Ajax Toolkit. It's really nice and goes a long way to solving your users' password complexity woes. It's simply to use and you can implement...
Read More »
|
By Tom Hundley on
8/26/2008 11:08 AM
I've been asked why I have so many more blogs on Server Operations topics than I do development and coding topics when Elegant Software Solutions is fundamentally a software development shop. That's actually a good question.
For now, I'm using the blog to record issues that I run into and the answer isn't immediately obvious to me. It's sort of my own knowledge base / repository and I blog the issues hoping to help other people. I don't have as many of those stumping points with code as I'm just burning through development busy work right now, so I have less issues to write about.
This will change eventually. When my schedule slows down and bit and I'm not working 80 hours a week, I'll have more time to research some of the more bleeding edge technologies and I'll start to blog about my trials and tribulations in that arena. For example, I'd love to have some time to play around with LINQ and SQLMetal and write a nice article on how the two technologies compare to .NetTiers. I haven't even...
Read More »
|
By Tom Hundley on
8/26/2008 10:51 AM
Often times you'll want an external application server to be able to relay external email through your Exchange server. For example, in my setup, my DNN servers hosted in my data center use the Exchange 2007 server on my local network as their SMTP server.
You obviously need to be careful about configuring your server to be an open relay. Configuring this correctly with Exchange 2007 is easy.
Create a new Receive Connector
Chose Custom as the intended use
Specify your Local Network settings and FQND to respond to requests. The default setting to use all available IPv4 addresses for the local IP addresses is normally fine.
***This is the most important Step***. REMOVE the default entry of 0.0.0.0-255.255.255.255 in the Remote Network Settings. Failure to do this will result in your server being an Open Relay and you'll quickly find yourself blacklisted, and that's a huge can of worms you do not want to deal with.
Add the IP address(es) of your Remote Server.
After...
Read More »
|
By Tom Hundley on
8/17/2008 11:17 PM
I had every intention of detailing my troubles getting Exchange 2007 setup with Server 2008 and ISA 2006. I was so frustrated by the end of the process and so relieved when I finally got everything to work, I stopped thinking about it and forgot to post my experiences.
I wanted to log this one piece of information because it was the hardest thing to troubleshoot and I couldn't have done it without finding some needle in the haystack posts.
Problem:
Once I finally got most of the functionality working, the last piece I was stuck on was getting Outlook Anywhere to connect to the Directory services. The Mail connection would work fine, but not the Directory connections, so when would get a failure when connecting to things like Contacts, Tasks, etc.
Solution:
It turns out that it was a bug in the TCP/IP 6 drivers on Server 2008. If you disable TCP/IP 6, everything started worked perfectly. It's possible that this has been fixed by now, and if not, one would imagine that it definitely would...
Read More »
|
By Tom Hundley on
8/17/2008 11:06 PM
Problem:
Total Care Websites is hosting email for several companies and I needed to figure out how to create the same distro name for difference domains.
Easy Solution:
The Display Name and Alias need to be unqiue, but the SMTP addresses don't have to be the same as the alias. The default EAP does this so it's easy to think that the SMTP needs to be the alias... You can control this with the email address policies, but the bottom line is this:
If you need to have two distros:
sales@companyA.com
sales@companyB.com
Simply create two Distribution groups called:
CompanyASales
CompanyBSales
Then modify the SMTP addresses and add sales@comanyA.com to the first and sales@companyB.com to the second.
Like I said, with some EAP tweaking you can create the policies to that you don't need to manually change the SMTP address. You'll also want to create some Address Lists and Offline Address Books for each company as well so the users in each company don't see the other contacts......
Read More »
|