Reporting Services Projects in VS 2010


UPDATE (5/10/2012)  This has been solved! (Albeit two years later) Go download SQL Server 2012 Data Tools!

So, you’re migrating to Visual Studio 2010 and you want to open your reporting services projects… Not going to happen!! According to the SQL Server development team, they have heard the suggestion and resolved not to add that feature.  So, if heaven forbid, you have a solution that has a reporting services project in it and another type; you will be switching between VS 2008 and VS 2010.  The problem stems from the fact that Business Intelligence Development Studio (BIDS) is implemented by the SQL Server team and Visual Studio is in the Developer Tools department.  Apparently they don’t talk and the SQL Server team releases BIDS when they feel like and on the version of Visual Studio they feel like.

Maybe they need to change the system?

Outline of MSDN Application Lifecycle Management Library for Visual Studio 2010


The navigation of MSDN is very bad currently and I get easily lost in all the content.  But the content is great!  So I’ve created a cheat sheet for myself that you might find handy too.  It is a four level deep outline of all the MSDN content under “Development Tools and Languages”->”Visual Studio 2010″->”Visual Studio Application Lifecycle Management”.  The table of contents is two levels deep and the actual document goes four levels deep.  Hope this helps!

MSDN Library – Visual Studio 2010 – ALM – 4 Level Deep Outline

Creating an 2010 Team Foundation Server instance in the cloud


As a TFS consultant, I need to know everything there is to know about the product.  I really didn’t want to spend $1,000+ on hardware to have it running all the time, so I looked into using Amazon Web Services.  I had a little trepidation because I really didn’t know how much money it was going to cost me, but I figured “what the heck” and gave it a try.  Here are my results or more specifically my first month’s bill:

Amazon Elastic Compute Cloud

US East (Northern Virginia) Region
Amazon EC2 running Windows
$0.12 per Small Windows Instance (m1.small) instance-hour (or partial hour) 1 Hrs 0.12
$0.48 per Large Windows Instance (m1.large) instance-hour (or partial hour) 16 Hrs 7.68
Amazon EC2 EBS
$0.10 per GB-month of provisioned storage 18.569 GB-Mo 1.86
$0.10 per 1 million I/O requests 5,159,946 IOs 0.52

This comes out to $10.18, which really isn’t that bad.  I tried the small instance first, but it didn’t have enough RAM, so I went with the more costly Large Instance.  This was plenty of firepower.  As I recall, it had about 6 GB of RAM and multiple cores.  I put SharePoint 2010, TFS 2010, SQL Server 2008 R2 on it and everything ran smoothly.  I am thinking of bundling the Amazon Machine Instance (AMI) to make it easier for others to get started.  Please contact me or leave a comment if you’re interested.

What is Microsoft SharePoint Server 2010?


As a software engineer, when I define a new piece of software I like to start with a list of features and then drill down into requirements.  Microsoft starts with “capabilities” and then drills down into features.  So let’s go through the capabilities first:

  • Sites: SharePoint 2010 Sites provides a single infrastructure for all your business Web sites. Share documents with colleagues, manage projects with partners, and publish information to customers.
  • Composites: SharePoint 2010 Composites offers tools and components for creating do-it-yourself business solutions. Build no-code solutions to rapidly respond to business needs.
  • Insights: SharePoint 2010 Insights gives everyone access to the information in databases, reports, and business applications. Help people locate the information they need to make good decisions.
  • Communities: SharePoint 2010 Communities delivers great collaboration tools—and a single platform to manage them. Make it easy for people to share ideas and work together the way they want.
  • Content: SharePoint 2010 Content makes content management easy. Set up compliance measures ”behind the scenes”—with features like document types, retention polices, and automatic content sorting—and then let people work naturally in Microsoft Office.
  • Search: SharePoint 2010 Search cuts through the clutter. A unique combination of relevance, refinement, and social cues helps people find the information and contacts they need to get their jobs done.

Let us top this off with the nice Microsoft graphic 🙂

SharePoint 2010 Capabilities PieOkay, now we’re ready for some features.  You may be asking yourself, “Why do I care how Microsoft organizes features?”.  Because, that is how all of Microsoft views the product!!!  This will help you so much in navigating MSDN, TechNet, and all the other wonderful MS resources out there.  Plus, I don’t have proof, but this is most likely how the original team that developed SharePoint 2010 envisioned the product.  Finally, when talking to a customer you need to map their requirements to SharePoint features.

Features by Capability

  • Sites
    • Out-of-the-Box Web Parts
    • SharePoint Health Analyzer
    • SharePoint Ribbon
    • Visual Upgrade
    • Web Parts
  • Composites
    • Access Services: Publish Access databases in SharePoint.
    • Business Connectivity Services (formerly Business Data Catalog)
    • Silverlight Web Part
  • Insights
    • Dashboards
    • Decomposition Tree: Perform root cause analyses using powerful analytics to examine core data. View only the most pertinent information using the new Decomposition Tree.
  • Communities
    • My Profile: Learn more about your colleagues with Profile pages. The My Profile page contains information about employees, including biographies, job titles, location, contact information, interests and skills, and previous projects.
    • Tags: Classify and organize large amounts of information in your company by applying tags. Use standardized taxonomy tags defined by the organization and informal social tags defined by employees.
  • Content
    • Compliance Everywhere: Manage versions, apply retention schedules, declare records, and place legal holds, whether you’re dealing with traditional content, Web content, or social content.
    • Document Sets: Create a Document Set to manage related content as a single entity, speeding up common processes like RFP responses.
  • Search
    • Metadata-driven Refinement
    • People and Expertise Search

You can get more info on features here.

This is, of course, not the whole story; so I’ll be adding to this post as time goes on.

MSF for CMMI Process Improvement 5 – Process Guidance in Word format


Well people loved the MSF for Agile Word doc that I posted so much, I thought I’d go ahead and post my Word doc of the CMMI process also.

I think the CMMI process gets a bad wrap because, well, it has the CMMI name in it. CMMI has become synomous with heavyweight, formal processes that developers hate, but this process is still iterative and lightweight. Plus it provides you with rich Work Items such as Change Requests (an almost necessary evil). So give it a go too, you never know… it might fit better than the Agile template!
MSF for CMMI Process Improvement v5 – Process Guidance

Updated it on 12/13/2010

MSF for CMMI Process Improvement v5 – Process Guidance

Is Software Art?


I was reading Architecture by Sir Thomas Graham Jackson tonight to see if and where the parallels between real Architecture and Software Architecture are.  I was struck by the amount of art that is imbued and intertwined with Architecture.  As he says:

So two workmen will do the same thing, but will do it in a different way.  The work of both may be useful and serviceable, but that of one will show thought and imagination, suggestive of further progress; that of the other will be correct, but dull and commonplace, leading no further.  The one man is an artist, the other a mere mechanic.

Am I a mechanic or an artist?  I consider myself a Software Architect, but that would mean I’m an artist.

Where is the art in software?

Where is the beauty in software?

Is it from the graphic designers? NO.  They are like interior decorators in my opinion.  They make our buildings look nice to the inhabitant.  We make the structure.

I can tell you where the beauty in software is:

  • TCP/IP
  • The World Wide Web

We have something called elegance in software.  There are elegant solutions and brutish solutions.  I propose the elegant ones are where our craft becomes architecture.  Something sustainable, something that will stand the test of time.  Something to be copied.  That is what Software Architecture is.

Exceptions


What are your best practices when it comes to exceptions?

Do you always log them?

In the past, I have stuck with the advice of Joshua Bloch.  Exceptions are for exceptional situations.  It is Item 39 in his great work Effective Java: Programming Language Guide. If it’s not exceptional and you expect the condition to happen sometimes; use an if.. else block.

Also, stick to the out-of-the-box exceptions as much as possible and create your own exceptions only when you need to.

Exceptions are a great way to communicate the contract of a method if you’re writing an API or client library.  But if you’re writing a code in a small team, does it really help to throw exceptions all over the place?

I think it does in certain situations.  For example, if your team is writing a layered architecture app; then each layer would benefit from throwing exceptions to the layer above it that depends on it.  Within the layer I don’t think it buys you much.  But from the data layer to the business logic layer and then to the presentation layer; a lot of meaning can be translated through exceptions.  Plus, these layers are usually written by different people and in parallel.  Exceptions help the other developers know what to expect from the methods they call in these lower layers.

Please comment with your exception best practices!