Wednesday, November 17, 2004

Jeremy Wright is compiling jobs that bloggers are putting on their weblogs. That will be a great resource. If you tend to post jobs on your blog (I do for my user group and Chris Pels does too) let Jeremy know!



Posted from BLInk!
Wednesday, November 17, 2004 4:32:07 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

One of the problems with it getting dark early (besides that I still don't get up until 7am) is that I have to walk the dogs way before 5pm which really breaks up my work flow. It's 4:05 and already really dull out and looking like it's going to be dark soon anyway. Poor doggies. Add to this the many feet of snow we will have on the ground in a month or so and not only does their day get shorter, but their world shrinks. They can't get through the deep snow, so whatever paths we can create with the snowblower plow around the yard and then the road are basically all they have for walking all winter.

Even stomping out trails with our snowshoes doesn't pack it down enough for them not to post hole through it, which hurst their little leggies. (I'm talking about one 10 year old and one 11 year old Newfoundland - so that's really a big worry.)

Why can't winter have gloroius snow only where you want it and still at least be sunny until 9pm? :-)



Posted from BLInk!
Wednesday, November 17, 2004 4:07:40 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
I plan to reveal some fun tidbits of my deep dark past on DotNetRocks this Friday night. Stay tuned! We'll see if Rory can exhibit any self control at all when he hears this stuff. heh heh heh.

Posted from BLInk!
Wednesday, November 17, 2004 2:40:32 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Each time I talk to people about WSE2 in my presentations, I mention that we are relieved of the dependency on HTTPS and not only can we work with HTTP, but we also get to work with TCPIP naturally in the API. I have seen Keith Ballinger demo this twice now but have not played with it myself and am really curious about it. Pal and plumber, Ali Aghareza was at my talk on Monday night and it was the piece that also piqued his interest.



Posted from BLInk!
WSE
Wednesday, November 17, 2004 1:54:24 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Now I see why Betsy's posts are such gems!

"...when I was an MFA poetry graduate student..." from her latest blog post: My Text is not My Own

She is evidence of what makes the fabric of Microsoft so interesting. I think it would be a true bore if the company were made up of nothing by Comp Sci nerds (says this History major who spent most of her time in the art studio).



Posted from BLInk!
Wednesday, November 17, 2004 1:50:34 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I had a hard time remembering how to do this and was not using the right keywords in Google.

There are a few ways to do temp tables in SQL. In SQL7 we could use a #tablename, but there are issues with that. It becomes part of the returned resultset and you have to remember to delete them.

In SQL2000, you can still use that syntax but in many cases a table variable is a much better route. It is a variable declared in your stored procedure, it is local so you don't have to worry about deleting it and it does not affect the result set.

NOTE: You must include “SET NOCOUNT ON“ at the beginning of your stored procedure to prevent that extra gunk in the result set that ADO retrieves. I found that this works with table variables, but it does not fix the problem with #temptables.

Here's a useful article on it: http://www.sqlteam.com/item.asp?ItemID=9454 with syntax and caveats.

I had a sproc using the #temptable method that worked just fine here on my test server which is SQL2000. When I deployed it to my client's production server, also SQL2000 with latest service packs, ADO (in VB6 , not ado.net) was having an issue against the production database with recordset.next that did not show up when I ran against the local database. So I went with the table variable instead.



Posted from BLInk!
Wednesday, November 17, 2004 11:37:27 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Scott Dockendorf, who I know one of the guys that runs the Dallas .NET User Group, just went on board this week as the latest addition to the TelligentSystems team.

Posted from BLInk!
Wednesday, November 17, 2004 9:15:47 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

One of the advances of Crystal in version 8 was that we had the ability to create TTX files from our recordsets and then use the TTX files to design reports from. This alleviated a huge headache of being forced to either use that mistake of a database environment or hooking directly to databases to create reports. Building these dependencies between the report and one of those resources meant confusing memory problems when you ran the report. The TTX file was just a little text file that contained the schema of your recordset. Once the report was designed, you didn't even need to tote the ttx file around anymore.

In .NET, this evolved to the ability for the report to be designed from an ado.net dataset. You do this by creating a dataset object in your project and linking to that when you design the report. I generally create the object by doing a dataset.writexmlschema in my code initially. Once that file is created, I comment out the line and bring the schema into my project and generate a dataset object from it. (Did you know you can do that in vs2003 by right clicking on the xsd and selecting the mysterious "run custom tool"?)

Many people are still unaware of this feature and do what comes naturally, which is to point directly to the database for desiging a report. This is one of the causes of the dreadful "please logon" message we get at runtime when trying to view a report. (Another one, I discovered was passing a dataview to the report's datasource instead of a datatable and apparently passing a dataset can do this too.)

Here is a PDF from the Crystal Reports .NET DevCenter on the Business Objects site that explains how to build reports from ADO.NET.

Also, here is an article by Susan Harkins that I found for someone that explains how to create an XSD file from Access.



Posted from BLInk!
Wednesday, November 17, 2004 8:34:55 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, November 16, 2004

Just listened to the awesome Kate Gregory's recent DotNetRocks show. Here are f a few funny quotes from the show.

"Typing is so 2002" (re: intellisense)

"I am a device for converting caffeine into code"  (re: soda for breakfast)

"Be scared of Enterprise Services" Why? Becuase MS's recommendation is don't use it unless you really really need it!

"If you believe that there is a little guy in your computer who kind of runs around and carries things around for you, you're going to have a much better time in my course."



Posted from BLInk!
Tuesday, November 16, 2004 3:35:03 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

This from Carl's blog:

Speaking of DNR, you're not going to believe how awesome this week's show is (it will be online by Wed. morning). It started as a Java discussion with Mark Pollack and Ted Neward, and then Ted invited Don Box to join us, and I basically sat back and let the three of them talk for 2 freaking hours! The fur was flying a couple times, and the discussion was great! I added what I could to it, but I was really outclassed by these guys. Mere mortals should study this discussion in great detail. Lots of good stuff. I'll post it's availability here, and of course you can subscribe to the podcast feeds to automatically download it.



Posted from BLInk!
Tuesday, November 16, 2004 9:57:55 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Resumes should be sent to jobs@strategic-match.com. Also, please visit our site www.strategic-match.com for information about us or to see our other openings.

JOB # PCI - 002: .NET Senior Developer / Architect (New York City, NY):

Full-time Direct Hire

Requirements:

In-depth problem solving capabilities as well as the ability to identify tasks and provide time estimates

A Bachelor of Science or Master's degree in Computer Science or Computer Engineering or equivalent experience

7 + years of development experience

3+ years as an architect/lead developer/technical mentor on large-scale,

3+ OO projects

Multi-platform development experience using both Windows and Unix

(Solaris/HP-UX/Linux)

Expert in C#/.NET Framework

Excellent written and verbal communication skills and are able to work with Wall Street traders, senior management and top-notch developers

An interest in travel and exciting, challenging work

JOB #PCI - 004: Senior Excel VBA Developer(New York, NY): Full-time Direct Hire

Requirements:

A person with 2+ years of experience

Strong knowledge of Excel and Excel VBA

Strong knowledge of Sybase (v11 + ) and T-SQL

Knowledge of Fixed Income would be an asset

Knowledge of C++ would be an asset

Have experience with some or all of the following Technologies: .NET, Java, J2EE, C/C++, SQL, Oracle, Web Technologies (ASP.NET/JSP/DHTML/XML), TIBCO.

Have the ability to pick up new technologies quickly, because they are, after all, merely new spins on concepts you already understand.

Have excellent written and verbal communication skills and are able to work with Wall Street traders, senior management and top-notch developers

Have interest in travel and exciting, challenging work



Posted from BLInk!
Tuesday, November 16, 2004 9:01:38 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, November 15, 2004

I love talking to the Vermont.NET user group! These are my friends. It feels a lot more like teaching and sharing than presenting at a conference with a strict time limit to a group of people that may or may not like your presentation style and may or may not understand that you are there because you really truly want to help them understand something that is hard.

Tonight I spent 3 hours doing my WSE talk which is really two talks. Since our  meeting is 6-9, this wasn't a bad thing. They were warned! Though not everyone lasted the whole 3 hours - I'd say 1/2.

First it is a whole presentation explaining the tools of security. The second part is an introduction to WSE2 along with explanation of some of the problems you may run into when you are not working in a perfect text book setting. It's a little hard doing it at night since I myself started to get a little tired, but I kept checking, they wanted the brain dump so that's what they got. It was really really fun and I know I really helped a good bunch of the people there. I got to answer every question that anyone had (it was a small group) which is something that you just cannot afford to do in a conference talk. There were a few questions that went a little deeper than my knowledge goes, but I answered with what I could and we decided to dig up the rest another time.

Even if I have to do it as two separate talks, I always want to do these together.



Posted from BLInk!
Monday, November 15, 2004 11:20:06 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Matt already has reason to be proud of his tools, but today marks another feather in his cap!

Posted from BLInk!
Monday, November 15, 2004 1:10:51 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
Last minute reminder on my talk tonight at Vermont.NET
 
Web Service Enhancements 2.0 was released in June. It can look very complicated but does not have to be!! Not only is WSE2.0 a valuable tool for securing web services *TODAY* (as well as implementing a number of the other Web Services specifications) but it is the path to Indigo.
 
This talk will be in two parts tonight. The first part is designed to ensure that we all have a good grasp of the tools of security - what is encryption? what is a digital signature? what is a digital certificate? etc. I'll also make sure you know what a WS-* Spec is! I found that understanding these things made it possible for me to finally comprehend the articles and books I had been trying to read about WSE. Nobody had ever taken the time to explain these things well enough and I had felt like a bit of a dummy. So I want to explain it to you.
 
The second part of the talk will walk through the key elements of the WSE2 API, how to secure your web services with them and how to use the WSE Settings  tool to click your way to the most critical pieces of securing your messages across the pipe.
 
I have done this talk at the Montreal Visual Studio .NET User Group and at ASPConnections, so it is getting pretty well honed.


Posted from BLInk!
Monday, November 15, 2004 9:44:28 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, November 14, 2004
I'm so happy I don't have any *real* interop to do with WSE2 (yet). I want to learn it first, then dig into the harder stuff (and let's not forget that this harder stuff, the interop, is the true intention of the WS* specs and therefore of WSE2, even if we do find it to be a nice neat way to deal with ws security in our .net to .net apps). Anyway, Simon Guest reports an issue with using X509 certificates other than the quickstart ones supplied with the SDK when interoping with JWSDP.

Posted from BLInk!
WSE
Sunday, November 14, 2004 9:38:29 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I guess I should mention that I will be on the live DotNetRocks this coming Friday.

Did you know there is a schedule on the site?

Kate Gregory was on a few weeks ago and Ted Neward and Mark Pollack were on this past Friday which is not posted yet. (update : oh, Ted & Mark were supposed to be on, but the show was delayed due to airline problems with Carl returning from Vegas or something like that...I think the word is that they will do it on Monday.)

Posted from BLInk!
Sunday, November 14, 2004 1:29:44 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, November 13, 2004
Halley Suitt is posting pictures that look like she has gotten at least 4" of snow ther ein Boston. Here in Vermont it is COOOOOOL, but now snow! Apparently it snowed a bit on Thrusday but it was sunny so there was nothing left to show for it by the time I got home from Las Vegas.

Posted from BLInk!
Saturday, November 13, 2004 4:32:23 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Two of the new classes inside of System.NET.Cache are the HTTPRequestCachePolicy and RequestCachePolicy. It gives us some control on client side caching on a request by request basis. Since I think "web apps" when I think about caching, it took me some time to grok (with some help from a few folks at MS) what it's real purpose is.

Of course, it doesn't make sense that a webserver based app would have ultimate control over client side caching (wouldn't that be cool though - magic, but cool!) As far as I know, only the client machine has knowledge of what is in its' cache.

These classes are available for client and middle tier applications that are making HTTPWebRequests or FTPWebRequests and allow you to control how a webrequest is handled based on either the age of what is available in the cache or just by the location.

Since I do most of my interaction with a webserver via web services* or aspx pages, this doesn't solve any problems that I am currently having, but it has given me some ideas of how I might leverage it in my applications.

Here are some ideas.

Say you have a web application that creates a pdf report and returns it to the calling client - maybe that is a windows app or even a web app that is the client. The data for this report does not change very much during the course of the day and it is a huge report. So you don't realy want users taxing the webserver by requesting it more than once per day. You can tell the calling application to first check the local cache and if that download is in there and it is less than one day old, then it will not bother making the request.

Another example is for windows apps that actually use the web browser control. I have never had occasion to do this myself. But you can control how calls are made to the webserver to populate that control with instructions similar to the above sample - based on age or freshness - or you can instruct it to always go from the local cache under certain situations or always from the server. Or you can tell it that if there is nothing in the cache than get it from the server, but otherwise always get it from the cache. My simple demo on this only showed interaction with this funcationality. I had a web page that displayed the current time and you could see, for example, the time not changing for 5 seconds even though I was doing rapid-fire refreshes on the page.

This is not earth shattering functionality for the work that I do, but I can imagine that people writing applications for large corporations would benefit greatly from every tool that reduces the toll on the webserver. You can read more in this online documentation for .NET 2.0: Cache Management for Network Applications.

*re: web services - I REALLY wanted this to work with web services, but it just doesn't. Although you can pass it the uri of an asmx file, there is no way to call the web method. I tried setting up the definition of the policy against the entire web service and then making a call to the webmethod, but it just didn't work.

Posted from BLInk!

Saturday, November 13, 2004 2:25:53 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

I just discovered a great local treat and am going to help my new pal (and proprietress) Ann Zuccardy by blogging about it (since it can be ordered for holiday gifts!) It's the Vermont Shortbread Company. Their site is getting updated, but you can email Ann directly for pricing and shipping info!

Ann leads a double life as a technical writer, currently on contract at IBM, but she is a consultant -  which is how we got to chatting initially.

Posted from BLInk!
Saturday, November 13, 2004 1:35:28 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, November 12, 2004

Dave Bost got to do what I didn't - attend sessions by some of the most awesome speakers on "the circuit" and then mine, too! I was busy working on my sessions so did not get to any. Here are his posts from Monday (Microsoft day), Tuesday and Wednesday with great details about the talks he attended. He also posted about the SQL Server and ASP.NET Keynotes by Tom Rizzo and Scott Guthrie. Dave is a user group leader who I knew from email, so it was fun to meet him.

They are making a DVD that can be purchased with all of the session from ASP.NET Connections and Visual Studio Connections, but not the SQL show. I believe it can be ordered through the registration page.



Posted from BLInk!
Friday, November 12, 2004 2:56:34 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  |