New Year’s Resolutions Progress

Posted January 15th, 2007 in .Net, General, rails, ruby by ryan

As part of my New Year’s Resolutions I have decided to read 30 books this year. I know, that’s like 2.5 books a month! The idea came to me when I looked at my programming library (currently at a measly 73 books) and realized that I had read few of them.

I’m the type that will buy a book, read the half I need for the project I’m on and move to the next book. Few books seem exciting enough to actually finish. So I was looking at this wall of books over the holiday break to find where I could get rid of some and thin out some books. Too hard! How can I get rid of them???? They’re full of great knowledge! Wait, how would I know that? I never read the whole thing!

So as it stands, I may be reading 30 books, but it’s more like finishing 30 books. And as the title states, I have finished book one: Programming Ruby: The Pragmatic Programmer’s Guide, 2nd Edition. The “Pickaxe” as it is commonly referred to was a great book to read. I liked it so much, I went looking for books from the same authors. I found The Pragmatic Programmer: From Journeyman to Master and jumped into it. I also have the problem of reading multiple books at the same time, so I’m also reading Agile Web Development with Rails, 2nd Edition, Professional .NET 2.0 Generics, and Don’t Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition. They all seem so good so far, but I’ll keep you posted.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Out Of Touch

Posted December 7th, 2006 in .Net, C#, General by ryan

I have been slacking off in the blogging department lately, but let me fill you in on the last 3 weeks or so.

I taught a class recently in Advanced Crystal Reports XI. It was a great opportunity and a chance to see just how much I really know about Crystal Reports. It’s amazing how many questions can come up. I thought it would feel wierd on the other side of the podium, but it didn’t!

I also had the opportunity to review a paper about Visual Studio Team System (VSTS) that should be public in Q1 2007. It was small role, but it’s a start! I have installed and used VSTS for a few months now, and I do like it. There are some things that are just designed for shops bigger than mine, and so those features go unused. Team Foundation Server (TFS) is yet another great product, but there are small things that do not work directly out of the box (that should!). For instance, creating a new project has to go through the provided wizard. There is no included web service that will create a project for you. Another is time reporting. There is no out of the box time report. You have to write your own custom query to get that data. Maybe Microsoft is just a forward thinker, but my day job still wants to know how many hours a project takes.

At one of my favorite websites, LearnVisualStudio.Net, I have been almost completely absent from the forums. I had made a decision to focus my efforts for a while to concentrate more on my development and get some of my projects off of my plate. The project to write a Text To Speech application for a gentlemen in Wisconsin that had lost the ability to speak was put on hold; he was given a hardware and software package very similar to what Steven Hawking has. The project to work on a social meeting site fell through on communication problems. I was not able to stress the importance of the information I had requested and decided to step away. My last project, a website for an equipment distribution company actually has kept moving and is almost finished.

I have recently decided to become a more well rounded developer and learn something new. I wanted to get away from my comfort zone and break away from the label “Windows Developer”, so I picked up a Ruby book. I had seen some of the hype surrounding Rails and thought that I would give it a try. So far, so good. I’ll keep you posted. My first initial observations are that ASP.Net 2.0 in certain situations can be like taking an elephant gun to go squirrel hunting. I like ASP.Net for writing enterprise apps, but on smaller domains it seems like it could be overkill. It’s times like that where a scripting language becomes very handy. Maybe in the next few years, Microsoft will jump on the bandwagon with a dynamically typed scripting language and framework to compete with everyone else.

I’m also looking into a quick self-sponsored project over the holidays to move hosts from Godaddy to Dreamhost and change my blogging software from Community Server to Typo or Mephisto. Watch for the change!

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

.Net 3.0 Released (Mostly)

Posted November 8th, 2006 in .Net by ryan

Ok…so there was a small buzz yesterday with the release of the .Net Framework version 3.0. The runtime components and Windows Workflow Foundation are final, however the Windows Communication Foundation and Windows Presentation Foundation are labeled CTP November 2006. It seems the announcement is a little early to me, considering the functionality promised in WCF/WPF is still CTP.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Adjusting the default web.config schema for SubSonic

Posted October 20th, 2006 in .Net, Object Relational Mapping by ryan

While working in Visual Studio Team Suite, I ran into a slight problem while using SubSonic. I was using an Application Diagram to model my application and once I had switched to SubSonic (see yesterday’s post), my diagram locked. Visual Studio was nagging on the requirePermission attribute added within the custom config section for SubSonic. The section in the web.config file looks like:

<configSections>  <section name="SubSonicService"  type="SubSonic.SubSonicSection, SubSonic"  allowDefinition="MachineToApplication"  restartOnExternalChanges="true"   requirePermission="false"/>   </configSections>

So I navigated to C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas\DotNetConfig.xsd and added the following line at line 44:

<xs:attribute name="requirePermission" type="boolean_Type" use="optional" />

This solved my problem and Visual Studio unlocked my diagram.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Converting to SubSonic

Posted October 19th, 2006 in .Net, Object Relational Mapping by ryan

