Site Search:
Sign in | Join | Help

This Blog

Syndication

Steve Gray

Random Thoughts from the 4Penny VP of Development

January 2008 - Posts

  • So, you want to sell things on-line...

    Let me start out by saying that you're not going to like this post. But read all the way to the end, read every word. This is hard advice and it comes from years of experience.

    In my business, I meet a lot of folks who have an idea that they can make some money by starting a web storefront and then - after maybe a month - retire and sell the business. I see these folks cry, scratch their head, and fail. I see it over and over and over. It breaks my heart to take their money only to see their new venture go down the drain.

    What's missing? The same thing that is missing if they were to open up a brick and mortar storefront. 

    • Willingness to work
    • Knowledge of the area in which they have chosen to compete.  

     What is involved in selling on-line?

    You need a web site. That's my job.

    You need an account with a credit card processor. No, you can't use the processor that you have now. Just ask them, they'll say no, and threaten to close your account. Accepting credit card transactions online is a very risky business, and you have to pay for that risk. Yes, you. Who else?

    No, I will not just collect the credit card number and email them to you, or save them in a database. If it's not against the law it should be. Servers get hacked all the time, just read the papers. Emailing the numbers to you would be a violation of your credit card processing contract, I will not be a party to that.

    So, call an on-line credit card processor and open an account. http://www.authorize.net/ comes to mind, they're big, but there are lots. Expect to pay $50/month even if you don't sell a single thing (and in your first few months you won't). Expect to pay about 7% of your gross.

    You need traffic.

    This is a killer. People think that they can just open up a site and they'll sell things. You won't. I know lots of successful merchants, and they all have one thing in common - they work. All day, every day. Getting traffic to a web site is not easy, it requires the same amount of sweat that any other store would. If you are not willing to do that, then don't bother.

    Don't blame the web developer. This sounds like self-serving advice, but I am aware of really ugly sites that get lots of traffic (Like this one, actually). Frequently people call me and ask if I'll redo their site so that they will get traffic. I ask how much traffic they're getting now (They don't know, but they haven't sold anything in months). It's not the site design. You need traffic in the first place. If people are not going to your site, making it prettier will not help. I give these people my half-hour speech on web marketing and send them on their way. If you'd like to hear it, I'd love to share <smiles>

    I'm not able to tell you in the space of this article what you need to do, but I am able to tell you that it is a full time job. If you come to me an complain that you're not selling anything or that you're not getting traffic, I'm going to ask how long you work at it every day. Or, how much you pay someone else to do it. If you say none and none, there's your answer.

    Sorry for the attitute. Christ commands us to love our neighbors and to do that I'd sooner that you had a full understanding of what it means to operate an eCommerce business than to take your money and see you fail.

    May God bless you and your endeavours.

     

  • How to edit a web site using Visual Web Developer

    4Penny supports the use of 2 web editing tools (Visual Web Developer - free - http://asp.net/downloads/essential/) and Microsoft Expression Web - $300 - http://www.microsoft.com/expression/). These tools are not the same, and are intended for widely different purposes. The differences are beyond the scope of this article.

    We need to use a live site for this demo so we'll use www.tstoday.com. If you own a time share, you need to be on this site and you should also get a subscription to the magazine, I personally recommend it.

    We support only one FTP Tool - Beyond Compare from Scooter software http://www.scootersoftware.com/download.php

    Our reasons are also beyond the scope of this article, and there are many fine FTP tools out there. I'd recommend, though, that you invest in Beyond Compare.

    This article will server as a primer on how to edit a site using Visual Web Developer. Using this tool, clients may safely edit the sites that were originally created by 4Penny.

    So, here goes:

    How to edit a web site using Visual Web Developer

    Download and install the free Visual Web Developer 2008 Express Edition
    http://asp.net/downloads/essential/
    Download and install Beyond Compare
    http://www.scootersoftware.com/download.php, $30.


    Using Beyond Compare, connect to your web site. Place the web site in the right hand window and your local directory in the left hand window. Copy all pages from the site to your local machine.

    Note that the time was modified 5 hours, so that the time stamps of the local and remote files where the same.

    In Visual Web Developer, click on File > Open Web Site…

    In the Open Web Site Dialog, be sure that File System is selected in the left column and then navigate to the directory where you downloaded your web site, select it and click Open.
     

    After the site opens, there is a little housework to do. Be sure that the Solution Explorer is open. If it is not, click on View > Solution Explorer


    Click on the solution file at the top of the list,

    Then click F4 to open up the Properties window. In the Properties window, find the Virtual Path line and edit to be ‘/’.

    Note that there are three choices for what you see in the bottom left corner of VWD, Design, Split, and Source. Explore all three, but in most cases Split or Design will be the best choice for beginners. 
     

    Clicking the green ‘go’ button will launch the site locally, but any page that requires database access will fail because usually the local site will not have the database correctly configured. Configuring databases -althouth possible - is beyond the scope of this document. 
     

    Note that most 4Penny.net sites make use of a ‘Master Page’, that page usually holds the header, footer, and navigation components of a web site. That way any changes made to the master are made throughout the site at one time.
    In VWD, you are able to view the contents of the Master Page, but they are greyed out and not editable, as seen below. 
     

    Make whatever edits you like, save them, and then reverse the process in Beyond Compare to FTP the changed pages back up to the site.
    Note that some pages are marked ‘read only’ on the server and may download like that. Use Windows Explorer to navigate to the file, right click on it, and unmark the ‘read only’ attribute. This change can also be done to the root folder to unmark all the files at one time.


    In Beyond Compare, click on View > Display Filters >  Only Mismatches. Then, only the changed files will show (in the image below, the file in red is the file that was edited)
     

  • Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Data

    I got the following error while trying to load the 3.1 version of the Microsoft Enterprise Library. Some kind of version problem, but (AFAIK) I only had one version on the machine. Maybe it got updated...

    I removed the VB reference to the dlls that I had copied to the project bin directory, and set a reference directly in the folder when the Enterprise Library was installed.

    That fixed it.  

    System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for dataConfiguration: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) (C:\projects\eConnect\econnect\web.config line 12) ---> System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
    File name: 'Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
       at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError)
       at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.Init(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
       at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.InitWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
       at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory..ctor(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
       at System.Configuration.RuntimeConfigurationRecord.CreateSectionFactory(FactoryRecord factoryRecord)
       at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)

    === Pre-bind state information ===
    LOG: User = RMSPROTEANS\tktk
    LOG: DisplayName = Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
     (Fully-specified)
    LOG: Appbase = file:///C:/projects/eConnect/econnect/
    LOG: Initial PrivatePath = C:\projects\eConnect\econnect\bin
    Calling assembly : System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
    ===
    LOG: This bind starts in default load context.
    LOG: Using application configuration file: C:\projects\eConnect\econnect\web.config
    LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
    LOG: Post-policy reference: Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/econnect/cae5b09b/97a14bc7/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
    LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/econnect/cae5b09b/97a14bc7/Microsoft.Practices.EnterpriseLibrary.Data/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
    LOG: Attempting download of new URL file:///C:/projects/eConnect/econnect/bin/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
    WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN
    ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

       --- End of inner exception stack trace ---
       at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)
       at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
       at System.Configuration.BaseConfigurationRecord.GetSection(String configKey, Boolean getLkg, Boolean checkPermission)
       at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
       at System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey)
       at System.Configuration.ConfigurationManager.GetSection(String sectionName)
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSourceImplementation.GetSection(String sectionName)
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource.GetSection(String sectionName)
       at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseConfigurationView.get_DatabaseSettings()
       at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseConfigurationView.get_DefaultName()
       at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseMapper.MapName(String name, IConfigurationSource configSource)
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfigurationNameMappingStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id)
       at Microsoft.Practices.ObjectBuilder.BuilderBase`1.DoBuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
       at Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
       at Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp[TTypeToBuild](IReadWriteLocator locator, String idToBuild, Object existing, PolicyList[] transientPolicies)
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IReadWriteLocator locator, IConfigurationSource configurationSource)
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IConfigurationSource configurationSource)
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.NameTypeFactoryBase`1.CreateDefault()
       at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase()
       at GPConnect.RetrieveAreaOfPracticeList() in C:\projects\eConnect\econnect\App_Code\GPConnect.vb:line 781
       --- End of inner exception stack trace ---

More Posts Next page »