The Problem Solver

Tell me and I will forget
Show me and I will remember
Involve me and I will understand
- Confucius -

Google Ads

This Blog

Syndication

Search

Tags

News





  • View Maurice De Beijer's profile on LinkedIn

Community

Email Notifications

Explore

Archives

July 2006 - Posts

Shyam Pather, development lead on the ADO.NET team, has put together two interesting web casts about the future of ADO.NET and its relation to LINQ.
 
They are recommended watching ff you are interested in the future of ADO.NET.
 
 
Maurice de Beijer
Posted by Maurice | with no comments
Filed under: ,
One of the common misconceptions is that SQL Server 2005 Reporting Services is a free product. Not really surprising maybe because Reporting Services is part of SQL Server 2005 Express Edition with Advanced Services. Now that version is free bit that doesn't mean the Reporting Services is completely free product, just that one of its SKU's is free.
 
Reporting Services has a number of different features and, just like the different versions of SQL Server have different options, depending on the version you can do more or less with it.
 
The free version has quite a few limitations as compared to the more complete, and expensive, versions. Amongst the most important are the fact that the Express version of Reporting Services only allows for reporting over the data on the local server, no remote connections are allowed. Another few restrictions are the output rendering formats, security and subscriptions.
 
 
Below the complete lost taken from the Microsoft site at http://www.microsoft.com/sql/technologies/reporting/rsfeatures.mspx
 
Report Server
FeatureExpressWorkgroupStandardEnterpriseComments
Data Source(s)
Express  1, 2
Workgroup  1, 2
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
SE and EE support all data sources (OLAP and Relational)
Rendering
Excel, PDF, Image (RGDI, Print), DHTML
Excel, PDF, Image (RGDI, Print), DHTML
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Standard and Enterprise editions support all output formats
Management
Report Manager
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Workgroup, Standard, and Enterprise editions support SQL Server Management Studio and Report Manager
Caching
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
History
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Delivery
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Scheduling
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Extensibility
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Can add/remove renderers, data sources, and delivery
Custom Authentication
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
SharePoint Integration
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Scale-out Report Servers
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Subscription
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Data Driven Subscription
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Role Based Security
Fixed Roles
Fixed Roles
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Standard and Enterprise editions can add roles
Report Builder
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Report Builder Data Sources
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Workgroup 1, 2
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Model Level Security
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Infinite Clickthrough
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
Picture inserted via InfoPath built-in menu will not show up on your blog. Please use the "CSBlogger" toolbar to the left to insert pictures!
 
Reporting Services features are not yet available in SQL Server 2005 Express Edition.
Notes: 1 = Local Server Only; 2 = Relational Only
 
 
 
Maurice de Beijer
Posted by Maurice | 1 comment(s)
Filed under:
Regulazy? WTF might that be?
 
Well I haven't actually tried it yet but it looks like one amazing way to build regular expression without going insane over the syntax. Sure regular expression are extremely powerful but the syntax is straight out of a horror movie and unless you do it a lot you need to lookup even the basic syntax every time, not a pleasant experience.
 
Now Roy Osherove has released a tool that makes it all far easier, just point and click and the designer will generated the required regular expression syntax for the job. Sure looks impressive and promising to me.
 
Take a look at http://tools.osherove.com/Regulazy/tabid/182/Default.aspx for the details and download.
 
 
Maurice de Beijer
Posted by Maurice | with no comments
Filed under:
Recently I have been working with SQL Server 2005 Reporting Services on a WinForms project. Now SQL Server 2005 Reporting Services is a really nice and impressive product and I like it a lot but some things I just don't get. The problem I am having at the moment is with exporting the data. If I use the web service ReportExecutionService classto render the report I get a list of 10 possible render formats when I use the ListRenderingExtensions() function. These are:
  1. XML
  2. NULL
  3. CSV
  4. IMAGE
  5. PDF
  6. RGDI
  7. HTML4.0
  8. HTML3.2
  9. MHTML
  10. EXCEL
 
Great, lots of options. The one I wanted most of all was XML so I can export the data with the same grouping as in the report.
 
Now we also have the WinForm local reporting using an RDLC report instead of an RDL one. Even though the extension is different this is pretty much the same thing with only a few differences. Now using the Microsoft.Reporting.WinForms.LocalReport type ListRenderingExtensions() function I try the same. Now I only get 3 possible render formats:
  1. Excel
  2. IMAGE
  3. PDF

 So what gives, why only 3 different options?
 
