Tuesday, January 31, 2006

I have a web service that I wrote for one of my smart client apps to check for one of three states of connectivity: no network, local network connection to web server, web connection to the web server.

So I ping the web service at the local i.p. The operation returns a mystical "hello world". If that times out, then I ping the service at the i.p. of the web server as it is exposed to the web via ISA Server. If that times out as well, then they are told (politely of course) that they are S.O.L. and need some type of network access to run these particular functions.

I have a client side assembly dedicated to this as well as the web service.

Now Visual Basic .NET 2.0 has My.Computer.Network.Ping to which you pass a URI and a timeout period. There is one small code benefit to me as I have to dynamically construct the web service URL and using the new method, I can just ping the i.p. and not care about a complete path to the web service. However, the Network.Ping method requires a bunch of permission that I don't need in order to hit the web service. So I think that for now, I'll leave it alone and wokr on other things for my migration.



Don't Forget: www.acehaid.org
Tuesday, January 31, 2006 10:33:46 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Pondering about being a user of development tools vs. being an inventor of these same tools... [read more...]

[A DevLife post]



Don't Forget: www.acehaid.org
Tuesday, January 31, 2006 5:38:16 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Well, it seems really official now. GE purchased Burlington based IDX in 2005 for $1.2 billion. Today I got an email from someone at IDX asking me to update his email address from @idx.com to @ge.com!

That's going to take some getting used to.



Don't Forget: www.acehaid.org
Tuesday, January 31, 2006 1:49:10 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Writing a conclusion or summary at the end of an article is hard work. In addition to it being deflating after the fun of hashing over lots of ideas, you have to be careful to avoid cliches like "powerful features".

Do you even read that last paragraph of a technical article? Does it help you get closure or is it just a dangling preposition, so to speak?



Don't Forget: www.acehaid.org
Tuesday, January 31, 2006 10:47:05 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

As I begin deploying new apps at my client site,  we made a discovery that we were easily able to correct.

After installing a .NET 2.0 app that uses Crystal Reports, we were unable to run Crystal Reports from our .NET 1.1 applications. We got an error indicating that it could not find the CrystalReports.Engine assembly.

The short story is that reinstalling CR .NET 1.1 after CR.NET 2.0 fixes the problem.

For the more curious, I did a little more exploration. I uninstalled the CR for .NET 2.0 but whatever it had stomped on did not fix itself and the 1.1 reports still did not work.

Then I reinstalled 1.1 which worked again and then 2.0 on top of it which again broke 1.1. (Just verifying that this was the direct cause.)

Lastly, we installed CR.NET 1.1 after CR.NET 2.0 and then all of the reporting works fine.



Don't Forget: www.acehaid.org
Tuesday, January 31, 2006 8:36:55 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, January 30, 2006

Well, not quite Paris, but how about the beautiful locale of Nice France?

This year, DevConnections is expanding it's venues to Europe with it's first conference in Nice form April 24 - 27th.

Many of the speakers that you are used to seeing at DevConnections in the U.S. will be there.

I won't be there, but will be doing four sessions at DevConnections in Orlando April 2- 6th.

See you in Orlando!

 



Don't Forget: www.acehaid.org
Monday, January 30, 2006 10:22:14 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, January 29, 2006
Filing all of the payroll and other tax paperwork. Not just paying the taxes, but getting all of the paperwork done for federal and state every quarter (if you are small like me, monthly if you are a big company) and the year end stuff. Hooray for accountants. I just got an envelope filled with forms all filled out, the envelopes already to go and a list of checks to write. Then slap the stamps on and off they go. This is not the biggie - doing the corporate return quite yet as I still have a lot of review to do before I send her all of that paperwork.

Don't Forget: www.acehaid.org
Sunday, January 29, 2006 3:25:18 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

There's a cool new .net 2.0 feature I didn't know about until I needed to do this a few days ago. If your application has FullTrust, you can use the System.Data.Sql.SqlDataSourceEnumerator to get a list of available SQL servers (2000 and 2005 only). The query returns a DataTable which you can just attach to a combobox or drop down list.

 Dim instance As SqlDataSourceEnumerator =      SqlDataSourceEnumerator.Instance
 Dim dt As DataTable = instance.GetDataSources()

Remember, though, this requires the assembly to have full trust. There is not a specific permission you can apply to use this otherwise.



Don't Forget: www.acehaid.org
Sunday, January 29, 2006 1:50:05 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I'm experimenting with a simple .NET 2.0 WinForms application and ClickOnce and still, as is my destiny, banging my head on the wall.

