NAnt Build Prompter

This is a very basic script that a co-worker named Rabid made for me. I don’t know this syntax but he does for all the group policy stuff we have at work. Basically the way I had it setup to manually do nant builds was I had three seperate .bat files. That did the following:

  • One for copying the build to the staging server
  • One for copying the build to the deployment server
  • One for doing a complete build and then copying to the staging server

It was kind of a pain to have seperate bat files because then I had to run a specific one depending on the build/deployment I wanted. So this is the script that a co-worker came up with:

NAnt Build Prompter

The only thing you have to do is open the bat file, and change the path to nant.exe. The file is setup now with the following folder structure:
– trunk
–lib\nant\nant.exe
– branches
– tags
– clickToBuild.bat
– default.build

You only have to open the file and change the path to nant.exe. Maybe there is an easier way to do this but I haven’t tried it yet. Just thought I would share this as I have found it useful. Up to this point I just had 3 separate bat files. One for each build target. This is all running on my build server that is also running CruiseControl so when I need to update the production server, I log into the build server and kick off the deployment target.

If anyone wants to see the build file I am using let me know. It’s pretty much setup as a template now that I just copy to a new project and then change the variables. I’m sure everyone probably has something similar though.

NAnt Build Prompter

This is a very basic script that a co-worker named Rabid made for me. I don’t know this syntax but he does for all the group policy stuff we have at work. Basically the way I had it setup to manually do nant builds was I had three seperate .bat files. That did the following:

  • One for copying the build to the staging server
  • One for copying the build to the deployment server
  • One for doing a complete build and then copying to the staging server

It was kind of a pain to have seperate bat files because then I had to run a specific one depending on the build/deployment I wanted. So this is the script that a co-worker came up with:

NAnt Build Prompter

The only thing you have to do is open the bat file, and change the path to nant.exe. The file is setup now with the following folder structure:
– trunk
–lib\nant\nant.exe
– branches
– tags
– clickToBuild.bat
– default.build

You only have to open the file and change the path to nant.exe. Maybe there is an easier way to do this but I haven’t tried it yet. Just thought I would share this as I have found it useful. Up to this point I just had 3 separate bat files. One for each build target. This is all running on my build server that is also running CruiseControl so when I need to update the production server, I log into the build server and kick off the deployment target.

Microsoft’s fancy footwork

A couple of days ago Phil made this posting stating that he is going to Seattle to join Microsoft. He mentioned that one of the projects he will be working on is the new ASP.Net MVC framework. I won’t be discussing my thoughts on the MVC framework here, but rather I will be discussing how this relates to the community which I had a very interesting conversation last night with my boss and a co-worker mainly about Apple but it also relates to the development community.

Okay, first of all we can all agree that Microsoft has severely messed up on their implementation and deployment of Windows Vista. Joe Ocampo had a posting describing just this on LosTechies recently. I won’t dive down into detail stating what they messed up on, but from 6 versions of an OS to severely over estimating the market I think it’s pretty obvious that they screwed the pouch on this one.

Apple is obviously the talk of the town at the moment with their iPhone, new iTouch, new iMacs and various other innovations. All of this without yet releasing their new OS, which by the way is coming soon. They aren’t trying to massively hype everyone on Leopard which honestly they shouldn’t be. I don’t think it has that many new features to really hype up that much. Time Machine is cool, so is some new eye candy and various other application improvements but that’s about it. The point here is, with Microsoft’s recent Vista debacle, Apple obviously sees an opportunity to take some massive ground on the market and they should be taking even more advantage of soon. They may not be doing this with the iPhone but seeing how well these phones are doing it will definitely turn people’s heads and get them thinking about Apple more and in turn get people to buy more Apple products.

Linux is also doing quite well specifically with Ubuntu. They have now made it so easy to get up and running with Ubuntu that virtually anyone can do it. Along with the extremely strong community behind them, this is also going to taking some of the market. Perhaps not as much as Apple, but their fair share.

Does any of this “market share” really matter at this point? Not really, I mean Microsoft is worth something like $270 billion at the moment while Apple is at around $50 billion. Immediately, this is no big deal to Microsoft, now 5 years down the road is a different story though.

This brings me to my main point…

The hiring of Open Source gurus and Alpha Geeks by Microsoft lately is quite interesting. What is happening now is that it seems like Microsoft has realized that they have screwed up with Vista and couple that with the fact that all the experienced developers are moving away from ASP.Net tools and going to open source ones like NHibernate, Castle, Spring etc.. they have realized that they have to do something quickly to save their eroding developer market. This is where the recent hires come into play like Scott Hanselman, Phil Haack and Rob Conery among many others.

