 |
| Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
 |
|
|
|
|
|
|
| Glenn Wiley's Blog |
1/20/2009
It doesn’t just remove the virtual machine…it DESTROYS IT!!! 1/5/2009
Took way too long before I figured this out. So SPIisSmtpServer is one of those darn internal classes in SharePoint that I needed to utilize. After digging around in Reflector, I finally saw some code that’s getting a DirectoryEntry object on “IIS://localhost/smtpsvc”. Just what I needed. I was able to use this code to get the fully qualified domain name:

12/24/2008
I have a personal website hosted by Webstrike Solutions. Their responsiveness to any technical questions I've had is amazing. I would be happy to get a reply within a business day...these guys respond within an hour quite often. So, my website is hosted on Windows Server 2003 running IIS 6. If you need to know how to configure your ASP.NET MVC application to run under IIS 6, check out Phil Haack's excellent post here. First thing I did was email a request to Webstrike to set up an application extension mapping for .mvc to the aspnet_isapi.dll. After that was done, I set up a very basic ASP.NET MVC site (which, by the way, if you want a clean, no-frills setup, check out this post from Guy Burstein). All I needed to do next was upload the files to my web server and see if it worked. One thing I initially forgot is that the web host likely doesn't have ASP.NET MVC installed on the server, so be sure to upload the System.Web.Abstractions.dll, System.Web.Mvc.dll and System.Web.Routing.dll files to your bin directory. Once I did that, I was greeted with my Hello, World message from my shell application. Now to add some meaningful content... 12/22/2008
I'm convinced the .Net Compact Framework is the red-headed step child of MS. Every time I work with it I encounter some sort of mysterious voodoo going on. My Visual Studio environment (VS2008 SP1) has already crashed on me twice in the past hour with my favorite mysterious error message, telling me that it encountered an exception and has to close now, so sorry. My all-time favorite bit of magic involves some code like this:
if (someControl.Visible) { ....do something someControl.Visible = false; }
This is a contrived example of something in real code...check if a control is visible, if so, do something and then set the visible property to false. Nothing too complicated here. Amazingly, when you step through the debugger, passing the statement that sets the control's visible property to false, you can check the visible property and it is still true. WTF? Hover over someControl.Visible, or type it into the immediate window, or do a quick watch on it - same result, and it's reproducible. This kind of nonsense drives me crazy and it's only one of many such things I've encountered with .Net CF development. And I'm using v3.5...man, I really feel for anyone who had to work with this in earlier versions. I really hope v4.0 is better. I probably don't have to tell anyone who's worked with this before about how painful the debugging process is. Hit F5, get some coffee, come back and wait while it finishes deploying, get another cup of coffee, and maybe this time it's ready to step through. Ugh. Okay, rant complete. 12/19/2008
I just took the 70-536 exam (Microsoft .Net Framework - Application Development Foundation) and I have to say it was disappointing. I've read about this exam being rather nefarious. I signed up for the free second shot, so my strategy was to take the exam cold without studying, and if I pass great, if not, I'll know what to study before I re-take it. By my calculations I was within a question of passing - close, but no cigar. The exam questions I got really didn't seem appropriate for what I'd expect from an overall .Net development foundational exam. The questions I got were focused very heavily on globalization and security - important, but there are other foundational concepts I expected to be given equal treatment. I think what I liked least about this exam is the number of questions focused on something that I personally have had little to no experience in, and will likely not utilize. I did very well on the globalization and security questions, but my weak areas were "embedding configuration, diagnostic, management, and installation features into a .Net application" and "Implementing serialization and input/output functionality in a .Net framework application." This was very much a surprise to me. I would've expected those two areas to be stronger for me because I've had more experience there. After all, what application doesn't deal with configuration management, diagnostic management and installation features? Oh well. I'd say a lot of the questions were bordering on being trivia questions, or just doing something in a completely different or unusual manner. As with most MS exams, it's a bit of a game anyway. There are usually one or two answers that are totally ridiculous, and then out of the other two, they may both look feasible, but even if one appears more correct, it just doesn't quite sit right because it's not the most straightforward or sensible answer. It'd be nice if these exams were fill-in-the-blank. No multiple guess - either you know it or you don't. 12/17/2008
I created a Twitter account awhile back (gwiley72), but didn't really get into it at first. So I'm giving it another go around. I've heard others talk about the benefits of "tweeting" amongst peers, so I'll give it a go. I can see the benefit of being able to put out a short message about something you're working on and if someone following you has some information it could save some time/pain. My concern is that it's yet another distraction to keep me from getting real work accomplished. I'm one of those people that can't stand to have more than a couple of unread email messages in my Inbox, so I've had a hard time developing the discipline to check my email less frequently (yes, I know you can still be responsive and not answer every message immediately). I'll just have to figure out the best way to incorporate this into my daily routine without getting too overly concerned about how fresh my status is :)
Now I doubt that too many people beyond my co-workers actually see my blog, so I'm always eagerly awaiting the first comment or two that lets you know someone has actually viewed one of your posts (good or bad). It stinks when the only comments you see are spam. Ugh. That's the reason why I have comments set up to go through approval before getting posted.
I've been wanting to get up to speed on NHibernate for awhile, even more so now that most blogs I read have at some point mentioned the expected demise of LINQ to SQL. I've been working on an ASP.NET MVC website in which I began using LINQ to SQL for a data provider, but have decided to utilize NHibernate instead. I've been watching a series of screencasts put together by Steve Bohlen which can be found at http://www.summerofnhibernate.com/. These are some of the best screencasts I've had the pleasure of viewing. I've played around with NHibernate a little before, but have always found it a bit overwhelming to sift through the vast amount of material out there. I was delighted to find these screencasts, which provide a great overview of NHibernate's features. I greatly appreciate folks who dedicate their time to put out material like this and I've made a donation to show that appreciation. I always make it a point to give some sort of donation towards the open-source applications, free training materials, etc. that I utilize and would encourage others to do the same. 11/24/2008
I've been using Typemock for awhile, and was delighted to find out they were creating a tool targeted at SharePoint developers. See the text below from Typemock's Eli Lopian:
"Typemock are offering their new product for unit testing SharePoint called Isolator For SharePoint, for a special introduction price. it is the only tool that allows you to unit test SharePoint without a SharePoint server. To learn more click here. The first 50 bloggers who blog this text in their blog and tell us about it, will get a Full Isolator license, Free. for rules and info click here."
Awesome!
| Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | FileType | xsn | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.2 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.3 | 255 | | Edit in Browser | /_layouts/images/icxddoc.gif | /blogs/glennw/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser | 0x0 | 0x1 | ProgId | InfoPath.Document.4 | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/glennw/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
|
|
|
|