Published by

Comments

# re: Today's Buzz in the Clouds

Yes, Clemens is on the .NET Services team and owns the .NET Service Bus feature area as Technical Lead, in fact ;-)

Monday, November 03, 2008 9:11 PM by Clemens Vasters

# re: Missed It By that Much

7.9 for graphic performance index? Wow. Impressive :)

Thursday, November 13, 2008 6:20 AM by Laurent

# laptop

If you're interested, we procured these from www.pcpartsohio.com/BookDetail.aspx.  I purchased one for personal use, and it's working out quite well.

Thursday, November 13, 2008 4:37 PM by Anthony Panozzo

# Every Cloud has a SilverLining

You've been kicked (a good thing) - Trackback from DotNetKicks.com

Friday, November 14, 2008 1:13 AM by DotNetKicks.com

# Preview of Windows 7

You've been kicked (a good thing) - Trackback from DotNetKicks.com

Friday, November 14, 2008 1:39 PM by DotNetKicks.com

# re: Another Use for Live Mesh

Hey Mike,

Great solution to a common problem. For those who use Firefox, the excellent Foxmarks (addin) comes with a password manager that does the same. The file is encrypted with a pin, and it seems really secure. Your alternative is of course more secure but less integrated.

Cheers,

Laurent

Monday, November 24, 2008 4:48 AM by Laurent

# re: Another Use for Live Mesh

Nice idea - but at my customers (and also at friends) I work on machines running Windows XP and Windows Server 2003. And AFAIK the Live Mesh software is only available for Vista and MacOSX (experimental stage)...?

Monday, November 24, 2008 8:11 AM by Christian Weyer

# re: Another Use for Live Mesh

I've run Live Mesh (public version not developer preview) on XP with no problem.

Monday, November 24, 2008 8:25 AM by Mike Brown

# re: Another Use for Live Mesh

OK, then I'll try it and use Keith's PasswordManager ;)

Thanks!

Monday, November 24, 2008 11:12 PM by Christian Weyer

# Buzz In the Cloud November 25, 2008

Whoa...today is a doozy for buzzing, so let's get right to it. I For One Welcome Our New Cloud Overlords

Tuesday, November 25, 2008 4:29 AM by Brownie Points

# re: Using an Existing SQL Instance With Azure SDK

The location of the Microsoft.Samples.ServiceHosting.Targets

C:\Program Files\Windows Azure SDK\v1.0\Samples\MSBuild\Microsoft.Samples.ServiceHosting.targets

Tuesday, December 30, 2008 9:49 PM by Justin

# re: Starting the New Year With a Bang!

Looking forward to a fantastic year and congrats on the new one!

Wednesday, February 11, 2009 1:51 PM by St Louis Rams

# re: Static Reflection: Say What?

I totally love the use of expression trees.  Way to keep it DRY.

Tuesday, February 24, 2009 5:34 AM by David Justice

# re: Using an Existing SQL Instance With Azure SDK

thank you - this is hugely helpful, and educational

Wednesday, March 04, 2009 6:53 PM by dan

# Links 2009-03-25

SharePoint Customizing and Branding Web Content Management-Enabled SharePoint Sites (Part 1 of 3): Understanding

Wednesday, March 25, 2009 11:06 AM by Gunnar Peipman's ASP.NET blog

# re: Entity Framework Has Layers Like an Onion

Hello!

Very Interesting post! Thank you for such interesting resource!

PS: Sorry for my bad english, I'v just started to learn this language ;)

See you!

Your, Raiul Baztepo

Tuesday, March 31, 2009 6:00 AM by RaiulBaztepo

# re: Blend Behaviors FTW

Cool stuff.  Is there a reason we're specifying the command as a string and doing reflection, though?  Why not specify as an ICommand and use the binding infrastructure?

Wednesday, April 08, 2009 8:17 AM by wekempf

# re: Blend Behaviors FTW

The new TriggerActions can't use binding unfortunately. I would have just gone that route myself. That was the first path I followed originally.

This could be cleaned up a bit by using the targeted trigger action though.

Thursday, May 21, 2009 12:46 PM by Mike Brown

# re: Blend Behaviors FTW

Can we have the code please?

Wednesday, July 29, 2009 2:42 AM by Trevoure

# Service Locator Revisited

