Archive for April, 2009

BOOK – Sample Chapter ASP.NET MVC 1.0

I’ve avoided ASP.NET MVC for a long time. Don’t get me wrong, it’s cool. I just haven’t needed it. WebForms suits, and continues to serve me quite well.But still, as a developer who also does a lot of PHP (and other) web development. Sometimes I wanna use the “do it yourself” web dev model. Enter ASP.NET MVC

Some of our guys wrote this book and it’s now shipping from Amazon.com

You can grab a free sample chapter HERE

Technorati Tags: ,,

JOB – Are you a NH Developer Guru and Entrepreneur ?

 Brick River Technologies in Exeter, NH is looking for an experienced web developer that can also help out with multiple functions of our small organization.

You need to be a seasoned developer, but also have business experience and be able to play a role in the organization’s strategy, finances, sales and marketing, and product support.

You should be creative, energetic, and enthusiastic and willing to wear many hats.

From a development perspective, you should have many years of experience building data-driven websites using Microsoft technologies including MS SQL Server, IIS, Classic ASP, ASP.NET and ASP.NET MVC. You should also be able to code websites freehand using HTML and CSS. You must be familiar with best practices around design, development, and user interface, and have EXAMPLES of your work.

Our flagship product is a content management system written in a combination of ASP.NET MVC and Classic ASP. You also need to be well-rounded as we often build sites using other frameworks or tools such as Expression Engine.

We are looking for a senior level developer with at least 5 years of real world experience developing data driven websites.

We offer a competitive package with a starting salary ranging from $70K to $90K, in addition to medical benefits and 401K plan.

If interested, send a current resume and cover letter explaining why you are the right candidate for the job. In addition, be prepared to provide samples of your work, both from a user interface perspective and a development perspective.

  • Compensation: $70 to $90K plus medical benefits
  • This job is ON SITE IN EXITER NH ! (We can NOT provide relocation assistance.
  • US Citizenship REQUIRED – we can not provide Visa or Green Card Support.
  • (FTE) Principals only. Contractors & Recruiters, please don’t contact this job poster.
  • Email  jobs@brickriver.com – Please, no phone calls about this job!

Making my blog more than a blog.

One of the reasons that I moved to GraffitiCMS was to make my blog more than a blog ! In fact, to make it a SITE!

If you read my blog via an RSS reader. Please stop by “in person” from time to time. I’m adding stuff that’s NOT in the feed. (Like “What am I currently reading”.)

Thanks

My move to Graffiti

Technorati Tags: ,,

Many folks have asked me to share the results of the evaluation that resulted in my choice of Graffiti to power misfitgeek.com, so here it is.

My blog ran on .text until it was orphaned when it’s author went to Telligent to work on Community Server. It’s since been forked by Microsoft’s own Phil Haack – see Subtext.

I tried the 1st version of Community Server but it was just way more than I needed for a blog.

At the time I was doing some Podcast work and Subtext (at the time) lacked support for RSS Enclosures so I moved to DasBlog.

At some point I migrated to BlogEngine.net – which I loved, but I had lots of little “issues”. I couldn’t find a theme that I liked; I also felt that, though it had many slick features, it was missing some niceties. Adding permanent content on the home page required editing the theme, which meant switching themes was a pain, etc. Though it was fast and had good support for static pages, eventually, my frustrations brought me back to DasBlog.

DasBlog has served me well, but then I had started to have some performance issues.

I run my log in a Hyper-V Instance at MaximumASP. I have between 6/7 hundred posts, most have images, and nothing has been really optimized.

DasBlog uses .xml file based storage and I started to find that comment administration had become VERY Slow. Since I moderate comments on my blog and since DasBlog lacks any batch moderation feature (difficult with an .xml based storage mechanism) the performance issue I was having became a problem.

There was also another factor that was asking me to consider a move. I want to publish more.

Code, snippets, etc….. But Microsoft has been experiencing an increased attack phenomenon of late. It seems like former MVPs (perhaps pissed off about the “former” and the ALT.NETers seem to have taken to attacking everything coming out of DevDiv these days. They expect PERFECTION in version 1.

The result is, we need to be more careful about publishing things like code, whitepapers, non “Product” applications, etc.

We need to have a “review and rework” process for just about everything, this takes time and more time means more expense and less productivity. The end result can’t help but be a decrerase in resources for the development community.

So, to avoid have to go through “process” when I just want to publish some sample code, I’ll do ot on my blog. (My code may suck, don’t blame Microsoft, I know many of my readers are way smarter than I am, if my code sucks, instead of telling me how much it sucks, fix it and I’ll post YOUR code instead J )

Now I know that I can “blog” code, but I wanted the ability to have “permanent” landing pages for certain things.

So…. I went on a search for an engine to meet my needs.

It went something like this…..

1.) WordPress.

WordPress is a GREAT application, but it’s written in PHP. Though I do a lot of work in PHP I strongly prefer to do new development in .NET and I want to be able to extent by publishing platform with .NET code.

I thought about it long and hard, but ultimately wanted a pure .NET solution.

2.) DasBlog