My latest frustration (while trying to use all of the built-in automated functionality) is trying to limit who has access to the downloads.

For a particular application, we only want it to run in-house on the intranet, yet our webserver is exposed to the www. Windows Authentication sounds like a good solution, but it doesn't work if you are trying to deploy requirements in addition to the main application.

If I have the IIS properites of the deployment site set to allow anonymous users, everything works peachy-keen. However if I use integrated authentication and no anonymous users, I'm going around in circles and getting "access denied" errors which are buried in a log file (not something I want my users to deal with). If I pre-install the prerequisites manually (.net 2.0, etc.),then I can install the application from the "launch" hyperlink.

I can't believe that I am still in this hole and trying to out-think the available tools to get what I want. Is it so unusual to not want the entire world to have access to my client's applications?

There is an msdn document called Server Configuration Issues in ClickOnce Deployments which addresses the authentication problem directly.

Server Authentication Issues

When you publish to a remote server that has "Anonymous Access" turned off, you will receive the following warning:

"The files could not be downloaded from http://<remoteserver>/<myapplication>/.  The remote server returned an error: (401) Unathorized."
Note

You can make NTLM (NT challenge-response) authentication work if the site prompts for credentials other than your default credentials, and, in the security dialog box, you click OK when you are prompted if you want to save the supplied credentials for future sessions. However, this same workaround will not work for basic authentication.

But even after following the above recommendation (where I have turned off anonymous access and selected integrated authentication, and am then prompted to log in) I can't follow through a full setup with requisites and the application. I have already described the result above.

Now I have the choice between just figuring out my own solution to this (not using the automatically generated publish page and building my own asp.net page for downloading some things anonymously and some things securely) or continuing to google endlessly to see if anyone else has dealt with this seemingly commonplace scenario.

Sadly this is just a tiny little exe and this down-the-toilet-again-weekend is making me more worried about getting my big multi-layered app working with ClickOnce.

Update about 2 hours later: After venting (in this blog post :-) ) I came up with a solution that is somewhat clunky but does the trick for now. I am modified the publish.htm in the following way:

  1. For the .NET 2.0 requirement, I put a hyperlink to the Microsoft's .NET 2.0 x86 redistributable download page.
  2. For the crystal reports .net 2.0 msi, I put a hyperlink to the msi on our web server.
  3. I changed the Install button to point to myapp.application, instead of setup.exe. Setup.exe tries to install the requirements.
  4. I wrote text for #1 and #2 to explain to the users how to determine if .NET 2.0 or crystal reports needs to be installed, how long it might take and that this only needs to be done once on their computer.

I also had to muck with proxies on the machines on the intranet. They get at the web through isa-server. So for the local link to publish.htm and the msi for crystal, everything was okay. With the isa-server proxy set up for non-local sites, the microsoft link was okay. But even with "don't use proxy for local urls", I couldn't get the myapp.application to install. Therefore, I had to explicitly put the ip address of intranet web-server into the exceptions list on the Advanced page for the proxy settings. What I'm talking about here is in Internet Explorer/ Tools / Internet Option / Connections / LAN Settings/ "Use a Proxy Server" with my proxy info and "By Pass Proxy Server for Local Addresses" are both checked. Then click on the Advanced button and add the ip of the local web server into "exceptions".

I have not tried this over the web yet, but remember, my goal is for intranet only installs on this application.

Don't Forget: www.acehaid.org

Sunday, January 29, 2006 10:42:25 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, January 28, 2006
The sessions for DevTeach have been announced and the early bird discount of $300 is only good for a few more days. So if you are hoping to go to beautiful Montreal in early May, register sooner than later for savings. I'll be doing 3 sessions at DevTeach. I love presenting at this conference and it's oh so close to home!

Don't Forget: www.acehaid.org
Saturday, January 28, 2006 4:41:49 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, January 27, 2006

There was a time when indies felt a need to pretend they were a big company. That's changed a lot. [Read more...]

[A DevLife post]



Don't Forget: www.acehaid.org
Friday, January 27, 2006 4:25:49 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, January 24, 2006

