another Endpoint to my thoughts
My blog has been quiet for quite a while. My inspiration comes from crunching/exchanging information which I should do more often.
Gartner analysis tells us that by 2013 mobile phones will overtake PC’s as the most common Web access device worldwide. A few years back I would have said non sense, but apparently most Web users are comfortable with less processing power. Just take a look at the increasing business in Netbooks.
Wouldn’t it be great to have a mobile phone which can connect wirelessly to my home TV, monitor, car display, mouse, keyboard, etc? And to have the processing power of the current Netbook generation?
Where can I buy it?
Why are we making our PC devices (for instance the slate) smaller while we can make our mobile device’s functionality bigger?
What about the single responsibility principle? Does it apply to physical devices as well as good object-oriented software?
Analyzing functional requirements for your application to capture what and how your application should work is not necessarily domain driven design. Yes, both techniques leverage the domain model pattern to structure responsibilities in code.
My tip is to pay close attention to who the “real” domain expert, business user or sponsor is.
Translating use-case documents into a domain model representation doesn’t imply that you’ve captured domain concepts in code. Unless the use case writer is a domain driven design enthusiast.
Some of my clients have/had challenges embracing object-relational mapping data access API’s. I’ve experienced this with introducing Neo, IBATIS, NHibernate, LLBLGen Pro, LINQ to SQL and Entity Framework in projects for our clients.
As with most things in our field this hasn’t much to do with the technology choices we make. Better collaboration is the key here. I’m glad that Patterns & Practices acknowledges that guidance in this area could help these two groups to leverage each others strengths. I’m confident that enabling a better understanding of both domains will improve the adoption of Microsoft’s data access api’s in the future.
Please give your feedback on the Data Access Guidance wiki.
I was triggered by Dennis’s post “Why developers should not be happy with a project manager” in which he states.
..in a team with different roles, there’s always the product manager and the program manager. These roles can never be filled by the same person. Putting it simple, the first role is there to make sure the customer gets what he wants. The second role is to make sure the team isn’t stressed out, can do their job, etc.
Dennis continues with..
People involved so far are also pretty anxious to use Scrum and some XP practices for this project, so we’ll see where this ends.
This reminded me of my own project experiences. Agile purists better stop reading ;) Looking back I can’t really say that applying more Agile methods gave perceptible better results. We did, however, spend more time thinking about the development process while applying Agile practices. During these times we strongly focussed on the sum of all the parts. I felt as if everyone in this big team had an equal share in the joint success.
Success equals the sum of all the parts.
Years ago I was very strong in advocating Agile over the Waterfall approach. Today I don’t care so much anymore which process is being applied as long as we all realize that success equals the sum of all the parts. My advice is to focus on the connection between your work and the work of others. Have great projects!
The Patterns & Practices team is working on the upcoming release of its Application Architecture Guide, 2nd Edition which should arrive late summer this year.
One of the areas the team seems to be concentrating on is Domain-Driven Design (DDD). A how to guide is publicly available since January. Skimming through the comments it appears that developers/customers are challenging the original authors how to apply the ideas and experiences published in books (Evans, Fowler, Nilsson).
Implementing a domain model in a general purpose language (Java, C#, etc) is challenging. Key to success is to have as little distractions (from the development platform) as possible. The set of design principles and patterns will help to accomplish this goal. I learned that, after discussing ideas with attendees during my “Applying Domain-Driven design in .NET” talk at SDC 2007, there’s a strong focus to overcome the technology use/constraints in applying DDD in our target platform.
My advice for the Patterns & Practices team is to focus on:
Which principles and patterns should be applied (as a coping strategy) for the distractions in the development platform?
Please realize that this is different from guidance on how to implement DDD-patterns with the .NET platform.
Language workbenches are well underway to completely change the way we do programming, so we might not this guidance anymore ;)
I love the summaries on InfoQ. Earlier this week I received a presentation by one of the customer’s developers. Basically they used MVC for a spreadsheet type application. The answer to the question “what made you guys decide to use MVC for this applications” was interesting “because we wanted to learn something new, and because it’s cool!”. That’s when my architect alarm bells start ringing. What I’d like to add to the whole ASP.NET MVC discussion are these two questions:
1) Why do you need an MVC in your application?
2) Why is the, compared to other alternatives, ASP.NET MVC the best MVC solution for your application/environment?
Received my Thinkpad from Lenovo repairs earlier this week (vga output issue). A couple of minutes later the Windows 7 installer was running.
After all this time I assumed MS would have fixed my biggest gripe with Vista. Network copy performance. Rest assured... it's even slower in Windows 7.
update: Copying large (200 MB) files fails with the error "Make sure you are connected to the network and try again". It looks my Windows 7 adventure will be a short one.
update2: Updated the wireless network driver (this version) as suggested in the comments. Still not working, not even with Robocopy.
update3: Turned of autotuning with "netsh int tcp set global autotuninglevel=disabled", don't forget to reboot. Fixed! Copying files over the networks is still sloooooooow.
You don’t know anything about the Entity Framework or didn’t get around installing it on your box and pour the Northwind data onto a screen? This book could give you a great jumpstart into the Entity Framework. There are a lot of Entity Framework books coming your way, so why should you buy a copy of the Entity Framework Tutorial by Joydip Kanjilal? Packt was so kind to send me a copy, but you can always try to get a free copy as a blogger, reviewer or educator. Otherwise I can definitely advise you to get the ebook and use it to inspire your colleagues.
Because that is what this book is great for: convincing co-workers to start thinking and experimenting with the Entity Framework. Many development teams are still handwriting their data access code.
In the first chapter you’ll learn the key concepts and get an overview of the Entity Framework’s architecture. In the second chapter you’ll learn how to get started with the Entity Data Model and bind some data to a GridView data control. From this point on you’re set to build RAD applications!
It continues with getting down to the nitty gritty details in the Entity Data Model. This is not the strongest part of the book. None the less it provides a great way to learn more detailed concepts driving your Entity Framework based solutions. Stored Procedures are up next together with the lower level API’s in the Entity Framework namely Entity Client and Entity SQL. You’ll learn more about executing CRUD operations against your database with the Entity Framework.
The book successfully saves the best for last; LINQ to Entities and the Object Services Layer. I recon 90% of your projects will utilize both API’s. Creating queries, execution and concurrency conflicts are interesting subjects you’ll learn more about. This book only gives a glimpse of these subjects which each have enough going for them to fill a 200+ page book.
I don’t see the need for a chapter on ADO.NET Data Services but it’s included in the book.
Don’t feel like skimming through MSDN and knot together the loose ends? Don’t feel like reading through Julie's excellent 800+ pages? This is a great alternative. I use this book to inspire people about the Entity Framework by letting it floating around the office. For in depth knowledge and to master the Entity Framework’s complexity you’ll be better of with Julie’s Programming Entity Framework.
Months ago I’ve been discussing this with attendees over at the PDC. Now it’s here, and no it’s not Windows 7. The future operating system gOS, a browser based cloud operating system. It boots a browser which is everything I need today.