Blog Home  Home Feed your aggregator (RSS 2.0)  
Scott Klueppel's Blog - Javascript
.NET Discourse
 
# Tuesday, December 18, 2007

A great series of blog posts by Scott Guthrie about the ASP.NET MVC Framework coming soon as part of the ASP.NET 3.5 Extensions release.

Upon hearing the news, a few friends started questioning its intent, usefulness, and longevity. Many of us have been using or contemplating conversion to the MVP pattern, most recently using WCSF. The recent split of the MVP pattern by Fowler has caused many believers to question their faith. While many are still "proving" MVP, MVC has been around for nearly 30 years. Some believe that MVP and MVC can co-exist. Here is a comparison of MVP and MVC that concludes by painting an optimistic picture of MVP and MVC contributing to each other.

ASP.NET MVC appears to be the answer to my unit testing, REST, and code separation prayers. Thank you ScottGu and team!

Check it out!

Tuesday, December 18, 2007 9:06:20 PM (Eastern Standard Time, UTC-05:00)  #    Comments   .NET Framework | AJAX | ASP.NET | C# | Javascript  | 
# Thursday, August 16, 2007

It's only a week away, and there are still spaces left.

Information   Register    Sessions

Thursday, August 16, 2007 10:42:12 PM (Eastern Standard Time, UTC-05:00)  #    Comments   .NET Framework | AJAX | ASP.NET | C# | Database | General | Javascript  | 
# Sunday, November 05, 2006

The starter kit already allowed individual file upload, and batch upload from a directory which requires files to be moved to Upload directory by FTP.  The starter kit also stores the images in the database. While I prefer this method for most files, I don't prefer it for images. I changed a few methods to store the images in an images folder, and modified the image serving handler accordingly.  The album page load time is a fraction of what it was with images in the database.

I also created an XP Publishing Wizard that allows any user with credentials to create/choose an album, and upload images from Windows XP. The beauty of the XPPW is that it can resize the images before uploading. That way all of us with 10 megapixel cameras no longer have to spend any extra time resizing to prevent reaching a web host storage quota.

A few articles helped me figure this stuff out:

Creating the wizard was easy enough.  You first need to create a registry entry in the following format:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\PublishingWizard\PublishingWizard\Providers\Your Photo Gallery]
"displayname"="Your Photo Gallery"
"description"="Online Photo Albums"
"href"="http://www.yoursite.net/XPPublish.aspx"
"icon"="http://www.yoursite.net/favicon.ico"

Next is a single aspx page that accepts the files.  The page handles user login, album creation/selection, and accepts multiple files in a single form post.  All the hard work is done by some javascript methods that handle the XML sent from Windows XP.  The javascript looks like this:

        <script language='javascript'>
            function startUpload()
            {
                var xml = window.external.Property("TransferManifest");
                var files = xml.selectNodes("transfermanifest/filelist/file");
                var albumId = document.getElementById("Album").value;

                for (i = 0; i < files.length; i++)
                {
                    var postTag = xml.createNode(1, "post", "");
                    postTag.setAttribute("href", "http://yoursite.net/XPPublish.aspx");

                    postTag.setAttribute("name", "userpicture");

                    var dataTag = xml.createNode(1, "formdata", "");
                    dataTag.setAttribute("name", "MAX_FILE_SIZE");
                    dataTag.text = "10000000";                    
                    postTag.appendChild(dataTag);
                    
                    var dataTag1 = xml.createNode(1, "formdata", "");
                    dataTag1.setAttribute("name", "btnUpload");
                    dataTag1.text = "Save";
                    postTag.appendChild(dataTag1);
                    
                    var dataTag2 = xml.createNode(1, "formdata", "");
                    dataTag2.setAttribute("name", "hidAlbumId");
                    dataTag2.text = albumId;
                    postTag.appendChild(dataTag2);

                    files.item(i).appendChild(postTag);
                }
                
                var uploadTag = xml.createNode(1, "uploadinfo", "");
                uploadTag.setAttribute("friendlyname", "Family Photo Gallery");
                var htmluiTag = xml.createNode(1, "htmlui", "");
                htmluiTag.text = "http://yoursite.net/Personal/Albums/Photos.aspx?AlbumID=" + albumId;
                uploadTag.appendChild(htmluiTag);

                xml.documentElement.appendChild(uploadTag);

                window.external.Property("TransferManifest") = xml;
                window.external.SetWizardButtons(true,true,true);
                document.getElementById("divContent").innerHtml = xml;
                window.external.FinalNext();
            }

            function OnBack()
            {
                window.external.FinalBack();
                window.external.SetWizardButtons(false,true,false);
            }

            function OnNext()
            {
                if (document.getElementById("divLogin"))
                {
                    document.getElementById("LoginArea_Login1_LoginButton").click();
                }
                else
                {
                    startUpload();
                }
            }

            function OnCancel()
            {
            }

            function window.onload()
            {
                window.external.SetHeaderText('Photo Gallery','Your Photos');
                window.external.SetWizardButtons(true,true,false);
            }
        </script>

In case you haven't seen the XP Publishing Wizard in action, check out these screenshots:

 

 

 

 

 

 

 

 

 

Sunday, November 05, 2006 9:35:38 PM (Eastern Standard Time, UTC-05:00)  #    Comments   ASP.NET | Javascript  | 
# Tuesday, August 30, 2005

Rick Strahl delivered another excellent white paper. In addition to his white papers, he has one of the most readable and intelligent blogs on the web.

White paper: Past the AJAX Hype - some things to think about

Tuesday, August 30, 2005 8:57:57 PM (Eastern Standard Time, UTC-05:00)  #    Comments   AJAX | ASP.NET | Javascript  | 
# Saturday, July 23, 2005

Dmitri Khanine and Phil Carrillo author this fine article on Javascript RPC. Finally, an article that mentions separation of business and presentation logic, and implementing MVC in ASP.NET. We need more patterns and practices discussions, and a lot less "look what I can do" articles.

MSDN Article: Life without Refresh

Saturday, July 23, 2005 9:01:30 PM (Eastern Standard Time, UTC-05:00)  #    Comments   AJAX | ASP.NET | Javascript  | 
Copyright © 2008 Scott Klueppel. All rights reserved.