I'm pretty slow on the uptake sometimes. Leon Bambrick's TimeSnapper app was the top pick of the Larkware 2005 Developer Tool contest. I knew then that I needed to look at this program, but it unfortunately was on a long list of things I needed to do. Over the last few weeks, however, it bubbled up to the top, as I have been thinking about the crazy way I work when I'm in front of the computer. With little patience at my disposal and always so much to do, I can't even wait 5 seconds for something to load up on my computer, and will go do something else to fill the void. Check email (which of course could steer me on a whole new course at the flip of a switch), newsgroups, the news, my blog reader, my own blog stats, another client project that I had a thought about. Anything and everything. And it's got me a little worried.

So I decided I would try TimeSnapper to really see if it's true. How long do I stay focused on any one project over the course of the day. And the answer is scary, but I will keep that to myself.

The program is surprisingly lightweight, taking advantage of our massive hard drives rather than memory. Not only can I gather evidence of my terrible habits (which can someday be used to cure me of them?), I can also go back and figure out when I stopped working on something billable even if I forgot to log out of my timeclock application.

Not only that, but in it's simplicity, as one user testimonial says "it just works". Thanks Leon. I'm not really sure if this is going to be a healthy mirror to hold up to myself, but hopefully it will have good effects!!



Don't Forget: www.acehaid.org
Tuesday, January 24, 2006 9:40:24 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, January 23, 2006

Have you gone out of your way to avoid .NET namespaces that just sound too scary? [Read more...]

[A DevLife post]



Don't Forget: www.acehaid.org
Monday, January 23, 2006 5:42:31 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, January 20, 2006

Although my own recent DLL hell with VS2005 is in design time, I have learned quite a good lesson about dynamically loading assemblies and the dll hell you can introduce in that way.

I have an application that makes heavy use of Reflection.Assembly.LoadFrom where I pass in the path of a DLL to be loaded. The DLLs are randomly added to the application as we create them.

What I learned was from this post of Suzanne Cooke's about the difference between Load and LoadFrom. Load will load assemblies that are in the GAC (and a few other .NET locales) and is a big help in avoiding dll hell because the GAC does a good job of versioning. LoadFrom will load from a  file that you explicitly tell it to and cares not about versioning. There are a lot more pointers to be aware of here. Check out her post on choosing a binding context (Load and LoadFrom are binding contexts) as well as her related post about switching your code from using LoadFrom to using Load. Suzanne writes the kind of posts that cant' be read lightly and I can't really absorb their lessons unless it's something that I need to know. And I needed to know this today!



Don't Forget: www.acehaid.org
Friday, January 20, 2006 12:27:48 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

One of the pain in the rear parts of doing a lot of travel is doing a lot of travel coordination. It actually is quite time consuming to find the right flights at good times, with short layovers and not overly expensive rates. Then there's finding hotels, dealing with the usual variety of room rates and lastly coordinating anything else that might be involved. Even when you have a travel agent helping you, there are still a lot of decisions to make. I think for every event I go to, I probably spend at least a few hours on this.

Even with my little overnight trip to do an INETA gig at TechValley .NET in Albany next week, I spent time figuring out where to stay (finally settled on a hotel in Saratoga Springs with the benefit of meeting up with a friend), if I should take a train (turns out it would be a lot more hours than driving and still include driving) or even rent a car (though I discovered the only option there was to drive 30 miles north to Burlington to get a car before heading south to Albany). So in the long run, I  have a simple plan - hop in my car and drive to Albany. But given the options, the budget and my own schedule, it was not a "no-brainer" and I infectiously put way too much thought into it.

When Kate and I sent to South Africa, we spent hours and hours on i.m. trying to find flights that we could meet up on that would be amenably priced for Microsoft and would get all of the mileage credits to our own frequent flier accounts. Then we had to go back and forth with Microsoft's travel coordinator over a series of about 20 emails. I bet we each spent at least 4 hours doing that. This, of course, does not include planning our outings.



Don't Forget: www.acehaid.org
Friday, January 20, 2006 11:52:14 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Pretty impressive stuff!

Though I have never asked or answered a question on EE, it has been the source of solutions to many technical problems I have encountered over the years.



Don't Forget: www.acehaid.org
Friday, January 20, 2006 10:27:46 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

D'Arcy Lussier writes:

Flash back a few years to when .NET was an emerging technology. Microsoft put their marketing muscle behind the promotion and creation of user group communities: groups of geeks getting together to talk about CLR goodness. Their plan worked to perfection, and user groups sprung up all over the world! An organization (which I'm a membership manager for), INETA - The International .NET Association, was created and helped bolster the user groups by providing guidance, speakers, and support.

I see it very differently.

Flash back a few years to when .NET was an emerging technology. INETA - The International .NET Association, was created by a handful of user group leaders (led by Bill Evjen) in an effort to bolster the user groups by providing guidance, speakers, and support. When INETA (with help from Microsoft's Eric Ewing) demonstrated to Microsoft how important the user group community was, Microsoft put their marketing muscle behind the promotion and creation of user group communities: groups of geeks getting together to talk about CLR goodness.



Don't Forget: www.acehaid.org
Friday, January 20, 2006 10:20:14 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

How rare is it for clients to ask for access to archived data? Would you believe the only two requests I have had in 8 years came on the same day? [Read more...]

[A DevLife post]



Don't Forget: www.acehaid.org
Friday, January 20, 2006 10:00:00 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Thursday, January 19, 2006

The January CTP of WinFX (which includes WCF) is available on MSDN online. Note some good advice on installation from Charles Petzold.

WCF and it's pal Windows Workflow Foundation were anointed with GoLive licenses. The runtimes associated with these can be downloaded here.

WCF gets a home on the web at www.windowscommunication.net.



Don't Forget: www.acehaid.org
Thursday, January 19, 2006 5:33:46 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I am ready to give up.

We have our 5 dvds worth of content to share with our user group members but have still, after two months of begging favors, not found a way to get the copies made efficiently.

I know Lori Mckinney burned all 700+ dvds herself on two normal home dvd burners.

First we have to get someone to pay for 250 blank dvds. Then we have to find a way to copy that many.

I can't find anyone to do it for us for free or cheaply. The best offer I had was still going to cost us $750.

How have you solved this dilemma?

Update: Here is how we are doing it! Our D.E., Thom Robbins, hooked us up with 250 blank DVDs and I have now gotten a number of user group members who have committed to burning anywhere from 4 to 10 sets. So I will burn about 10 sets myself and then mail those with a bunch of blanks to these people who will bring their burned sets to the next meeting! Yay!!



Don't Forget: www.acehaid.org
Thursday, January 19, 2006 12:54:36 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, January 17, 2006

I gave in and finally used on of my Support Incidents for a remote server debugging problem that was mystifying me and many others. Here is my experience (so far). [Read more ...]

[A DevLife post]



Don't Forget: www.acehaid.org
Tuesday, January 17, 2006 8:48:30 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, January 16, 2006

I was pushing a new WSE 3.0 web service to a test web server. Whenever I tried to authenticate I was getting "Security Token could not be retrieved" from the server.

WSE590: Failed to resolve the following Key Info .....

I knew the sample x509 server certificate was installed. I knew I had assigned read permissions to Network Service with the Certificate tool that comes with WSE.

It took me quite a while before I realized I had installed the certificate that came with WSE2 which is different than the certificates I had created with the WSE3 Setup in the Samples.

The data that made me finally realize it was that in the error message, it referred to the SHA-1 key identifier that the client had sent to the server to look for. But that was not the id of the server certificate.

So I uninstalled the wrong certificate and installed the correct one.

Now, as a test, I did not give permission to the Network Service account to access the certificate.

The message was very different:

WSE600: Unable to unwrap a symmetric key using the private key of an X.509 certificate. Please check if the account 'NT AUTHORITY\NETOWRK SERVICE' has permissions to read the private key of certificate with subject name 'CN=WSE2QuickStatServer' and the thumbprint.....

Now how specific is that? So I am now more confident that "security token could not be retrieved" is literally about FINDING the token, not using it, which can save me a lot of time if I make that mistake again!

Another thing that messed me up was that I had originally installed the certificate into the Current User's store but I wanted it in Local Machine. You need to export and import certificates to make them work properly. But I didn't know this and just dragged and dropped it to the Local Computer's Personal Store instead. That was a no-no. The documentation (see the note in "How to: Make X.509 Certificates Accessible to WSE") explains that when you do this, even if you use the certificate tool (or other means) to apply the ASPNET or NETWORK SERVICE perms, it won't work. That is because the file associated to the certificate (and it is the file that is getting the permissions) does not get moved along with the certificate.



Don't Forget: www.acehaid.org
WSE
Monday, January 16, 2006 3:48:55 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, January 15, 2006

You have a little piece of scotch tape on your finger but don't realize it.

Your finger is a little swollen from being scratched.

Lucky for me I a) noticed that little piece of tape that day and b) can use my other index finger until my right one is better.



Don't Forget: www.acehaid.org
Sunday, January 15, 2006 5:44:38 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I have a VS2005 app that has assemblies with inherited forms and classes and there is something not quite right in my references that makes these particular assemblies very unstable.