I guess I have awakened a slumbering giant by writing the post the other day . I went back to add more

Wednesday, August 12, 2009 9:18 PM by Brownie Points

# re: Static Reflection: Say What?

Unfortunately this doesn't work if the backing variable has a private setter.

Thursday, September 10, 2009 3:51 AM by Patrick

# re: Static Reflection: Say What?

Why not? the closure happens in the context of the owning class.

Wednesday, September 30, 2009 5:46 PM by Mike Brown

# re: Blend Behaviors FTW

Code is linked above...right at the top of the post

Wednesday, September 30, 2009 5:53 PM by Mike Brown

# TriggerAction driven command execution with zero code behind « vincenthome’s Tech Clips

Pingback from  TriggerAction driven command execution with zero code behind « vincenthome’s Tech Clips

# Twitter Trackbacks for Stealth Disease - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Stealth Disease - Brownie Points         [azurecoding.net]        on Topsy.com

# re: What is “Lean”

nice! very informative post. enjoyed reading is here and on LSC.

Sunday, December 20, 2009 11:18 PM by tracy

# Twitter Trackbacks for RIAlity TV - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 RIAlity TV - Brownie Points         [azurecoding.net]        on Topsy.com

# The Duct Tape Programmer Revisited

Not too long ago, I responded to the reaction that many had to Joel Spolsky’s article “ The Duct Tape

Thursday, January 07, 2010 5:25 AM by Brownie Points

# re: The Duct Tape Programmer Revisited

<i>What’s really sexy to me is shipping a product. </i>

Amen.

People forget that most programmers and IT guys are employed by companies for whom IT is a staff function.  For us, the product is assembled on the floor, the software is merely a tool _they_ use to get the job done.

The business guys could care less about shiny vs. duct tape.  They care about 'does it work' and 'is it cost effective' and 'how does it help me ship'.

Thursday, January 07, 2010 10:39 AM by Brian Dunbar

# Twitter Trackbacks for Welcome to 2010 - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Welcome to 2010 - Brownie Points         [azurecoding.net]        on Topsy.com

# re: The Duct Tape Programmer Revisited

Even when they're employed by software companies, shipping a working product that meets or exceeds market needs is still the most imperative goal.

Friday, January 08, 2010 6:11 AM by Mike Brown

# The Pomodoro Technique

I was going to talk about how my digital cleanse reminds me of a macro scale Pomodoro. Then I realized

Monday, January 11, 2010 8:04 AM by Brownie Points

# re: Welcome to 2010

Happy New Year Mike!

Sunday, January 17, 2010 2:28 PM by St Louis Rams

# re: Service Locator Versus DI – A Clarification

Since a couple of months I advice everybody who likes to use an IoC framework to look at the Common Service Locator (commonservicelocator.codeplex.com) facade. It won't give you an implementation, but defines an interface for IoC implementations. This gives us a uniform way of using the Service Locator pattern and allows swapping implementations.

A simple implementation on top of it is even easily made, as I did myself. It's quite similar to yours, but is completely lock-free. It's nice to see other developers are doing the same thing :-)

Saturday, January 23, 2010 4:59 PM by Steven

# Social comments and analytics for this post

This post was mentioned on Twitter by azurecoding: Just published Windows Phone 7 the Belle of the Ball http://goo.gl/fb/P70A

Monday, March 15, 2010 9:07 PM by uberVU - social comments

# re: Sacha Barber’s New WPF Framework

Are you serious? How can you recommend those as pillars without dealing with Fox in Socks and the highly respected Green Eggs and Ham? Without the use of MVVM (that's Monkey, Vertebra, Vertebra Mammal), this is just horsing around.

Thursday, April 01, 2010 11:46 AM by Pete O'Hanlon

# re: Sacha Barber’s New WPF Framework

Green Eggs and Ham in an application IMHO is not a best practice. The tooling definitely isn't there for it. And your mixing your edible concerns with your zoological concerns. You should use Pigs and Chickens over green eggs and hams it helps keep a separation of concerns and avoids the lifetime concerns of produce.

Thursday, April 01, 2010 11:59 AM by Mike Brown

# re: Sacha Barber’s New WPF Framework

Mike,

You're entitled to your own opinion. And you're also wrong.

Plus how can I take this article seriously when your blog is not even running on Silverlight?

Thursday, April 01, 2010 12:19 PM by Jeff

# Twitter Trackbacks for Just gave my definition of MVVM [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Just gave my definition of MVVM         [azurecoding.net]        on Topsy.com

# re: What is MVVM?

I agree with you. However, I would add one more constraint to your definition in order to differentiate it from Supervising Controller. A ViewModel relies wholly on some sort of observer synchronization mechanism, however it's implemented (you've already listed a lot of examples), to connect the view and the view model. I've had a lot of questions about and seen a lot of developers confused about the difference between a Supervising Controller and a ViewModel because a SC uses a combination of observer sync and manual sync (or flow sync). I tend to view several of these patterns as a spectrum. PassiveView is on the left side, using wholly manual sync mechanisms; ViewModel is on the right, using wholly observer sync mechanisms; Supervising Controller is somewhere in the middle, using a combination of both (which is why people get confused and often misrepresent one as another).

