Jon Box's Weblog :
Updated: 12/17/2004; 1:33:48 PM.



We do IT!

Subscribe to "Jon Box's Weblog" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.


Monday, December 13, 2004

Today, Darryl K. Taft wrote Strong Framework Supports Web Site:

When Sony Corp. needed a new Web presence for its professional services division, it turned to Microsoft Corp.'s .Net Framework and Visual Studio tools to build a secure site for customers ordering software, parts and services.

Sony chose a Microsoft-based solution over a Java-based platform, even though most of the company's applications run on J2EE (Java 2 Platform, Enterprise Edition), said Jim Bilchak, director of new business and technology at Sony Professional Services, a division of Sony Electronics Inc., in Park Ridge, N.J...

The ServicesPlus site uses .Net Web services to integrate Sony's internal systems, including an SAP (Service Advertising Protocol) system, an LDAP database, a mainframe-based IBM CICS, a VeriSign Inc. credit card validation system, and an Oracle Corp. database for account and order status information for credit card customers.

3:53:08 PM    comment []

Saturday, December 11, 2004

In the December issue of .NET Developers Journal, I did a review of a book from Addison-Wesley on SQL Reporting Services.  Titled Hitchhiker's Guide to SQL Server 2000 Reporting Services, this book is an entertaining yet an informative read.  Authored by Peter Blackburn and Bill Vaughn, the book comes with a DVD of video tutorials and samples.  They also have built a support site and book buyers get a free premium membership.

11:11:55 PM    comment []

Thursday, November 04, 2004

eWeek: NOV 4th, Serious IE Hole Opens PCs Up To Attacks


…Users could be attacked via a malicious Web page viewed in an affected version of IE or possibly through an HTML e-mail viewed in an application such as Outlook, Outlook Express, AOL or Lotus Notes that relies on the WebBrowser ActiveX control, according to researchers.
The bug has been confirmed in IE 6.0 on Windows XP with SP1 and all patches installed, as well as the same browser on a fully patched Windows 2000, according to an advisory from security firm Secunia. Microsoft Corp. has not yet released a patch.
Windows XP systems running Service Pack 2 do not appear to be affected, researchers said. Apart from installing SP2, system administrators can lessen the danger of an attack by disabling active scripting, avoiding unsolicited links that may lead to a malicious Web page and rendering e-mails in plain text, US-CERT said. Updated anti-virus programs may also be able to prevent some exploit attempts…

2:18:13 PM    comment []

Monday, November 01, 2004

OK, if you think Jon Box is smart, please do not read the rest of this.


Today, I had a Windows Service started throwing an error on the opening of a text file after months of working nicely.  After some investigation, I found a couple of issues that brought this to be.  First, another vendor’s application which creates the files installed an upgrade today and this new version keeps the file open all of the time (well, for today anyway, which is when I want to read it).  That’s cool – we should be able to handle that.  Here is my code that was opening the file in Read only mode:
fs = New FileStream("\\yada\yada.txt", FileMode.Open, FileAccess.Read)
What’s wrong with it?  Why would it throw an error for a file that is reportedly not locked by the other system?

So, after looking at the FileStream constructor documentation, there is a fourth parameter called share that is of type FileShare.  This is an enumeration that contains constants for controlling the kind of access other FileStreams can have to the same file.  The keyword here is “other”.  This is obviously an important thing to communicate to the file system but I somehow assumed this was the default activity with the FileAccess set to Read.  Now, it looks like:

fs = New FileStream("\\yada\yada.txt", FileMode.Open, _
          FileAccess.Read, FileShare.ReadWrite)

Problem solved (after a little embarrassment).


3:14:31 PM    comment []

Sunday, October 31, 2004

Last week, I was working with a client on an ASP.NET page that dynamically creates controls on the page.  The usual conversation in this endeavor is how to create the controls in such a way that they participate in ViewState and form value restoration (simple answer – recreate the controls every time in page_load or page_init and the rest happens magically).  But, this leads to another problem. 

Let’s say that the web page is for editing data in a database and that the database will not be updated until the server presses the SAVE button.  After several roundtrips to the server during editing and dynamically creating new controls, there will be some data on the page that would be lost if the user does a refresh (like doing a F5 in IE).  When a refresh is sent from IE, ASP.NET sees this as a new request and the page will probably display the current state of the data in the database and therefore loses the differences of the previous screen (if you’re doing stateless programming).  So, how can we protect the user out here?  The answer is: you can’t, but you can warn them of what is happening.
In my research of this issue, I found that Dino has a great MSDN article that shows how to build a HTTP Module (inherits from IHttpModule) that detects a page refresh.  This allows the developer to protect from operations that one would not want repeated (like deleting a customer’s order).  But that does not address this issue.
Fortunately, JavaScript has an event that fires right before the onUnload event called onBeforeUnload. This event has the benefit of allowing someone to cancel the leaving of the page. 
A good description of this is located at  Basically, when a function is registered for this event, the user gets a message prompting for leaving the page and the message is programmatically controlled.
Due to lessons learned from our Atomic class, we add the following to the Pre_Render event in our PageTemplate class () when we want to enable this functionality:

If Me._EnableBeforeOnLoad Then
sb.Append("function unloadMess() {" & Environment.NewLine)
sb.Append("    return ""You will lose any edit's since last Update"";")
sb.Append("}" & Environment.NewLine)

  sb.Append("function setBunload(on){" & Environment.NewLine)
  sb.Append("    window.onbeforeunload = (on) ? unloadMess : null;" & Environment.NewLine)
  sb.Append("}" & Environment.NewLine)


This logic exists within a set of other JavaScript related functionality that our custom page class would do – like setting focus, title, and other JavaScript functions (so don’t forget the SCRIPT tags).
Another thing that you’ll want to do with this technique is to have certain buttons disable the event.  For example, the button that saves the data should not warn the user that they could possibly lose data.  So, do the following for buttons that operate on the page:
Button1.Attributes("OnClick") = "setBunload(false);"
Note: this functionality is tied into the JavaScript functions defined in the pre_render event.
So, that’s it. The other benefit here is that other activities that would lose changes are caught as well (for example, clicking on menu links, closing the browser, typing in a new URL, clicking on the favorites list, etc).

12:08:35 AM    comment []

Saturday, October 30, 2004

From Microsoft:

 Introduction to the Microsoft Enterprise Platform for Mainframe Professionals

Another Mainframe Migration milestone!


Last week Microsoft launched the “Introduction to the Microsoft Enterprise Platform for Mainframe Professionals.” This is the first book in the series of guides for Mainframe professionals. The purpose of this book is to introduce Mainframe professionals to the Microsoft Windows platform, discussing and comparing the ecosystems in terms familiar to mainframe administrators and programmers. As well as introducing the Windows platform, the book provides guidance on moving workloads or entire systems off the Mainframe to a Windows/.NET platform. (A planned Volume 2 of this series will go into application migration issues and prescriptive guidance.)


The intended audience for this book is mainframe professionals in prospective customers’ data centers, as well as for our partners and our field organization.


You can download or access the book at:


Microsoft TechNet


Microsoft Download Center;displaylang=en


Mainframe Migration Alliance web site


1:10:10 PM    comment []

Friday, October 29, 2004

From the Expand Beyond October newsletter:
Healthcare survey shows that PDAs improve medical safety for 80% of respondents! And 91% of doctors say that PDAs improve their efficiency: Read more

Mobile patient data application example (SQL Server and Pocket PC): Read more
CSX Intermodal, uses BlackBerry devices to access their CRM Software software to 500 truck drivers: Read more
PeopleSoft mobilizes their salesforce application for BlackBerry devices: Read more

Expand Beyond also announced in the newsletter:
Last month Expand Beyond announced being awarded the fundamental and broad patent: System, Method, and Apparatus for the Wireless Monitoring and Management of Computer Systems. With 46 approved claims it has been received by the press and analysts as one of the most comprehensive and far-reaching patents awarded in the mobile business software industry to date.

In this issue, we announce our second patent, titled Pre-Authenticated Communication Within a Secure Computer Network. The new patent covers encryption on mobile devices, bringing powerful security protocols such as SSH2 to resource-constrained devices where they would not otherwise be available. Secure communications using Expand Beyond's technology is up to 50 times faster than traditional mechanisms.


10:11:59 AM    comment []

© Copyright 2004 Jon Box.

Click here to visit the Radio UserLand website.

December 2004
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Nov   Jan