[Home] [Recent] [Site Map] [SharePoint] [XBOX]
As you probably know the GotDotNet site is being phased out in favor of the new CodePlex, so I have moved the Retina.NET project to http://www.codeplex.com/retina
I have uploaded the last stable sources and binaries (v1.0.8.0) and sources to the CodePlex TFS servers for the latest (still incomplete) Retina.NET 2.0. I"m still trying to find some time to finish the big refactor to implement generic methods and collections in all Retina.NET classes, but that task proven to be more difficult than I have foreseen.
Feel free to download the sources, binaries or whatever you find in the site, and if you have the time to contribute with something that would be more than welcome.
Thanks!
Andrés G Vettori
MCSE/MCSD/MCT
EDS Top Gun - .NET Capability Architect
Leader of the C# Community of the Microsoft Users Group Argentina
I’ve received an email that I was accepted as a speaker for the BASTA! conference in September in Mainz, Germany . The topic will be the development of add-ins for Visual Studio 2005.
There’s a thing or two that I learned while working on GhostDoc that I’d like to share. My goal is to show both how easy it is to write and debug a simple add-in to be used just by yourself (and maybe your closest buddies), and what it takes to create a “production quality” add-in that runs on the various language versions of Windows and/or Visual Studio.
This will be my first “large” conference as a speaker and I’m sure it will be pretty exciting. Good thing that I’ll have a “warm-up phase” in the next months, speaking about Visual Studio extensibility in general at various .NET user groups (more on that soon).
Note to self: Things to avoid as a speaker
Well CodeCampOz 2007 is beginning this weekend. It should be a great event with a host of good speakers. If you have the opportunity, and are somewhere in Australia, I encourage you to get toCharles Sturt Uni in Wagga Wagga, NSW for some good technical discussions.
I"ll be co-presenting 2 topics, the first one on ASP.NET AJAX Real World Experiences with Damien Edwards who has been doing a lot of cool work in ASP.NET AJAX lately, and my second with Daniel Crowley-Wilson on WCF related topics.
Hope to see you there!
I was celebrating my http://iislogs.com server has been up for 100 days by geeking on HTTP Modules / HTTP Handlers. I'm still working through my HTTP module / handlers example. Once I have the code finished, I'll post up. I found some good links for this topic. Enjoy
ASP.NET Application Life Cycle Overview (Nice graph of all events)
http://msdn2.microsoft.com/en-us/library/ms178473.aspx
Introduction to HTTP Handlers
http://msdn2.microsoft.com/en-us/library/ms227675.aspx
Introduction to HTTP Modules
http://msdn2.microsoft.com/en-us/library/ms178468.aspx
Custom ASP.NET Processing with HTTP Handlers
http://msdn2.microsoft.com/en-us/library/5c67a8bd.aspx
ASP.NET 2.0 Internals
http://msdn2.microsoft.com/en-us/library/ms379581(VS.80).aspx
'List global modules
appcmd list config -section:globalModules
'List modules
appcmd list config -section:httpModules
'List http handlers
appcmd list config -section:httpHandlers
The first 100 days of IIS7

I had the pleasure to experience Niclas Nilsson’s passion for Ruby last week in Switzerland. Niclas presented Ruby on Rails at the Expo-C conference and facilitated the Ruby on Rails: A Kickstart at OOPSLA. He convinced me to give Ruby and Ruby on Rails in particular another try, so I did. This weekend I installed Jon Lam’s excellent RubyCLR, a high performance bridge between Ruby and .NET. Jon Lam recently joined the CLR team at Microsoft “to help bring the love of dynamic languages out to the statically typed heathens”.
I started out by downloading and installing the latest Ruby on Rails bits (1.8.5) on a fresh virtual machine. I then downloaded and compiled the RubyCLR runtime which took some manual tweaking of the dependant libraries and link paths, since the RubyCLR is targeting the 1.8.2 version. All went fine and I was able to run the samples included with the RubyCLR. This is the hard way! My advice is in order to get started with RubyCLR to download the Ruby One-Click Installer and RubyCLR Gem. Then just follow the steps as described in Andrei’s RubyCLR installation guide.
A great guide to programming Ruby is “Programming Ruby, The Pragmatic Programmer’s Guide” of which the first edition is available online for free here. The updated second edition of this book, covering Ruby 1.8 and including descriptions of all the new libraries, is available here.
The influence of dynamic languages to our enterprise platforms is going to be big. Microsoft’s hire of Jon Lam follows Sun’s hire of JRuby developers Charles Nutter and Thomas Enebo to develop an implementation of Ruby on the Java Virtual Machine. Not to mention that Microsoft hired Jim Hugunin in August 2004 to join the CLR team who delivered IronPython for .NET.
I"m looking for a good graphic design that can beat this:

Specifically a splash screen for my SharePoint Builder tool. Requirements are simple: an image of some size (it"s a splash screen remember so 1024x768 might be a bit large) that represents what the program does, namely helps you build SharePoint configuration files.

Think you"re up to the challenge? The reward is my undying gratitute, your name in lights, and the warm fuzzy feeling that you contributed to something useful in the universe. Not bad for a Sunday afternoon huh.
So break out your crayons and send me your ideas (final or otherwise) via email. Let"s give this 2 weeks from today and see if anyone comes up with something cool. I"ll post the entries here and maybe we"ll hold a public vote to pick the best.
Thanks for helping out!
One of the clients I went to today had an interesting dilemma relating to managing references in source control between projects.
Their situation is not unlike many other companies: they have an infrastructure team that creates regular releases of the basic APIs that many internal projects in the company use to create applications.
The problem is, what happens when a new version is releases and the other dependent projects need to be updated with the new version of the framework? To make this harder - the framework may be composed of many dlls, and some project may not want to automatically accept the new reference to the new version of the framework, but keep building against the older one.
How do you allow an automatic update of the references for dependent selected project?
Team System (which is what they were examining against their current Perforce repository) does not have a solid answer for this. sure, you can do branching, shelving and merging like crazy and achieve this, but there is no simple solution.
Luckily, there is *some* sort of solution for this. It was created by a crazy Australian I got to meet at the last MVP summit, Mitch Denny. You can find his blog over at www.notGartner.com . Mitch created a project called TFS Integrator, that not only allows for creating a continuous integration solution , it allows what he calls "Dependency Replication" :
Dependency Replication is a process that most development teams have to do as the scope of what they are trying to achieve grows. The idea is that within your organization you might have a set of common frameworks that you use and maintain. Rather than linking in the source code into each new project that you undertake you treat the framework like an internal product which you build separately.
The problem you then have is integrating the updated binaries into the other projects that depend on them. This can be quite a time consuming process, so much so that teams will often give up and end up compiling hundreds of different versions of the same code into their code base - which creates a maintenance nightmare.
TFS Integrator includes a dependency replication engine which extends the continuous integration feature. It does this by listening for the build completion even from TFS and using that to trigger the execution of some code which picks up the compiled build output and checking it back into Team Foundation Server in a specified location.
The effect is that with dependency replication the feedback loop is complete and dependant components can be linked together.
It does require a .NET 3.0 runtime installed (it uses WCF under the covers) but if you install it on a separate machine it should be of no particular problem.
If all goes well, TFS Integrator should be able to solve my clients problem.
Another interesting resource for techniques on managing the visioning issues in source control can be found in this blog post, which is quite thorough.
Window Clippings 1.5 is now available for download. There are a number of new features that I’m sure you’ll appreciate. Read on to learn more!
This is the last release that you will have to manually download to replace previous versions. Version 1.5 introduces, among many other new features, the ability to update itself when new versions become available. More on that in a minute.
WindowClippings.exe – for x86 editions of Windows XP, Windows Server 2003 and Windows Vista
WindowClippings.exe – for x64 editions of Windows XP, Windows Server 2003 and Windows Vista
Latest build: 1.5.7
This latest version turned out to be quite a bit larger in scope than I anticipated. It first started with an email from Chris Sells inquiring about the ability to capture shadows on Windows Vista as well as the ability include the selected window’s parent. Here is an example of this:

Notice that I’ve captured the actual shadow produced by the desktop window manager instead of faking a shadow as some other tools do.
After adding support for optionally including shadows and parent windows I continued testing and preparing for the release. Chris meanwhile started using a beta build of Window Clippings for his upcoming book and shared the beta with his co-author Ian Griffiths. At this point I received an email from Ian asking whether I could capture the transparency of windows in the alpha channel of the resulting image file. I was reluctant at first but Ian was very persuasive and I eventually added support for this. Consider the following window that illustrates how the desktop background image appears through the window:

Now here is an example of the image generated by Window Clippings having captured the transparency of the window. I have placed the image over some squiggles in a OneNote page to illustrate the transparency:

As you can see, the image has retained the transparency of the window on the desktop but has lost the blurring provided by the desktop window manager since this is not something that image formats can currency represent. Big thanks go to Ian for pushing me to add this feature and proving that it was possible.
Finally, I hadn’t planned on supporting OneNote 2007 in this release but I noticed that it conflicts with the OneNote 2003 API so in the interests of the user I decided to push ahead and add OneNote 2007 to the feature list. Anyway, let me show you how to use the new features.
Image Effects

I generalized the “Clear window background” feature to support not only Windows Vista but any window with any level of transparency. This may be a window with “glass” such as you find on Windows Vista and later versions or it may be a “layered window” with a transparency key or a full-blown alpha channel on any supported version of Windows. In previous versions, “Clear window background” did just that by removing any background “clutter” that may have produced what I called “dirty glass”. In this latest version however, the resulting image actually adopts the transparency of the window so if you save a PNG file it will include an alpha channel mirroring that of the selected window(s).
The second image effect instructs Window Clippings to capture any shadow that may be present on Windows Vista. To be clear, I capture the shadow present around a window and preserve the alpha blending. I do not draw my own shadow as I wanted it to look exactly as it does in reality. This also means that Window Clippings won’t create images with shadows for windows that never had shadows to begin with. Personally I find this more authentic.
Keep in mind that capturing these image effects pushes the boundaries of video hardware performance as well as the robustness of desktop composition. You may find some windows that cannot be captured. It may be because they’re relying on DirectX or simply have pretty slow GDI drawing performance. In these cases your best bet is to simply disable both image effects and the window clipping should be created as before. Future builds of Window Clippings will provide better compatibility.
Include Parent Window
This is the only new feature in Window Clippings that doesn’t have any obvious user interface. To include the parent window in a selection, simply hold the Shift key while selecting the window.
Sending to OneNote 2003 and 2007

Window Clippings can now send window clippings to either OneNote 2003 or OneNote 2007. If you have both installed you get to choose where your window clippings are sent. The OneNote API is a bit troublesome so there are some “release notes” related to using Window Clippings with OneNote that I should point out.
If you installed OneNote 2007 after OneNote 2003 it will have overwritten the OneNote 2003 API so that it no longer works as expected. To fix this you simply need to rerun the OneNote 2003 setup and select the “Repair” option. At that point you can once again use either OneNote 2003 or 2007 as the target for your window clippings.
Window Clippings makes use of the new XmlLite library that is included with recent editions of Windows. It is used for OneNote 2007 support so if you have OneNote 2007 installed but Window Clippings indicates that it is not available then it means that you don’t have XmlLite on your computer. XmlLite is included with Windows Server SP2, Windows XP x64 SP2, and yes with Windows Vista so you may only need to install it if you are still running Windows XP. You can download it here.
To be clear, Window Clippings does not require XmlLite and will function just fine without it. It is only needed to send window clippings to OneNote 2007.
Check for Updates
Finally, you can check for updates at any time by selecting “Check for Updates” from the notification icon’s context menu. Window Clippings will also check for updates on startup. If a new version is available and you choose to upgrade, Window Clippings will perform the upgrade in-place and you will be able to continue working momentarily with little disruption. I have tried to make it as unobtrusive as possible.
What’s Next
Well that’s it for this release. I hope you enjoy it and please provide feedback. This release was very much driven by user feedback. So what’s next? You tell me. I have a lot of ideas but I’d love to hear from you!
By the way, all the images in this post were taking with Window Clippings 1.5 making use of the various settings to achieve the desired effects.
© 2007 Kenny Kerr
Ayende has a very interesting post on a new project from Castle called Igloo, a MVC implementation for webforms. Webforms are tricky to adapt to MVC or MVP because of code behind, it makes the view a two part visual and event controller that which in in turn makes the controller a two part controller class and code behind and in turn binds the view to the controller tightly. True degrees of seperation are lost.
Igloo does look to make the controller and view not aware nor dependent on each other. If you treat the code behind as a lightweight display mech and allocate more into the controller class then you have a good MVC approach. You will still have the problem of consuming events in the controller class from the view and removing web dependencies in the controller, the many problems of webforms. True MVC on ASP.NET is still the domain of Castle MonoRail but I will explore Igloo will interest.
Site List:
>>Xbox Live_s Major Nelson
>>Xbox 360 & SharePoint 2007 Weblog
>>Carsten Keutmann_s Blog
>>Mohamed Zaki_s Blog [Sharepoint MVP]
>>The Mit_s Blog
>>Mart Muller_s Sharepoint Weblog
>>Microsoft SharePoint Products and Technologies Team Blog
>>SharePoint Solutions Blog
>>4GuysFromRolla.com Headlines
>>ASP.NET Blogs
>>SharePoint Blogs
>>SharePoint Blogs
>>Joel on Software
>>ADO Guy_s Rants and Raves
>>Microsoft Live Labs
>>GadgetNews
>>Windows Vista Team Blog
>>VoIP & Gadgets Blog
>>schrankmonster blog
>>Via Virtual Earth Blog
>>Feed
>>MSDN Blogs
>>Mashable!
Links:
Jack's Readings
Month Archives:
Top Tags:
social software social networking .NET mashable Sharepoint ASP.NET Web 2.0 Web2.0 Startups Community News Search Marketplace General Software Development AJAX Windows Vista Microsoft Visual Studio myspace People Powered! YouTube Silverlight Vista Featured News MOSS C# Events Google WPF MOSS 2007 Office 2007 Web Security Community General Personal Xbox 360 facebook Tools development Atlas myspace codes Fun TheLongTail ASP.NET AJAX Architecture IIS SharePoint 2007 SQL Server Revenue Sharing Developers Video WCF Pictures Mobile 2.0 Orcas MIX07 Announcements Arcade Team System JavaScript News Office System 2007
@2007 All rights Reserved |