This is a project that is being ported from VS2003.

When trying to load the form up in the designer, I frequently get "Could not load file or assembly" with a reference to a class file that has nothing to do with UI. And then I cannot access the design surface.

The referenced assembly is also referenced in the class from which the winform inherits. Sometimes I change the references (in both assemblies) to point to the compiled dll and then it's working. Then somehow it breaks again. Sometimes, then pointing them both to the project, rather than the dll might fix this but maybe not. And I might battle it for a while then just have to walk away from the computer with my hands up in the air.

It's very frustrating. Sometimes I can get away without having to have access to the design surface for whatever it is that I am doing. But I sure wish I could figure out what the heck the problem is, why it prevents me from loading up my winform and solve it once and for all.

Update: Today, this particular one was solved finally by referencing the DLL and not the project of the class that the form was inheriting from. If I had the time to try to figure out WHY, I would, but I know have to get back to working on this project.

Don't Forget: www.acehaid.org
Sunday, January 15, 2006 11:53:30 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I finally figured out how to access the overrides in Visual Basic 2005 - a method that is different than in VB in 2003 or in C# in 2005. [Read more...]

[A DevLife post]



Don't Forget: www.acehaid.org
Sunday, January 15, 2006 10:50:28 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, January 14, 2006

WSE 2.0's messaging API gave us the ability to host web services outside of IIS. Though it was very cool, I didn't dig that too much because you had to give up all of the other WSE goodness that only worked in ASMX - including security.

In WSE 3.0, they changed this so that you could build ASMX web services, do all of the great security stuff and then host it outside of IIS - for me this meant TCP, though there are other transports you can use as well.

Now that I am using WSE3 to secure my web services that are currently being used (while we await WCF :-) ), I am trying to do so with WCF in mind. It is no secret that WSE 3.0 is going to be wire level compatible with WCF as this is was of it's major design goals.

