IM Me Now!

If I am online, please click on the following link to chat with me right now, or you can also start chatting with me on the "Contact" page as well.
Welcome to ACIASoftware.com

Welcome to the web site of ACIA Software. We are a Tampa, Florida software development company specializing in DotNetNuke and Microsoft .NET Technologies. We are proficient in all aspects of software development including architecture, programming, and configuration management.

ACIA Software is the developer of two commercial DotNetNuke modules, the ACIA Silverlight Gallery module and the ACIA Document Management System Module. Both modules have in excess of 200 development hours invested and offer a great deal of value to their users. Following on this page are examples of both modules. The gallery module is configured to display a Flickr feed and the the DMS module is live.


Kenneth Courtney's Facebook profile

 Featured Products:
 
ACIA Document Management System Module  (1/3/2008)
Price: $79.99
The ACIA Document Management System Module provides simple Document Management functionality including version management. read more
 
 
ACIA Silverlight Image Gallery Slide Show Image 
ACIA Silverlight Image Gallery Slide Show   (1/1/2008)
Price: $29.95
ACIA Gallery is a combination of a sophisticated image gallery management solution and an elegant, highly customizable Silverlight 1.0 Slide Viewer control for publishing photo slide shows on the Web. ...read more
 

Recent Blog Posts

WPF for your next big LOB

 

If you are still in the early planning stages regarding the fundamental technology (Winforms VS Windows Presentation Foundation), I'd like to cast my ballot for WPF and Silverlight. WPF & Silverlight offer all the power of a desktop application with the ease of deployment of a web application and so much more. You can find a great overview of why WPF might make a great choice in the following article:
 
 
The following blog post links to two videos of exceptional WPF LOB applications, bo

The Ultimate Architect Position?

 



Scott Guthrie Introduction to Silverlight 2.0 Video

I subscribe to 'threads watched by Channel 9 MSDN team' on the Channel 9 MSDN web site, the problem is, once a thread falls off the feed, it's a real PITA to find it again!

This interview with Scott Guthrie, MS VP, offers a great introduction to what Silverlight 2.0 really is and is a must watch for anyone new to the technology:

http://channel9.msdn.com/ShowPost.aspx?PostID=388355



Site Migration to DNN 4.8.1 continues...

 



ACIA Silverlight Slide Show & Photo Gallery Released on Snowcovered.com

I am proud to announce that I have released my first independant commercial module on Snowcovered.com: the ACIA Silverlight Slide Show and Photo Gallery. The module provides a management UI for a popular open source Silverlight Slide Show control. The gallery provides a Silverlight 1.0 control for publishing highly-customizable photo slideshows on the Web.

 

Buy My Module at Snowcovered.com!



I traded my 2006 Night Train for a 2006 Honda ST1300 !!!

Best decision I ever made.

 

sT1300_2006



The Merrits of DotNetNuke for ECommerce

I rarely have an original thought (if I have ever had one) and this entry is no exception. A while back while comparing the Commerce Starter Kit with the DNN Core Store Module, I found an interesting post on “Spooks Blog” (link) discussing the merrits of a DotNetNuke ecommerce module.

In response to this post, Sean Walker posted a very eloquent response, in which I found the following especially pointed and relevant to DotNetNuke's use in a great whole:

“In response to Rob's comment that DNN is not suited for e-commerce, I would obviously have to disagree. The fact is that anyone who needs to sell goods online also needs a whole array of other services on their website. They will want to customize the look of the website to match their business branding. They may want to provide forums for online support of their products. They may want a Newsletter to push information to their customers. They may need to designate private and public areas of their website for inside/outside sales or marketing information. They will need basic pages which describe the company and their mission. DotNetNuke handles all of these requirements and much more. And I am sure an e-commerce application could eventually provide all of these services, but in my opinion it is then losing its main focus - commerce.”

He also addressed performance issues, always a sticky subject with old school manager types:

In terms of performance and scalability, I definitely need to address the facts. DotNetNuke.com is running on a single dedicated web server connected to a database server ( so 2 boxes - no web farm or load balancer ). It is running the DotNetNuke framework with all of the standard defaults for the environment and application - so no custom tweaks or "squeezing" whatsoever ( we purposely avoid custom tweaks so that we stay in touch with our user community ). In January 2006, the site had 4.5 million page views ( or about 150,000 per day ). Obviously, this could scale much higher if we moved to a web farm model ( ie. I have heard of DNN sites handling 1.0M+ page views per day ).

February 16, 2006 3:12 AM
I couldn't have put it any better.


Subsonic + DotNetNuke without Modifying web.config

I originally posted most of this in my reply on the SubSonic Community Forums to a thread on how to incorporate SubSonic DAL into a DNN Module without having to modify the web.config file. I figured it would be useful here because I had a bit of a time figuring this out.