Since I’ve used DasBlog so much, and since its open source, I thought I might “start over” with Das Blog. Obviously, DasBlog works well; Scott Hansleman wrote it and uses it for his own blog. But, I want things that Scott hasn’t added yet so I kept looking.

3.) BlogEngine.net

I’m a Fan. It’s fast, it’s clever, and it supports stand alone “pages”, but……

Its default storage mechanism is .xml (like DasBlog). There is apparently a SQL provider option but I couldn’t find much info about it. Though the community seems to be growing, the themeing options seem to be the same as when I tried it before.

BlogEngine.net is defiantly in my future, it’s free, open source, and the “current” community favorite.

But I decided to keep looking.

4.) Dot Net Nuke.

I have to admit that I haven’t historically been a DNN fan.

It’s a pretty heavyweight framework, but it’s not a publishing platform as compared with thinks think Nuke, Drupal, Joomla, etc.

It’s pretty good if you really know what end result you are looking for but, though it’s “free”, there is a heavy commercial circumference around DNN and most of the plug in functionality I would be interested in is neither free or cheap.

The free DNN blog module seemed “ok” but seemed to be not too much more than a post container. I “guessed” that real customization would be a pretty big investment.

So, I decided to continue my search while making a mental note that DNN has come a lone way and I need to re educate myself to using the latest version.

5.) SharePoint

SharePoint has come a long way…… but not far enough for my need.

The biggest disqualifier is that there still seem to be difficulties using MS AJAX, the ACT and some 3rd party controls.

Since SharePoint is developed in the Microsoft Office Organization (not NDP, where I hang my hat), I decided to avoid the complexities.

Maybe someday I’ll do Developer Community work for the Sharepoint team J

6.) Umbraco.

I know, there are some good .NET CMS projects happening. I though about Kentico, Mojo, Rainbow (eek), and Sitefinity.

But, the only one that I really looked into was Umbraco.

Why ?

Well, first it’s free and open source but with real commercial support available ($$$)

Second, the guy who wrote Umbraco (Niels Hartvig)was at MIX this year and we were able to get him to come and give my team an in-depth demo of Umbraco.

Now, we are NOT an easy crowd (Me, Tim Heuer, Scoot Hansleman, Jesse Liberty, Simon Muzio), but Neils did a great job. We hammered him. “Show how to do THIS ?”. “Why did you do that THAT way ?”

Let me tell you, I WANTED to use Umbraco. I WILL use it for future projects, but not this one.

My reasons are these ……

· It’s flexible, really flexible. I’m sort of in a hurry. Umbraco wants to be embraced.

· I couldn’t find a BlogML importer. (I’ve since found one http://blog4umbraco.codeplex.com/Wiki/View.aspx)

· Lack of canned themes (though I found some http://www.freeumbracotemplates.co.uk)

7.) Telligent Community Server

Before evaluating CS I rejected Graffiti CMS, but since you are reading this served up by Graffiti, I’ll leave that part of the story for last.

I know that CS is not Open Source but it’s free for developer communities, it’s “the standard”, and has an avid ecosystem.

I was pretty much set when I got coached by former softie, ASP.NET Guru and Telligent CEO Rob Howard who told me that the NEXT version of CS really won’t be satisfying for use by a single publisher and he really encouraged me back to Graffiti.

8.) When Graffiti first came out I wanted to like it, but I didn’t.

It was my fault. I think, in hind sight, I just wanted Graffiti to work like stuff I already new (Nuke / Drupal / Joomla / WordPress)…. It didn’t.

Plus, Graffiti came out of the gate to a lot of fanfare. Then, wham, bang, boom….. nothin’ !

Well, not really nothing, just s few quiet some-things. (Version 1.1 & 1.2 that included not only fixes but new features.)

2 new releases from a growing company on second (and lower end) product is actually pretty good, but we all want everything yesterday so expectations were high.