As I dig further into this, I learn that this is only true for HTTP but not the TCP hosted services. However, it is possible to write your own transport channel in Indigo specifically for this purpose and this is something that Yasser Shohoud and Kenny Wolf did at PDC (here's the code for that). Luckily for me, I have the DVD because that was not a session I attended. I also missed Mark Fussell's talk on moving messages between WSE 3 and Indigo since I had remembered it as a 10:15 session when it was in fact an 8:30 am talk (and had a leisurely breakfast instead - oops!). (Again, thank goodness for the DVDs)

At ASP Connections in April, I will be doing a talk about using WSE 3.0 so that the messages produced by WSE 3.0 today to secure your web services,  will still be valid when communicating with apps that use WCF.  So as I prepare for this, I will probably be sharing tidbits here and there.



Don't Forget: www.acehaid.org
WSE
Saturday, January 14, 2006 2:43:06 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

This got me once again. It's really hard to remember!

When you do declarative programming in Visual Basic and you use attributes that have properties, you need to set the values on those properties. VB does this in a funny way.

Here is a C# attribute for BP (Basic Profile) Conformance in a Web Service:

[WebServicesBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

Setting the value of the ConformsTo property is a normal looking equals (=) operator.

But with VB, look at how we set the property

<WebServicesBinding(ConformsTo: = WsiProfiles.BasicProfile1_1)>

We put a colon in front of the equals sign.

This is not new to VB2005, but attributes are something I so rarely use (but will be using more and more as I do more WCF programming) that I forget from one year to the next.

I have never been able to find an explanation of why this is and only know it because I get a compiler error when I forget it ("named argument expected") and I have to see another example of it's use somewhere before I realize it. Intellisense doesn't give me a helping hand with it (as far as I have seen in vs2003 or vs2005). So, perhaps by writing this blog post, I can commit this to memory finally!

 



Don't Forget: www.acehaid.org
Saturday, January 14, 2006 2:07:06 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I was a little taken aback to see this Feb 2006 cover of ASPNET Pro Magazine :-)

 



Don't Forget: www.acehaid.org
Saturday, January 14, 2006 12:23:41 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Scott Mitchell and Scott Guthrie are both writing about one of my pet VS2005 technologies, Debugger Visualizers. Check out their posts which have lots of web programming visualizers in them.

Don't Forget: www.acehaid.org
Saturday, January 14, 2006 12:16:23 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Don Smith, Mark Fussell, Ron Jacobs and Dwayne Wright are doing webcasts on securing web services with wse 3.0.

The first, Securing Web Services with X.509 Certificates in WSE 3.0, is already on line.

They will be doing one on Kerberos this coming Wednesday, Jan 18th, and then another with UsernameTokens on Wed Jan 25th.

Stay tuned here.

 



Don't Forget: www.acehaid.org
WSE
Saturday, January 14, 2006 12:13:56 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
This was just released this week.

Don't Forget: www.acehaid.org
Saturday, January 14, 2006 9:55:02 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Open Membership Discussion

How can VTSDA Move Forward and Benefit the Membership?

VTSDA has been around since late 2004. Since this time we have had many monthly meetings, but what else has VTSDA accomplished? What do we currently have in the works? What else should we be thinking about? Who would like to get more involved to help us move forward?

Come to this meeting to have a voice in the future of VTSDA.

Wed Jan 18th, 12- 2pm, Ethan Allen Club Burlington

Luncheon Meeting: VSTDA Members: $15, Non-Members: $20

More information at www.vtsda.org



Don't Forget: www.acehaid.org
Saturday, January 14, 2006 9:52:31 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, January 13, 2006

At what point does the software you write advance your clients' political agenda? And where in relation to that point, if their politics differ from yours,  do you draw the line? [Read more...]

[A DevLife post]



Don't Forget: www.acehaid.org
Friday, January 13, 2006 2:16:35 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Country Walkers

Immediate full-time Website Administrator/Ass't Marketing Coordinator. This person manages all website content including images, as well as coordinates and oversees additional desigh and SEO. Also assists Media Director with writing, editing and production of all marketing brochures.

Pluses: MS Office, Photoshop, Quark, Dreamweaver & Adobe Indesign

more info

jamen@countrywalkers.com

 



Don't Forget: www.acehaid.org
Friday, January 13, 2006 12:52:02 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

6 Degrees Software

Jobs Page



Don't Forget: www.acehaid.org
Friday, January 13, 2006 12:42:13 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Friday, January 13, 2006 12:40:15 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Friday, January 13, 2006 12:37:22 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Competitive Computing is advertising for two developers and a business analyst.

More info here



Don't Forget: www.acehaid.org
Friday, January 13, 2006 12:34:12 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Thursday, January 12, 2006
I just had to see! And it works. I can run my old FoxPro 2.5 DOS and FoxPro 2.6 Windows applications on Vista CTP 5270. I only started up the apps and did a few functions. No thorough testing by any means. But I thought that was pretty cool.

Don't Forget: www.acehaid.org
Thursday, January 12, 2006 10:42:05 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I went around and around (and dragged poor Sushil Chordia and blogless Leonid Tsybert along for the ride) with an access permission problem that my ASPNET account was having when trying to do SqlDependency.Start. All of the correct permissions (listed below) had been applied to the account, which could be verified with sp_helprotect,NULL,ASPNET

Finally, I just gave up and removed the ASPNET account from SQL Server in its entirety and recreated it with the necessary permissions and everything worked just fine.

Though I'm very frustrated not to have figured out what was causing the problem, I'm satisfied in knowing that there is a solution (remove & recreate.)

Here, as listed in Sushil's fantastic blog post from late September, which listed all of the RTM changes for Query Notification, is how to set up the perms.Note that this is for IIS5 whereas in IIS6 you would use the NT Authority\NetworkService account.

All of this is run against the database that you want the perms for, not in Master.

sp_grantlogin 'myMachineName\ASPNET'     --this gives the ASPNET account login access to SQL Server
sp_grantdbaccess 'MyMachineName\ASPNET', ASPNET   --this gives the login access to the database with the "nickname" ASPNET

GRANT CREATE PROCEDURE to ASPNET
GRANT CREATE QUEUE to ASPNET
GRANT CREATE SERVICE to ASPNET
GRANT REFERENCES on CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification] to ASPNET  --note that the schema is case sensitive!
GRANT VIEW DEFINITION to ASPNET

The above are to call Start(), to do the actual notifications, you need:

EXEC sp_addrole 'sql_dependency_subscriber'
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO ASPNET
GRANT RECEIVE ON QueryNotificationErrorsQueue TO ASPNET
GRANT REFERENCES on CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification] to ASPNET
EXEC sp_addrolemember 'sql_dependency_subscriber', 'ASPNET’
GRANT SELECT TO ASPNET



Don't Forget: www.acehaid.org
Thursday, January 12, 2006 4:29:39 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Wednesday, January 11, 2006

