I've been to talks like this one before, so not everything was new (in fact, very little was to me...which is probably a good thing, I guess). So, not as much struck me as interesting...but this is a (very) brief run down of some main points to take away...
- Critical Problems are always...
- IntraProcess: resources within the process like memory and CPU, or
- InterProcess: contentions for resources outside (files, network, etc.)
- Important CPU Counters to monitor for CPU utilization
- % Processor Time: Useful in multi-CPU environments
- % User Time: Determines how much work user-mode code in your app (therefore, typically YOUR APP) is taking,
- % Priv. Time: Determines how much time the kernel is spent working on particular tasks given to it by your app.
- Good CPU performance tools:
- Visual Studio Performance Profiler (available in Team edition),
- Kernrate viewer (available on MSDN),
- Intel's performance profiler (forgot the name...oops)
- Visual Studio Performance Profiler has the capability to profile in,
- Sampling Mode: where it samples every N CPU cycles; this method is typically less intrusive, but given that it's time-based can miss things.
- Instrumentation: performance code and bit are inserted into the runtime code, which takes up more time for it and gives it a larger working size, but is sometimes the only option for certain scenarios (like testing for Priv. Time slices).
- Memory Problems:
- Check for immense paging,
- Tools:
- Perf Counters, TaskManager, SysInternals' ProcessExplorer
- CLRProfiler V 2.0
- VADump (very cool app)
- take note of the OtherData vs. Heap values in this as this determines what is native/managed resource leaks (usually) respectively.
- Also Check out User Mode Dump Heap (never heard of this tool, personally), sometimes called "UMDH".
- Key blogs:
- http://blogs.msdn.com/ricom/.
- http://blogs.msdn.com/maoni/.
Went to a lunch time session on Windows MapPoint; and there are some cool advances going on there. Version 3 is out, so I would recommend checking it out as there are some new features built into it.
Some highlights:
- Check out http://dev.live.com/virtualearth/sdk for a wonderful array of samples and examples for what is capable and how to do it.
- MapPoint is available as a web service too for smart clients, etc.
- Check out MapCruncher, which is a service that lets you upload your own maps and morph them to support the same functional capabilities of MapPoint using the MapPoint services. Check it out here: http://research.microsoft.com/mapcruncher.
Some cool stuff, folks....
Brief TechED Linq summary:
- The point is to work with data like you work with objects
- System.Query is the entry namespace
- The LINQ infrastructure is built into the .Net Framework, so it's not a language extension but a first-class piece of .Net. This means it's language agnostic.
- LINQ uses pluggable data sources to power itself. These can be done by third parties.
- LINQ can query all objects implementing IEnumerable<T>
- LINQ works with SQL Server by generating "interop-like" assemblies that wrap the database types and calls around something the LINQ framework can query (objects).
- The LINQ Query Visualizer looks very cool, it's used during debugging times to see the SQL statements that the LINQ framework generated; also gives you the ability to tweak these statements and test them.
- LINQ to XML:
- System.Xml.XmlLINQ
- VB.Net has now added support for XML Literals where XML can be written inline with VB.Net (without the "" quotes).
- Check out http://msdn.microsoft.com/netframework/future/linq.
A quick run down on a few of the new changes in the Windows VISTA kernel:
- I/O prioritization optimizations
- Things like larger I/O packets to reduce read/write requests
- File bandwidth reservations for long-running applications that may require time slices on the disk for a range of time (like Windows Media Player)
- User Mode Drivers
- No fixed-size memory preallocation of kernel regions at boot time; memory allocation can be dynamic.
- SuperFetch
- Notes patterns and prefetches application (and even application private memory) into VM.
- ReadyBoost
- Extends VM on external drives
- Boot Configuration DataTable; boot.ini is has been replaced by the data table
- Location D:\Boot\BCD
- BCDEdit is the command line editor for this
- BootMgr replaces pieces of NTLDR
- New interactive logon manager
- GINA has been replaced with a more dynamic, pluggable alternative
- Kernel Transaction Manager (for transactional kernel actions)
- File system is now transactional by nature
- API is programmable through CreateTransaction/CommitTransaction/etc.
- Interfaceable through commandline interface (transact command)
- Volume Shadow Copy
- Crash Recovery/Diagnostics for unhandled native exceptions (non-managed) isn't handled by Dr. Watson anymore, which was loaded into the address space of the crashing application as this was a bad alternative for apps with severely corrupted stack frames: No more "just dissapears" application crashes.
- BitLocker drive encryption
- Implemented using filesystem filters
- Code Integrity Verification
- All drivers under 64-bit Windows must be digitally signed by Microsoft for verification of stability.
- Mark noted that roughly 1/3rd of all blue screens today are occuring due to 3rd party drivers for which there are, currently, available updates that would have fixed the problem.
- Protected Processes
- Cannot have a debugger attached
- Many statistics and bits of information are hidden from view, cannot be seen or analyzed.
- Address Space Load Randomization
- Very cool feature: randomizes where libraries and moduels are loaded into memory so that fixed-location attacks are mitigated.
- The system randomizes 256 different locations; enough since most code that would need to inspect each 256 of the variants would be too large to fit in many buffer overrun attacks.
- User Account Control
- Running applications with reduced security tokens even when administrator - have the option to run as Administrator when Administrator.
I just got done with a good WCF talk given by Steve Maine. My note taking these days is more used as a way of reminding myself later what to look at, or what I think others might find interesting. So....here are a couple points anyone should take with them:
- .Net Remoting is not dead: in fact, it's quite alive some of WCF actually utilizes it,
- Make sure you understand the basics behind Encoders, Channels, Operation Selectors and Operation Formatters.
- Pay special attention to the powerful extensibility tools called Behaviors.
- Check out the new site (published less than 24 hours ago): http://wcf.netfx3.com.
Dude, the link I sent out about the TechEd bags was TOTALLY NOT what the bags turned out to be like....*rolls eyes*. Totally gay.
I just got out of a talk concerning another topic about which I know very little, but I tried to understand the most I could: wireless networking and the advances being made in VISTA for it.
Altogether a great talk, the guy clearly knew what he was saying. One of the biggest advances I pulled away from the talk was that the diagnostics, configuration and deploymenting of configurations capabilities have increased ten-fold. Group policies are big and these policies as well as other wireless profiles can be managed, diagnosed and deployed through a new, scriptable, commandline tool called NETSH. You can script this tool to do anything from dump a list of errors a user on your network has experienced to settnig up a profile for securing a computer or group of computers.
Another interesting thing I took from this talk was that the user interface for novice users has been greatly increased for diagnosing errors..."hopefully" most problems will be diagnosed with a bit more information than simply "Could not Connect" - and attempting to fix the problem will bring up relevant dialogs than can be used to actually fix the issues. Exciting stuff...I wish I knew more. I *do* have the new release of VISTA, perhaps I can start playing with the wireless capabilities now.
I landed safely in Boston as of last night and the conference is now in full swing. My first session was on developing and, mostly, deploying VSTO-based products. I haven't done much VSTO stuff personally, but I have an interest in the topic and thought I might attend. So notable points from the talk:
- Take a look at the VSTO Client Troubleshooter for analyzing your clients' machines when something goes bad,
- PIA (primary interop assemblies) now can be deployed as a redistributable for the Office system,
- Take note of the Publish Wizard, and also note that it does nothing for setting permission settings (full trust permission is required for both the document and the application),
- There is something called the VSTO Application Manifest Editor that can be used to analyze (and edit?) the application manifests for your apps,
- Use the .Net security tool if you wish to manually set the permission settings for the app,
- When the deployment wizard creates a new module "out there", it'll copy off a backup of your application manifest in the old app's directory.
- For advanced deployment scenarios, use an MSI Installer (and there are inherit difficutlies that you must surmount).
- Take a look at this blog here (and take special note of any references to white papers, as he elluded to the fact that these white papers are a must read for deployment): http://blogs.msdn.com/pstubbs (more specifically http://blogs.msdn.com/pstubbs/archive/2006/06/12/628068.aspx).
I'm not a VSTO expert, so some of this information is kind of picked up "off the cuff" so if you happen to be one and you note something wrong, please feel free to leave a note for others. I'm just passing along what I tried to understand amidst falling back into a sleepy state....*yawn*
|