by Nik Kalyani
Sunday, April 06, 2008 8:50:10 PM (Pacific Standard Time, UTC-08:00)
 Found this little gem on my Facebook feed today. Glad that Shaun has finally come around and become a fan of DotNetNuke.
by Nik Kalyani
Tuesday, November 06, 2007 12:35:17 PM (Pacific Standard Time, UTC-08:00)
The keynote presentation is now online at DotNetNuke OpenForce '07.
by Nik Kalyani
Tuesday, November 06, 2007 12:25:48 PM (Pacific Standard Time, UTC-08:00)
Shaun just wrapped-up his keynote address at Open Force '07 here in Vegas. The theme of his keynote was "Evolution." He talked about the progress DotNetNuke has made, how DotNetNuke Corp. intends to continue to fund and grow DotNetNuke and finally, he shared the vision for the future of DotNetNuke.
DotNetNuke "Cambrian" will focus on five areas: Social Networking and Widgets, Workflow, Core Module Suites, Dynamic Content Localization, and Admin UX and Skinning Engine updates.
I'll post his presentation on the OpenForce website shortly.
by Nik Kalyani
Tuesday, November 06, 2007 6:23:01 AM (Pacific Standard Time, UTC-08:00)
It's a beautiful day in Las Vegas today. I am here at the Mandalay Bay for DotNetNuke Open Force '07. I am going to blog regular conference updates over the next three days.
by Nik Kalyani
Wednesday, October 17, 2007 1:50:37 PM (Pacific Standard Time, UTC-08:00)
InfoWorld's recent comparison of Open Source web CMS systems gave DotNetNuke high marks with a "Very Good" rating. DotNetNuke was the only ASP.NET-based contender in the field of five. We are working hard on many exciting new enhancements and it won't be long before we will bridge the gap from "Very Good" to "Excellent." You can see the report on which this comparison table is based:
| |
DotNetNuke |
Alfresco
Community Edition |
Drupal |
Plone |
Joomla |
| Version |
4.4.5 |
2.1 |
5.2 |
3.0 |
1.0.13 |
| Publisher |
DotNetNuke Corporation |
Alfresco Software |
Drupal |
Plone Foundation |
Open Source Matters |
| |
|
|
|
|
|
| Rating |
Very Good |
Excellent |
Very Good |
Very Good |
Very Good |
| |
|
|
|
|
|
| Criteria
(weight) |
|
|
|
|
|
| Ease-of-use
(25%) |
9 |
9 |
8 |
9 |
8 |
| Features
(25%) |
8 |
10 |
8 |
8 |
8 |
| Security
(15%) |
8 |
9 |
9 |
8 |
8 |
| Scalability
(15%) |
9 |
9 |
8 |
9 |
9 |
| Management
(10%) |
8 |
8 |
8 |
9 |
9 |
| Value
(10%) |
8 |
9 |
9 |
9 |
9 |
| Score |
8.4 |
9.2 |
8.3 |
8.6 |
8.4 |
| |
|
|
|
|
|
| Cost |
FREE |
FREE |
FREE |
FREE |
FREE |
| License |
BSD-style license |
GPL 2 with FLOSS exception |
GPL |
GPL |
GPL |
| Platforms |
ASP.NET, Windows Server, SQL Server 2005 |
Windows and Linux |
Apache or IIS Web servers; Unix, Linux, BSD, Solaris, Windows or
Mac OS X; PHP; PHP-supported database server (MySQL or PostgresSQL) |
Windows, Mac OS X, BSD, Solaris and SuSE |
Apache, PHP, MySQL |
| Support |
|
|
|
|
|
| Website |
dotnetnuke.com |
alfresco.com |
drupal.org |
plone.org |
joomla.org |
| |
|
|
|
|
|
| Bottom
Line |
Written in VB.Net, DotNetNuke is an extensible content management
system suitable for intranets, extranets, and public Web sites. The core
distribution includes three dozen CMS modules, including a skin system (based
on simple templates) that separates design from content, personalization, and
search; other modules range from e-commerce systems and photo galleries to
blogs, forums, and wikis. Commercial publishers offer other components. |
This very inclusive offering, developed using Java, sits on top
of a JSR-170 content repository. Out of the box Alfresco provides a Web
portal framework; CIFS (file share) interface that works on Windows and Linux
clients; and a Web-content management system –- plus document, imagine, and
records management. Further, Alfresco scales well with options for deploying
content to multiple servers. |
Written in PHP, Drupal's Web application framework anchors a
content management system that includes modules for e-commerce and workflow.
Drupal, unlike other systems, also has a taxonomy system to classify content
– but this does take extra work to configure (as does setup). Themes are
created with the standard PHPTemplate engine. A blogging system makes this
system good for building online communities. |
The Plone CMS, which is built on top of the Zope application
server, performs well for intranets – as well as a document management server
and team collaboration tool. The system is easy to use and also notable for
its multi-lingual capabilities. Additionally, Plone powers a number of
high-traffic Internet sites, though this configuration should included
additional components, such as Squid caching. |
Joomla, written with PHP and back-ended by a MySQL database, is
appropriate for external Web sites and intranets. The system's caching
provides good performance on higher-volume sites while various extensions
cover essential CMS functions; these plug-ins include news, blogs, polls,
search, and internationalization. To further expand functionality, such as
site backup, both free and commercial components are readily available.
|
|
|
|
|
|
|
by Nik Kalyani
Wednesday, October 10, 2007 5:48:54 AM (Pacific Standard Time, UTC-08:00)
A recent head-to-head comparison of Open Source CMS products credited DotNetNuke with "high
usability, a large number of stock modules, and a penchant for
commerce." The article compares DotNetNuke and other offerings such as
Alfresco, Drupal, Joomla and Plone:
The review identified authentication, workflow and versioning as
shortcomings. Of these authentication has already been addressed in 4.6
and the remaining features are in the pipeline.
We also have some exciting things in store for DotNetNuke 5.0 which will make DotNetNuke even stronger (OpenForce '07 attendees will get a first-look).
by Nik Kalyani
Sunday, June 10, 2007 11:52:44 AM (Pacific Standard Time, UTC-08:00)
Last week was a big one for DotNetNuke with two major announcements:
Visual Studio Magazine Editor's Choice Award for 2007
This was a pleasant surprise, especially considering that last year's winner was SharePoint and this year's other winners are Microsoft Expression Blend and Microsoft Expression Silverlight. You can read all about it here.

OpenForce '07 Conference

I am very excited about the DotNetNuke OpenForce '07 Conference for three reasons:
- It's the first major mainstream event for DotNetNuke, highlighting how far the project has come and how much it has grown;
- It's co-located with the DevConnections conference which is one of the premier conferences for Microsoft technology professionals; and
- It's in Vegas!!!!
I will be presenting one session and participating in one panel discussion. My session is:
DotNetNuke Modules: Beyond the Browser DotNetNuke modules are generally designed to function with a web browser as a client. In this session you will learn how to extend your module beyond the browser and onto the desktop. We will review how to use the “Widget Toolkit” to create Vista Sidebar Gadgets and widgets for various other platforms that act as clients for DotNetNuke modules. You will learn how these same techniques can be used to quickly extend DotNetNuke to mobile clients.
The panel I will participate in is:
DotNetNuke – The Road Ahead In this panel discussion, the four co-founders of DotNetNuke Corporation will share their vision for the company and the DotNetNuke Open Source project. The resources, approach and business model required to manage and grow a large Open Source project such as DotNetNuke are substantially different than those required for a commercial software company. Get an inside look at how DotNetNuke Corp. is addressing today’s challenges while preparing for the future.
I hope to meet many from the DotNetNuke community at the conference.
by Nik Kalyani
Wednesday, August 09, 2006 4:36:56 AM (Pacific Standard Time, UTC-08:00)
Starting with DotNetNuke v3.3/4.3, all dependencies on the Microsoft MemberRole assembly were removed. DotNetNuke includes a Role Provider, a Profile Provider and a Member Provider that works directly with ASP.Net membership. When the MemberRole dependency was introduced in DotNetNuke v3.x, many portal administrators who used the multi-portal Single Sign-On capability in DotNetNuke v2.x had to resort to third-party solutions to make SSO work across portals. With DNN v4.3 (possibly v3.3 also; I have not tested), it looks like SSO, or at least the potential for SSO is back.
If you add a row for a user in the UserPortals table, the user will effectively be able to authenticate seamlessly to every portal for which her/his user ID has a portal ID assigned. It’s that simple. Everything works as you would expect — roles are portal-specific; the user’s profile is portal-independent and authentication works regardless of which portal a user initially logs into.
Implementing a UI for administering SSO looks to be as simple as having a module where you can link/unlink users to/from portals. Nice.
by Nik Kalyani
Saturday, July 22, 2006 6:52:49 PM (Pacific Standard Time, UTC-08:00)
It’s easy to persist settings for an instance of DotNetNuke modules using ModuleController.GetModuleSettings(moduleId). But sometimes you want module settings to apply to all instances of a module within a given portal. I needed to do this for a module and used the following code:
PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"]; ModuleController moduleController = new ModuleController(); ModuleInfo moduleInfo = moduleController.GetModuleByDefinition(portalSettings.PortalId,"Site Settings"); int globalModuleId = moduleInfo.ModuleID; Hashtable globalSettings = moduleController.GetModuleSettings(globalModuleId);
I suspect there may be better ways to achieve this objective, but this seems to get the job done. If anyone knows a better way please post in comments.
by Nik Kalyani
Saturday, July 22, 2006 10:35:11 AM (Pacific Standard Time, UTC-08:00)
I have had several emails from people inquiring whether I would be releasing a My Modules version for DNN4. The answer is "Yes." I'm trying to decide if I should base it on VS.Net WAP or WSP models. If you are not familiar with these models you can learn more about them on Scott Guthrie's blog.
I am trying hard to be objective, but I have a strong bias for the WAP model. Granted, it makes total sense for the DNN project to follow WSP since it allows DNN to be usable with the Express series of Microsoft developer products. However this is not an important consideration for most professional developers. Also, there is a significant cost to change all my existing projects to support the WSP model and it will take quite a bit of time to migrate and test hundreds of VS.Net 2003 projects and migrate them to the WSP model. I am sure there is some ROI there, but it's just not something that makes you sit up and take notice.
I have allocated some time this weekend to study the DNN Starter Kit in greater detail and make a decision on which model to follow for "My Modules." If you have any preference on the matter, please leave a comment or contact me using the link at right.
by Nik Kalyani
Tuesday, July 18, 2006 7:17:34 PM (Pacific Standard Time, UTC-08:00)
If you have a web application from which you want a user to be transparently authenticated to a DNN 4.x portal, you can do it quite easily using a URL. Assuming a scenario where the usernames/passwords are synchronized, an easy way to accomplish this is as follows:
1) Have a link or button on the web application which contains the username and password. Now, it goes without saying that you do not want this in plain-text and should encrypt both and share the key between the web app and the DotNetNuke portal. A good solution for this is Secure Query Strings. Since the referenced article does a great job of explaining how these work, I will not dwell on the topic.
2) At the receiving end (i.e. the DotNetNuke portal), you need an entry-point. A dedicated ASPX page is a logical choice. The code for the page needs to grab the querystring parameters and decrypt them. Once this is done, you have the credentials necessary to authenticate the user. The below code should do the trick:
using System; using System.Web; using DotNetNuke; using DotNetNuke.Entities.Portals; using DotNetNuke.Security; using DotNetNuke.Common;
namespace DotNetNuke.RemoteAuthentication {
public class DnnAuthentication {
public static bool Authenticate( string username, string password) { PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"]; PortalSecurity portalSecurity = new PortalSecurity(); string ipAddress = HttpContext.Current.Request.UserHostAddress;
if (portalSecurity.UserLogin( username, password, portalSettings.PortalId, portalSettings.PortalName, ipAddress, false ) == -1 )
return (false);
else
return (true);
}
}
}
The above solution is trivial and is going to be practical in a limited number of situations. However, it can be a good starting point for a more robust solution which may also include creating the user account automatically on the DotNetNuke portal.
by Nik Kalyani
Wednesday, February 01, 2006 7:53:24 PM (Pacific Standard Time, UTC-08:00)
The IE7 toolbar has an RSS icon that is ordinarily grayed-out, but lights up when visiting certain web pages.
Clicking the icon displays a list of feeds available on the page. When
you select a feed you see a formatted version of the feed along with
options to subscribe to the feed and change the sort order of items.
Once you subscribe to the feed, it gets added to the “Favorites Center”
which you can open to organize your feeds or view them.
If you are a web developer and have made RSS feeds available on your
web pages, you can make discovery and subscription of these feeds
easier for IE7 users by adding a few elements to your page
that announce the presence of the feeds. Adding
a <LINK> tag to the page Head with the correct
attributes will do the trick. For example, my blog has the following:
<link rel="alternate" type="application/rss+xml" title="My RSS Feed" ref="http://blogs.speerio.net/peerio/SyndicationService.asmx/GetRss" />
As you can see, this is quite simple; you just have to add the
attributes “rel,” type,” “title,” and “ref”. This is a simple
addition that will instantly make your RSS feeds easier to
consume.
by Nik Kalyani
Friday, December 23, 2005 5:25:13 PM (Pacific Standard Time, UTC-08:00)
Whew…another DNN Newsletter done and sent. We have some really interesting nuggets of information in this one, so do check it out. Now to sit and track the response. I really enjoy this part. It’s fun and informative reading the community’s feedback to the Newsletter and to the survey.
This edition announces the release of the DotNetNuke Benefactor Program too. A lot of thought and planning went into developing this program and it presents an interesting alternative to open source projects just going completely commercial. This program allows DNN to maintain its open source ideals, but provides a way to get some voluntary funding from the community.
by Nik Kalyani
Monday, August 08, 2005 8:27:34 AM (Pacific Standard Time, UTC-08:00)
I have not yet released a DNN 3.x-compatible version of my SkinWidgets suite. This is because my vision for this suite exceeds my current ability to do it justice. Ultimately, I want to merge SkinWidgets, Skinergy and a few other skin-related goodies I have as the ultimate skinning toolbox for DotNetNuke along with a large number of high-end skins created by professional graphic designers.
My idea of skins is a little different from most skins found in the DNN realm, so I want to clarify. For me, a skin should be more than just a visual layer for a DNN portal. I think skins should have a personality and the necessary bits to fully support that personality. For instance, if the skin is for a teen portal, it should not only have graphics that appeal to such an audience, but also widgets, doodads, etc. that instantly give the portal U.I. elements that fit the usability requirements of that audience.
Since it will take some time to work on this, I have prepared a DNN3 compatibility release of SkinWidgets. Existing customers can obtain it by emailing support at speerio dot net. It's the same as the DNN2 package except that it works on DNN3.
by Nik Kalyani
Thursday, August 04, 2005 10:50:19 PM (Pacific Standard Time, UTC-08:00)
As some of you may know, I collaborated closely with Shaun Walker and others on the DotNetNuke® Core Team to develop the DotNetNuke brand identity. It's not quite done and is still evolving, but I am quite proud of my role in the team effort that brought the new DotNetNuke logo to life in a relatively short period of time. I had promised Shaun that I would document the process we went through, and I have started doing that, complete with scans of sketches/doodles etc. that showed how the logo evolved. I will publish the document very soon.
Recently, the official DotNetNuke Trademark Policy and Logo Guidelines were published. Even though we took care to ensure that the policies are sufficiently detailed to cover most situations, and we even provided visual examples, I am baffled by the types of questions that people post or email. It seems as if some people are just plain lazy. They don't want to take the time to read and would prefer to waste your time by asking questions that are already very clearly answered. It sounds a bit harsh, but I cannot think of a better explanation.
Even more perplexing to me is the sheer number of people who just don't get the concept of branding. For whatever reason, these people believe that taking someone else's brand (in this case DotNetNuke) and somehow adding to it their company name or some other graphic element results in a "cool" brand for their use. Again, I am being harsh, but seriously, how can you categorize this behavior as anything else but "clueless?" Don't people realize that this simply demonstrates their unoriginality and their inability to give their company or business its own unique identity?
Any self-respecting artist prides her/his work, and I am no different. Although legally the DotNetNuke brand belongs to Perpetual Motion Interactive Systems, I am still bothered to see my work bastardized by people. Additionally, it sucks to see the DotNetNuke brand diluted by such leeches. I think the people who do this are quite aware of what they are doing. They are just missing this thing called a conscience.
by Nik Kalyani
Tuesday, July 05, 2005 6:42:52 PM (Pacific Standard Time, UTC-08:00)
Now that I have made significant progress in my WebDAV server API implementation, I can post some details.
My goal is to create an API that faithfully implements RFC2518. This RFC outlines the Http/1.1 Extensions that constitute the WebDAV protocol. There are two levels: Level 1, general WebDAV support, and Level 2, locking support. I plan on supporting both levels, but for the 0.xx release will release with Level 1 support only.
I have designed the API so any developer who knows how to code with a .Net language can use the API. Zero knowledge of WebDAV is required. To use the API, a developer would need to:
1) Reference the API assembly from her/his class project.
2) Provide an implementation of abstract classes WebDAVCollection and WebDAVItem. Basically, you have to map your data store collections and items so that when the API requests a collection or an item, it gets one.
3) Provide an implementation of abstract WebDAVAuthentication class.
To put it in use, you have to:
1) Configure IIS to support file extension .davx and have it respond to all verbs (the extension is irrelevant; if you want, you can have it be .foobar, as long as it responds to all verbs).
2) Add a line similar to the following in your web.config: <add verb="*" path="MyFiles.davx" type="MyCompany.WebDAV, MyCompany.WebDAV" />
3) Create a file with the name used in #2 (i.e. MyFiles.davx). This file can be empty.
With this in place, Windows or Mac clients can natively map a drive letter using http://yourserver/MyFiles.davx as the path. Alternately, they can directly open a resource as a file from applications such as Word, Excel, HomeSite etc.
I have designed the API so each unique data store type on the server, would have an end-point ({something}.davx) and a line in the web.config.
For example, a handler such as DotNetNukeHTML.davx could be placed in the root of a DotNetNuke portal. A user on a Windows or Mac platform could then map a drive letter using http://yourserver/DotNetNukeHTML.davx/NNN where NNN is the DotNetNuke Portal ID. The user would then see a folder structure where each folder corresponds to a DotNetNuke tab. Within each folder are files corresponding to DotNetNuke module instances. Initially I plan on supporting only the HTML and NukeHTML modules so you would only see files for each instance of these modules. You could then open any of the files using Word, HomeSite or any other HTML Editor and edit the file and save it back. Of course, you can also create a new file which will result in a new module instance being added to the page.
This will basically eliminate the need to use a browser-based editor to create/modify portal content. Just use any rich Windows or Mac editors at your disposal.
This is one example. Using the API, you could also allow full file management on the web server, view a mailbox as a collection of EML files, open up a database table in Excel, there is really no limit to the possibilities. As long as you can figure out a way to present your data (any format) as a data stream that represents the file content expected by a WebDAV-enabled desktop app, you can enable native WebDAV access to your app.
Here's an illustration that gives an overview of how things will work:

by Nik Kalyani
Friday, June 24, 2005 11:29:12 AM (Pacific Standard Time, UTC-08:00)

Hmmm...maybe one size smaller...
by Nik Kalyani
Wednesday, June 22, 2005 4:19:15 PM (Pacific Standard Time, UTC-08:00)
The Skinergy controls suite has been released and is available to registered users of Speerio.net from the Downloads page. It's a good idea to review the Skinergy website at http://skinergy.speerio.net as it contains detailed information on usage.
I am off to pursue some skinergy of my own considering it's my wedding anniversary today. 
Enjoy!
by Nik Kalyani
Wednesday, June 22, 2005 7:09:01 AM (Pacific Standard Time, UTC-08:00)
The Skinergy suite is almost ready for release. I had some trouble with the Control Panel, but it turned out to be a scripting issue with IIS. Delayed things a bit, but the demo/documentation site is almost ready. Check it out at http://skinergy.speerio.net.
I will release the package this evening after returning from my daytime cruise so my wife and I can celebrate our second wedding anniversary.
by Nik Kalyani
Monday, June 20, 2005 6:53:54 AM (Pacific Standard Time, UTC-08:00)
I have a profound dislike for Newsletters, mostly because I receive too many unwanted ones. Unsubscribing is risky enough, so my current solution is to have a Thunderbird filter that tags the message as spam. Works quite well.
As a business owner, I do have to think about marketing though. I have resisted sending out email Newsletters to-date because that would be quite hypocritical of me. I have been toying with the idea of a rich RSS Newsletter of-late and I think this is the approach I am going to take. RSS Newsletters have significant benefits over traditional email campaigns:
1) 100% permission-based...you don't get to see it unless you consume the feed. None of the quadruple opt-in with triple permission acknowledgement and the kitchen sink required for email.
2) ZERO cost and reliable ... no error-prone sending process using email software that somehow always finds a way to fail.
3) Minimal effort ... create the Newsletter, post it and you are done.
4) General trackability ... no covert email beacons and the like. If someone views it, you know it.
Interestingly enough, I had an email correspondence with Christoph Richner, the creator of the free Raccoom XML framework which I use in all my modules. I respect Chris' development skills as the Raccoom framework is way better than any RSS code I have seen anywhere, including DotNetNuke. I think Chris and I may collaborate on making the Speerio NewsWire module into something quite interesting. One feature that will be in for sure is RSS Newsletters. I will post again once I have more detail.
by Nik Kalyani
Sunday, June 19, 2005 7:02:47 AM (Pacific Standard Time, UTC-08:00)
I am quite excited! I am putting the final touches on my Speerio "Skinergy" suite of tools for DotNetNuke.
After the DotNetNuke site was launched with the new skin and the usability controls for adjusting text size and layout width, I got a flood of emails asking for the controls. Since the Core Team wants to protect the DotNetNuke brand identity, releasing the DotNetNuke site skin to the community is out of the question. So I started work on creating a community version of an alternate skin.
Some significant scope creep later, we now have Speeio "Skinergy" -- a suite of three usability enhancements plus one control panel enhancement all packaged in the new Speerio "Z" skin.
The enhancements are:
Text Size Control: Allows the user to choose their preferred text size for a site (remembered in cookie)
Layout Width Control: Allows the user to choose their preferred layout width for a site (remembered in a cookie)
Color Palette Control: Allows the user to choose their preferred color palette for a site (remembered in a cookie)

Admin Control Panel: Revised DotNetNuke control panel in a popup dialog

Got some more spit and shine to do on this package, but I fully expect to release Skinergy to the community tomorrow.
[Edit: I have posted a preview at http://skinergy.speerio.net. There is a problem with the Control Panel w.r.t. postbacks and I am currently working to resolve this issue. I will release the package once I have a fix.]
by Nik Kalyani
Friday, June 17, 2005 1:54:57 PM (Pacific Standard Time, UTC-08:00)
by Nik Kalyani
Friday, May 27, 2005 3:19:54 PM (Pacific Standard Time, UTC-08:00)
Laverne Douglas asks:
I would like to ask some questions about your site and how you implemented some of the features. But to be fair to all your viewers; it would be best answered in your blog. Specifically I would like to now about your store and downloads pages.
The download appears to be your navigator showing hidden pages on your site with roles assigned to allow downloads of items.
The store is unique from my perspective. Is it of your own design?
Nik's answer:
The Downloads page of the site is indeed the Navigator module being dog-fooded prior to release. Basically, Navigator allows you to create a hierarchy of nodes organized into folders. Each folder can either be public or private. If it's public, it is visible on all instances of Navigator on a portal. Each folder also has role-based access.
Each node can be one of the following:
URL: Which can be a GET or a POST. The POST can be used to authenticate to other apps for example. It can also be an RSS feed and can open on the right or in a new window.
HTML Content: This can be any content. Optionally, you can have a downloadable file, and optionally you can have a custom license that is presented before download. This is what you see on the Speerio Downloads page. Finally, you can choose to have Page Ratings for the node and also attach the node to multiple, independent RSS feeds through the NewsWire module. Access to the node is role-based and you can choose if the security is for the node AND file attachment, or only for the file attachment.
ASP.Net Control: This can be any ASP.Net control that is capable of being initialized without code-behind. You can specify property values for the control and the control will be initialized with those values. You can also pass any User or Portal property value to the user control. This allows you to easily integrate non-DNN content into DNN.
It has some other bells and whistles such as DNN Help integration, drag and drop node ordering, etc.
The Navigator module will be available as a free Community Edition and also as a Pro Edition. The Community Edition will have basic URL and HTML hierarchical content display. The pro version will have everything described above. The DNN 2.x version is being dog-fooded on my site, and the DNN 3.x version is doing that on DotNetNuke.com.
The store is the standard SnowCovered Portal Store offering. I modified it (not much actually...mostly CSS and graphics) to be more consistent with the Speerio brand. The only significant enhancement I made is to add a more robust PayPal payment processor that has SMS notification. When an order comes through, I get a text message on my mobile and then when the customer downloads the file, I get another text message. If more than 15 mins. elapse between the two, I know there is a problem and can pro-actively contact the customer and resolve the problem.
by Nik Kalyani
Saturday, May 07, 2005 9:26:05 AM (Pacific Standard Time, UTC-08:00)
Many customers of my File Manager Pro module have asked for the ability to edit documents directly (i.e. click on an edit icon in the file listing in their browser, then edit and save the document). This is easily done for text-based files, and indeed that capability is already implemented. However, for files that require a client-side application, this is not at all simple.
Let's use Microsoft Word as an example. If you click on a Word doc link in your browser, by way of the mime type (or extension as a fall back), the browser is able to determine which application should be launched. It downloads the file to temp storage and then passes on the location to the app after launching it. Any changes made to this document are made to the copy in temp storage and have no bearing on the original file on the web server.
To facilitate the editing of documents on web servers, both server and client must support WebDAV (Web Distributed Authoring and Versioning), a protocol that extends HTTP by defining standards for web document authoring, versioning and publishing. IIS5 and IIS6 natively support WebDAV (although the capability is not on by default.). Windows XP and Mac OS X natively support the ability to map/mount a WebDAV collection as a virtual drive. All Office apps, most Adobe apps, and many other popular applications support the ability to transparently work with documents using the WebDAV protocol. So what's the problem?
For servers on an Intranet, it is easy to enable WebDAV and create an easy to use shared document area. But then again, on an Intranet, why bother when you could have a shared drive. In a hosted scenario, WebDAV is much more difficult to implement due to the security concerns it poses. Currently, IIS does not provide a way to enable/disable WebDAV on a per web basis. So if a hosting provider were to enable WebDAV it would potentially compromise all websites on the server that were not properly secured. For this reason, WebDAV support in hosted scenarios is almost non-existent.
Also non-existent (as far as my Googling indicates), is a "server" API for a custom WebDAV implementation using ASP.Net. There are many client implementations, but if you want to be able to have WebDAV clients access a database-driven document repository, for example, you are on your own. This brings us back to File Manager Pro.
I was quite intrigued by everything WebDAV had to offer and so started doing some testing. I was pleased to find after a few hours of coding that it is possible to write a |