To recap what I did (for my test app):

Started with a new Class Library project, named it ACIA.Data, added this to my DotNetNuke 'classic' web application project solution (which includes the BuildSupport assembly which compiles all assemblies into the web site's \Bin folder... another topic but important for module developers).

Set up the Subsonic Command line tool as per instructions in the Club Starter Kit (http://www.codeplex.com/ClubStarterKit) (which is a great starter kit not mentioned many places on Subsonic Community which uses Subsonic very nicely). Generated my code into the \Generated folder just like Club Starter Kit. Using this method, only a single app.config file necessary in the Assembly's root folder.

In my case, I wanted to limit the amount of code I generated to the objects (tables only) in my module, so my entire app.config looked like:

xml version="1.0" encoding="utf-8" ?>

<configuration>

  <configSections>

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

  configSections>

   

  <connectionStrings>

    <add name="SiteSqlServer" connectionString="Data Source=.; Initial Catalog=DotNetNuke4;Integrated Security=True" providerName="System.Data.SqlClient" />

   

  connectionStrings>

  <SubSonicService defaultProvider="SiteSqlServer">

    <providers>

      <clear/>

      <add name="SiteSqlServer" type="SubSonic.SqlDataProvider, SubSonic"

           connectionStringName="SiteSqlServer" fixPluralClassNames="false"

           spClassName="SPs" generatedNamespace="Database"

           stripTableText="ACIA_"

           includeTableList="ACIA_Committee,ACIA_Media_Files,ACIA_Meeting, ACIA_MeetingCommittee,ACIA_MeetingRSVP,ACIA_Organization,ACIA_UserOrganization"

           includeProcedureList=""

           viewStartsWith=""

           />

    providers>

  SubSonicService>

configuration>

Once code generation was working OK, I created a new class in my ACIA.Data project ... named it Application ... Created new method in the class InitializeProvider:

Imports SubSonic

Imports System.Configuration

 

Public Class SubsonicProvider

    '''

    ''' Initialize Subsonic for the default provider.

    '''

    '''

    Public Shared Sub InitializeProvider()

        InitializeProvider("")

        InitializeProvider("")

    End Sub

 

    '''

    ''' Initialize Subsonic for given Provider: Convention is to use same name

    ''' for Connection String and Provider name.

    '''

    '''

    '''

    Public Shared Sub InitializeProvider(ByVal ProviderName As String)

        If DataService.ProviderCount = 0 Then

            DataService.Provider = New SubSonic.SqlDataProvider()

            DataService.Providers = New DataProviderCollection()

            Dim provider As SubSonic.DataProvider = DataService.Provider

            Dim config As System.Collections.Specialized.NameValueCollection = New System.Collections.Specialized.NameValueCollection()

            config.Add("connectionStringName", ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString)

            provider.Initialize(ProviderName, config)

            provider.DefaultConnectionString = ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString

            provider.GeneratedNamespace = "Data"

            DataService.Providers.Add(provider)

        End If

        If DataService.Providers.Item(ProviderName) Is Nothing Then

            Dim provider As New SubSonic.SqlDataProvider()

            Dim config As System.Collections.Specialized.NameValueCollection = New System.Collections.Specialized.NameValueCollection()

            config.Add("connectionStringName", ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString)

            provider.Initialize(ProviderName, config)

            provider.DefaultConnectionString = ConfigurationManager.ConnectionStrings(ProviderName).ConnectionString

            provider.GeneratedNamespace = "Data"

            DataService.Providers.Add(provider)

        End If

    End Sub

End Class

 

Then in my test method in my module:

        Private Sub TestSubSonic()

            NCIGF.Data.Application.InitializeProvider()

            Dim committee As Database.Committee = New Database.Committee(CommitteeID)

            Debug.WriteLine(committee.Name)

        End Sub

 

Having to call InitializeProvider before using Subsonic isn't so bad, and ultimately could just be put into a base class in my module project and never be messed with again: the import thing here is that I made no configuration changes to my web.config and was indeed able to exercise my Subsonic Dal.

 



Plen the Skating Robot


Simple Excel Row To Column Macro

I don't understand why Excel doesn't (appear to) have a Row To Column function built in. If it does, I couldn't find it. The following macro does the trick, and only took like five minutes to record edit and run to get right. I figured this has to be a common enough problem, so here was my own solution:

Sub RowToColumn()

 

    Dim i As Integer

    For i = 1 To 27

        Range("B1").Select()

        Selection.Cut(Destination:=Range("A" & i + 1))

        Range("C1:Z1").Select()

        Selection.Cut(Destination:=Range("B1:Y1"))

    Next i

 

End Sub