Now, I don’t want to make it seem like I am downplaying the reasons these developers got hired for a hidden agenda at Microsoft because I am not. The reason that Microsoft hired them is because they are the best of the best AND because they have a very loyal following in the open source arena. Microsoft knows that the open source community will listen to all of these individuals and came to the conclusion of why bother trying to battle open source? Let’s hire the best open source .Net developers and then this will bring the open source developers/alpha geeks back to Microsoft.

In my honest opinion, this was an extremely smart move on Microsoft’s part. After hearing about this I was excited to see this MVC framework from Microsoft. This coming from a person who refuses to even touch the painful ASP.Net Page Lifecycle among other gripes.

Microsoft has definitely played this one very well, at least compared to how Vista turned out. That’s why they are the most powerful software company in the world. They have realized that this was the best thing they can do at this time in the developer market. Invite the best of the open source community inside with open arms and try to understand how the rest of the community would like their software and frameworks to be built.

Now, the final and biggest question… Will Microsoft now try to get these developers to do programming their way, or will these developers induce a very good, and needed change in how Microsoft develops their tools.

I want to congratulate all of these individuals that Microsoft has brought on board. I am very jealous and hope to learn as much as I can from you so that I can hope to be as good of a developer as you gentlemen are!

Cheers!

MonoRail CMS

There is a very good discussion going on the Castle Project Users group. It has to do with building a CMS with MonoRail and/or ActiveRecord.I have just recently completed building a CMS that I am working at the school district. You can see it at http://www.flaglerschools.com. The portal is pretty complex and is very strongly coupled to K-12 education. Basically it has some of the following features:

  •  ActiveDirectory Authentication/Authorization
  • Each Teacher in the district can create a website
  • Schools/Departments can also maintain their websites in the same manner as teachers
  • Role management system to allow multiple users to manage one School/Department website
  • Blogs/Podcasts support for teachers
  • District/School/Department News blogs for showing items relevant to that area of the website

The main goal of this CMS was to be able to focus the mass amounts of information into the district page. Being a school district also brings with it challenges as far as being able to showcase everything that is going on within the school district.In the mentioned thread, goodwill makes a good point that a good tool starts out to solve a problem and then is refactored back to a framework and I think that is the case here. The k-12 portal solves a problem and now with some refining, can be factored back to a higher level framework to be able to plugin to more scenarios easily. Whether it can be refactored to the point of a general CMS is another questions because when development was first started, it’s goal was to provide a CMS for a school district and not a general portal.

I believe this is where it becomes more difficult to be able to create a good CMS. Making a good framework for a CMS is difficult work. Take a look at Umbraco or Mambo. These are two examples of really well developed CMS’s. They have a large following and are open source. Also remember that they have been around for awhile, and as time has progressed they have become easier to use and setup. The only problem with these CMS’s is that once you start to drive down into details it becomes more difficult to tailor to requirements. You could always add the “modules” yourself and voila!

The tricky part is developing a CMS that can adapt well to that change. To be able to make a pluggable framework where you can add new modules the framework needs to be pretty flexible. I haven’t seen alot of CMS’s that have done this well. Maybe a MonoRail framework will be different.Bottom line is, it is time for MonoRail to join the CMS party. I hope that someone starts developing an Open Source one. I would gladly put some time in and contribute some code.

VMWare Fusion with OSX Leopard

Back in June I attended WWDC 2007 and received a copy of Leopard Developer Preview. I’ve been running it on my macbook since then and it is somewhat stable. There are a few problems with text rendering in FireFox and both Safari and Firefox crashing every now and then but not too bad. For the last week I have been testing out VMWare Fusion on Leopard.

Amazingly it is pretty stable. The only real gripe I have is Unity mode. This seems to be the most unstable point of VMWare Fusion on Leopard.

At the moment I am running in Fullscreen mode within VMWare Fusion and the new spaces feature works very well. I can hit F8 to zoom out to see all the spaces and it renders the VMWare desktop just fine. Here are the points in which I found VMWare Fusion most unstable

  • Running in Unity Mode

This seems to be the most unstable of all the modes. In case you don’t know, Fusion offers 3 different modes of running. Single window, Full screen and Unity. Basically what Unity does is make the virtual machine desktop transparent which makes it seem as if the Windows program is running natively within OSX.

  • Waking VMWare session from sleep mode

I’m not sure if this is a VMWare problem or a Leopard problem. Sometimes after putting the laptop in sleep mode and then waking it up, vmware seems to hang. Not every time, just every once in awhile. Out of five times I attempted to do this, it hung twice. Not too bad.

  • Running multiple Applications

This seems to be one of the more unstable areas of combining Leopard with VMWare. I think if I had more memory to throw at the problem this problem would go away and I suspect that before Leopard comes out both VMWare and Apple would have solved this issue.

That being said, I have been happy with Leopard and am eagerly awaiting the release coming in the next few months. I am ready to abandon windows completely and work exclusively within OSX. The one and only thing still holding me to Windows is Visual Studio, hence why I started to look at Fusion. Good Stuff!