Thursday, December 21, 2006

Blogging from Windows Live Writer

Another goodie I found on Karen Lui's blog was a link to Windows Live Writer

Windows Live Writer is a desktop application that makes it easier to compose compelling blog posts using Windows Live Spaces or your current blog service. 

When you launch the application for the first time (well the second time as the first time is to install!) it prompts you for you blog URL and logon credentials and then runs off and does a test blog to analyse your template.   Once this has completed, you are free to create your blogs online or offline.

The best thing about Windows Live Writer is its true WYSIWYG Authoring.  You can now author your post and know exactly what it will look like before you publish it. Writer knows the styles of your blog such as headings, fonts, colors, background images, paragraph spacing, margins and block quotes and enables you to edit your post using these styles. 

Writer also includes other views including HTML source-code editing and web preview mode.

Now you don’t have to waste time going through the process of publishing, refreshing, previewing, and tweaking your post to get it looking the way you want. It’s all right there in Writer as you create your post.

For more information or to download a copy see here 

Cheers
Jeff

P.S. Created offline using Windows Live Writer

Micrososft Visual C# Default Keybindings

At Tech-Ed Developer 2006 (Barcelona), Karen Liu (C# IDE Product Manager) presented a session on "Visual C#: Tips and Tricks - Productivity Tips for the Visual C# 2005 IDE" in which she discussed a number of tips and tricks covering customising C# code generation, entry points for refactoring and navigating through code via the use of commands invoked through keybindings.

After her session, Karen handed out a card titled "Micrososft Visual C# Default Keybindings" which contained a list of IDE keybindings that developers could use to quickly invoke commands within the Visual Studio 2005 IDE. This booklet was the most requested giveaway that I handed out on the Ask-the-Experts booth and unfortunately we had to turn away many dissappointed attendees due to lack of supplies.

Well fret no more my fellow coders. Karen has converted this booklet into PDF format and posted it on her blog for download.

Enjoy!

Who are the Australian Computer Society and what can they do for you?

I've been doing some more thinking about the comment, which has now been deleted, that "Anonymous" left against my blog post regarding being elected to the ACS Branch Executive Committee.

In hindsight, instead of deleting it I probably should have left it there and then blogged about who the ACS are and what they do for its members and the community.

That said, here it is :-)

The Australian Computer Society

The Australian Computer Society (ACS) is the recognised association for Information & Communications Technology (ICT) professionals, attracting a large and active membership from all levels of the ICT industry. A member of the Australian Council of Professions, the ACS is the public voice of the ICT profession and the guardian of professional ethics and standards in the ICT industry, with a commitment to the wider community to ensure the beneficial use of ICT.

The society was founded in 1966. Its objectives are to further the study, science and application of Information Technology; promote, develop and monitor competence in the practice of ICT by people and organisations; maintain and promote a Code of Ethics for members of the Society; define and promote standards of knowledge of ICT for members, promote the formulation of effective policies on ICT and related matters; extend the knowledge and understanding of ICT in the community; promote the benefits of membership of the Society and promote the benefits of employing members of the Society.

ACS members work in all areas of business and industry, government and academia, and are qualified and experienced ICT professionals committed to the Society's Code of Ethics and Code of Professional Conduct and Professional Practice. ACS membership denotes a commitment to professionalism.

Mission

To advance professional excellence in information technology.

Principal Object

To promote the development of Australian information and communications technology resources.

Secondary Objects

  • To advance professional excellence in information and communications technology.
  • To further the study, science and application of information and communications technology.
  • To promote, develop and monitor competence in the practice of information and communications technology by persons and organizations.
  • To define and promote the maintenance of standards of knowledge of information and communications technology for members.
  • To promote the formulation of effective policies on information and communications technology and related matters.
  • To extend the knowledge and understanding of information and communications technology in the community.
  • To maintain and promote the observance of a code of ethics for members of the Society.
Key ACS Activities
  • Membership Services
  • Course Accreditation
  • Skills Assessment
  • Public voice of ICT profession
  • Guardian of professional ethics and standards
International Representation

On a per capita basis, the ACS is one of the largest computer societies in the world. It plays an active role in international affairs and represents Australia in the International Federation for Information Processing (IFIP), and the South-East Asian Regional Computer Confederation (SEARCC). Members of the Society have the opportunity to play an active role in various technical committees, working groups and other activities conducted by the international bodies.
The Society has entered into reciprocal agreements with a number of overseas computer societies including:

So, what you waiting for? Become a member today

Wednesday, December 20, 2006

SQL Server 2005 Service Pack 2 - Community Technology Preview (CTP) December 2006

The Community Technology Preview (CTP) version of SQL Server 2005 Service Pack 2 (SP2) is now available. You can use these packages to upgrade any of the following SQL Server 2005 editions:

  • Enterprise
  • Enterprise Evaluation
  • Developer
  • Standard
  • Workgroup
Note: To upgrade SQL Server 2005 Express Edition, obtain the SP2 CTP version of Express Edition or Express Edition with Advanced Services.

For a list of new features and improvements that are included in SQL Server 2005 SP2, review the What's New document.