In my quest to speed up my development time, I had started looking into ORM type frameworks such as Persistor, NHibernate and Gentle.Net. I had previously chosen Gentle due to it’s price (FREE) and it’s relatively minimal configuration. I have still looked around at new things from time to time, but had pretty much stuck with Gentle. Recently I had started looking at SubSonic. SubSonic is a “Rails” inspired framework that builds a data access layer for you at compile time and places the generated classes into memory. It is a very smooth framework with a low bug count and it is also free and open source. Developed and distributed by Rob Conery, SubSonic has a good support structure in place and a growing community site as well.

Yesterday I was in the middle of working on a web service using ASP.Net 2.0, SQL 2000, and the Gentle.Net framework. I was having trouble trying to execute a simple query with Gentle and was not having a whole lot of luck. I tried going to the Gentle website only to find the server down due to maintenance. Not wanting top stop development, I decided to create a new project using SubSonic instead and just copy any necessary code from the old service to the new one. In about 15 minutes I was able to cover about 1.5 hours of work. I am amazed.

I started by copying the constructor and some of the configuration data from the old project to the new one. After that, I added the SubSonic configuration data, which happens to be a fraction of what was required for Gentle. Next I added the Builder.abp file and hit CTRL + Shift + B. I now had a strongly typed data access layer!

It is amazing how much development effort is reduced to get to the same result when using SubSonic. I’m going to finish evaluating it on this project and possibly start using it a little more often when the situation will allow….

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

C# Attributes

Posted September 1st, 2006 in .Net, C# by ryan

I hadn’t really had the need to use Attributes in C# until I started a recent open source project.  Now that I started using them, I’m finding that they are an extremely valuable tool!  In the project I’m working on, it’s my intent to display a user interface based on metadata from the class and property levels.

Because my work before .Net (before 2003 really) largely consisted of classic ASP ala VBScript, I hadn’t really understood metaprogramming or Reflection.  I didn’t get involved enough in Java development to ever need it either.  After using Reflection in my latest project and over the last 2 years building a few plug-in type systems, I am sold on its value.  On the CodingHorror blog, Jeff Atwood talks about Brad Abrams favorite class in the .Net Framework is String.  Well, I can’t narrow it down to one…in fact, I can’t narrow it down to a class!  So today I’m starting my Top 5 Namespaces in the .Net Framework.  System.Reflection is the first namespace to make the list.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Persistor.Net Object Persistence Framework

Posted June 2nd, 2006 in .Net, C#, Object Relational Mapping by ryan

Introduction

The Persistor.Net object persistence framework is featured in the latest issue of MSDN Magazine. From the official Persistor.Net website, “Persistor.NET is a library that provides transparent persistence for pure object oriented development for the Microsoft™ .NET Platform.” If you don’t know anything about object persistence, think “No T-SQL code”.

I have been interested in object persistence for some time and have briefly reviewed NHibernate and Gentle.Net and I have found them to be both promising and daunting. There is no way around the learning curve to use these frameworks. When I set out to evaluate the Persistor.Net Express Edition, I wanted to see if this product would be easy to use as well as functional. Here is the feature breakdown for you:

  • Pure object oriented modelling without trade-off: Use inheritance, polymorphism and interfaces without any restrictions or special treatment.

  • Database unaware: Persistence provided is completely transparent – no database setup, scheme definition or access specification.

  • Persistence for all classes: Persistence is not restricted to specialized classes but incorporates also .NET Framework classes or 3rd party classes.

  • Zero Configuration: Start without any previous configuration or mapping definition.

  • Ready for .NET Framework 2.0: All new features like generics or partial classes are supported.

  • Supports Agile/eXtreme Techniques: The use of non-intrusive Persistor.NET makes it easy to develop, evolve, and maintain software code in an agile manner.

Initial Review

After a quick download (420 KB) and installation, I opened up the sample application in Visual Studio .Net 2005 and stepped through the project. This gave me the information needed to use the product.

I created a new website in Visual Studio .Net 2005 and added references to ToTop.Datastore.dll and ToTop.Persistor.dll. I borrowed code from the sample on creating a reference to the datastore and persistor objects:

Datastore datastore = datastore.CreateDefault();
if(!datastore.Exists())
datastore.Instantiate();
Persistor persistor = new Persistor(datastore);
persistor.Save(myObject);

I created a simple class with 2 private fields, 2 public properties to expose those fields, and marked the class with the [Serializable] attribute. Within ten minutes of installing the product I had a working example to create, read, update and delete data, without writing a single line of T-SQL. This product was immensely easier to use than any other object persistence framework I had seen to date. On the small scale that I have implemented this, it seems very fast for all it has to do at runtime. I look forward to taking a look at the full version.

Conclusion

This is a fast and simple framework that will attract more developers that need to quickly develop business applications. However, unless the future version has the ability to choose a database server, database name, and user credentials, this product will probably not attract many ASP.Net developers. Most ASP.Net development that includes a database typically uses a stand alone database server and doesn’t combine ASP.Net and SQL on one box. The Express version of the product looks for the Persistor database on the localhost. This is great for Windows client software developers, but sends us ASP.Net developers back to the Open Source arena to provide a solution. Look for a review of the full version in Part II of this post.

Updated 6/7/2006:
I contacted the developers to inquire about the Professional Edition features and pricing. At 990 euros (~$1271 US) for the single developer edition, further evaluation of this product is cost prohibitive. Back to open source :) .

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]
FireStats icon Powered by FireStats