First, let me say I am not a report developer, rather a .NET developer. Intermittently I am brought in to assist with queries and creating complex logic within T-SQL. From the beginning I have thought implementing extremely complex logic within T-SQL stored procedures was a bad approach. I had suggested that to solve our complex queries and data manipulation we would be better suited to use a high level language like vb.NET.
I shot this idea out to our group with warm reception and now want to confirm this is a good idea or that I am not missing some pitfalls with this approach.
The idea, and it isn't a new one obviously would be to replace all of our complex T-SQL stored procedures with .NET web service calls that return XML data.
The advantages of .NET over T-SQL seem to me to be:
1)Quicker delivery time using high level language
2)Much better debugging tools/intellisense
3)Rich classes to assist with string, data manipulation
4)Encapsulation of logic via functions, classes, etc.
5)Much easier to maintain and understand logic
6)Off-load the data processing and manipulation to a cheaper
web server rather than SQL Server taxed with this. SQL just runs simple queries.
7)We have existing .NET code within desktop applications that already build the datasets consumed by Crystal. We could take this existing logic, export the dataset to XML and we have a working Reporting Services version without needing to port the entire logic to T-SQL.
8)Others?
The disadvantages might be:
1)Potentially dynamic sql is passed from .NET to SQL Server so it isn't precompiled with execution plan like a stored procedure would be. However, this seems to be outweighed by the fact that SQL Server is no longer performing the complex processing. Further, many .NET sql calls could still be to parameterized stored procedures.
2)Requires knowing .NET to do report writing and development potentially unless this is separated into two roles. I am frequently brought in on complex tasks anyway so not sure this is too much downside. Furthermore, our report developer wants to learn .NET so this allows him to grow in that area.
3)Others?
Anybody have any suggestions on whether this is a good or bad approach. If so, why? Perhaps there is some other approach that is better.
Just seems terribly difficult to implement many of our queries/processing in T-SQL and even once done, maintenance is a nightmare because of the hoops we jump through usually to get it done. I would 10 times rather write .NET code to accomplish a task rather than T-SQL.
TIA!
J
I shot this idea out to our group with warm reception and now want to confirm this is a good idea or that I am not missing some pitfalls with this approach.
The idea, and it isn't a new one obviously would be to replace all of our complex T-SQL stored procedures with .NET web service calls that return XML data.
The advantages of .NET over T-SQL seem to me to be:
1)Quicker delivery time using high level language
2)Much better debugging tools/intellisense
3)Rich classes to assist with string, data manipulation
4)Encapsulation of logic via functions, classes, etc.
5)Much easier to maintain and understand logic
6)Off-load the data processing and manipulation to a cheaper
web server rather than SQL Server taxed with this. SQL just runs simple queries.
7)We have existing .NET code within desktop applications that already build the datasets consumed by Crystal. We could take this existing logic, export the dataset to XML and we have a working Reporting Services version without needing to port the entire logic to T-SQL.
8)Others?
The disadvantages might be:
1)Potentially dynamic sql is passed from .NET to SQL Server so it isn't precompiled with execution plan like a stored procedure would be. However, this seems to be outweighed by the fact that SQL Server is no longer performing the complex processing. Further, many .NET sql calls could still be to parameterized stored procedures.
2)Requires knowing .NET to do report writing and development potentially unless this is separated into two roles. I am frequently brought in on complex tasks anyway so not sure this is too much downside. Furthermore, our report developer wants to learn .NET so this allows him to grow in that area.
3)Others?
Anybody have any suggestions on whether this is a good or bad approach. If so, why? Perhaps there is some other approach that is better.
Just seems terribly difficult to implement many of our queries/processing in T-SQL and even once done, maintenance is a nightmare because of the hoops we jump through usually to get it done. I would 10 times rather write .NET code to accomplish a task rather than T-SQL.
TIA!
J