These packages have been made available for general testing purposes only. Do not deploy the CTP software in production. Peer-to-peer support is available in the SQL Server 2005 forums.

Monday, December 18, 2006

Smart Client Deployment with ClickOnce: Deploying Windows Forms Applications with ClickOnce

On the weekend I spent some time on Safari reading “Smart Client Deployment with ClickOnce: Deploying Windows Forms Applications with ClickOnce” (Brian Noyes) hoping to get some answers to a really annoying problem (feature) in ClickOnce.

Microsoft’s new ClickOnce™ technology is marketed as being able to “radically simplify application deployment”. This may be so for deploying applications built internally and hosted on your own servers, but is far from the truth if your software is sold as a Commercial-of-the-Shelf (COTS) product that is usually deployed from servers hosted by your clients.

Noyes book is concise and explains exactly how and why ClickOnce works as it does, and how to overcome the obstacles to using it in today’s complex environments however, I would class it as a beginners guide to ClickOnce as it didn’t really delve into the problems and difficulties associated with deploying COTS products (or even products that require customisations to publishing methods and locations).

So, what are the difficulties with using ClickOnce with COTS products?

One of the “Security Features” of ClickOnce is “Tamper Protection” which uses digital signatures to protect the files in your application. When you publish an application with ClickOnce, you have to sign the deployment and application manifest with an Authenticode Class 3 Code Signing publisher certificate. This digital signature provides a guarantee that the manifests have not been tampered with since you published your application and also provides tamper protection for all of your application files. When your application manifest is generated, a hash of each of the files in the application is put into the application manifest along with the rest of the file information. When ClickOnce deploys or updates your application, it computes the hash of each file as it is downloaded from the server and compares the hash to the one embedded in the downloaded application manifest. Since the application manifest is signed and can't be tampered with to change the hash values for application files, there is no way for someone to tamper with any of your application files, because ClickOnce will refuse to launch your application if the application file hashes don't match after they have been downloaded.

This is a great concept; accept for the fact that at package creation time, you are required to provide details of the way the application will be published (i.e. HTTP, FTP, UNC, CD/DVD, Drive Letter) and the names of any servers used to publish the application. This information is then saved in the deployment manifest file which is signed during package creation (see where I’m heading with this!). Therefore, to be able to create a deployment package and sign it, you must know how your client is planning on deploying the software and the names of any servers used in the deployment process before the package can be created and signed. Now, I don’t know about you, but I know of no client willing to divulge all that information to a commercial entity so that it can be built into an installation package (I’m not even going to discuss what the implications are for clients wanting to change deployment methods and/or servers. Yuck!). Also, from a commercial point of view, this is not viable as you’d need to keep track of all this information so that it could be included in any future update provided for a client.

To get around this issue, clients can use a utility called Mage or MageUI (GUI version of Mage) which allows them to modify the installation package, re-sign it using your public key and then repackage it ready for deployment. Apart from the fact that this process is convoluted and very easy to stuff up (*See book extract below), we have now gone from a situation where we, as a supplier of the software, know what our package is doing to a situation that we have no idea what the client has changed which may cause the install or application to fail.

So what’s the solution? Apparently you can use the ClickOnce API’s to integrate the functionality of Mage into your own application thus limiting what the client can stuff-up (I mean change). How do you go about doing this? I have absolutely no idea as I’m still looking for resources on this topic. So in the mean time, I have reverted back to using MSI packages and getting the clients’ IT Department to deal with deploying the product. I’ll Endeavour to keep you informed of my research into the ClickOnce API’s.

* Extract from Noyes book explaining the manifest files: “There are two manifest files that are generated as part of the publishing process. The deployment manifest contains settings that affect how the application is launched and updated, and the application manifest contains settings that describe the composition of the application—specifically what files it contains and what permissions the application needs to run. Unfortunately, the file extensions selected for these manifest files and the way they show up in Windows Explorer can make it confusing as to which is which. The deployment manifest has an .application file extension, and is identified as an Application Manifest file type in Windows Explorer. The application manifest has an .exe.manifest file extension and shows a MANIFEST (all caps) file type in Windows Explorer. However, the ClickOnce documentation refers to these files as the deployment manifest and application manifest, respectively, so you will just have to get used to the fact that the .application file is the deployment manifest and the .exe.manifest file is the application manifest”.

Wow! Don’t know about you but that appears to be very confusing and would definitely leave some clients in a coma!

Tuesday, December 12, 2006

Christmas Lights at our House



One of the things I really like doing at this time of the year is decorating the house with Christmas lights. Sure it takes a long time and finding all the broken bulbs and replacing them is more painful than sitting through an episode of Australian Idol (well nearly!); but seeing the smiles on my kids faces, especially Ben’s (who’s three), and talking to all the people that pop by to see them, quickly erases any thoughts I have of not doing it all again. For the last three years, we have also handed out candy canes which the kids love doing and makes the whole occasion even more enjoyable.

