10/23/07

Beginning Module Development-Planning Your Module Project

Planning Your Module Project

Of course, to succeed in any project, you should plan it out before you start writing even one line of code. Planning includes considering the answers to any number of questions as well as readying your resources.

Business Considerations

You're going to have to ask yourself or your project team a few questions before beginning your application development. For example:

Q

Can the development effort justify the savings that your application will provide?

A

Many factors can come into play: skills of in-house staff, costs associated with obtaining the skills, and many others that you will have to account for.

Q

Can the module be purchased from a third party?

A

DotNetNuke has grown in popularity over the past couple of years, and the outlook is for continued growth. More independent software vendors are developing modules, so more than likely there is no need to develop a module to accomplish a specific task — you can purchase it for very little cost. As of this writing, more than 250 modules are currently available for sale, and many more are available as free downloads. Some of these modules are written specifically for the 1.1 version of DotNetNuke, but there is an increasing number specifically targeting the ASP.NET 2.0 platform and DotNetNuke 4.0. If the module developer has written the module to conform to the same standards as the DotNetNuke core modules, the module will function in either the 3.2 version for ASP.NET 1.1 or the 4.0 version developed for ASP.NET 2.0.

Q

Is training required for developers?

A

Module development does require some additional skills. You develop modules in DotNetNuke using the standard tools you would use to do any ASP.NET development, but knowing how to take advantage of the available interfaces requires some understanding of the framework's inner workings. In addition to this book, many resources are available for learning about DotNetNuke if you want to investigate further. You may develop modules in any language supported by the .NET framework, including C#, J#, and VB.Net. This discussion sticks with VB.Net, the language in which DotNetNuke is written.

Q

Should you hire an outside resource to do the development?

A

Training becomes less of an issue when you have your development done by an outside resource. DotNetNuke's popularity has increased at such a phenomenal rate that many solution providers specialize in module development.

Q

What infrastructure issues are there?

A

How many developers are going to be working on the same code base? The more developers working on the same code, the more there is a need for source control. Scalability also may be something to consider. In addition, if you have to access resources over the Web, you need to read some of the application settings configured at a host level in DotNetNuke.

Q

Do you need to develop multiple data providers for the module?

A

What database are you going to use for the backend? DotNetNuke supports a Provider Model that enables developers to abstract out the physical database interaction, allowing the actual DotNetNuke core and module logic to be separate from the database logic. DotNetNuke supports SQL Server out-of-the-box, but a provider can be developed for basically any database backend. How many physical databases you need to support will determine how many providers you need to develop. Module development closely mirrors the DotNetNuke architecture, and you should create a provider for each platform you want to support. If you're going to distribute your module on various DotNetNuke installs with different databases like SQL Server, Oracle, or MySQL, you need to develop a provider to support those individual databases.

Q

Do you need to support different versions of DotNetNuke?

A

DotNetNuke is a mature product with several released versions. There have been many major architectural changes going from version 1.x to 2.x and to 3.x. DotNetNuke 4.x uses essentially the same provider model as DotNetNuke 3.x. At the time of this writing, the latest release was DotNetNuke 4.0.2. If you are developing on a later version, verify that there have not been any changes to the provider model for your version. If your module needs to be available on these various versions of DotNetNuke, you will need to manage the various code bases to accommodate all the required versions.


Note 

Modules developed for version 3.2 (on ASP.NET 1.1) will run on version 4.02 (on ASP.NET 2.0) unaltered because of their binary compatibility.

Q

What resources are needed for ongoing support of the module?

A

This may not be as much of an issue for modules purchased or developed by an outside party. You may be able to obtain adequate support from the vendor. If you develop in-house, you'll need to set aside resources to provide ongoing support of the module.

Of course, this list is not all-inclusive, but the example questions should be enough to help you determine the questions you need to ask regarding your own application.

Ready Your Resources

Now that you have decided to begin module development, you need to prepare your development environment. The source and project files are available in the DotNetNuke distribution file that you can download from www.dotnetnuke.com. Just as you installed DotNetNuke on the production server in Chapter 2, you need to configure a development machine with the source code — and the process is the same.

Ensure that your development environment is configured with Visual Studio .NET 2003/2005, SQL Server 2000/2005, or MSDE/SQL Server Express (or your specific data provider). In addition, if you are working with your source files in a location other than the DotNetNuke default (c:\dotnetnuke), you may need to change the solution file (dotnetnuke.sln) and the web information contained within the solution (dotnetnuke.webinfo) to point to the location of the virtual directory for your environment. That will ensure that you can open the solution correctly in Visual Studio .NET.

You may want to consider installing Visual Source Safe, or some other source control to ensure integrity of your project source code. Installing Source Safe is beyond the scope of this book, but it is recommended that you use some sort of source control to protect your development.