I think one problem we have right now is that the Silverlight/WPF community, with a few exceptions, is *only* talking about MVVM. As a result, developers don't really understand the broader range of UI patterns, their differences (which are sometimes quite nuanced) and when one pattern is a more appropriate solution than another.

Tuesday, May 04, 2010 8:47 AM by Rob

# re: What is MVVM?

What better way to clear up confusion than an extremely vague definition.

Tuesday, May 04, 2010 8:49 AM by Corey

# re: What is MVVM?

What's vague about it? It's a pattern. Patterns don't dictate how they're implemented, they just provide a solution to a problem.

As I mentioned a lot of the confusion comes from people mistaking the implementation for the pattern itself. I wanted to take a step back and spell out just what the pattern is.

Tuesday, May 04, 2010 10:52 AM by Mike Brown

# re: What is MVVM?

"Here here" on the distinction between *pattern* and *implementation*, Mike.

You aptly captured the fundamental intent of MVVM:  separate view (visuals) from presentation logic

Rob's comment helps differentiate MVVM from other Presentation Patterns that share this intent.

The vagueness complaint has some merit. Yes people tend to confuse pattern and implementation ... and we don't want that.

But even a brief definition of MVVM would identify the distinguishing characteristics of the pattern, the collaborators, and how it works in the abstract.

You could do worse than the first screenful of Fowler's "Presentation Model": martinfowler.com/.../PresentationModel.html

A couple of pithy quotes therefrom:

"The essence of a Presentation Model is of a fully self-contained class that represents all the data and behavior of the UI window, but without any of the controls used to render that UI on the screen. A view then simply projects the state of the presentation model onto the glass"

"Compared to Passive View and Supervising Controller, Presentation Model allows you to write logic that is completely independent of the views used for display. You also do not need to rely on the view to store state. The downside is that you need a synchronization mechanism between the presentation model and the view. This synchronization can be very simple, but it is required. Separated Presentation requires much less synchronization and Passive View doesn't need any at all."

"Probably the most annoying part of Presentation Model is the synchronization between Presentation Model and view. ... Ideally some kind of framework could handle this, which I'm hoping will happen some day with technologies like .NET's data binding." [written pre-WPF/SL]

To my eye, this is sufficiently precise - I can see what it's about and compare it to alternatives - without succumbing to the implementation specificity trap that you justly decry.

Wednesday, May 05, 2010 11:41 AM by Ward Bell

# re: What is MVVM?

I'd prefer to see this in the same format as was used by GoF, but you're spot on here. Way too much of the confusion lies in people mistaking implementation for pattern, and then other's not seeing the real pattern in the details of the implementation and thus writing about the pattern with a flawed understanding. Rinse, repeat, and cry.

Wednesday, May 05, 2010 11:48 AM by wekempf

# re: What is MVVM?

For comparison:

In Passive View, the role of the controller is to synchronize state.

In MVVM, the role of the View Model is to represent state.

In Supervising Controller, the role of the controller is to represent simple state and synchronize complex/difficult to represent state.

Implicit in MVVM and SC is some form of observer synchronization which can be handled in a variety of ways.

Wednesday, May 05, 2010 11:54 AM by Rob

# re: What is MVVM?

Thanks for the feedback everyone...I agree that I may have been too spartan in my definition. I'll update with some more info.

--Mike

Wednesday, May 05, 2010 5:25 PM by Mike Brown

# re: Learning F# Using Project Euler

