| Ian Cooper 的个人资料Staccato Signals日志列表 | 帮助 |
|
5月30日 June 14th: Silverlight and WPFPlease sign up via our website or by mailing meetings@dnug.org.uk Silverlight and WPF: The Microsoft Client Platform Silverlight is Microsoft’s solution for delivering rich, cross-platform interactive experiences for the Web and beyond. Silverlight enables the creation of rich, visually stunning and interactive content and applications that run on multiple browsers and operating systems. In this session, we'll look at the benefits of Silverlight from a developer perspective and get an introduction to building Silverlight applications using JavaScript, .NET languages like C#, and dynamic languages like Python and Ruby. We'll also discuss Windows Presentation Foundation (the "big brother" to Silverlight) and look at the roadmap for both technologies as part of a client platform continuum based on XAML. Tim Sneath is the group manager for the Silverlight and WPF technical evangelism team, based out of Microsoft’s corporate headquarters in Redmond, WA. His mission is to see developers create stunning applications built on the Microsoft platform, and to persuade his mother that computers aren’t out to get her. Amongst other strange obsessions, Tim collects vintage releases of Windows, and has a near-complete set of shrink-wrapped copies that date back to the late 80s, as well as a “museum” of Virtual PC images from Windows 1.0 to the present. Tim spent the first thirty years of his life in the UK, and his occasional attempts to speak English with an American accent for ease of comprehension cause much hilarity amongst his colleagues. His popular blog covers client platform technologies, and can be found at http://blogs.msdn.com/tims. 5月29日 DDD5 registration opensDDD5 registration is now open at: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032342589&Culture=en-GB 5月23日 June 14th is next user group meeting dateThis is just a heads up. I am still confirming the line up. It should be at Conway Hall again. 5月22日 The problem with archetype patterns and MDAI'm reading Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and MDA. I picked this up partially because one of the databases at my current gig has been heavily influenced by some of the ideas here - especially the party archetype. First, I want to be positive: if you are looking for a discussion around some of the problems you will hit when designing a solution to representing contacts, products,orders, rules etc. then as analysis patterns some useful learning has been captured here. As an example, the discussion on how to build products that support the open-closed principle (OCP) and are open for extension and closed for modification is useful and captures valuable knowledge. To be fair to the authors they do note that you can use the book as just that. However the book pitches itself as differing from Fowler's Analysis Patterns in that it suggests that the archetypes it provides are not just patterns, but templates for tooling to generate code, specifically: "Is sufficiently detailed to feed into the Model Driven Architecture (MDA) development workflow as a platform-independent model (PIM)". The archetype patterns, that are intended as suitable sources for generation, are necessarily defined in terms of state, not in behaviours, because the behaviour will differ from application to application. Indeed the book says: "As a general rule, Parties have no interesting behavior—they simply hold information. This is an important point to grasp because it makes the Party reusable across many different business domains. If you were to add significant amounts of behavior to the Party,
or to any of its subclasses, this behavior might be appropriate for
some domains but not for others. Your best strategy, therefore, is to
treat the different types of Party mostly as passive data stores and to allow other things to act upon them." Whoa there! Surely the authors recognize the smell here - this is structured programming not Object-Oriented programming. We are talking about seperation of state and behaviour. This seems to be a problem for archetype patterns - state and behaviour need to be seperated to create a generic template that we can use to stamp new instances out for new domains, because behaviour is unknown to the archetype author. The difficulty of extracting a design from one domain and using it in another is a big one. Successful re-use seems to be where the domain remains the same. It seems to be very hard, perhaps impossible, to write clean code that is reusable when you decide to shift domains. The authors do note this objection: "Sometimes a specific model of something, such as a model of products, may be suitable for use in one business area but not in another. This is what we refer to as the principle of variation: different business domains often seem to require different models of the same thing. This principle just seems to be a fact of life. Often there is no way around it even if you choose to make some modeling compromises. Because of variation, the construction of generic, highly reusable object models, such as enterprise object models, has proven to be rather difficult. You may even have heard some pundits say that such activities have failed and are, in principle, impossible." I do not support the author's contention that simply seperating state from behaviour is an adequate solution to the problem; sure, you can shift the archetype between domains now - but only because it no longer does anything useful. Any code that you add to work with the passive data structure will not be 'clean' OO code. So we have sacrificed design for the ability to create a PIM usable with code generation. But how much work has that actually saved us when our requirement is likely demand behaviour as well as state. In addition when we do not design our software through its behaviour we may end up with inappropriate data structures for our actual behaviours. Adding the behaviour to a generated artefact increases the likelihood that we will have speculative generality or over-complexity in our code derived from other domains that the model needs to support. The authors do express that the archetype can be morphed to the requirements of the domain for generation, but what drives those requirements if its not expression of that behaviour in the first place. While I tend to think that Behaviour Driven Development is really just a 'best practice' for Test Driven Development, their focus on behaviour does highlight that good OO design is about behaviour not about state. 5月21日 Giving Crystal some LoveThere is an intersting interview here with Alistair Cockburn. Alistair identifies the phenomena that a lot of shops are calling themselves agile, without really knowing what that means. I certainly get that feeback from people that have moved on from my team to other organizations. A lot of them found that indications that the development team was agilie in interview turned out to be based on pretty flawed notion of what agile is. Alistair's points form a fairly good check list to run through when discovering if an organization is agile or trying to be agile. Not everyone gets it right all the time, but I would at least expect an organization that gets agile to know what the correct response is, and be able to tell you how they are working to get there. Indeed, I would be cautious around any shop that tried to tell people that they were 'the bomb' when it came to agile practice. For me, reflection on what is working and what is not is a key part of the agile process, and the hubris to suggest that you are getting it all right, all the time, would seem contrary to agile, or a bad smell. Alistair says that Crystal is not as used as XP, because it does not have the press. Well, I'm doing my bit to say it is my preferred agile methodology, hopefully more of us will speak out, or more people will look at what Crystal does. Ruby, ASP.NET, and the alpha geeksScott Hanselman asks if Microsoft is losing the web development alpha geeks to Ruby On Rails. Actually I think a number of the cool kids have been playing with Ruby for a while now. When people like Uncle Bob, Martin Fowler, Justin Gehtland, and others begin writing about a language it has crossed over to being an alpha geek language. Still I see those guys talking about C++, Java, and C# too, so its important to note that Ruby, while growing, is not the juggernaut that Java was when it first appeared. Some of this is the lure of the new. ASP.NET is now a fairly mature technology, so there is less demand for advice on how to deliver with that toolset. A lot of the 'cool kids' make their name from championing new technologies or approaches. Some of it is a dissastisfaction with the bloatware platforms, that began with the POJO movement. I think the two big takeways here:
5月18日 Which w3wp process belongs to which App PoolFrom the notes to self department: If you are using multiple application pools you may want to know which application pool belongs to which process id; for example, if you want to attach a debugger it is handy to know which PID to attach to. The script iisapp.vbs, located in your System32 on Windows 2003 directory will answer this one. You can run it from the command prompt by typing in the script name, provided you have cscript registered as your default handler for vbs extension files, or agree to register it (you get a prompt following the WSH failure to handle this for you). Scott Forsyth has the skinny. I've not checked this out on IIS 7.0 on Vista, yet. 5月8日 Silverlight, DLR, et al.There has been a fair slew of annoucements at Mix this year. Those of us who were not lucky enough to attend will have to make do with the session recordings. Some are repackagings and enhancements of things we knew about, but the hype level is already rising. Silverlight is the butterfly emerging from the chrysalis of WPF/e. The e always stood for everywhere, so we have known for a while that a ligthwieght CLR was being delivered, but the extent of the support seems to have caught a few people by suprise. It will be interesting to figure out the delivery sweetspots for ASP.NET now between AJAX, Silverlight, and good old server-side code; however, I think the answer depends a lot on who your market is. Personally I was a little more excited by the DLR services annoucement. The DLR enhancements, shipping initially in Silverlight, make dynamic language features easier to implement in .NET - and lead to the promise of an Iron Ruby. I've targeted Ruby as my 'learn a new language every year' so I'm jazzed that it is going to get support in the .NET framework. But the VBx announcement is also a positive development. IMO VB has languished as a 'me too' language that seems to compete 1-on-1 with C# for its feature set, without any clear sense of identity. VB used to be the high-productivity tool for delivering on the MS platform, but in the .NET world little differentiates it from C#; apart from syntax and easier COM interop. VBx puts it into competition with the scripting languages like Ruby and Python that have been winning converts in recent years and pitches it as a competitor by supporting it in and out of the .NET framework. If I was a VB developer I would be pleased at these developments, which seem to give the language a renewed sense of purpose. And speaking indirectly of the competition from Rails, Jasper, a convention over confguration data layer sounds interesting - but I have not had a chance to download it and take a look. Still Rails has an Active Record pattern that hits high productivity due to its convention over configuration mantra, so it will be interesting to see how Jasper evolves. What's doubly interesting is that it is built atop the Entity Framework - which I was slamming the other week - perhaps there is life in that dog yet. Like Jasper, Astoria got less publicity but looks equally interesting, especially bearing in mind Tim Ewald's recent conversion to REST. Astoria looks very RESTful so it may be interesting to see how this pans out as an alternative to SOAP based RPC style web services. Again Astoria is built atop the Entity Framework - so it looks like that dog is wagging his tail happily. 5月6日 May 10th London .NET User GroupBelow is the agenda for the 10th. Please sign up. Location is: http://www.conwayhall.org.uk/ 10 May: AJAX Development In this session Mike Ormond of Microsoft take a look at the Microsoft AJAX Library as well as enhancements in Visual Studio "Orcas" for the JavaScript developer such as IntelliSense and debugging. We'll then move on to talk about the ASP.NET AJAX Extensions and finish up by looking at the sample controls in the ASP.NET AJAX Control Toolkit that make the building of your rich site easier than ever. Ever since he can remember, Mike's been interested in 'how stuff works', so an engineering career was a natural progression. After completing his degree at Strathclyde University, he toyed with transforms in imaging systems, played with hoppers in payment systems, scheduled headless clients in automated test solutions and helped real customers in product support! Nowadays he spends his time thinking about web and Office development and worrying about how to keep pace with change and whether or not he locked the back door. May 10th: Have we got object-orientation all wrong? |
|
|