Addison Wesley
Morgan Kaufmann
O’Reilly
Pragmatic Press
Quick Edit ModeQuick edit mode allows one to use the mouse to select text, cut, copy and paste in command shell. This mode is not enabled by default. To control the mode, apply the following Windows NT / Windows 2000 registry hack.
Hive: HKEY_CURRENT_USER
Key: Console
Name: QuickEdit
Type: REG_DWORD
Value: 1 enable quick edit
Value: 0 default - disable quick edit mode
Method #1 - Using MSCONFIG
-
Launch MSCONFIG by from the Run
menu.
-
Click on the Tools tab. Scroll down
till you find "Disable UAP" (this should probably change to UAC in next Vista
beta builds and in the RTM version). Click on that line.
-
Press the Launch button.
-
A CMD window will open. When the
command is done, you can close the window.
-
Close MSCONFIG. You need
to reboot the computer for changes to apply.
Note that you can re-enable UAC by
selecting the "Enable UAP" line and then clicking on the Launch
button.
Method #2 - Using Regedit
-
Open Registry Editor.
-
In Registry Editor,
navigate to the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
-
Locate the following value (DWORD):
EnableLUA
and give it a value of 0.
Note: As always, before making
changes to your registry you should always make sure you have a valid backup. In
cases where you're supposed to delete or modify keys or values from the registry
it is possible to first export that key or value(s) to a .REG file before
performing the changes.
-
Close Registry Editor.
You need to reboot the computer for changes to apply.
In order to re-enable UAC just change
the above value to 1.
Method #3 - Using Group Policy
This can be done via Local Group
Policy or via Active Directory-based GPO, which is much more suited for large
networks where one would like to disable UAC for many computers at once.
If using Local Group Policy you'll
need to open the Group Policy Editor (Start > Run > gpedit.msc) from your
Vista computer.
If using in AD-based GPO, open Group
Policy Management Console (Start > Run > gpmc.msc) from a Vista computer
that is a member of the domain. In the GPMC window, browse to the required GPO
that is linked to the OU or domain where the Vista computers are located, then
edit it.
In the Group Policy Editor window,
browse to Computer Configuration > Windows Settings > Security Settings
> Local Policies > Security Options.
In the right pane scroll to find the
User Access Control policies (they're down at the bottom of the window). You
need to configure the following policies:
You'll need to reboot your
computers.
Method #4 - Using Control Panel
-
Open Control Panel.
-
Under User Account and Family
settings click on the "Add or remove user account".
-
Click on one of the user accounts,
for example you can use the Guest account.
-
Under the user account click on the
"Go to the main User Account page" link.
-
Under "Make changes to your user
account" click on the "Change security settings" link.
-
In the "Turn on User Account Control
(UAC) to make your computer more secure" click to unselect the "Use User Account
Control (UAC) to help protect your computer". Click on the Ok
button.
-
You will be prompted to reboot your
computer. Do so when ready.
In order to re-enable UAC just select
the above checkbox and reboot.
(Source, http://www.petri.co.il/disable_uac_in_windows_vista.htm)
Run as Administrator
Step 1.) Launch GPedit.msc with administrative rights.
Step 2.) Browse to Windows Settings | Local Policies | Security Options
Step 3.) Scroll down to User Account Control: Behavior of the elevation
prompt for administrators in Admin Approval Mode and double click
Step 4.) Change this value from Prompt for "Elevate without prompting"
Disable User Account Control
(I used method #3)
If you are running Microsoft Windows Vista and need to burn an .ISO image to a
DVD, here is a handy tip:
- Use the
Windows Server 2003 Resource Kit Tools. The installer will
complain when running on Vista, but just accept it and go ahead. It will install
a few programs in \Program Files\Windows Resource Kits\Tools. Open a command
prompt there and run "
dvdburn [drive] [.ISO file]" to
burn that DVD.
Vista
http://msdn.microsoft.com/windowsvista/
Dev Downloads
http://msdn2.microsoft.com/en-us/windowsvista/aa904949
[via Tim Sneath]
Base Environment
Tools and Utilities
- XamlPadX,
Kaxaml and XamlCruncher: three enhanced
alternatives to the XamlPad tool that ships in the SDK. Each have their
strengths: XamlPadX has some nice add-ons and is based on the XamlPad codebase,
Kaxaml is great for demos and has good tab / indent support and XamlCruncher has
high-quality
source code available.
- Lutz Roeder's .NET Reflector:
handy for browsing through class hierarchies;
- Snoop: Peter Blois' tool for visually
debugging WPF applications;
- WPF
Performance Tools: buried in the SDK but an essential part of the toolset
for an application in the stabilization stages. Youll find it as %SdkTools%\WpfPerf.exe
(make sure you run it as an administrator if you're using Windows Vista);
- Flexible
Application Template: this replacement project template from one of the app
services PMs allows you to create a single application project that can flip
between an XBAP (web browser project) or rich client application just with an
adjustment to the project type;
- ZAM 3D: Electric
Rain's utility for quickly creating and animating 3D meshes.
- XAML
Converters: Utilities for converting 3DS, DXF, Blender, Fireworks,
Lightwave, SWF, Maya and Illustrator files to XAML format.
Building a Code Toolbox
- 3D
Tools for WPF: interactive 2D on 3D surfaces, wireframe lines, 3D mouse
navigation;
- Kevin's
Bag-o-Tricks: a collection of controls that extend and enhance the intrinsic
types ColorPicker, FolderPicker, NumericUpDown, RadioButtonList, date controls,
animating tile panel and graph controls;
- UI
Automation Stress: stress testing for your application environment. (Add
this code into a debug menu to make sure that you can't crash your application
with spurious input.)
Sample Applications
I'm the kind of developer who likes lots of sample code available to me for
copying concepts, ideas and techniques. Copy these to a \samples directory for
quick access:
Also unpack %SdkTools%\..\Samples\WPFSamples.zip to a \samples\sdk directory
so you can easily browse through all the samples without needing to go through
the SDK documentation interface.
Now enable Windows Desktop Search (install
WDS 3.0 here if you're running Windows XP) and configure it to index file
contents of .xaml, .cs, .vb files as a bare minimum. Make sure it's set to index
the entire \samples directory that you put the above samples into. Now you
can quickly pull up every sample that shows the usage of (say) BitmapSource and ColorConvertedBitmap
just by hitting Win+F and searching for those keywords.
Support
- The WPF
MSDN Forum is frequented by both the product team and many other
knowledgeable community members, and contains a great archive of questions
previously asked (and answered);
- The WPF
MSDN Newsgroup provides a very similar service to the web forum but in the
form of a USENET newsgroup. At the time of writing, the forum seems to have
significantly more traffic, however.
Tips and Tricks
- Make sure that you integrate the Windows SDK documentation with the rest of
the MSDN documentation on your system: run Start -> Windows SDK -> Visual
Studio Registration -> Integrate Windows SDK with Visual Studio 2005 as an
administrator for easy F1 integration from the code view.
- I make liberal use of pinned shortcuts on my Start menu to make it easier to
access some of these tools, particularly XamlPad, WpfPerf and other tools that
are really hidden by default. If you're running Windows Vista, this
tip will give you a quick shortcut to each of these items also.
- Set the Windows Presentation Foundation Font Cache system service to
Automatic (Delayed Start) if you are running Windows Vista, to reduce
initial start-up time for WPF applications.
- In Visual Studio, set the default font to Consolas - it's easier on the eyes
than Courier New and was designed with code development in mind. Consolas is
included with Windows Vista or Office 2007, or you can download
it here.
- From the Windows SDK documentation, the "New in Windows Vista" index filter
is a great way to ensure that you don't get the WPF and Windows Forms APIs
accidentally mixed up: I've come across a few developers who had accidentally
started using types from both libraries together simply because they hadn't
spotted the very subtle clues in the documentation that differentiate them.
"There are just two kinds of languages: the ones everybody complains about and the ones nobody uses." (Bjarne Stroustrup)
Admittedly I am not a typical user. I run so much experimental code and generally tinker with my machines so much that every six months I have to rebuild my boxes at the reformat level.
I installed vista on my machines as soon as it went RTM. The first days were rough. Although, I imagine the defaults will make IT departments happy, I found vista paralyzing. The amount of confirmations and warnings on every configuration/installation/edit was just way, way, way too much.
So, I tried running as administrator. No change. I tried, "Elevate without prompting". No change. Finally, today, I found, "Turn Off User Account Control". Looks like this is doing the trick, I really hope so :)
Step 1.) Launch GPedit.msc with administrative rights.
Step 2.) Browse to Windows Settings | Local Policies | Security Options
Step 3.) Scroll down to User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode and double click
Step 4.) Change this value from Prompt for "Elevate without prompting"
"XML is like violence: if it doesn't solve your problem, you aren't using enough of it." Chris Maden
"ORM is the Vietnam of our industry" Ted Neward
"SOAP feels more like the doorknob to the gates of hell. In itself, a doorknob is hardly evil. But once you turn..." DHH
I came across the following graphic on retention:

Many programs focus on teaching students a mastery of the fundamentals. However, in many technical fields education is short lived and continuous learning is the norm. Does learning to learn then trump a mastery of the fundamentals?
If we become autodidactic masters, would we not then be able to overcome any learning gaps?
Much graduate work at MIT, by its nature, is independent learning. At the undergraduate level I see good efforts in this direction but the promise is still unrealized. In either case, I think MIT does better than most colleges at creating self teachers.
My personal learning cycle is:
1) Build a knowledge base
- read, read, read
2) Test your knowledge
- test, experiment, and challenge
3) Summarize and structure your findings
- write, write, write
4) Teach what you have learned
- explain it to others
The process is often iterative in steps and in cycle.
Something that was not obvious to me was "self feedback". On a traditional teaching structure, the feedback comes from the instructor. In self teaching, you give feedback to your self.
I have been working with Java for the last two weeks.
The plain vanilla Java is pretty poor when it comes to web services. Unless you are using a development platform, the road is rough.
The tools story is not that straight forward either. For code construction, there are the "n" eclipse projects, then there are about 6 different versions of IBM Websphere, the JBoss tools, the BEA, the open source camp, and so on.
Once you get your IDE, you will need an application server. Finding and choosing an application server in yet another adventure.
The space reminds me of the UNIX days. Even though Sun, HP, IBM, etc were all UNIX the variations made for unnecessary complexity and interop problems.
After doing the massive installations of the leading commercial Java platforms I came back to open source tools. Though it may not seem like it, I found this solution to be the lightest and simplest development environment.
I placed the installs at
http://autoid.mit.edu/pickup/Java/
1) Install
jdk-1_5_0_07-windows-i586-p.exe
2) Download and unzip (do not install)
apache-tomcat-5.5.17.zip
3) Download and unzip (do not install)
wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip
4) Open WTP and run eclipse – no need to install
5) In eclipse create a new project, add a server, use the tomcat libraries – no need to install
6) When you run your samples, use the server you added through eclipse
Once I had everything in place, creating and firing my proxies was pretty smooth :) There are Java-to-.NET issues but I had taken care of those at the interop party.
An old one, entered here for reference
<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>