Another item to note is the publishing process from your development environment to your production environment. Because DotNetNuke is ASP.NET-compiled into several assemblies, the most it takes to publish to production is simply copying the development assemblies, user controls, associated ASPX, and resource files. Before you compile your module for production, ensure that the build configuration in Visual Studio.NET is set to Release, not Debug.

In many environments, an extra stage in the development process is added by placing a sandbox or testing server between development and production. The testing server should mirror your production environment as closely as possible — install your module to the testing server and test first. After the business units review the functionality and ensure it meets the requirements, publish the module to the production servers.



--
Happy day, happy life!

10/22/07

Extending the Paypal IPN in DotNetNuke


The default Paypal IPN solution offers basic functionality for creating a subscription based site. Undocumentated but very useful are 'paypalsubscriptionreturn' and 'paypalsubscriptionnotifyurl'. Both variables can be used to change the way Paypal subscriptions are handled in Dotnetnuke.
http://www.smallbizserver.net/Default.aspx?tabid=285&EntryID=90

--
Happy day, happy life!

Keywords Research Guide

ref: http://www.dnncreative.com/Articles/SearchEngineOptimization/MajorKeywordsResearchFreeGuide/tabid/123/Default.aspx

Researching the major keywords to use within your website is the most important task you have to complete before writing any content.

If you are using the wrong keywords, your website will be lost in cyberspace and reaching the top 10 from a search result in Google will be a mere dream!

Following this excellent guide Search Engine Optimization Made Easy, it mentioned the Wordtracker website.

I have carried out some further research and found this 75 page guide produced by Wordtracker.

Having read through this in an hour, it's invaluable. It features leading experts in the SEO industry and asks them to provide keyword advice to a fictional company selling vegetarian dog food online.

Click here to download the free Keyword Research Guide (Right click and "Save Target As" to download the pdf direct to your computer)

Download Size: 1.8MB

Click here to visit Wordtracker



--
Happy day, happy life!

What is RSS?

ref: http://www.dnncreative.com/Articles/RSS/WhatisRSS/tabid/150/Default.aspx


RSS is a technology that has the potential of overcoming many of the internet marketing challenges we are facing today and becoming a preferred tool to get 100% of your content delivered to your subscribers, as well as a tool to help you achieve top position search engine rankings.

The simple RSS explanation from the marketing point of view is that RSS is a simple to use publishing tool for marketers and publisher. It allows you to get your content delivered to end-users, without the fear of spam filters stoping your messages, and to other "content consumers" (other websites, search engines and so on).

RSS gets your content delivered, period. And it helps you increase your search engine rankings and drives new traffic to your sites.

But some marketers are still afraid that not enough internet users are using RSS feeds. Think again …

While achieving not more than marginal penetration, its usage is growing with astounding speed.

Actually, according to a report from the Pew Internet & American Life Project, 5% (6 million) Americans online consume news and information through RSS aggregators. So the market is already out there!

But What Are RSS Feeds?

RSS content is delivered through RSS feeds --- simple files structured in a specific way.

These files include some basic information about the RSS feed (such as RSS feed title, logo, description, URL etc.) and the actual content you want to deliver to your readers.

These content items are individual stories or articles (usually just descriptions of articles actually published on the internet publisher's web site), presented in a linear list.

But RSS is not only about text. You can easily use it to deliver audio content, video content and even PowerPoint presentations and PDF files.

What Do You Need To Subscribe To RSS Feeds?

The point of RSS feeds is to get people to subscribe to them, so that they can constantly receive fresh information from you.

It's just like subscribing to e-mail newsletters, only that there's no e-mail involved … and consequently no spam or spam filters.

But to subscribe to your RSS feeds, your visitors need a special tool, called an RSS aggregator.

RSS aggregators are special tools that can take an RSS feed and display it to the end-user. They come in many different forms and flavors, but the most popular are desktop applications and web readers.

In the case of desktop RSS aggregators (example: http://www.awasu.com), end-users need to download them to their computers and install them there. Web-based RSS aggregators (example: http://www.bloglines.com) on the other hand are websites where users can create their own accounts and then use those websites to view RSS content directly from their Web browsers.

After installing an RSS aggregator or registering at a web-based RSS aggregator web service, the user needs to proactively add the link to your RSS feed in to the aggregator to view your content.

Every time you update your RSS feed by adding new content items to the RSS file, the user is notified of that through his RSS aggregator, making the content immediately available to him, without it having to face any SPAM filters and other barricades on the way.

And, for the best part, most RSS aggregators are free to use, so there's really no excuse to not get started today. And by the way – so are quite a few RSS publishing solutions!

Yes, RSS is the free way of getting your content delivered every time.

--
Happy day, happy life!