In fact taking a quick look, using Reflector, inside Microsoft.ReportViewer.Common.dll shows a few more options that don't show in the list like HTML. No idea why they don’t show up. But the one I want, namely XML, isn't there :-(
 
So why the difference in rendering options between client side and server side reporting? I don't have a clue so if you know please let me know.
 
Maurice de Beijer
Posted by Maurice | 7 comment(s)
Filed under:
One frequent problem in database application is displaying values from a lookup table, for example the description of a customer type instead of the code itself.
 
One easy way to do this is through a DataColumn Expression and a relation between two DataTables.
 
The following code shows a quick and easy way to do this:
Module Module1
    Sub Main()
        Dim ds AsNew DataSet
        Dim dtCustomers AsNew DataTable
        Dim dtLookup AsNew DataTable
 
        ' Create a lookup table
        dtLookup.Columns.Add("Type", GetType(Integer))
        dtLookup.Columns.Add("Description", GetType(String))
        dtLookup.Rows.Add(NewObject() {1, "Een"})
        dtLookup.Rows.Add(NewObject() {2, "Twee"})
 
        ' Create a customers tab;e
        dtCustomers.Columns.Add("Name", GetType(String))
        dtCustomers.Columns.Add("Type", GetType(Integer))
        dtCustomers.Rows.Add(NewObject() {"Customer 1 A", 1})
        dtCustomers.Rows.Add(NewObject() {"Customer 1 B", 1})
        dtCustomers.Rows.Add(NewObject() {"Customer 2 A", 2})
        dtCustomers.Rows.Add(NewObject() {"Customer 2 B", 2})
        dtCustomers.Rows.Add(NewObject() {"Customer 1 C", 1})
 
        ds.Tables.Add(dtCustomers)
        ds.Tables.Add(dtLookup)
 
        ' And create the lookup column
        ds.Relations.Add("Rel1", dtLookup.Columns("Type"), dtCustomers.Columns("Type"))
        dtCustomers.Columns.Add("Description", GetType(String), "Parent(Rel1).Description")
 
        ForEach row As DataRow In dtCustomers.Rows
            Console.WriteLine("Naam: {0}, Soort: {1} = {2}", row("Name"), row("Type"), row("Description"))
        Next
 
        Console.ReadKey()
    EndSub
EndModule
 
 
The two lines that matter are:
ds.Relations.Add("Rel1", dtLookup.Columns("Type"), dtCustomers.Columns("Type"))
dtCustomers.Columns.Add("Description", GetType(String), "Parent(Rel1).Description")
 
The first relates the two tables and the second creates a calculated column using the expression.
 
Enjoy!
 
Maurice de Beijer
Posted by Maurice | 1 comment(s)
Filed under:
Bill McCarthy has just released the Exception helper 2.0 addin for Visual Studio 2005. The Exception helper is a great little addin that check for all possible exceptions that a piece of code, including all code that is called, can throw and add the relevant Catch handler.
 
A very useful and recommended addin. Download it from: http://workspaces.gotdotnet.com/project42 or watch a quick demo at: http://www.totalenviro.com/demo/exceptionhelper/exceptionhelper.html
 
 
Maurice de Beijer
Posted by Maurice | with no comments
Filed under:
Recently Steve Lasker put together a few demonstration videos to show what SQL Server Everywhere is all about.
 
 
Enjoy!
 
Maurice de Beijer
Posted by Maurice | with no comments
Filed under:
I almost to forget to plug my own article in my own blog :-( But here it is :-)
 
A lot of articles have been written about database concurrency conflict detection and the various ways of handling them. Unfortunately most of these articles, and accompanying solutions, have one major flaw in that they focus on the technical issues and database implementation instead of real-world data and how people use the data. In this article, I will try to show the difference between focusing on the database implementation and on the real-world data. I will show some possible approaches on how to solve these concurrency issues.
Maurice de Beijer
Posted by Maurice | with no comments
Filed under:
If you are in the planning stages for a new .NET project I strongly suggest taking a look at Windows Workflow Foundation. Of course it isn't released quite yet but it's in beta 2 so anything out there isn't going to change a whole lot.
 
So why is Windows Workflow Foundation so interesting? Well most applications I work on, and I suspect the same is true for pretty much every other database application, contains workflows. Sometimes these workflows are only implemented through work practices and not really enforced in code. Most of the time however these workflows are implemented in the application code, so far nothing special. Now Windows Workflow Foundation changes things a bit. Previously both the workflow and the implementation of rules and activities would be developed in the same language making it hard to distinguish the flow from the implementation. Not anymore :-) The Windows Workflow Foundation designer gives a clear overview of the workflow without bothering you with the implementation details. On the same accord, you can now look at the implementation of a single action without being swamped by the complete workflow implementation.
 
And best of all, the workflow can be updated at runtime allowing for far greater flexibility. In fact you can even include the designer in your application.
 
To get started go to http://wf.netfx3.com where you can find the download for Release Candidate 2 as well as a load of samples and documentation.
 
Maurice de Beijer
Posted by Maurice | 1 comment(s)
Filed under: ,
Developing VSTO applications can be fun and certainly very productive. But just like all other software development it isn't without its own share of problems.
 
To help solve some of these problems Microsoft PSS has released the VSTO 2005 Client TroubleShooter tool. Maybe not guaranteed to solve all your VSTO problems but another tool that gives you some more information.
 
 
 
 
Maurice de Beijer
Posted by Maurice | with no comments
Filed under:
I am happy that Microsoft had decided to award me with another year as an MVP :-)
 
So much to do and so little time but enjoying every minute of it!
Maurice de Beijer
Posted by Maurice | with no comments
Filed under: