An exploration of the joys and frustrations when programming with Microsoft .NET. Taken with the perspective of working in a faith-based ministry, striving to release children from poverty in Jesus' name.

What’s a Solutions Architect?

Posted 5.27.07 in Uncategorized

New and Notable 167: “Jon Flanders and I (Sam Gentile) were talking over dinner last night about back in the day he and I as COM programmers could keep most of our known universe in your head. Today the pace is so furious that you have to keep WCF, WF, .NET Framework, Silverlight, Atlas, BizTalk Server and many others in your head such that a Solution Architect who digests all this stuff and picks the ‘right’ way to go makes a heck of a lot of sense these days.”

(Via CodeBetter.Com.)

Saw this posted last week-ish, and wanted to put in a few cents worth of bytes.

At Compassion, several of the Sr. Software Developers (who really do have a bent towards design and architecture) have been working at a grassroots level to create a Solutions Architect role. We’ve gotten a little traction from management on it, primarily by casting it as an intra-team communication tool.

In our workplace, development is highly focused on the project. Anything that is done is funded through a project, and the project is what moves in new technology. This would be OK (sort of, but that’s another day) if there was an in-place framework, or standards, or infrastructure or something. But there isn’t. We’re trying to define strategy, infrastructure and business value all at the same time, all in the same project.

If that sounds hard, you’re right. The project is focused on time and money. As in, right now for as little as possible. But strategy, infrastructure and framework need to be able to grow, adapt and evolve. We don’t have anyone (let alone a team) that is the owner of the base level stuff. And we see the outcome of that all over the place. Each app is different; different base technology is used, typically based on the whims of either the Sr. Developer or the Architecture Office, depending on who has been to the latest marketing buzz.

We are gradually moving in the right direction. We’ve gotten the overall strategy laid down in the past couple of months. Now it’s a matter of matching appropriate technology to the strategy. For now, that’s SharePoint at the base of it all, but there are some serious questions hanging over parts of that plan.

Where does the Solution Architect come in? They are tasked to take a step back from daily development, and find the big picture that can be lost in day-to-day activities, especially as separate teams work on functionality that could be used by other groups.

It’s hard, but it’s worth it. We will wind up with a consistent framework to build in, something where the basics don’t have to be rebuilt for each project. It’s not going to be easy, but there was never a promise of that.

EntLibContrib Contribution Posted

Posted 5.19.07 in Uncategorized

I just finished the first pass at the SQLite data provider for the Enterprise Library Contrib project, and uploaded it to CodePlex.

I’m curious to see how the project coordination likes it. I may have to refactor a little bit, and I want to make some of the (25) skipped tests pass, but I’m happy with it right now.

NetTiers and SCSF, Part 2

Posted 5.18.07 in Uncategorized

Carrying on from the last post… I was stepping through setting up a virtual machine image to work with, and realized that I forgot to mention one important requirement for all this - a database!

SQL Server Express works great. I grab the version with Reporting Services, but that is more out of habit than anything else. It is much easier in the long run to have the SQL Express Management Studio as well. The installer is available for download in the same location as the SQL Express files. You should also download the AdventureWorks database, to have a convenient starting point.

Database Installation

After downloading the SQL Server Express package, run the installer. Take all the defaults, and it should be a quick install. One thing to watch for: there is an option to make SQL Express the default instance or to create a new instance. As long as you do not have any SQL instances installed, it is easier to make this the default instance.

Next, run the installer for the AdventureWorks database. The installer should detect the Data directory that was just created by SQL Express. Use this location and install the database.

sql_connect_login.png

The database is installed (copied to disk), but is not ready to use yet. To make it ready, open the SQL Management Studio. At the database connection screen, enter (local) for the server name and use Windows Authentication to connect to the database.

Once connected, right-click the Databases folder under the server. Choose “Attach…” from the menu. In the Attach Databases window, click the “Add…” button. A window should open showing the databases in the default data directory. Select the AdventureWorks_Data.mdf database and press OK. Press the OK button on the Attach Databases window, and the database should be successfully set up with the SQL Server instance.

attach_aw.png

Finishing Installation

Just a few more pieces to install, and we’ll be ready to move forward. Find the ZIP files for NUnitForms and RhinoMocks. Extract each one into an easy-to-find location. I put mine in the C:\Tools folder, each in their own subfolder.

Locate the installer file for NUnit. Run the installer, taking all the defaults.

Open the ZIP file for TestDriven.NET and run the installer contained inside it. Take all the defaults.

Finally! Everything is installed and ready to go.

Next time: Setting up a Visual Studio project, and getting everything ready to go.

Introduction: How to use NetTiers in an SCSF Application

Posted 5.13.07 in Uncategorized

I’ve gotten a bit out of practice with NetTiers and the Smart Client Software Factory (SCSF) in the past year, so I think I am going to walk through the use of both NetTiers and the SCSF to build an application.

First, the basics

We need to gather all the various software bits to have them available for using in our application. There are a lot of prerequisites to gather, so I will list them here, with links to download them, and the order to install them.

The Software

First off, Visual Studio 2005 is required. I’ve build apps using SCSF on VS 2005 Professional and the Team System Software Developers editions. I don’t know if it will work on the Express edition or not.

Now, the download parade begins. You will need, not necessarily in this order, the following:

This list satisfies SCSF. For NetTiers, you need the following:

And last, but not least, to make testing easier (and much more fun):

OK, one more optional piece. I’m sure everyone is already using source control (just like we all back up our systems every night, right?), but I love this one:

and the best client I’ve found for Subversion:

For Enterprise Library, I’ve only used version 2.0 with the SCSF. I don’t know of a reason that version 3.0 won’t work, but I’m going to try it along the way. For CodeSmith, the standard edition is all that is required. The Enterprise edition is good if you are going to be developing a lot of your own templates. With NetTiers, you can either download the latest released version, or grab a nightly build. The templates are stable, and the nightly build generally are either adding new features, or providing tweaks to the templates that won’t affect most users.

Installation (required bits)

Alright, now for the fun times. This part is kind of dreary, but you really only have to go through it once, so find a cool beverage, maybe a little something to read, and prepare to exercise your install skills.

  1. Visual Studio. This will be the longest install of the bunch, but it’s likely that it’s already installed on your system, so that’s one freebie.

  2. Install Enterprise Library. You can probably take the defaults from the installer, but make sure to have the libraries actually built for you at the end of the installation.

  3. Install the Composite UI Application Block. Again, take the defaults. This time, you will have to open the Composite UI solution from the Program Menu after installing, and build the CAB assemblies through Visual Studio.

  4. Install GAX and GAT. I never remember which is first. I think it’s GAX, but the installer will tell you if you go backwards. Just take all the defaults.

  5. Install the SCSF. No surprises here; just take the defaults.

  6. Install CodeSmith. You may be asked about installing a Visual Studio add-in. It’s not necessary, but won’t hurt anything if you do install it.

  7. Extract the NetTiers templates. Doesn’t matter where you put them, just remember where it is. I install things like this in C:\Tools, in a subfolder for each tool. So, my NetTiers templates are found in C:\Tools\NetTiers.

Next time: Installation of the fun bits, and getting the development environment set up.

Contribution to EntLib Contrib

Posted 5.11.07 in Uncategorized

Since the Enterprise Library Contrib project opened, I decided that was a good reason to finish creating a data provider for the SQLite database. I had started on this about six months ago, but never really went anywhere with it.

It appears that the code is working. I’ve got 50-some unit tests that are passing (cribbed from the SQL Server and Oracle data provider unit tests). I want to go through a couple more examples of unit tests before I call it good.

I was about to say that this is my first contribution to make, but that’s not really true. I’ve contributed makefile stuff to the Vim project in the past, and helped to get Perl, Ruby and Python compiling into the OS X version of Vim.

I need to check on NetTiers again. I haven’t paid much attention for the past couple of months; they have been adding tons of new stuff. We’re actually using it for the current CSP project, but as I am avoiding actively coding, I haven’t looked at what it’s doing right now. My goal starting the SQLite provider last summer was to add support to NetTiers to generate a provider for SQLite.

← Previous Posts Next Posts →

About

This is a collection of the thoughts and ideas of a software developer and solutions architect with Compassion International. Topics of interest include software architecture, design patterns, software factories, team dynamics and the art of computer programming.

Meet Kenneth Scott

Categories

Therefore, my beloved brothers, be steadfast, immovable, always abounding in the work of the Lord, knowing that in the Lord your labor is not in vain. (1 Corinthians 15:58)

Copyright © 2007 – 2008, Kenneth Scott.