If then is a shorter version for the below pattern matching

let list =

       [1..999]

       |>List.map(fun x -> match x % 3 = 0 || x % 5=0 with

                           |true -> x

                           |_ -> 0)

       |>List.sum

printfn "Sum of integers %d" list

Friday, May 14, 2010 5:46 PM by Naveen

# Twitter Trackbacks for Learning F# Using Project Euler - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Learning F# Using Project Euler - Brownie Points         [azurecoding.net]        on Topsy.com

# re: Learning F# Using Project Euler

seq { 1..999 } |> Seq.filter (fun x -> x % 3 = 0 || x % 5 = 0) |> Seq.sum

Monday, May 17, 2010 1:19 AM by Yusuf Motara

# re: Blend Behaviors FTW

I'd like to bind to the TargetCommand property of ExecuteCommandAction but I can't because it is not a DependencyProperty.  I'm not not familiar with creating DependencyProperties.  Is it possible to make TargetCommand a DependencyProperty?

Friday, June 25, 2010 10:00 AM by myaeger

# Twitter Trackbacks for ADHD and Hyperfocus - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 ADHD and Hyperfocus - Brownie Points         [azurecoding.net]        on Topsy.com

# Twitter Trackbacks for IRepository&lt;T&gt; and IUnitOfWork - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 IRepository<T> and IUnitOfWork - Brownie Points         [azurecoding.net]        on Topsy.com

# re: Learning F# Using Project Euler

Fellow F# learner here.

The example on 5/17 works, but it will stack overflow if you try [0..999999].

I wonder why... trying to think of a recursive function that would do this. I'm sure it'd be faster than the iteration it has to do on 1..999999.

Wednesday, October 20, 2010 1:20 PM by Gerardo

# Twitter Trackbacks for Your Software Raid Party - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Your Software Raid Party - Brownie Points         [azurecoding.net]        on Topsy.com

# re: IRepository<T> and IUnitOfWork

Hello Mike,

I like your idea of separating concerns between the repository implementation and the data layer objects, but that's because viewing the problem from a theorical perspective. From a practical perspective, I think that it is reasonable to have a common repository interface and a repository implementation for each data layer. So if you switch your datalayer, or if for some group of entities you store them differently, you would use the same interface but another implementation.

This is mainly because if you need to expose different methods in your repository, for example, a method that results in a call to a stored procedure (for performance issues or something like that), you would have to create a method in your IUnitOfWork interface so your repository could call. That can be troublesome to maintain and may lead to polute your IUnitOfWork (or datalayer abstraction) concept.

Anyway, assuming you only do CRUDs, your design is fine, except for twothing.

Your FindBy method receives a Func<T,bool> and not an Expression<Func<T,bool>>. The difference is that expressions trees can be converted to SQL and your filter is executed on the database. Since your're using just a delegate your filter is executed in-memory which means ALL results from the DB will be loaded into memory and then filtered.

The other thing is that you're missing the Attach method on your IRepository.

Apart from that, I'd say to keep up the good work and let me know when you update this.

Best regards,

Manuel Felício.

Tuesday, December 07, 2010 2:10 AM by Manuel Felício

# re: IRepository<T> and IUnitOfWork

Four things

1 It's not from theory it's from practice. I use this technique in production. And I'm not the first to leverage this approach

2. If I want to expose custom methods on the repository, I just place them on the derived interface and implementation (e.g. IFooRepository:IRepository<Foo>) other than Sprocs (which I have not needed) everything else is handled.

3. Yes the findby takes a Func<T, bool> but by the time it gets to the DAL itself (for example entity framework) it's implicitly cast to Expression<Func<T,Bool>>.

4. I don't put attach on the repository because that's a function of the Unit of Work. The thing about my design is that it allows the client to determine when to execute a batch of operations by being responsible for calling commit on the UOW. So I can perform operations on multiple repositories and commit them in one transaction.

I understand if you didn't quite understand what was going on, like I said it took a while for me to appreciate the utility of the Unit of Work pattern and even longer to realize that I could make the repository fully independent of the persistence layer.

Tuesday, December 07, 2010 5:33 AM by Mike Brown

# re: MVVM Unleashed

I'm very proud of you. I love that you are able to do what you love. I don't know anyone that deserves this opportunity as much as you!! Now get to work and break a pencil!!

