Let's face it, there is a LOT of information available out there on SQL 2005, Visual Studio 2005, Visual Studio Team System, and BizTalk 2006. What I'd like to do, in a series of posts over the next little while, is to take a different approach to discussing the features of these products. I'm sure you'd love to hear how "super excited" I am about them but I have a feeling you'd rather understand the features from the perspective of "how can I make a more powerful product leveraging these Microsoft products so that as an ISV I can make more money!!".
 
On a related note, I created some new post categories (WinFX, Windows Vista/LongHorn Server, and Office12) where I'll do more of the same - try to relate these products and technologies back to how you can leverage them as an ISV in order to build a more powerful product and therefore make more money.
 
Let's kick this off with a bit of a discussion on SQL 2005. Not really getting into the specifics yet, just some high level information that I usually like to talk to ISV's about when we happen to be talking about SQL 2005.
 
"Ya, ya, cut to the chase - what's new in SQL 2005? What do I need to know?"
 
Well, that's a huge topic and is kind of the point of doing a series of posts on SQL 2005. However, I see where you're coming from - the non-marketing elevator pitch or "essence" of SQL 2005… Ok, here's what you need to know:
  • Move beyond using SQL as "just a database" - add punch to your product offering by leveraging built-in features
    • Many of you are drawn to SQL due to all the goodies like high availability, great performance, scalability, penetration in the marketplace etc. However, most ISV's simply store their data in SQL and that's about where it ends. What I'd like to expose you to is along the lines of "hey, you're already storing your data in it, why not do something intelligent with the data" (I almost said "unleash the data" but thought you'd think I was in marketing or something <g>).
  • Repeat after me "Integrate, Analyze, Report"
    • You'll likely see this mentioned in any talk on SQL 2005 as it's something that articulates what you can do with SQL 2005 at a very high level.
      • Integrate
        • SQL 2005 now has an incredibly powerful new tool called SQL Server Integration Services (SSIS). SSIS provides the Extract, Transform, and Load (ETL) services to SQL Server. You can use SSIS in order to integrate data into your product so you position your product to your customers as "lens into their business" to steal a term from the office marketing team.This tool allows you to pull in data from all sorts of diverse locations and all sorts of formats, create simple or very complex data flow operations on that data (graphically!!), and then load that data (typically into a cube which we'll talk about later).
      • Analyze
        • Whether you are wanting to simply analyze the data that's sitting in your plain old SQL relational database, or you are leveraging integration services to pull data in from various sources, you can provide some stellar capabilities to your product, and therefore impress your customers, by using Analysis Services in SQL Server in order to analyze that data. This is a big topic as well but the crux of it is that there's this new thing in SQL 2005 called the Unified Dimensional Model and the beauty of it is that where you would have had to do a whole bunch of god awfully complex and repititive tasks to be able to create a bunch of "cubes" of data, the "U" in UDM is the key. Unified! This mean that you simply create one great big cube that has everything you need in it. This incredibly simplifies the whole process and ultimately makes it more accessible to "the masses". To illustrate this a little more, have you ever seen demos where someone drills into "products" and is able to see product sales by quarter, or by fiscal, then by geography, then by product line, then by time to market etc. etc. This is what Analysis of your data gives you. It used to be extremely complicated SQL 2005 does a great job of letting you leverage this very easily thanks to some nice tools that do a lot of the heavy lifting for you.
      • Report
        • After you've analyzed your data you then need to get this bounty of information into the hands of the business people who need to make decisions based on this information. This is where SQL Reporting Services comes in. If you're dozing off reading this, wake up for this part! ISV's this is the number one area I've seen ISV's gravitate towards. Almost all of you need a way to provide reporting capability in your products. Reporting capabilities are in every edition of SQL 2005 (even the free version which is known as SQL Express). This is a huge benefit to your product and takes a big burden off your development team. What's important to understand about "reporting" is that it's not just about rendering a report and providing some export capability to Excel or PDF. What "Reporting Services" is doing for you is also providing the infrastructure you need to support this such as providing an admininstrative front end so you can configure reports, configure who's allowed to access reports, provide users the ability to subscribe to reports etc.
  • New Data Mining Algorithms
    • In the Enterprise Edition of SQL 2005, there's some Data Mining features you can leverage that you could leverage in your product by creating an Enterprise sort of SKU for your product. In this SKU, you would tell your customers that the standard edition of your product includes incredible data analysis and reporting (delivered through SQL Standard Edition), but if they moved to the Enterprise Edition of your product they will be able to perform what's called "predictive analytics" or "data mining" which will allow them to gather way more information from their data that would've been incredibly labour intensive to figure out. For example, having your product be able to tell your customers which of their clients are the most likely to buy a certain product based data sitting in their database, or maybe forecast trends based on a time algorithm etc. This type of functionality comes thanks to seven new data mining algorithms that are built into SQL Server Enterprise Edition.
  • Key Performance Indicators
    • KPI's are the ability to track certain measures against specified goals. You've likely seen these types of things in various products where the user is presented with a dashboard or report that visually illustrate the current status of the metric relative to the goal. Usually this is done using arrows pointing up or down, or trending up or down, or red/yellow/green flags or lights etc. The point here is that Analysis Services in SQL 2005 allows you to create KPI's based on cubes.
  • SQL Service Broker
    • Essentially, Service Broker adds reliable messaging to SQL Server. Menaing, internal or external processes can send or receive asynchronous messages in a guaranteed fashion all through SQL Server. Service Broker uses queues for this and the queue that you sned your message to could be in the same database, in a different database on the same SQL Server, or on a remote SQL Server instance. Why wouldn't you just do this through something like System.Messaging, or MSMQ, or Indigo? Well, if you have a very data centric scenario it's a nice option to leverage asynchronous reliable messaging right from the database, therefore not having to code a bunch of stuff around the database. It's simply another nice option you have at your disposal.
  • Report Builder
    • SQL 2000 included Reporting Services. However, one of the things it was missing was the ability for business users to use some kind of application to create their own reports. In SQL 2005 there's a tool called Report Builder that is a windows forms application that provides this report building capability.
  • SQL 2005 Express
    • This is a completely free, redistributable database you can deploy with your product. Actually, unlike it's predecessor MSDE, deploy is one of the nice features about SQL Express - it's really easy. In addition, SQL Express even includes reporting capability! It's limited to only being able to report against relational data (because this version doesn't include the Business Intelligence features that are in the server versions), and it can only report on it's own data (whereas the server versions of SQL can report data gathered from various sources such as other SQL databases, Oracle databases etc).
    • Another interesting thing about SQL 2005 Express is that it has very straightforward limitations. Remember, it's a desktop database, not a server database, so it's limitations are things like: only supports 1 CPU, 1 GB of RAM, 4 GB database size etc. Basically, very reasonable.
  • But what about new stuff for developers?
    • There is a LOT of stuff in this area that I'll get into later but to name a few:
      • .NET Framework integration
      • Native XML support
      • XQuery support
      • Security enhancements
      • Lots of new T-SQL enhancements
      • Support for web services
      • Many enhancements to ADO.NET
      • SQL Management Objects which is an incredibly intuitive .NET API that allows you to easily program administrative tasks against SQL Server.
      • Multiple active result sets (MARS) which provides the ability to have more than one pending request per connection
 
Ok, but what about licensing SQL Server with my application?
  • As an ISV, you have the ability to leverage something we offer called "The ISV Royalty Agreement". At it's core, it is basically a means of allowing an ISV to "embedd" a Microsoft product, in this case SQL Server, from a licensing standpoint. Or in other words, it solves the scenario where a customer buys your product, you then tell them it requires SQL Server (or BizTalk, or an MBS product etc.) and tell them to contact a MIcrosfot Reseller. That's painful for the customer from a procurement standpoint, it's painful for you the ISV as it adds complextity to purchasing your product, and ultimately it's painful for us as it would be nice if we made this easier for our customers and ISV partners. So, that's exactly what the ISV Royalty Agreement provides. The ability, from a licensing perspective, to embed many of our products into your solution so your cusomters can simply come to you and purchase the product in its entirety directly from you. A one stop shop type of experience.