Dwight Asset Management is in search of an Excel/VBA Macro programmer to work on a contract basis for a few weeks with our firm. 

The position will require the contract programmer to be in the office.  It is a position requiring approximately 80-120 hours of work, hopefully to occur within the next six weeks.  Resumes and contact information may be e-mailed directly to me at this address.  Pay rate is competative and is commesurate with experience.

Thank you very much!

Sara Lynn
Tech Department
Dwight Asset Management Company
slynn@dwight.com
(802) 383-4088



Don't Forget: www.acehaid.org
Wednesday, January 11, 2006 10:50:41 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

At the Vermont.NET meeting (our Visual Studio Community Launch) Laura covered some of the most interesting of the UI basics that are new in ASP.NET 2.0. There were a lot of attendees to this meeting that are brand new to ASP.NET 2.0 and want to learn more. A really good starting point is the www.asp.net website. On there you can find a Guided Tour of Visual Web Developer 2005 Express, which is basically the web development only portion of Visual Studio - and therefore a fantastic place to get started with ASP.NET 2.0. Also, the ASP.NET Developer Center is a great launching pad, to find video training, the quickstarts, even a link to getting a free 3 hour training CD from AppDev.

There are amazing resources on the web.

There are also plenty of ASP.NET 2.0 books coming out that are great for beginners.

Bipin Joshi's Developer's Guide to ASP.NET 2.0 is aimed at ASP.NET 1.x developers moving to ASP.NET 2.0, but covers everything, not just "what's new".

From Wrox: Beginning ASP.NET 2.0 from Dave Sussman and a crew of excellent writers.

The ASP.NET v2 The Beta Version, which we raffled off when Rob Howard was at the group in November and also at Monday's meeting, is pretty close to being current with the release version.

Professional ASP.NET 2.0 another WROX book by my buddies Bill Evjen, Farhan Muhammed and more!

Pro ASP.NET 2.0 from O'Reilly.

Murach has an ASP.NET 2.0 Upgraders Guide. One for C# and one for VB.

O'Reilly has ASP.NET 2.0 A Developer's Notebook is another "what's new in 2.0" book that has  50 hands on projects. They have a few other asp.net 2 books as well.

Laura also posted resources from her session here.

This is just a VERY SHORT list to get you started in case you don't know where to turn next. There are so many online resources. In addition to the official microsoft ones above, there are many community sites like www.ASPAlliance.com and www.ASPAdvice.com. There are forums galore and of course blogs blogs blogs.

Wednesday, January 11, 2006 10:48:16 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, January 10, 2006

Qvault is actively recruiting highly effective technology oriented individuals with strong programming and system/network administration skills.  If you thrive on innovation and delight in a diverse range of responsibilities, if you embrace new challenges and seek to enhance your expertise, if you’re looking to join a vibrate team of result oriented professionals where you can make a direct impact then Qvault may be the place for you.

Highly desirable skills and demonstrated experience include:

  • Object-Oriented Programming, fluency in C# or C++
  • SQL Fundamentals (Queries, Transactions, Schema Design)
  • ASP.NET
  • ADO.NET
  • Web Services (XML, SOAP)
  • System Administration (Windows 200x Server, IIS 5/6)
  • MS SQL Server Administration
  • Networking and Security Fundamentals

Please send your application to hr@qvault.com.

About Qvault  Qvault, Inc., a privately held corporation; develops, hosts and supports web based business intelligence, collaboration and document/content management solutions for professional organizations throughout North America.  Qvault's main offices are located in the heart of the village of Essex Junction, Vermont.



Don't Forget: www.acehaid.org
Tuesday, January 10, 2006 12:53:41 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Wow! We had 41 people at our meeting last night. That's a lot for our small group. As Dave reports, the room was jam packed.

Laura did a great job with the presentation on ASP.NET 2.0. Boy, it was some styling powerpoint Microsoft gave the community launch team to use!! What was great about her talk was that she didn't dwell on the slides and went right into gobs of demos. She showed the group master pages, profiling, declarative data binding and the controls that make membership really easy to do. There are a lot of people who this is all brand new to (I would say 80% of the attendees probably hadn't seen any of this stuff yet). I learned a bunch too as I have focused on the framework stuff and not as much on the "look, ma! No code!" tools.

One thing that makes me extra proud of our little community is the fact that we far exceed the average percentage of women attendees. 25% of our group last night was women.