Saturday, December 11, 2010 6:31 PM by Brandi B.

# Twitter Trackbacks for MVVM Unleashed - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 MVVM Unleashed - Brownie Points         [azurecoding.net]        on Topsy.com

# re: MVVM Unleashed

Hopefully my copy will be in my NOOK rather than on a shelf, but I look forward to it none the less. Congrats!

Saturday, December 11, 2010 7:04 PM by wekempf

# re: Blend Behaviors FTW

Sorry for the late response, your comment was buried under a metric ton of spam. TargetCommand is a Dependency property, what are you attempting to bind it to?

Sunday, December 12, 2010 1:28 AM by Mike Brown

# re: MVVM Unleashed

Way to go Mike! That's awesome.

Cheers,

Daniel

Sunday, December 12, 2010 4:02 AM by Daniel Vaughan

# re: MVVM Unleashed

Your MSDN article on Enterprise Patterns with WCF RIA Services, literally changed my life, not only on that specific topic, but it pointed me to amazing bibliographic references that literally changed my life.

I can't wait for this book to come out. best of lucks and congratulations on getting this book deal!!!  

Wednesday, December 15, 2010 12:18 PM by Juan Gomez

# re: MVVM Unleashed

Juan,

Thank you for the compliments! It's very fulfilling as an author to hear that I've hit the mark with my efforts. Hopefully, I can match the same standards with the book!

--Mike

Wednesday, December 15, 2010 1:18 PM by Mike Brown

# re: Why MVVM Unleashed?

Excellent approach. That's what I did with my Hands-On MVVM talk. I started by listing the advertised benefits of MVVM, only to reveal that they are actually benefits of data binding. So we built an app using data binding. That revealed the *real* benefits of MVVM as we refactored our way into it.

The above link takes you to the video.

Tuesday, December 21, 2010 7:52 AM by Michael L Perry

# Follow Up on ADHD

Back in August, I blogged about my discovery that I might have ADHD . Last night, I was chatting with

Thursday, December 23, 2010 6:14 PM by Brownie Points

# Twitter Trackbacks for Follow Up on ADHD - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Follow Up on ADHD - Brownie Points         [azurecoding.net]        on Topsy.com

# Twitter Trackbacks for Inspiration for MVVM Unleashed - Brownie Points [azurecoding.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Inspiration for MVVM Unleashed - Brownie Points         [azurecoding.net]        on Topsy.com

# re: MVVM Unleashed

Hi Mike,

I'm really exited about this and can't wait to get my hands on this book.

Can I know around when I can expect to have this?

Thanks.

Monday, March 14, 2011 12:06 PM by IG

# re: IRepository<T> and IUnitOfWork

I have been pulling my hair out trying to figure how to best structure my project for use with the Repository pattern and IOC. I have looked at Unity, don't like it much, and have finally settled on Autofac.

could you post a best practice or some code on how to use the UnitOfWork ?

Wednesday, March 30, 2011 8:23 PM by Uber Pwnage

# re: IRepository<T> and IUnitOfWork

I have a sample project that I will be posting soon. Will show how to put it all together.

Saturday, April 02, 2011 12:27 PM by Mike Brown

# IQueryable<T> and IUnitOfWork Revisited

So I’m on a pretty cushy government contract (turns out that if you want to have a low stress job

Wednesday, May 25, 2011 6:44 AM by Brownie Points

# IQueryable<T> and IUnitOfWork Revisited

So I’m on a pretty cushy government contract (turns out that if you want to have a low stress job

Wednesday, May 25, 2011 6:44 AM by Brownie Points

# Compelling story

A very compelling story, and well told. This is an example not just to recruiters, but to anybody who relies upon others to get their job done.

I wonder if Jack will read or respond to this post. A good recruiter would read your blog as he finds a "good fit" for you.

Thursday, May 26, 2011 11:08 AM by Michael L Perry

# There’s No Free Lunch

In light of Hammet’s recent resignation from the MEF team, I decided to finish up this post discussing

Friday, May 27, 2011 8:12 AM by Brownie Points

# There’s No Free Lunch

In light of Hammet’s recent resignation from the MEF team, I decided to finish up this post discussing

Friday, May 27, 2011 8:12 AM by Brownie Points

# re: Bigotry and Software

Thanks for discussing the aforementioned article. I agreed with some of the points in it but also share much of your sentiment.

Part of me would like to break out from the .NET world, and some of the newer frameworks like MVC potentially make this easier.

@long2know

Saturday, May 28, 2011 5:54 PM by Stephen

# re: Bigotry and Software

I have a post lined up talking about my decisions with .NET stay tuned :)

Saturday, May 28, 2011 7:17 PM by Mike Brown

# re: Bigotry and Software

The Amiga OS 4.1 is better than Windows 7 in every conceivable way.  Amiga OS has 100% market penetration amongst people who are running Amiga OS.  Amiga is much better than Windows, OS X, or Linux.  All twelve of the people who run the Amiga OS are smarter and better looking than those who run those other operating systems.

Thursday, June 02, 2011 9:29 AM by MrAmiga

# re: MVVM Unleashed

Congrats, I see the book is on the horizon!  www.amazon.com/.../0672334380

In my shopping cart.  ;-)

