Paperclip themes for BlogEngine.Net 1.4, tweaked and widen

by mosessaur| 18 July 2008| 22 Comments

Last week I found Peperclip themes of BlogEngine.Net. It was adapted by Caio Proiete. But they wasn't totally supporting version 1.4 as well as they had few CSS issues. Beside I wished for more wider area.

Thanks to Caio Proiete for providing these themes. I worked with them and tweaked them to support BlogEngine 1.4 and to provide more wide area for blog posts. You can download first 2 themes now (Cactus and Fall). Hopefully by next week I'll be done with the other2 themes. It worth to mention that I just modified the CSS, MasterPage and CommentView control.

Main CSS modification was around to support Widget Zone including Out of The Box Widgets. Beside fix few incorrect displaying styles

MasterPage modification was basically to provide WidgetZone. I also removed the Navigation section on the left menu and provide it as a widget which you can fine in the same download packages

While CommentView control modified to provide better comment adding form and better comment display with Avatars.

As Caio Proiete mentioned feel free to modify but don't forget to keep his credits.

Downloads:

kick it on DotNetKicks.com

jQuery.UI Messenger\Outlook like message notification Widget

by mosessaur| 16 July 2008| 23 Comments

Today, Matt posted a cool progressbar widget using jQuery.UI. He gave a good introduction and explanation about how to build a widget using jQuery.UI.

Here, I'm following his sample to build my own one, which is Messenger\Outlook like message notification [view demo]. So for reference and how to build one please return to jQuery.UI ProgressBar Widget by Matt Berseth.

Messenger like message notification widget is something I wished to do long time ago, and was lazy to think and code it, because I thought it would take to much coding. And I read Bilal's article How to Show Messenger-Like Popups Using AJAX but it wasn't a reusable component. So I just used his styles for demonstration.

After going through Matt's post, I decided to build it up right away. So Let's dive into the code. Below is the init method for the widget, I just initialize some local variables with to store current bottom position and height of the popup message element.More...

How I got started in software development?!

by mosessaur| 12 July 2008| 0 Comments

Yesterday, Janco tagged me in Michael Eaton's software development meme that's been flying around recently. I read most of the stories around, specially Dave, Matt and Janco stories. So below is my simple story.

How old were you when you started programming?

I was 19 or 20 I don't remember exactly, but it was in 1999. That was when I joined the college, Faculty of Computers and Information Sciences. Before that I never worked on a PC or even had one. So I wasn't a video game player either.

How did you get started in programming?

I joined Computers and Information Sciences because I wished to be a software engineer. So, my early steps were very academic; Lectures, classes and labs where we practice basic of programming.

What was your first language?

C++, that was my first language when I do not use currently!! Shame on me! More...

Building Custom Paging with LINQ, ListView, DataPager and ObjectDataSource, Different Paging Method

by mosessaur| 08 July 2008| 10 Comments

Yesterday, I was reading Efficient Paging in SQL Server 2005 post by Justin Etheredge, then in the comments I found Kevin Hazzard pointing to his Efficient LINQ to SQL custom paging approach. I liked his way, which reflects Justin's method which I already seen before but never apply it. I think it is more efficient than my method I provided in an earlier post. And if you googled about custom paging with LINQ to SQL you'll find few more implementation.

Today, I'm updating my method and provide the same sample I made last month with Kevin's method. I made an extension method to IQueryable Interface and called it KavinPage. You can view a demo here

Here is the code for the Extension Method:

   1: public static IQueryable<T> KevinPage<T, TResult>(this IQueryable<T> obj, int page, int pageSize, System.Linq.Expressions.Expression<Func<T, TResult>> keySelector, bool asc, out int rowsCount)
   2: {
   3:     rowsCount = obj.Count();
   4:     if (asc)
   5:     {
   6:         return obj.OrderBy(keySelector).Skip(page * pageSize).Take(pageSize);
   7:     }
   8:     else
   9:     {
  10:         return obj.OrderByDescending(keySelector).Skip(page * pageSize).Take(pageSize);
  11:     }        
  12: }

It is all about Extension Methods and how to use them to build SQL Queries. You can return for Kevin's post for detailed explanation. Also you can return to my previous post about this subject for more details about how to put it all together to build Paging ASP.NET ListView using LINQ to SQL and ObjectDataSource.

Download the updated sample.

kick it on DotNetKicks.com

Happy July, BlogEngine 1.4 Released

by mosessaur| 02 July 2008| 0 Comments

Well its 2nd of July, but day before yesterday was a good day. BlogEngine.Net 1.4 released, and today I performed my blog upgrade. But I didn't apply widgets yet but, I'm ready to do so once I got some time to be online to do so.

The upgrade didn't take too much time from me, actually no time at all but the uploading time. I performed kind of local upgrade test first to make sure that everything will work fine then I performed the live upgrade, and that is why actually I performed my upgrade so fast.

You can refer to this upgrade post by Al Nyveldt. I wish to share my upgrade experience, but these days I'm preparing for a business trip so I don't have much time to be online. Hopefully soon I'll be able to blog about it.

But one thing I can say, BlogEngine.Net 1.4 is 100% backward compatible with BlogEngine.Net 1.3, that means you will not lose anything or fall into trouble if you just do first stage upgrade like I did. My first stage doesn't include widgets, because I need to set them up and arrange them. So I preferred to write this post over continue my upgrade process :) . You can image how second stage will be easy :)

Have fun with BlogEngine.Net 1.4.