How to display an assembly in the "Add Reference" dialog box: "When you are developing a class library, you may want Visual Studio .NET to list your library in the Add Reference dialog box on the .NET tab without the user having to browse for it.
This issue is not resolved if you install your assembly to the global assembly cache, because the Add Reference dialog box is path-based and does not enumerate the components from the global assembly cache."
This is just a spot to keep miscellaneous links. It also shows you what a geek I am.
Friday, July 31, 2009
Use Case/Project Management Stuff
Some musings/notes.
Use Case structure -- see the wikipedia article for things to include.
Alistair Cockburn's points:
- Structure use cases with goals.
- Non-functional requirements can be attached to goals.
- Goals have levels - high, low, overarching, short-term detailed, etc.
- Include Stakeholders and Interests - helps separate the wheat from the chaff
- Levels:
- Brief - 2-4 sentences, for instance in a spreadsheet cell
- Casual - a few paragraphs
- Fully dressed - long template, include stakeholders, minimum guarantees, postconditions, business rules, performance constraints, etc.
- Alternative behaviors are more important than the main scenario!! For instance, they reveal subtle requirements.
- Do not use UI elements!
- His resources, templates, etc.
Long use case structure, probably for the detailed view:
- Name
- Version
- Goal - very important
- Summary
- Actors
- Precondition
- Triggers
- Basic course of events
- Alternative paths -
- Postconditions
- Business Rules
- Notes
- Author and Date
Iconix talks about Robustness Analysis
Wednesday, July 29, 2009
Shrinking ViewState when using dynamic controls in ASP.NET
"For 'static' controls (meaning controls declared in your .ASPX page) the ViewState carries VERY little overhead, if any at all. Though for Dynamically Created controls the situation is a bit different. Very often when you create Dynamic Controls this is a three phase run:
"The reason is that when your dynamically created Controls are being added to the page object then its complete lifecycle will execute which means that among other things the ViewState 'IsDirty' flag will be set to TRUE. When the ViewState IsDirty flag is set to true, then all properties you modify afterwards will have its values stored in the ViewState object. If you however set those properties BEFORE adding the Control to the Page object then the ViewState will not be dirty for those properties and values."
- Instantiate the Controls
- Set its values
- Add it either directly or in-directly to the Page object
"The reason is that when your dynamically created Controls are being added to the page object then its complete lifecycle will execute which means that among other things the ViewState 'IsDirty' flag will be set to TRUE. When the ViewState IsDirty flag is set to true, then all properties you modify afterwards will have its values stored in the ViewState object. If you however set those properties BEFORE adding the Control to the Page object then the ViewState will not be dirty for those properties and values."
Scott Hanselman's Computer Zen - Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows
Scott Hanselman's Computer Zen - Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows: "Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows"
Monday, July 13, 2009
dave^2 = -1: An introduction to the SOLID principles of OO design
He makes this stuff more comprehensible than Robert Martin, who is the creator of the acronym.
dave^2 = -1: An introduction to the SOLID principles of OO design: "I would be very hard pressed to go passed [sic] Robert 'Uncle Bob' Martin's SOLID principles as the single most useful tool for helping me with OO design. Some people seem to have a natural talent for OO design and thinking, and have an innate understanding of these principles without requiring the SOLID formalism. I, on the other hand, find them indispensable.
"Unfortunately the names used in the somewhat-cryptic 'acronym of acronyms'[1] don't exactly lend themselves to being easily learned (Bob Martin and Scott discussed how this came about on a Hanselminutes episode on SOLID, which is well worth a listen). I thought I'd post my interpretation of the principles as a refresher for myself, and as an introduction for anyone trying the learn the terminology."
dave^2 = -1: An introduction to the SOLID principles of OO design: "I would be very hard pressed to go passed [sic] Robert 'Uncle Bob' Martin's SOLID principles as the single most useful tool for helping me with OO design. Some people seem to have a natural talent for OO design and thinking, and have an innate understanding of these principles without requiring the SOLID formalism. I, on the other hand, find them indispensable.
"Unfortunately the names used in the somewhat-cryptic 'acronym of acronyms'[1] don't exactly lend themselves to being easily learned (Bob Martin and Scott discussed how this came about on a Hanselminutes episode on SOLID, which is well worth a listen). I thought I'd post my interpretation of the principles as a refresher for myself, and as an introduction for anyone trying the learn the terminology."
Wednesday, July 08, 2009
Visual WebGUI: Web UI Development - RIA Platform / Framework
Very, very cool! A few bugs, but it's open source!
Web UI Development - RIA Platform / Framework: "Developing new Rich Internet Applications (RIA) has never been so fast and simple due to Visual WebGui's drag & drop, near zero coding Development Experience. The rapid web development well suited for building small applications UI in a matter of hours as well as very complex and large applications in a very short time. Visual WebGui allows you to use your existing .NET skills and development patterns since it is based on proven desktop & web technologies. It simplifies web development by flattening the development process into a single layer and empowers front-end design with an intuitive visual WYSIWYG Form designer which lets you use any WinForms, ASP.net and Silverlight controls."
Web UI Development - RIA Platform / Framework: "Developing new Rich Internet Applications (RIA) has never been so fast and simple due to Visual WebGui's drag & drop, near zero coding Development Experience. The rapid web development well suited for building small applications UI in a matter of hours as well as very complex and large applications in a very short time. Visual WebGui allows you to use your existing .NET skills and development patterns since it is based on proven desktop & web technologies. It simplifies web development by flattening the development process into a single layer and empowers front-end design with an intuitive visual WYSIWYG Form designer which lets you use any WinForms, ASP.net and Silverlight controls."
Wednesday, July 01, 2009
Microsoft StyleCop : Introducing StyleCop on Legacy Projects
Microsoft StyleCop : Introducing StyleCop on Legacy Projects: "In this article I’ll describe a technique for doing a slow, staged rollout of StyleCop over your existing codebase. This technique has been used successfully by multiple teams within Microsoft, allowing them to adopt the tool in a controlled manner without generating a lot of noise up front. The general idea is to enable the tool for all of your solutions, but disable the tool from analyzing all pre-existing C# files. This provides the following advantages:"
Tuesday, June 23, 2009
Peter Van Roy: Programming Paradigms for Dummies
To quote Lambda the Ultimate:
This chapter gives an introduction to all the main programming paradigms, their underlying concepts, and the relationships between them. We give a broad view to help programmers choose the right concepts they need to solve the problems at hand. We give a taxonomy of almost 30 useful programming paradigms and how they are related. Most of them differ only in one or a few concepts, but this can make a world of difference in programming. We explain briefly how programming paradigms influence language design, and we show two sweet spots: dual-paradigm languages and a definitive language. We introduce the main concepts of programming languages: records, closures, independence (concurrency), and named state. We explain the main principles of data abstraction and how it lets us organize large programs. Finally, we conclude by focusing on concurrency, which is widely considered the hardest concept to program with. We present four little-known but important paradigms that greatly simplify concurrent programming with respect to mainstream languages: declarative concurrency (both eager and lazy), functional reactive programming, discrete synchronous programming, and constraint programming. These paradigms have no race conditions and can be used in cases where no other paradigm works. We explain why for multi-core processors and we give several examples from computer music, which often uses these paradigms.The concurrency stuff looks interesting.
Monday, June 22, 2009
24 JavaScript Best Practices for Beginners - Nettuts+
Though it says for beginners, it's not a bad refresher.
Thursday, June 11, 2009
Steve Smith and SOLID
Since I missed Steve Smith's presentation at the last .NET SIG, and there is nothing posted (yet), here's a link to the SOLID principles that he was talking about।
[6/22/09 update: here's the link to his presentation.
And a link to Uncle Bob.]
[6/22/09 update: here's the link to his presentation.
And a link to Uncle Bob.]
Saturday, June 06, 2009
Rio by Vice Magazine
Ask any self-respecting carnivore what to eat in Rio, and they’ll tell you about the rodizios. A rodizio is more than just a meal, it’s an elaborate battle of wits between you and the doe-eyed service staff, as they waft meat under your nose. You indicate your desire to stick or twist with a doublesided card; green meaning “feed me” and red meaning “get away from me, peasant.” Also, when in Rio, don’t forget to find a juice bar, and ask for an açai smoothie. It might look like something Barney the Dinosaur would leave in the toilet, but the Amazonian berries served with ice eradicate all traces of a hangover you got from drinking too much Brahma beer in approximately 30 seconds.
For a true carioca sleeping experience, head in search of the notorious love motels. Paid by the hour, motels are as ubiquitous and well-frequented as churches, with each one even given an individual star rating for their level of service. For a dollar or two per hour, you get your bog-standard plastic sheets and herpes on tap, but if you want to quite literally splash out, the five-star deluxe motels have heart-shaped water beds, sex harnesses, a hot-tub fit for a futebol team and gimp-suits on room service.
Forget hanging out, spend as much time and money as you can buying as much cheap tat as you can get. It’s best to avoid the enormous identikit shopping malls, and take to the streets if you want some weird stuff. Also, look out for the dudes selling racks of bootleg funk carioca CDs. The thrift shops of Lapa are the place to go for the Bonde Do Role look. You can also put together a nice collection of vintage Playboys, which, if you’re lucky, will have had just one careful owner.
In the south zone, there’s a small handful of underground clubs, such as Moo, Dama De Ferro and Fosfobox where you can join an invariably tattooed and bisexual crowd in watching big name DJs or, if you’re really lucky, Madoninha. She’s a blonde dwarf who sings literally translated renditions of Madge classics, such as “Como uma virgem. Oh!” If you want to learn more about “ginga”, the fluidity and movement of Brazil, watch the short film Movimento at brahma.com
Thursday, June 04, 2009
Quality Circles and Communication -- brief synopses
Useful information for my job.
Very important point regarding the essence of Kaizen (emphasis added):
Their communication link has the following important point on communication, which point may have been missing from the communication team project charter:
Very important point regarding the essence of Kaizen (emphasis added):
Much of the success of Kaizen came about because the system encouraged many small-scale suggestions that were cheap and quick to implement. They also came from shop-floor employees - who had a detailed appreciation of the benefit each change might make to the process concerned. By implementing many small improvements, the overall effect was substantial.
Their communication link has the following important point on communication, which point may have been missing from the communication team project charter:
Co-ordination of departments, teams and groups - e.g. making sure that marketing, production and administration know what each other is doing, when and why
Tuesday, May 19, 2009
Tuesday, May 12, 2009
Multiple IE Versions revisited
I wrote a while back about installing multiple versions of IE on your computer. Since IE 8 came out, I went back to the site to see if it had been updated. It hadn't, but a commenter on the site posted this link: http://finalbuilds.edskes.net/iecollection.htm
I haven't tried it yet, however.
Sunday, April 26, 2009
Using Script# with ASP.NET
Random notes on this topic.
- Follow instructions here on wiring up the control, specifically the parts about implementing IScriptControl, and overriding OnPreRender() and Render(). However you *must* make one crucial change, or else you'll break ALL javascript on the page.
- You must change this line as follows:
Before:
var descriptor = new ScriptControlDescriptor("namespace.class", this.ClientID);After: var descriptor = new ScriptControlDescriptor("namespace.class", someOtherControl.ClientID);The problem is that user controls do not, per se, have an associated HTML control, so it's necessary to place the control's contents inside a Panel. If you do try to create a descriptor using "this", the un-handled error resulting from the $create() call on the client will cause all page-initialization-related Javascript that runs after that point to fail, thus breaking the page in a big way.
Labels:
ajax,
asp.net,
javascript,
scriptsharp,
web programming
Tuesday, April 07, 2009
GWT Designer, ScriptSharp, Ext JS
Some AJAX things I've been eyeing. Microsoft AJAX just isn't good for certain things, although it's nice.
- GWT, of course. Now 1.6 is in beta.
- GWT Designer -- $99 purchase, or $59/year.
- Script# - a .NET answer to GWT. Not many widgets, but works with Ext JS (!) via the extsharp project. Was on Codeplex, but removed. Speculation is that MS will integrate it into Visual Studio at some point. Here's a good video/powerpoint presentation on getting started. Helps to navigate your way around the bugs.
Labels:
ajax,
asp.net,
gwt,
javascript,
scriptsharp,
web programming
Monday, March 30, 2009
Asp.Net Session Timeout control
Works with AJAX too.
This is pretty cool. It truly is just something you drop onto the page and configure.
http://weblogs.asp.net/latishsehgal/archive/2008/08/29/asp-net-session-timeout-control.aspx
The blog post describes an important change, but he documents it rather poorly. The changes he describes must be made to the “Timeout.js” script.
This is pretty cool. It truly is just something you drop onto the page and configure.
http://weblogs.asp.net/latishsehgal/archive/2008/08/29/asp-net-session-timeout-control.aspx
The blog post describes an important change, but he documents it rather poorly. The changes he describes must be made to the “Timeout.js” script.