Thursday, June 02, 2011 9:37 AM by Innocent Bystander

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Great post, but I'm not sure that my anus is declarative (I might have misunderstood that point).

Saturday, June 11, 2011 12:47 PM by Pete O'Hanlon

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Nice post. I like the idea of DirectUI and the most important thing is in your last sentence. "...but XAML was born to do it." I'm fine with HTML5 as long as I don't have to use it.

Saturday, June 11, 2011 1:35 PM by bitdisaster

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

DirectUI was most definitely not born to do it, it looks like *** - www.uieasy.com/directui

Saturday, June 11, 2011 2:38 PM by Indebi

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

If you look at the details of the description "The DirectUI doesn't make use of the native Win32 controls except some complicated control such as edit, listctrl. Instead,It draws controls and widgets on the screen, this kind of interface is now new: "Skinning" has been widely accepted for its cool look and feel, as seen in Microsoft Msn and Media Player."

Basically DirectUI is a low-level framework. It doesn't rely on User...it might use GDI but translating from GDI to another framework (e.g. Direct2D) is easier than translating from User to another Window Manager.

Saturday, June 11, 2011 2:43 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Also, I think what you linked to is a third party tool that is "similar" to DirectUI.

Saturday, June 11, 2011 2:56 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Good post. Deeply thought out, but all your stuff is like that :)

I have been focusing on LightSwitch lately, and if you get a chance, check out my article:

"This Is How LightSwitch Does MVVM"

lightswitchhelpwebsite.com/.../This-Is-How-LightSwitch-Does-MVVM.aspx

Basically, LightSwitch is in line with what you are saying.

Saturday, June 11, 2011 2:58 PM by Michael Washington

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Thanks Michael! I've been following what you've been doing with LightSwitch and do agree that it will be a great stepping stone to RAD in the next Windows version. And it's much better than Access because of the capabilities it provides for "upgrading" to a "full" application.

Saturday, June 11, 2011 3:07 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

What is DirectUI?

Saturday, June 11, 2011 3:53 PM by Mike

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

"Mike" some adventurous souls have been hacking with the leaked M3 build (early OEM build for Window8) and uncovered the Direct UI library which can be invoked using managed code to display an immersive app.

Saturday, June 11, 2011 4:36 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Notes:   WPF does not sit on top of the desktop window manager (DWM).  The DWM is a compositio nengine, not a desktop graphics engine.  You can turn the DWM competley off and WPF applications will still work just fine.  In fact, you can target XP (which has no DWM) with WPF.

WPF and Silverlight are not dependant on user and GDI the way you think they are.  It really is turtles all the way down.  The performance issues in WPF and Silverlight are not due to coupling with GDI and USer. Its more due to object mangment costs and how they render.

Yes, I work there.

Saturday, June 11, 2011 4:56 PM by Ricky

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

You're right...I flubbed on some of my statements. Thanks for clarifying for me. I do remember now that DWM is not present on XP. I'll update and correct.

Saturday, June 11, 2011 5:08 PM by Mike Brown

# Gianluca Cucco Blog &raquo; Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Pingback from  Gianluca Cucco Blog » Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

I'm afraid to say that, since you didn't understand that DirectX is used natively, and that concomitantly the GPU is used to render WPF, it takes much of the punch out of your article. You presented this mysterious DirectUI as doing what WPF has already been doing BOTH with User32 and GDI:

<There are still performance issues in WPF…there are performance issues in Silverlight on Windows Phone. This is because when you go far enough down it’s not turtles all the way. It’s still the same old stuff that Windows has been hobbled with since version 1. User and GDI.

Until now. Windows 8 introduces DirectUI. And with Direct UI the gauntlet has been thrown down.>

Every beginning WPF makes it clear that GDI/+ is completely abandoned by WPF, while User32 is abandoned for all rendering of controls (like the battleship gray button, all other controls), but still is in the picture for other issues. As MacDonald's WPF book says (p. 2):

"One component that’s still in the picture (***to a limited extent***) is User32. That’s because WPF still relies on User32 for certain services, such as ***handling and routing input and sorting out which application owns which portion of screen*** real estate. However, all the drawing is funneled through DirectX."

But nonetheless, I am still hopeful that DirectUI represents something great and even improved for WPF (like going native compilation?!), and many other points made here I hope are right in saying MS is fully embracing XAML.  Best.

Sunday, June 12, 2011 7:50 PM by Eclipsoft

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

@Eclipsoft Did you read the update...people make mistakes and I acknowledged it when "Ricky" corrected me.

That being said, there are three points that I was attempting to make (and I think I did):

1. Microsoft has invested a lot over the years in moving toward markup driven UI.

2. Legacy support has prevented them from fully embracing it. Virtualization presents itself as a chance to sever the ties that bind them.

3. WPF/Silverlight have a lot of traction within the ecosystem. Microsoft isn't about to throw that out the window. While there may be some tweaks to the framework, the skills will port for the most part.

Sunday, June 12, 2011 8:11 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

I tried to summarise the information coming out about the new Jupiter programming model

davidburela.wordpress.com/.../premature-cries-of-silverlight-wpf-skill-loss-windows-8-supports-all-programming-models

Quick Summary:

* Windows 8 supports applications being built in C# / XAML / VB.Net / C++ / HTML+JS.

* The new UI framework ‘Jupiter’ allows applications to be written in your language of choice. This is similar to how the .Net framework allowed people to code against the framework in their language of choice.

* Jupiter seems to be a ‘Next generation’ XAML based framework

Monday, June 13, 2011 10:25 PM by David Burela

# re: MVVM Unleashed

Hi Mike,

Me along with my team are waiting for the same book.

Can I know around when I can expect to have this?

Thanks.

Tuesday, June 14, 2011 9:42 PM by Antony Joseph

# re: MVVM Unleashed

Antony,

We're looking at Fourth Quarter of this year for publishing. Hopefully, you'll have a nice Christmas present for your team :)

Wednesday, June 15, 2011 5:36 AM by Mike Brown

# re: MVVM Unleashed

I really wish that you would take this into a silverlight enterprise application and use either

a wcf ria class library or wcf data service library

and then you could look into prism. THe biggest problem with most authors is they never really challenge the audience beyond the first grade level. Please look for a opportunity for a enterprise book!!!    

Wednesday, June 15, 2011 11:17 AM by william simons

# Recruiter etiquette | Eautolot

Pingback from  Recruiter etiquette | Eautolot

Saturday, August 06, 2011 8:09 AM by Recruiter etiquette | Eautolot

# re: IRepository<T> and IUnitOfWork

Mike, you said something about posting a sample project a few months ago.  Any update on that?

Wednesday, August 31, 2011 9:35 AM by Erik

# Am I a Fanboy? | Web Tech News

Pingback from  Am I a Fanboy? | Web Tech News

Tuesday, October 11, 2011 2:53 PM by Am I a Fanboy? | Web Tech News

# Am I a Fanboy? | Web Tech News

Pingback from  Am I a Fanboy? | Web Tech News

Tuesday, October 11, 2011 2:53 PM by Am I a Fanboy? | Web Tech News

# re: Just ___ It

Good post. I'm still telling myself just effing do it and not doing it though. Personal Kanban, GTD and whatever are only effective if you are disciplined enough to do it. Otherwise, useless.

Tuesday, November 29, 2011 8:34 AM by Nick Portelli

# Just Do It Part 1: 25 Steps

The stars have aligned and I have enough impetus to Just Do It . On Tuesday, Microsoft announced the

Thursday, December 08, 2011 8:57 AM by Brownie Points