Though no one from Telligent has told me this, I’m sure the economy problems got in the way a bit. Telligent had to do some reorganizing of staff to cut costs. Everyone think that once you get venture capital the money worries are over, but just the opposite is true.

Once you take VC money, you’re on the clock ! There are people (with control) watching when you spend and were (and sometimes second guessing your decisions) and the investors are tracking what you are doing with their money against revenue to make sure you are on track to make their investment a good one. The plunging economy (as an excuse) is of no interest to your investors, they just want to make sure you are gonna get them their money back.

Still, I’ve heard the community chatter that Graffiti is an orphaned product.

Being an old timer and being connected to the community has one or two advantages (to offset all the disadvantages ) and one is that I have access to decision makers, so I connected with Rob and asked him outright. (See Rob’s recent blog on the topic here http://graffiticms.com/blog/what-is-the-future-of-graffiti/)

Graffiti v.next is planned, alive and well. Some additional resources are scheduled and Rob & Company are still passionate about Graffiti CMS.

So, I installed it again and committed to take a real good look at it.

Install is REALLY easy and there are multiple data storage options. The default is VistaDB with is fast, easy, and requires no additional “server” software to be installed. SQL Server is supported so I can always migrate if circumstances require it.

Once installed on my local dev machine I needed to import data from my old www.JoeOn.net site (Blogengine.net) and www.misfitgeek.com (DasBlog)

BlogEngine.net has a BlogML exporter and Graffiti CMS has a BlogML importer and they both worked flawlessly. (And if you’ve worked with BlogML importers and exporters you know this is not always the case.)

Graffiti CMS has a DasBlog importer, so I gave it a try. Kaa-Boom. Crash! (I think it was a NULL Object Reference). So, I remembered there was a DasBlog BlogML utility on the MSDN Code Gallery (http://code.msdn.microsoft.com/DasBlogML) so I tried it.

Kaboom ! Similar crash.

Well, to make a long story short, before I started to moderate comments I got lots of junk comments including comments in apparently unsupported character sets and a few hacking attempts. Some of the older comments were causing any type of I/O of the DasBlog .xml content files to induce fits.

But, I’m tenacious. The one really nice thing about Das Blogs .xml file storage is that each DAY has 2 .xml files. One is for Posts and one is for Comments.

So, I moved the files to the import directory and imported them one day at a time. When the importer crashed, I simply deleted the comments file for that day and imported only the POSTS file. It worked fine.

Now that I had my own real data into Graffiti, I could really start to see if it would handle my needs.

Graffiti is NOT a blogging engine. It’s a publishing platform it is a “light weight” CMS with strong blogging features.

First I needed to pick a theme. I did, and you are looking at it, but I don’t really like this theme. It’s not “me”, but, Graffiti themes have specific functionality. I’ll need to get back to my theme as I want a different look and there are some features I need.

The first is the categories widget is incomplete (for my needs).

In Graffiti, content is assigned to categories (or they are uncategorized), and blog posts go in the blog category.

Other stuff goes in a non-blog category. (Code Snippets, Videos, Etc.)

Each category has it’s own RSS feed.

Problem. Each item of content can only be assigned to a SINGLE category. This is a problem for me because I need to be able to select specific posts to be syndicated to specific Microsoft developer web properties. (Silverlight related posts might need to get syndicated to www.Silverlight.net for example.)

Enter “Tags”. In Graffiti, I can tag a piece of content with as many “tags” as I like.

Problem. Graffiti CMS does support RSS feeds by Tag.

This began to look like a real showstopper for me. I know that Graffiti was built to be extended and since the data was in a VDB database I was sure I could figure out how to create an RSS feed by tag, but how much work would it be for me to learn the Graffiti API, understand the Database Schema and write the code to pull the feed that I needed.

Enter the sheer power that is Twitter. (I often say that if it weren’t for Twitter I’d have no social life what-so-ever.)

First I started Tweeting about stuff I was trying to do with Graffiti. Terri Morton (former Graffiti PM at Telligent and now helping keep www.asp.net up and running at Neudesic) was full of answers for me. (Supporting a product she no longer worked on from a company she no longer works for.)

Still, this apparent RSS inflexibility was a show stopper for me.

I “could” have still used Graffiti and come up with a category strategy that I could stick to for my RSS needs but it really wouldn’t be ideal. Still, it would work until I could figure out a better solution.

Then, I got a Tweet from my new hero, Scott Watermasysk.

Scott tweeted me this ….

@MisfitGeek drop this into your Graffiti site: http://dl.getdropbox.com/u/24455/tagrss.ashx Then just do tagrss.ashx?tag=tagname

…. And this …..

@MisfitGeek if you have access to ISAPI Rewrite, pretty urls: RewriteRule ^/tags/(.+)/feed/ /tagrss.ashx?tag=$1 [NC]

He wrote the RSS by Tag handler on his lunch break !!!!!!!!!

This experienced proved a couple things to me.

1.) If you “grock” GraffitiCMS the custom extensions capability is huge, and this is something I need.

2.) The “core” Graffiti CMS guys are proud of their work and very active.

So….

I’ve been on Graffiti CMS a week and I still like it a lot.

Bacuase it’s “different” than what I’m used to it’s taking me some time to get up to speed.

Though not Open Source the extensibility model is powerful and I’m looking forward to build some customization.

Please feel free to send me thought and suggestions. The CONTACT link now works all the time as my inbound messages from the contact form are now 4 times what they were pre-Graffiti !

Thanks

Announcing the re-release of MSDN Code Search Preview

 Find More Code Samples on MSDN using MSDN Code Search Preview…

After design revisions to the UI, the addition of MSDN Code Gallery and CodePlex content, and an updated feed from the MSDN Library, MSDN Code Search Preview is now capable of delivering more code samples via search

How to Use MSDN Code Search Preview

MSDN Code Search Preview is accessible through MSDN Search as a “filter” when using site search.  Just type your code search query and click the “Code Search” button next to the search bar to optimize your experience for code search and find code samples from MSDN Code Gallery, CodePlex, and the MSDN Library: 

MSDN-Code-Search-001

The advancements we’ve made to MSDN Code Search Preview can help customers find more code samples across our sites.  The improvements we’ve made are evident in the following example, which compares Google Code Search to MSDN Code Search Preview:

http://msdn.krugle.com/

Starting a Podcast

20577639_thb

Enough people have asked me about it so I’m starting a podcast.

I “think” my first interview will be with Rob Howard from Telligent on the future of Graffiti CMS.

If you have questions for Rob, or topic requests for Podcasts, please contact me via the contact like.

Get your FREE Core ASP.NET Reference Card Here !

Get it [ HERE ]

(Free, but Registration is Required.)

Should I delete my blog ?

Someone recently pointed me to a forum post where I was being “attacked” about my blog.

http://forums.asp.net/t/1411645.aspx

Working with the public has some rewards, but there are allot of simply nasty people to deal with :)

Normally I don’t even respond to a post by someone who wants to be insulting while hiding behind the anonymity of a profile with no name and a gmail address.

(Especially one from a “member” who hasn’t contributed to the community enough to break 100 member points.)

But since it’s now “out there” recorded for permanent posterity, I’ll explain and ask YOU.

Unlike some of my peers, much of my job is behind the scenes. This morning, for example, I spend 5 hours replying to email from both customers, and internal Microsoft people with needs, requests, questions, etc.

Part of my role is to stay on top of and understand the “state of the industry”, and very often I blog “news items” that I think are important for developer to be aware of.

Many folks tell me that these “quickies” are useful to them as they might not have otherwise been aware of the item.

We have lots of bloggers who do good “tutorials”, and some of the most popular technical blogs have included LOTS of news items (like Robert Scoble’s when he was at Microsoft)

For tutorial work I prefer to do videos, they seem popular (I’ve probably had nearly 10 million downloads)

There are only 100 hours in a week.

So my friends, how would YOU like be to spend my time.

  1. Delete my blog spend all my time on videos ?
  2. Delete my blog and write sample code?
  3. Blog long tutorials when ever I can find time and forget the news stuff ?
  4. Do whatever I want ?

So, if you were my boss, what would you have me do with my time that is most valuable for the Microsoft Developer Community ???

Please feel free to email me directly if you don’t want to post – Joe.Stagner@Microsoft.com

Visual Web Developer Landing Page

Hi Folks,

I wanted to let you know that the Visual Web Developer Team has started a landing page specifically for VWD info.,

You can find it here.,

http://www.asp.net/vwd/

10 skills developers will need in the next five years

According to TechRepublic……

1: One of the “Big Three” (.NET, Java, PHP)

2: Rich Internet Applications (RIAs)

3: Web developmentWeb

4: Web services (REST, SOAP, JSON, XML)

5: Soft skills

6: One dynamic and/or functional programming language

7: Agile methodologies

8: Domain knowledge

9: Development “hygiene”

10: Mobile development

You can read the whole article [ HERE ]