Tuesday, November 29, 2005

Empty Address Lines - MSDN

Empty Address Lines - MSDN: "I have not tried this but you can try using a formula for the LINE HEIGHT property of the the address lines - Under Properties/Format

=iif(Fields!AddressLine2.Value= '','0pt','9pt')

This hopeful will set it's line height to 0 if its empty OR 9pts if not."

Monday, November 21, 2005

Thursday, November 17, 2005

Troubleshooting ASP.NET using Filemon

Link

Wednesday, November 16, 2005

Bob's SQL Reporting Services Blog

Link
How to create an inline bar chart

Here's a neat trick a co-worker and I discovered this afternoon for creating an inline bar chart (an inline data visualization in a table or other data region).

1. Add an embedded image to your report that will serve as the "bar" (a simple horizontal gradient usually looks nice)

2. Add a column to your table, and place an Image report item in the detail row cell.

3. Select the embedded image from step 1 as the source for the Image report item.

4. Set the padding on the Image report item to adjust the size and position of the bar within the cell

5. [Here's the kicker] Create an expression for the right (or left) padding that divides a field value by some maximum value, clamps it to a given range if necessary using Math.Min/Max, and then multiplies by the total size of the bar.

Example: image1.Padding.Right=((1.0-(Math.Min(Math.Max(Fields!TotalSales.Value,0),100000)/100000))*72) & "pt"">Bob's SQL Reporting Services Blog: "How to create an inline bar chart

Here's a neat trick a co-worker and I discovered this afternoon for creating an inline bar chart (an inline data visualization in a table or other data region).

1. Add an embedded image to your report that will serve as the 'bar' (a simple horizontal gradient usually looks nice)

2. Add a column to your table, and place an Image report item in the detail row cell.

3. Select the embedded image from step 1 as the source for the Image report item.

4. Set the padding on the Image report item to adjust the size and position of the bar within the cell

5. [Here's the kicker] Create an expression for the right (or left) padding that divides a field value by some maximum value, clamps it to a given range if necessary using Math.Min/Max, and then multiplies by the total size of the bar.

Example: image1.Padding.Right=((1.0-(Math.Min(Math.Max(Fields!TotalSales.Value,0),100000)/100000))*72) & 'pt'"

Friday, November 11, 2005

Production Debugging for .NET Framework Applications

Production Debugging for .NET Framework Applications

Debugging Memory problems

Writing High-Performance Managed Applications : A Primer

.NET General

Writing High-Performance Managed Applications : A Primer


Gregor Noriskin
Microsoft CLR Performance Team

June 2003

Applies to:
Microsoft� .NET Framework

Summary: Learn about the .NET Framework's Common Language Runtime from a performance perspective. Learn how to identify managed code performance best practices and how to measure the performance of your managed application. (19 printed pages)

Web Test Tools

Web Site Test Tools and Site Management Tools
More than 290 tools listed in 12 categories

Building managed code using Common Language Runtime (CLR) Integration in SQL Server 2005 - The Code Project - C

using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;

public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void sp_GetEmployeeInfo()
{
SqlConnection connection =
new SqlConnection("context connection=true");
try
{
connection.Open();
SqlCommand sqlCommand =
new SqlCommand("SELECT EMPID,EMAIL FROM EMPLOYEE",
connection);
SqlDataReader sqlReader = sqlCommand.ExecuteReader();
SqlContext.Pipe.Send(sqlReader);
}
catch(Exception ex)
{
throw ex;
}
finally
{
if (connection != null)
connection.Close();
}

}
};

Visual C - Linq

101 LinqSamples

MSDN .NET Framework Developer Center: The LINQ Project

MSDN .NET Framework Developer Center: The LINQ Project: "The LINQ Project

The LINQ Project is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities."

GotDotNet User Sample: Building managed code using Common Language Runtime (CLR) Integration in SQL Server 2005

GotDotNet User Sample: Building managed code using Common Language Runtime (CLR) Integration in SQL Server 2005

Michael Rys : The light at the end of the tunnel is bright sunshine!

Michael Rys : The light at the end of the tunnel is bright sunshine!: "Enterprise Readiness:

* Multi-platform support: X32, X64 (WoW and native), IA64 Native, Numa Aware
* Multi-instance support with 7.0, 2000 and of course 2005
* Mobile, Tablet, Express (free), Workgroup, Standard and Enterprise ? If we don?t have it, you don?t need it?
* Table Partitioning ? partition by key easily ? drop a partition and add a new one, no need to delete millions of rows
* Upgrade Advisor ? (scan your existing 7.0 and 2000 servers and SP?s and get ready for an easy upgrade)
* SQL Server Management Studio ? built in the VS IDE and able to manage all services from one UI
* Enhanced Full Text Search ? Integrated backup/restore, thesaurus support, 100x faster for index build
* ONLINE: index build, page/file restore, concurrent log and db backup, memory add, fast recovery (online during rollback) ? all operations on-line?
* Column level encryption
* Off-by-default ? reduced attack space
* Code signing
* Vastly improved diagnostics ? Watson dumps allow us to fix 80% of customer issues ? NO CUSTOMER REPRO -, Dedicated admin thread, Dynamic Management"

Don Kiely's Technical Blatherings : SQL Server 2005: Foundation of Service-Oriented Data Architecture

Link

The original paper is by Microsoft?s David Campbell, ?Service Oriented Database Architecture: App Server-Lite?," which he presented at the 2005 ACM SIGMOD International Conference on Management of Data and is a part of its Proceedings. The basic idea of the paper is that a database engine is a logical place to implement features that allow it to function as a full-fledge service program in an application based on SOA. There are three major functions that a service program has to implement to fulfill such a role:

* It has to support Web services (and other types of endpoints, but this is the most important and most common) so that it can process request and response messages with other components in the system.
* It needs the ability to process service requests, meaning that it has to be able to read and parse messages, which are most commonly XML. It also has to participate in complex dialogs and conversations, in the terminology of SOA.
* It has to host service logic, the ability to implement complex business logic.

This isn?t an exhaustive list by any means, of course, but provides the foundation for a database in an SOA environment, what Microsoft is calling a Service-Oriented Data Architecture. It turns out that this is a fascinating way to look at databases in distributed applications, and I had a good time exploring the possibilities in my whitepaper. It finally made sense why Microsoft put so much effort into implementing some of the features in SQL Server 2005, such as:

* Native Web Service Access. Combined with Windows Server 2003?s kernel mode http.sys driver that eliminates the need for IIS as a middleperson, SQL Server has a very efficient way to receive and send SOA messages.
* Service Broker, the new transactional middleware that supports massively scalable services. This is the best example of the synergy of implementing such a feature in SQL Server itself?and the database engine?rather than merely integrating with other technologies such as Microsoft?s own MSMQ. After all, messages are ?interesting data.?
* Notification Services, the SQL Server name for what other platforms call database change notifications. Unlike client-server and n-tier applications that use a highly centralized data store, SOA applications are likely to have data all over the place, some of which is cached from various sources. Those caches need an efficient way of knowing when to refresh themselves, and notifications provide that way. Notification Services isn?t just for sending messages to a PDA anymore, and I?m intrigued by the possibilities.
* SQLCLR, the linchpin that makes it all possible. To be a viable service program requires complex business logic, and T-SQL, extended stored procedures, and OLE automation (COM) just don?t cut the mustard. Hosting the .NET Common Language Runtime in SQL Server is simply a stroke of genius.

Tuesday, November 08, 2005

Sara Ford's WebLog : How to recursively copy files using the Task in MSBuild

Sara Ford's WebLog : How to recursively copy files using the Task in MSBuild: "posted on Tuesday, November 08, 2005 10:21 AM by saraford
How to recursively copy files using the Task in MSBuild

From the MSBuild Team Blog...

Have you ever run into a situation where you had to recursively copy files from one folder into another as a part of your build process? We certainly have run into it a few times, and I thought I'd share with you a neat trick that involves the use of metadata and the Copy task.

Before you can copy a set of files, you need to be able to recursively add those files to an item list. Here's how you do that when declaring items.





The ** wildcard is used in item includes to indicate recursive includes.

So, once you have an item declared as such, you can rely on a piece of standard meta-data that goes with all items (i.e. RecursiveDir) to accomplish your recursive copy. The RecursiveDir metadata when used will return the evaluated value of the ** metadata for each item - and you can use that value to preserve the folder structure for each file when performing the copy. Here's how you invoke the task using this piece of metadata to copy recursively.

Differences between Visual Studio 2005 Standard and Professional Editions

Link



With the whoops I mentioned here comes the discussion of exactly what is the difference between the two version of the Visual Studio 2005 (standard and professional). First of all, here are the differences that Microsoft has made public in their feature chart. Before you spent too much time with the scorecard, let me summarize the major differences:

Standard:

* User Experience: Streamlined
* Deployment Tools: Click Once
* Extensibility: Consume Extensions
* Reporting: SQL Server Reporting Services
* Debugging: Local
* 64-bit CPU support, Server Explorer, SQL Server 2005 integration: No

Professional:

* User Experience: Full
* Deployment Tools: Yes
* Extensibility: Full
* Reporting: SQL Server Reporting Services and Crystal Reports
* Debugging: Local and remote
* 64-bit CPU support, Server Explorer, SQL Server 2005 integration: Yes

Most of the differences are fairly straightforward. That leaves the question between deployment tools, extensibility, and "user experience". Here is what I know on the first two.

“Consume Extensions“ means the you can use an existing Visual Studio Add-in. All, on that note, means there is IDE support for creating new Add-ins. Fair enough.

“Deployment, One-Click” means there is a mechanism to deploy a product through the IDE, but not create setup projects that produce a .MSI file.

So, what about user experience? There has been some talk here, here, and here about what it means, but it all is fairly vague. I do not have a clear-cut answer but I have a theory:

I was at a presentation earlier this year where the presenter was typing code. It looked like the presenter was using Resharper at a user group presentation! I was told that was not the case, but an extra set of new features built into the IDE. Maybe the folks at Microsoft sent the Resharper folks a nice check and incorporated that technology into the Professional Edition (and above)! That would mean

For standard, User Experience: Streamlined == Intellisense

For professional, User Experienced: Full == Intellisense + Resharper-like functionality

Again, just my theory. But thanks are in order to Geoff Snowman who provided me with a lot of this information and continues to check out our future “experiences“.

One thing is for certain, the Standard edition of Visual Studio 2005 is no wimp. In the past, Standard editions were basically a compiler + a text editor slightly better than notepad. Such is not the case. For learning, hobbyists, or those needing a bit more than the Express versions offer, it appears to be sized just right.

However, for those of us who continue to make a living in the .NET world, its the Professional version and above.

Edit: Just received this note indirectly from Prashant Sridharan, the Visual Studio Project Manager:

Standard is basically the union of the Express SKUs with mobile and remote data support added. It doesn't have support for remote debugging or server-side development, it doesn't have SQLCLR support, and it doesn't have the deeper data tools in Pro.

Friday, November 04, 2005

Office Developer Center: Redesigning an Excel VBA Solution for .NET Using Visual Studio 2005 Tools for Office

Link

Summary: Learn about redesigning an Excel VBA solution to take full advantage of Visual Studio 2005 Tools for Office and the .NET Framework. This article looks at the rearchitecture of the Trey Research Internet Information Services (IIS) Log Analyzer solution. (22 printed pages)