In addition, I believe from a show of hands (and new faces) that there were 10 people there who had never been to a VTdotNET meeting before. It's great to have some kind of lure to get them there. Most often, once they attend a meeting and realize how much the group has to offer and what a tight (yet welcoming) community it is, they continue to attend meetings.

We still have to figure out how we are going to burn 200 DVDs to distribute. But since we are doing part 2 of the launch next month as a joint meeting with the VTSQL group,and giving away another 5 VS2005 Pro/SQL Server 2005 licenses, I expect most of those people to return and hopefully we will have it solved.

Lori McKinney from the Huntsville Alabama group spent her christmas vacation burning 700 dvds for her group. I won't be doing this, that's for sure. I just don't have the time. We are trying to find a local company with one of those machines that you can load a stack of dvds into and let it just spit out copies.



Don't Forget: www.acehaid.org
Tuesday, January 10, 2006 12:02:27 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

There are a bunch of MSDN Launch event VS2005/SQL Server 2005 "kits" for sale on ebay. I think because these are NFR's, some people are selling them as "bonus". Like "Backpack + FREE visual studio 2005" or "mini flash light with FREE visual studio 2005".

Funny that bidding starts at something like $10. I guess the market is flooded with these.

We gave away 5 of the launch kits last  night at the Vermont.NET launch event. But knowing who got them, I do not expect to see any of them for sale on Ebay!

It would kill me to see things that I raffled off at Vermont.NET on ebay - books, software, etc. I would hope that someone who wants or needs these things wins them or could just say "hey I don't need it, draw another raffle ticket".



Don't Forget: www.acehaid.org
Tuesday, January 10, 2006 10:23:36 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Vermont Technical College is looking to add to our rapidly expanding Williston campus. Immediate needs include an instructor to teach System Administration. The course provides the student with enough theory to understand how operating systems work and to interpret the output of various management tools. It also covers practical issues in system administration including process, memory, and file system monitoring and performance tuning. Some topics in computer security are also discussed. The course consists of 3 hours of lecture and 3 hours of lab per week. Please contact:
 
Michael Marceau
Co-chair, ECET Department
Vermont Technical College
Randolph Center, VT 05061
ph: (802) 728-1307
fax: (802) 728-1390
Tuesday, January 10, 2006 8:03:05 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, January 09, 2006

I'm off to Burlington for the January VTdotNET meeting where we are having our INETA Community Launch event. Laura Blood has been working hard on her ASP.NET 2.0 session. I have bags and bags of books and swag and of course we are raffling off 5 licenses to VS2005 Pro/SQL Server 2005 Standard/BizTalk 2006. That's 5 sets! We have a huge # of RSVPs for our little group - 35 and counting. Thom Robbins, our D.E. has offered to cover the pizza. I'm going to stop at Staples on the way and pick up raffle tickets - I'm sick of trying to deal with  how to raffle off stuff!!

It should be great fun!



Don't Forget: www.acehaid.org
Monday, January 09, 2006 4:11:14 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

My computers have been behaving very badly (to the tune of "now I have to rebuild my server") and now my new printer is joining in as well. It made an executive decision when it ran out of legal sized paper and just continued the print job on letter. How do you punish hardware anyway? Go to bed early? No phone for a week?



Don't Forget: www.acehaid.org
Monday, January 09, 2006 2:30:06 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, January 08, 2006

By process of (hours of) elimination I have solved a problem that was driving me batty today!

I have a WSE 3.0 enabled client app that calls a WSE enabled web service.

After creating a UsernameToken, the client application was setting the credentials on the web service proxy using the generic overload:

proxy.SetClientCredential(Of UsernameToken) (myUT)

As I built the tests up one by one everything was working swimmingly... until I added in the SecureConversation into the client and service policies. (establishSecurityContext="true").

Then I was getting a 401 Access denied whenever I tried to hit the web service. I could see through the status of the tracing that I was not even touching the web server on these calls.

Setting the SecureConversation to false let everything work again.

I spent quite a lot of time experimenting and scrutinizing my settings, configs, etc.

I even loaded up the sample application for Secure Conversation which worked perfectly fine.

Both web services were in IIS and I compared everything. config files, policy files, IIS properties and security, folder security.

Combing through these, I tested every little thing that was different - folder access permissions and more. I explored differences in code such as setting the soapversion explicitly on the proxy. Nothing made a difference.

But finally, I came upon the nominal difference that was causing the problem (though I have no explanation for it).

It was the use of generics in setting the ClientCredential on the proxy.

When I used the non-generic method, as the sample uses: