Scott Hanselman

InfoPath supports only Document Literal - That's not lame at all!

April 6, '03 Comments [3] Posted in Web Services | XML | Tools
Sponsored By

Astoundingly lame: InfoPath 2003 has become the first alleged Web Services tool I've worked with that can't consume Cape Clear's Airport Weather Web Service. Point InfoPath at http://live.capescience.com/wsdl/AirportWeather.wsdl and what you get back is "InfoPath cannot work with this Web Service because it uses RPC encoding. Only document literal encoding is supported." So much for the wide support of XML standards they're always promising. [Larkware]

Mike thinks that InfoPath is lame since it can't do RPC Enc.  I submit that creating a forms/document-centric view of an RPC endpoint would be icky at best.  Since InfoPath (and Microsoft and others) see the world of XML messaging as a document-centric one, it makes sence that this new forms creation tool would only speak Doc Lit.  Frankly, I'd have been disappointed if it DID support RPC encoding.  If it did, wouldn't it be a development tool?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Scott Hanselman, MC*.*, Good SATs, AS, Almost BS, 3 digit IQ, blah blah blah...

April 5, '03 Comments [1] Posted in Web Services | Gaming
Sponsored By

Dear Blog,

Lately I've noticed a lot of people (no names, you know who you are) who are Microsoft Technologists writing articles, blogging, emailing, and suffixing their names like "Joe Blow - MCAD, MCSD, MCDBA, MCT, MCSE."  Is this really necessary?  Is it really informative?  Isn't it like "Joe Blow - I know my shit so step lively!"  Is it better to see all these certifications or would you rather see "Joe Blow - BS CS, MS CS, MBA, 1400 SATs, 158 IQ."  I have a great friend in Boston who's team is arguably the most certified on the planet.  It became a game for them.  For a while in 2000, one of his guys had passed every test MS offered. Sure, I'm MS Certified up the wazoo, who isn't?  Is/are certification(s) going to ship my product on time?  Will my product, written by an MCSD, scale to 20,000 concurrent users?  Is my SQL Server database, written by a MCDBA, indexed appropriately?  Certifications aside people...ship software.  Shrinkwrap it and sell it.  Run successful projects and deliver on time and under budget.  Enjoy your work and teach others.

Signed,
Scott Hanselman, MC*.*

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Unreasonable Seizure

April 5, '03 Comments [0] Posted in Movies
Sponsored By

This is insane and scary. Mike worked on the same Intel campus I did. There's no proof he's done anything. He gave a few thousand dollars to charity, many years ago. He's a US citizen who's been taken from his family with no due process. [KeithBa's Blog]

Yes, this is getting very disturbing.  I'm only one degree of separation from Mike, and I think about these things from an INS point of view as my wife isn't a U.S. Citizen yet, and may choose not to become one.  It's reminding me of The Seige, a medicore but disturbing movie where Arab-Americans are quarantined like the Japanese were in 1942.  This also makes me wonder if there's some unspoken rule of law that U.S. Citizens by Naturalization are somehow less protected than Citizens by Birth.  Know Your Rights.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

More ASP.NET Globalization/Localization/Internationalization and my mad, mad, mad, mad life

April 3, '03 Comments [0] Posted in Web Services | ASP.NET | Internationalization
Sponsored By

For some reason I keep wanting to apologize, presumably to myself, whenever I don't blog for a day.  But I've been so heads-down on some really fun ASP.NET stuff.  Plus, this is my last big term before my graduation on June 6th (anyone want to come?).  I'm taking classes from 6pm to 10pm most days.  This week was crazy...I worked M-F, went to school, T, Th, F, and Weds I drove up to Redmond to meet with COM+ folks and drove back in the same day.  I tell ya, it's always 3hours up from Portland and 5 hours down.  Traffic on I5 is unbelievable.  Anyway, all this plus an interesting programming project I'm obsessed with, and PPTs for at least 6 different presentations.  Then, the PCC Engineering folks call me to do a lunch seminar tommorow, and what do I do? I say YES.  :)  Madness.

At any rate, today I was localizing an eFinance application to Spanish, Chinese, and Arabic, and I noticed that after these lines:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strCulture);
Thread.CurrentThread.CurrentUICulture= Thread.CurrentThread.CurrentCulture;

all the currencies were formatted as the Locales currency, when I wanted to format them in the Banks currency, which of course is different than the "preferred language."  So, rather than messing with CultureInfo every time I wanted to format a currency, I really just want to override the NumberFormat for the CurrentThread's Culture, so number format strings like {0:C} would just "do the right thing."  So...

Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencySymbol = "$";

Actually I do a bunch of other stuff for the sake of being generic, storing a Default CurrentCulture away and querying it for it's CurrencySymbol...but you get the idea.  Overall I'm very impressed by the Globalization Namespace.  It's certainly more well thoughout for WinForms than WebForms, but with some thought (the devil's  in the details) I'm localizing everything on the page, the grids, column headers, menus, etc without a significant perf hit.

One interesting note...while changing to RTL (Right To Left) for Arabic, I've noted that when you switch to WebForm Design Mode in Visual Studio 2002 it YANKS the runat="server" attribute from my HTML tag!  What's THAT about?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

More tips from Sairama - Catching Ctrl-C from a .NET Console Application

March 31, '03 Comments [1] Posted in Web Services
Sponsored By

Ever want to catch Ctrl-C from a .NET Console Application and perform some crucial cleanup?  Well, you can...

using System;
using
System.Runtime.InteropServices;
using
System.Text;
using
System.Threading;

namespace Testing
{
/// <summary>
///
Class to catch console control events (ie CTRL-C) in C#.
///
Calls SetConsoleCtrlHandler() in Win32 API
/// </summary>
public class ConsoleCtrl: IDisposable
{
/// <summary>
///
The event that occurred.
/// </summary>
public enum ConsoleEvent
{
CtrlC = 0,CtrlBreak = 1,CtrlClose = 2,CtrlLogoff = 5,CtrlShutdown =
6
}

/// <summary>
///
Handler to be called when a console event occurs.
/// </summary>
public delegate void ControlEventHandler(ConsoleEvent consoleEvent);

/// <summary>
///
Event fired when a console event occurs
/// </summary>
public event ControlEventHandler ControlEvent;

ControlEventHandler eventHandler;

public ConsoleCtrl()
{
// save this to a private var so the GC doesn't collect it...
eventHandler = new ControlEventHandler(Handler);
SetConsoleCtrlHandler
(eventHandler, true);
}

~ConsoleCtrl()
{
Dispose
(false);}

public void Dispose()
{
Dispose
(true);
GC.SuppressFinalize
(this);
}

void Dispose(bool disposing)
{
 if
(eventHandler != null)
 {
  SetConsoleCtrlHandler
(eventHandler, false);
  eventHandler = null
;
 }
}

private void Handler(ConsoleEvent consoleEvent)
{
if
(ControlEvent != null)
 
ControlEvent
(consoleEvent);
}

[DllImport("kernel32.dll")]
static extern bool SetConsoleCtrlHandler
(ControlEventHandler e, bool add);
}

}

using System;
using
System.Reflection;
using
System.Diagnostics;

namespace
.Testing
{
class Test
{
public
static void inputHandler(ConsoleCtrl.ConsoleEvent consoleEvent)
{
if
(consoleEvent == ConsoleCtrl.ConsoleEvent.CtrlC)
{
Console.WriteLine
("Stopping due to user input");
// Cleanup code here.
System.Environment.Exit(-1);
}
}

[STAThread]
static void Main
(string[] args)
{

ConsoleCtrl cc = new ConsoleCtrl();
cc.ControlEvent += new
ConsoleCtrl.ControlEventHandler(inputHandler);
for
( ;; )
{
Console.WriteLine
("Press any key...");
Console.ReadLine
();
}
}
}
}

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.