It usually takes me about 2 full days, and a few nights after work, to set everything up and then I spend about 15-30 mins each night switching them on and doing some synchronisation to give the best effect. Taking them down doesn’t quite take as long, but is just as painful as it’s usually done on the 1st January with a hang-over! Probably the hardest thing about doing it is stopping yourself from going out and buying more. No matter how many you put up, you always find a spot where you can put some more. It wouldn’t worry me that much if it wasn’t for that fact that the things are so darn expensive. My wife is a pretty good bargain hunter though and usually finds a heap of stuff for me at the pre and post Xmas sales. If it wasn’t for her, we’d have a few big credit card debts as it’s not hard to blow $500-$600 in a few hours of shopping.

Next year we’re aiming for something like this :-)





Saturday, December 09, 2006

Inaugural Canberra Visual Studio Team System User Group Meeting

Nils van Boxel has announced that the first ever Canberra VSTS User Group Meeting will be held at the Canberra Microsoft Offices at 8am on Wednesday 24th January 2007 (to be confirmed).

This is great news for Canberra, which usually get's forgotten, and comes hot on the heels of the launch of Canberra.NET which is another group dedicated to showcasing and helping the Canberra .NET Community.

The purpose of the VSTS User Group is to form a community of practice for Canberra-based IT professionals interested in the use of Visual Studio Team System (VSTS) to support the Software Development Lifecycle. The group meetings will not be used to deliver marketing or sales content, but instead will focus on knowledge sharing on effective use of VSTS (tips, tricks, traps).

Rather than being a standard walk in sit down user group they are going to make it more like a workshop; right down to it being a U-shape layout complete with whiteboards etc (notgartner).

I'd really like to thank the following people for making this happen:

Nils van Boxel
Grant Holliday
Brad Smith
Andrew Coates
Dave Lemphers
Andew Lynes
Mitch Denny
Sean Ferguson (no blog)

Looking forward to attending what is no doubt going to be another great UG!

Thursday, December 07, 2006

Blog Comments

I've had a few people leave questionable comments on some of my blog entries (which have now been deleted) and all of them have been from Anonymous posters.

The way I see things is that if you're not man enough to leave a post on someone’s blog using your real contact details, then your view is obviously worthless and a waste of space; therefore doesn't deserve to exist. If you're man enough to leave your correct contact details then your comment will remain and I will take the time to address it, regardless of whether it's a congrats or a criticism.

I have now reluctantly enforced comment moderation to ensure that these losers don't waste all of our time.

Cheers
Jeff

BTW - I've been able to establish that all of these posts have been made by people living over this side of Australia with the last one being left by a nobody from Queanbeyan who purposely did a search in Google for "jeff wharton blog" just to leave a rather negative comment about the ACS. Looks like someone in NSW/ACT doesn’t like me very much :-)

Microsoft E-Learning

One of the benefits of being a MCT is that you get free access to just about all of the courses and workshops available at Microsoft E-Learning. I say "just about all" because those courses and workshops available under the Advanced Developer Catalog are not free due to licensing restrictions.

Most of the courses contain "Self Tests" (at the end of each sub-topic) and a Virtual Lab (at the end of the course) where you can complete a lab based on what you've just learnt. There are also a number of courses that contain "Assessments" (which are like certification exams) that test your understanding of the course material. The great thing about these "Assessments" is that unlike certification exams, you are provided with links to the areas in the course that deal with the questions you got wrong.

I've done quite a few of the Developer and SQL Server course (some really good; some really bad) and now that I've finished Uni for the year, I've decided to do *Collection 5150 - Managing Device Data by Using Microsoft SQL Server Mobile (strange title! see below) which was put together to assist with achieving MCTS: Windows Mobile 5.0 Applications (71-540) certification.

I sat the 70-540 beta back in September 2006 (still waiting for results) so it will be interesting to see how the material in this collection actually compares with what's in the exam.

Courses in the 5150 Collection:

*5150 is actually a pretty funny code for this collection as not only is it the name of one of Van Halen 's greatest albums, but it's an acutal call code used by the Californian Police (the reason why Van Halen used it in the first place)

5150 means: When any person, as a result of mental disorder, is a danger to others, or to himself or herself, or gravely disabled, a peace officer, member of the attending staff, designated members of a mobile crisis team, or other professional person designated by the county may, upon probable cause, take, or cause to be taken, the person into custody and place him or her in a facility designated by the county and approved by the State Department of Mental Health as a facility for 72-hour treatment and evaluation.

I must admit that trying to follow some of Microsoft's code examples, courses or labs often leaves me feeling like I'm in a state of mental disorder!

Tuesday, December 05, 2006

Visual Studio Team Edition for Database Professionals (DataDude) - RTM'd

Visual Studio Team Edition for Database Professionals (DataDude) v1.0 was officially signed off on 2nd December 2006 and RTM'd.

According to Data Dude, MSDN subscribers can expect to see it on the MSDN download site around December 7 or 8th.

The only thing that spoils this joyful occasion is the fact that you need Visual Studio Team Suite to run it. I've been a really good boy this year so hopefully Santa will give me a copy for Xmas :-)

Interesting stats:

10358 check-ins
315 daily builds
7 CTP's
19 developers
14 testers
4 program managers
3 managers
1 "DataDude"