Richmond Code Camp
Having never been to a code camp, I decided to go to the Richmond Code Camp today. It was pretty interesting with presentations from fellow MVPs and other people from the developer community as well as co-workers
Jonathan Cogley
and
John Morales
from Thycotic. There was one presentation on the practical uses of .NET generics by Kevin Goff, which was a nice introductory. However, I plan on putting together a presentation called
.NET Generics - Down and Dirty
for the next code camp and future speaking engagements to cover the more advanced aspects of .NET generics. If you're interested in the next Richmond Code Camp, you can visit their website at
RichmondCodeCamp.org
.
So far, this site has done pretty good for a small site with over 900 registered users. I thought it would be cool to have a contest for the 1000th user who registers for this site. So, I'll be giving away Infragistics NetAdvantage 2006 Volume 1 with Subscription to the 1000th registered user. Good luck to all.
Click here
to register.
I've created the following Community Server jobs:
BlogActivityNightlyJob - Executes the cs_BlogActivityNightlyJob stored procedure.
UserActivityNightlyJob - Executes the cs_UserActivityNightlyJob stored procedure.
This elimates the need to run those stored procedures as SQL Jobs. You can download StrongCoders.CSJobs
here
. The download also contains a Control Panel add-in that allows you to manually run the jobs.
I've created a simple contact form for Community Server that can be downloaded
here
. To see it live on this site, click
here
.
I've decided to open up registration for blogs on this site. If you'd like a blog on this site, send us an
email
and tell us why, including a little bit about yourself. Remember our motto is, "Where the extreme coders hang out," so you must adhere to that expectation

.
By default, the web.config file of Community Server allows any registered user access to the Control Panel, including Setup.aspx and 2 pages hidden from the Control Panel UI that have functionality. To prevent registered users from accessing these files and the Control Panel, change web.config in /ControlPanel to the below. Before doing so, it's a good idea to create a role called ResourceOwner and assign it to all blog authors and file and photo gallery owners as the below change will not allow any of them access to modify their blogs and photo and file galleries since they aren't in the list of allowed roles that can access the Control Panel.
<
configuration
>
<
system.web
>
<
authorization
>
<
allow
roles
=
"
SystemAdministrator,BlogAdministrator,ForumsAdministrator,Moderator,GalleryAdministrator,FileAdministrator,ReaderAdministrator,MembershipAdministrator,ResourceOwner
"
/>
<
deny
users
=
"
*
"
/>
authorization
>
system.web
>
<
location
path
=
"
settings.aspx
"
>
<
system.web
>
<
authorization
>
<
allow
roles
=
"
SystemAdministrator
"
/>
<
deny
users
=
"
*
"
/>
authorization
>
system.web
>
location
>
<
location
path
=
"
Setup.aspx
"
>
<
system.web
>
<
authorization
>
<
allow
roles
=
"
SystemAdministrator,BlogAdministrator,ForumsAdministrator,GalleryAdministrator,FileAdministrator,ReaderAdministrator,MembershipAdministrator
"
/>
<
deny
users
=
"
*
"
/>
authorization
>
system.web
>
location
>
<
location
path
=
"
license.aspx
"
>
<
system.web
>
<
authorization
>
<
allow
roles
=
"
SystemAdministrator
"
/>
<
deny
users
=
"
*
"
/>
authorization
>
system.web
>
location
>
configuration
>
On September 1, .NET Framework 3.0 went from beta to release candidate. It can be downloaded
here
.
You've probably noticed the ads on my blog. By default, Community Server doesn't have built-in ad support in blog skins. You can easily add it by wrapping AdPart controls around the BodyTemplate control in LayoutTemplate.ascx, which is located in the root of each blog skin folder. The default shipping skins for Community Server 2.1 with top and bottom ad support can be downloaded
here
.
<
CS
:
AdPart
runat
="server"
ContentName
="StandardTop">
<
CS
:
Ads
Zone
="StandardTop"
runat
="server"
/>
CS
:
AdPart
>
<
CS
:
BodyTemplate
id
="BodyTemplate"
runat
="Server"
/>
<
CS
:
AdPart
runat
="server"
ContentName
="StandardBottom">
<
CS
:
Ads
Zone
="StandardBottom"
runat
="server"
/>
CS
:
AdPart
>
I'd like to welcome Doug Nelson to StrongCoders Weblogs. He's an awesome coder. His blog is
Generic Musings and Observations
.
Today I came across a Google web page that allows you to search Microsoft-related sites. It's pretty cool.
I just upgraded this site to Community Server 2.1 RTM. The upgrade worked without any issues. If you guys notice any issues, please post in
Site Issues
.
I came across two awesome blog posts by Doug Nelson.
Optional Parameters for Stored Procedures
GridView Dissapointments
I just updated my
GridView without DataSourceControl DataSource
blog entry and all code to allow sort state and data to persist between page changes.
Updates:
GridView without DataSourceControl DataSource
GridView without DataSourceControl DataSource C# Code Download
GridView without DataSourceControl DataSource VB.NET Code Download
GridView without DataSourceControl DataSource C# Live Example
GridView without DataSourceControl DataSource VB.NET Live Example
I just upgraded this site to Community Server 2.1 RC1. The upgrade worked without any issues. If you guys notice any issues, please post in
Site Issues
.
There's a couple of extra steps I take to tweak Community Server out of the box.
Tweak 1
Go to Control Panel > Administration > Membership > Manage Roles (Manage All Roles in CS 2.1). Add a new role named ResourceOwner and assign it to any user that is the owner of a resource like a blog. By default, Community Server won't show the Control Panel link to any user that's not a moderator or administrator. I use this role to give access to the Control Panel link to users like blog owners. Next, in the navigation section of SiteUrls.config, modify the controlpanel link to include the ResourceOwner role in roles.
<
link
name
=
"
controlpanel
"
resourceUrl
=
"
controlpanel
"
resourceName
=
"
controlpanel
"
roles
=
"
SystemAdministrator,BlogAdministrator,ForumsAdministrator,Moderator,GalleryAdministrator,FileAdministrator,ReaderAdministrator,MembershipAdministrator,ResourceOwner
"
/>
Tweak 2
By default, the Web.config file in /ControlPanel allows any authenticated user access to the Control Panel. Change Web.config in /ControlPanel to the following:
<
configuration
>
<
system.web
>
<
authorization
>
<
allow
roles
=
"
SystemAdministrator,BlogAdministrator,ForumsAdministrator,Moderator,GalleryAdministrator,FileAdministrator,ReaderAdministrator,MembershipAdministrator,ResourceOwner
"
/>
<
deny
users
=
"
*
"
/>
authorization
>
system.web
>
configuration
>
Tweak 3
In Community Server 2.1 Beta 1, Beta 2 and RC1, there is no Web.config file in the /ControlPanel/Reporting folder, so any authenticated user can access Reporting. Add a Web.config file to the /ControlPanel/Reporting folder with the following:
<
configuration
>
<
system.web
>
<
authorization
>
<
allow
roles
=
"
SystemAdministrator,BlogAdministrator,ForumsAdministrator,GalleryAdministrator,ReaderAdministrator,MembershipAdministrator,FileAdministrator
"
/>
<
deny
users
=
"
*
"
/>
authorization
>
system.web
>
configuration
>