Expression Blend 3 Preview


Building compelling and usable UI should be easy and fun.  We all can point to our favorite products (either the ones we build or the ones we use) and think about how much better it would be if the UI was simple, intuitive and easy to use. 


 


Whether you choose to build rich desktop applications using WPF or slick web-based applications using Silverlight, Expression Blend can help you design a great user experience.


 


Recently, we released the Expression Blend 3 Preview, which continues to deliver features that enable a workflow for designers and developers from the design phase to production.


 


Here are a few of the interesting features available in the Blend 3 Preview.


 


Expression Blend 3 Preview 


 


Adding Interactivity without Code


Behaviors are re-usable chunks of code that can be dragged and dropped onto any object, giving that object interactivity without having to write any code. For example, you can drop the DragMove behavior onto a button on the artboard, run your application, and then instantly be able to drag the button around the application window. In the photo editing application below, the user can drag the green button onto the picture to show the brightness at that point in the photo.


 


Behaviors 


 


Behaviors follow a design pattern extended from the Trigger and Action model in WPF and are available for use in both Silverlight and WPF.  Therefore, behaviors can navigate, change state, validate input, talk to web services, or play animations and sound.  Blend 3 will ship with a set of general purpose behaviors including behaviors that navigate between pages in an application, simulate physics on a control, and run animations, but the model is entirely extensible so you can create your own reusable building blocks of interactivity.  Behaviors, like user controls, can be defined in a library or as of the application itself, and will be automatically included in your assembly.  For more ideas or to share your own behaviors, check out the Expression Gallery.


 


Seeing is Believing with Sample Data


At design time, you may not have access to the live data that will eventually display in your application.  Without data, it’s very hard to get a good feel for how your application will look at runtime.  Blend 3 helps solve this problem by enabling you to quickly create sample data that you can work with on the artboard to make it easier to customize those controls that will display data.  Additionally, you can decide if you want to use live data during runtime: the sample data bindings are stored in design time properties.  At runtime, live data can override sample data, or you can continue working with the sample data when testing your application.


 


When creating sample data, you can either import data from an XML file or choose to let Blend generate data for you.  Generated data is fully customizable and can include flat collections, hierarchical collections, strings, numbers, Boolean values, and images. When you drag data items onto the artboard, Blend 3 interprets the values to determine the best way to display the data. For example, if the item is a path to an image file, the image is displayed.  If the item is a collection of image file paths, a list box of images is created.


 


Sample Data 


 


Embracing the Design Ecosystem


One of the new features of Expression Blend 3 Preview is the ability to import Photoshop (.psd) and Illustrator (.ai) files directly into Blend.  Layers are imported as individual layout containers to make them easy to work with. Vector layers are imported as vectors, text layers as text with significant font information remaining intact, and gradients as gradients.  Additionally, you can take a Photoshop file, import it into Blend 3, and then quickly convert it to a control skin using the new state-based control skinning!


 


Embracing the ecosystem 


 


Collaboration Powered by TFS


Expression Blend 3 is now integrated with Microsoft© Team Foundation source control. This means that project source files can now be easily shared by a team with all the benefits of source control.  This minimizes the risk that one person might inadvertently overwrite the changes that someone else made to a file. At any time, you can view an older version of a file and compare it to the current version to see the changes that were made.


 


TFS IntegrationTFS Integration


 


These are just some of the highlights of Blend 3. 


 


For a complete list of new and enhanced features, such as Intellisense in the XAML editor, a built-in code editor, and design time annotations, check out the “What’s new” link. Then, download the preview, visit the Expression team blog, and watch the following videos for more tips:


·         The Future of Expression Blend


·         Integrating Expression Blend with Adobe Creative Suite


·         Creating Interactivity with Expression Blend


 



Namaste!

Comments (48)

  1. Thank you for submitting this cool story – Trackback from DotNetShoutout

  2. Sam says:

    Soma,

    This is all cool stuff. Most developer meetings and events (like PDCs, MIX, user community meetings) that I go to, I notice that developers are very excited about Silverlight, Blend, etc. I am too! Blend is an awesome product.

    Can you tell us what is Microsoft doing to make Silverlight ubiquitous (besides the successful Olympics and Democrat convention stories)? Any updated figures on user adoption?

    There are 3 major complaints I have with the way how Microsoft is doing things recently:

    1. Delivering half-baked products:

    How can Microsoft release products like WPF without a proper datagrid control? How can anyone adopt Silverlight without a decent datagrid control? Sure you can say there are 3rd party options – but Microsoft needs to provide these basic controls for any UI technology to be successful quickly. The codeplex datagrid for WPF has several annoying bugs and doing validations with template columns when using a datatable (as itemsource) is a pain. AJAX solution for ASP.NET is also a half-hearted effort/release so far.

    2. Releasing a new technology and then pulling the plug on it soon afterwards.

    LINQ to SQL is perfect example of this. People lose confidence due to such actions. First of all, why have so many ways of accessing data: Entity Framework, LINQ to SQL, ADO.NET, etc, etc? Just like WPF for UI and WCF for communication, why can’t we get a standard and EASY way of accessing data without having to learn 10 different techniques?

    3. Videos for various technologies are cool but not good enough (at msdn, asp.net and silverlight.net)

    Many ASP.NET, Silverlight and videos on other latest technologies from Microsoft do not demonstrate examples by accessing data from a database. For example, (to date) there is not a SINGLE video on the silverlight.net website that properly demonstrates how to use WCF to get data for a Silverlight 2 application. No video shows how to setup WCF for Silverlight applications. These are basic requirements for LOB applications. Not everyone is developing small websites to show off their design skills…

    Similarly, many of the ASP.NET videos conveniently demonstrate capabilities of ASP.NET using Datasets or adapters. Using Datasets in web applications is a bad idea, both in terms of performance and scalability. Videos on technology should demonstrate using the right techniques, using best practices and show how the Enterprise Library can be used to achieve these.

  3. Sam says:

    You know what? I decided to share some of my ideas for Silverlight:

    1. Promote a Silverlight version of Live Hotmail (Siverlight 3 supports better navigation and integrates with the browser well)

    2. Bring out Live messenger using Silverlight (now that Silverlight 3.0 supports offline or desktop apps with reduced XAP size)

    3. Convert msn videos to use Silverlight

    4. Get more partners

    Since you have around 450 million users of Hotmail, Messenger and msn.com is a very popular site (ranked very in terms of unique visitors or traffic) – these should be the best platforms to promote Silverlight more aggressively.

  4. Mark Gordon says:

    Hi Soma,

    Some bummer about Major League Baseball dumping silverlight and reverting back to Adobe, that is a tough one especially when one of the reasons given was the product was too unstable.

    This shouldn’t come as a surprise I been telling you / Microsoft for over a year now how bad .NET and Visual Studio are and you don’t listen.

    Not sure what you are thinking that productivity doesn’t matter and developers actually like writing massive amounts of code and using tools that are incomplete. Few more success stories like this one and we just might see the end of .NET and the re-release of VFP and VS 6.0 that will be a day to celebrate indeed !

    .Mark

  5. Anonymous says:

    I have not noticed anything unstable about Silverlight or anything that causes too much concern. I have been delivering Silverlight applications for about an year now. MLB did not give details. It seems they did not adopt Silverlight and were merely evaluating or testing it out.

    VS.NET and .NET are great products and technologies. There is nothing out there that is better in a complete comprehensive package.

  6. gb says:

    AMEN to what SAM said:

    Soma,

    This is all cool stuff. Most developer meetings and events (like PDCs, MIX, user community meetings) that I go to, I notice that developers are very excited about Silverlight, Blend, etc. I am too! Blend is an awesome product.

    Can you tell us what is Microsoft doing to make Silverlight ubiquitous (besides the successful Olympics and Democrat convention stories)? Any updated figures on user adoption?

    There are 3 major complaints I have with the way how Microsoft is doing things recently:

    1. Delivering half-baked products:

    How can Microsoft release products like WPF without a proper datagrid control? How can anyone adopt Silverlight without a decent datagrid control? Sure you can say there are 3rd party options – but Microsoft needs to provide these basic controls for any UI technology to be successful quickly. The codeplex datagrid for WPF has several annoying bugs and doing validations with template columns when using a datatable (as itemsource) is a pain. AJAX solution for ASP.NET is also a half-hearted effort/release so far.

    2. Releasing a new technology and then pulling the plug on it soon afterwards.

    LINQ to SQL is perfect example of this. People lose confidence due to such actions. First of all, why have so many ways of accessing data: Entity Framework, LINQ to SQL, ADO.NET, etc, etc? Just like WPF for UI and WCF for communication, why can’t we get a standard and EASY way of accessing data without having to learn 10 different techniques?

    3. Videos for various technologies are cool but not good enough (at msdn, asp.net and silverlight.net)

    Many ASP.NET, Silverlight and videos on other latest technologies from Microsoft do not demonstrate examples by accessing data from a database. For example, (to date) there is not a SINGLE video on the silverlight.net website that properly demonstrates how to use WCF to get data for a Silverlight 2 application. No video shows how to setup WCF for Silverlight applications. These are basic requirements for LOB applications. Not everyone is developing small websites to show off their design skills…

    Similarly, many of the ASP.NET videos conveniently demonstrate capabilities of ASP.NET using Datasets or adapters. Using Datasets in web applications is a bad idea, both in terms of performance and scalability. Videos on technology should demonstrate using the right techniques, using best practices and show how the Enterprise Library can be used to achieve these.

  7. Mark Gordon says:

    Hey Anonymous,

    If you read the article, MLB actually used it last year and experienced what they called "HIGH PROFILE GLITCHES".

    Furthermore have you ever you used anything but .NET and Visual Studio? Besides what Sam said which I agree with some of it – VS is "NOT" a complete package there are "HUGE" gaps the size of the Grand Canyon that make this tool incomplete and nothing short of a miserable development environment.

    Without even giving this much thought a WPF debugger is missing, lack of any data access strategy – LINQ TO SQL already received it’s end of life, a "real" data centric language is nowhere to be found, N-TIER support is missing with LINQ, lack of a complete UI control set for WPF, inability to subclass UI controls in WPF and visually in winforms, the VS class browser serves no real purpose, broken intellisense, poor refractoring capabilities, numerous performance problems, missing UI designer in MVC, poor client validation paradigm in MVC. I could go on but isn’t that really enough? A list like this should be an embarrassment to any development company.

    With regards to your other comment about there being nothing better out there apparently MLB thought so. I won’t mention a product.

    VS 6.0 including VB/VFP was the "LAST" complete development tool Microsoft has released. If VS 6 was the golden age of development tools then we are currently experiencing the development tool "STONE-AGE". If Microsoft would reintroduce the VS 6 toolkit you would not be able to pay me enough money to touch VS again. There are many developers that feel likewise.

    We need to quit cheerleadering and call a spade a spade so Microsoft will finally deliver a "USABLE PRODUCTIVE" toolset.

  8. Sam says:

    I think what Microsoft needs to do is to focus on the following:

    1. Deliver one really good Data Access strategy or technique and call it Windows Data-Access Foundation

    2. Release more controls for WPF and Silverlight that are stable and free of obvious bugs. I realize Silverlight 3 is coming with more features for the datagrid – but please make sure its useable and template columns don’t carry idiosyncracies. Formatting data in Silverlight 2 is annoying. What’s the problem with having a Format String property? Why should we have to write converters in code-behind for such a simple presentation task?

    By the way, I really think that Sketch Flow in Blend 3 is very productive and a "one of a kind" feature in a commercial product. So, compliments to the Blend/Silverlight teams!

    3. Update public facing products like Live Maps, Live Hotmail, Live Messenger, Live Spaces more frequently. Microsoft seems to have forgotten Live Maps! Change MSN Videos to have Silverlight player(s) and videos in mpeg4 or wmv format. Microsoft has to show to the world that it can convert its own video site from Flash to Silverlight successfully. Set an example. Only then MLB, NBA and others will follow your lead.

    4. Launch a "Microsoft Gadgets Store" or something in similar lines for Windows 7. Make available cool gadgets developed using Silverlight 3. Bring the coolness of Silverlight to life using small things that can have big impact!

    Soma, do you share our input from these comments on your blog with Scott Guthrie, Ray Ozzie and other teams in Microsoft?

  9. midas79 says:

    The TFS integration is LONG overdue.  Will Expression Web 3 enjoy the same capability?

  10. Publicación del inglés original : Sábado, 4 de abril de 2009 a las 10:07 PST por Somasegar La creación

  11. Midas79 – Yes, Web3 will have TFS Integration as well.

    Erik Saltwell –

    Group Program Manager

    Expression Web

  12. Samantha-MSFT says:

    Hi Sam,

    I’m the Program Manager on the WPF DataGrid control and I’d like to understand the issues you’re running into.  If you could provide more details about the problems you’ve had, I can work with you to try to find solutions and will record your feedback for future improvements to the control.

    Thanks,

    Samantha

  13. phuff says:

    Sam, thank you for your ideas on improving and promoting Silverlight. We will take them under advisement.

    Polita Paulus

    Developer Division

    Microsoft

  14. Sam says:

    @Polita: Your welcome. Any plans for "Silverlight Lite" on Windows 7 Mobile and iPhone?

    Cool Silverlight applications can give Windows Mobile a big boost as well – if you guys can work it all out!

    Good Luck!

  15. Mark Gordon says:

    Hi There Soma,

    You know what I find Ironic here we are talking WPF/Blend and MSFT is still addressing issues with a basic data grid control. More pathetic is a program manager releasing a video about how cool drag and drop data grid controls are going to be in VS 2010, when that feature was originally introduced in Foxpro 3 or 5 I believe.

    Let’s look at this realistically, a freaking grid control has been around since well lotus days (as that is all a spreadsheet really is) even FoxPro for DOS had a browse window. The ability to browse data should be so refined by now we should have a native grid classes that has advanced capabilities found in excel that can be fully implemented and customized in a couple lines of code. (Silly me excuse my terminology blunder calling it a data grid class, MSFT backstepped there as well, we have hardcoded XAML instead of following OOP programming patterns and providing real UI control classes. I’m sure Scott GU will UI control class in VS 2020 along with the MVC UI designer and WPF debugger right?)

    The WPF team "should" be working on "cool" data presentation technologies like carousel controls, 3d UI data cube grid controls, data modelling features instead MSFT is screwing around in their latest UI platform trying to browse data in flat rows and columns. This is incredible. More importantly fully justifies exactly what I been saying, we have stepped back in time with Visual Studio probably a full decade.

    The reason why a grid control discussion is even occuring is simple, data has always come last in Visual Studio – symbolism over substance is what matters – in other words what can MSFT do to make great talking points and demos for GU and the other VS cheerleading squad. Moreover you guys can’t even come up with a way to handle data that works. Doesn’t common sense dictate a development tool company should refine a data access technology first and provide "productive" tools and language constructs to access data then build data controls and technologies that sit on top of that paradigm. That would seem to make sense, it also sounds a lot like FoxPro doesn’t it ! You have a good database technology SQL Sever and with FoxPro as a blue print of what works to get at the data in a productive manner I don’t get your problems at all other then we didn’t develop it arrogance ! Instead of merging the two technologies you keep reinventing the freaking data wheel every year and come out with some new data paradigm that sucks worse that what we previously had.

    .Mark

  16. Sam says:

    @Samantha: Thanks for getting back to me. There are a few issues I would like to discuss/clarify (if you want to take it offline from this blog, please direct me to another link).

    1. Consider the source to a WPF Datagrid to be a DataTable object. Imagine there is a date column in the DataTable. This is displayed as text in the Datagrid. However, if a user wants to edit this date field, I would like to show the DatePicker control (using CellEditingTemplate in a DataGridTemplateColumn), perform validations based on business logic and then save the modified value of the date back to the database as soon as focus is lost from the cell (CellEditEnding event handler).

    Can you suggest the best way to apply and perform

    custom Binding ValidationRules for this scenario? There is no documentation available for this – just a few blogs that don’t give a complete picture. Is it true that the binding mode must be Mode=TwoWay in template columns’ CellEditingTemplate?

    Template columns do not work seemlessly like non-templated columns and do not show red border around the row/cell on validation errors. DataGridTextColumns work fine.

    2. Do you have solid examples and proper documentation for the datagrid and the other controls released in the WPF Toolkit? It is difficult to be productive if developers have to research every step of getting things done in WPF Datagrid control from blogs and issue submission sections in CodePlex.

    3. Improvement suggestion: Provide filtering options in grid column headers. Please see the Telerick GridView control for Silverlight as an example.

    4. Scrolling issue: Lets say a datagrid is displaying thousands of records and a user of your application has scrolled down all the way to the last few records. Now, if this datagrid is assigned a new source (the user of the application performed a new search based on some search options) – the scroll position is maintained and not reset to show the new records at the top of the datagrid.

    Using this work-around seemed to solve the problem:

    datagrid1.ItemsSource = null;

    datagrid1.UpdateLayout();

    datagrid1.ItemsSource = data;

    Why do we have to perform the above null assignment and then call UpdateLayout to reset the scroll position?

  17. Sam says:

    @Mark Gordon: The purpose of having XAML to represent presentation elements is simplicity. Designers care less about OOP. Expression Blend and XAML help developers and designers to work together. Besides, it is possible to create custom controls in Silverlight/WPF and re-use them. So, you can use OOP techniques to create UI controls.

    XAML is also extremely useful when working with animations and doing data binding. Although I share some of the concerns that you raise, I do not think VFP is the answer to any of the on going issues.

  18. Samantha-MSFT says:

    Hi Sam,

    Ok, let me see if I can help out with some of your questions:

    1. It sounds like you’ve got this working most of the way.  You’ve set up your date column with a template column and DatePicker correctly.  In order to validate and save the edits back to the database, I would recommend that in the binding of CellEditingTemplate, you should set NotifyOnSourceUpdated to true and implement Binding.SourceUpdated for DatePicker, and commit to the database in the handler.  

    To address the TwoWay binding question: Most of the updatable properties of controls have TwoWay binding enabled by default (like TextBox.Text). We had a bug in DatePicker where DatePicker.SelectedDate didn’t have it enabled by default, so that’s why for DatePicker you need to set an explicit ‘Mode=TwoWay’.  However, this should not be the case for most controls which you might use in a template column, as they should already have Mode=TwoWay as the default. Also, note that this bug in DatePicker has been fixed in the latest (March 2009) release of the WPF Toolkit.

    Finally, let’s talk about the problem with the error adorner not showing up. To preface this, the problem is not that the error adorner isn’t showing up – it actually is showing up, but the problem is that we leave edit mode and change back to the non-edit cell template too quickly for you to see the error adorner. For stock columns (like DataGridTextColumn) we override CommitCellEdit method and return false when validations fail and this results in not leaving the edit mode. And so the editing element is still there and its error adorner is visible. But for DataGridTemplateColumns, CommitCellEdit does nothing but to return true (the actual commit is done by the binding itself), so we will always leave the edit mode. Thus, even though the validation failed and adorner appeared, the editing element is removed immediately from the tree and so its adorner is not visible.  The best way to achieve this would be to implement row validation rules rather than cell validation rules for template columns, and template the row error adorner so that it appears around the cell (similar to what you see in the stock columns). Another option would be derive from template column, override CommitCellEdit and do whatever is needed, but this could become very messy so it’s probably not the best option.

    2. Documentation will be available on MSDN with the release of .NET 4.0 (when all of the Toolkit features will be moved into the framework).  Since this was WPF’s first release outside of our normal ship cycle, we didn’t have the normal documentation set up to go along with the release.  However, this is definitely something that we will try to address better in the future – I certainly understand that it is not exactly an ideal experience to have to search the CodePlex forums for answers to your questions. 🙂

    3. Thanks for the suggestion.  This is a common feature request, and one which we’ve got on our list for a future release.  In the meantime, you should be able to enable this in the current release, if you’re willing to do a little work.  I could point you to some resources to help if you’d like.

    4. This behavior is actually by design. ItemsControl  tries to be smart and doesn’t change the vertical offset when ItemsSource changes if it doesn’t have to. So when ItemsSource is set to null, it has to scroll to the top because the old vertical offset is not valid (because there are no elements). So the workaround you have should work okay, or you could try something like this:

    datagrid1.ItemsSource = data;

    datagrid1.UpdateLayout();

    if(data.Count >0)

    {

    datagrid1.ScrollIntoView(data[0])

    }

    If you’d like to discuss any of this further, please feel free to email me at samand at microsoft.com. (I don’t check this comments section often, so if you reply back here I may not see it.)

    Thanks!

    Samantha

  19. phuff says:

    Sam, you can read about the Silverlight for Mobile story on http://silverlight.net/learn/mobile.aspx.

    Polita Paulus

    Technical Assistant

    Developer Division

  20. Somasegar says:

    Hi Sam,

    The comments on my blog (particularly feedback) gets routed to the appropriate teams and folks at MS.

    Keep the feedback coming!

    -somasegar

  21. Mark Gordon says:

    I read the above comment to Sam and that exactly sums up nicely why Visual Studio and .NET deserves to fail.

    You guys are discussing a LEGACY data grid nothing new, great or exciting – it is a freaking grid with rows and columns something done with supercalc in DOS !

    Yet in WPF this great new technology there are at least 2 bugs (so much for unit testing) and I’m going to quote some of the comments, as there is no way I could make something this good up …

    "In order to validate and save the edits back to the database, I would recommend that in the binding of CellEditingTemplate, you should set NotifyOnSourceUpdated to true and implement Binding.SourceUpdated for DatePicker, and commit to the database in the handler."

    Sam you might want to also considering the following before starting;

    besure to dress in a black robe.

    set lightingCandlesCermony to On

    OnTryingMicrosoftsSolutionUseGoatSacrifice To True

    then implement  BloatedNameSpace.Sucks().ToString()

    Mix in some chanting and I think you should be set.

    Then they go on to say:

    "if you’re willing to do a little work.  I could point you to some resources to help if you’d like."

    I wish there was only a "little" work involved in implementing a Visual Studio application or at least not anymore then with VS 6.0. But unforunately there is a massive amount of work, learning curve and code involved. Whatever happened to using technology to increase productivity and creating "User Obvious Software"?

    Any finally my all time favorite:

    "This behavior is actually by design"

    What Microsoft is really saying, everyone and their brother is complaining about this so we have to respond somehow however there is a better chance of hell freezing over they admit we screwed up. Internally at Microsoft we know the people complaining are right, this really sucks so much so not even a hobbiest programmer would release code this bad but for whatever reason we couldn’t implement it correctly. Therefore you have to inject code that makes no sense to anyone outside of the world of Microsoft to make our greatest development tool behave in a manner that makes it useful.

    "Back To The Future" should be Visual Studio’s catch phrase not "your development happy place." There is not a thing "happy" about this!

    .Mark

  22. FedupWithMark says:

    Someone over here needs to set only one property

    Mark.VFP.AntiquePiece.Dump = True;

  23. Mark Gordon says:

    Well, this is just incredible. There is not a single VS developer (I even offered to pay them) that can put together a lan based line of business database application in fewer lines of code, with less cost and in less time with Microsoft’s newest 70,000+ api wrapper classes (otherwise known as the .NET framework) utilizing Microsoft’s newest greatest development tools (which by Microsoft’s own admission are not N-TIER ready) then we could using "antique" technology. Yet this bothers no one? Since when is being less productive and doing more work the better solution. The actions of the VS cheerleaders and developers defending this .NET mess is nothing short of irresponsible. I have no clue where Soma and Gu finds you people!

    Soma, you said you want feedback reintroduce VS 6.0 including VFP/VB for those of us that want to be productive and let VS stay around for people that like to be on a constant learning curve who enjoy writing massive amounts of code including writing MVC UI’S by hand and debugging data binds erroring in WPF with snoop.

  24. Ben says:

    Monomania, Mark. Look it up. Get help.

  25. herbert says:

    Dear developers @ MSFT,

    Let me reflect on Mr. Gordon’s text:

    I am teaching .NET in Europe since 2003 students who learn programming in several languages during 300 hours over 5 years. This is a lot and should result in high class knowledge, however we got stuck in the VS.2005 timeframe/features.

    1. Data Access: Students refuse to use anything else but connection, command, datareader, datatable .. classes. They consider all newer technologies to be incomplete. And they need to switch between database management systems easily (including MS-Access!).

    2. Networking: After learning WCF, students go back to socket programming, cause WCF without an easy to handle grafical config editor is a cruel.

    3. Memory transactions are badly needed. Synchronization technologies need to go into the compiler. Eg every IF statement must start a lock on the condition’s variables. The world is n-tier, multithreaded and networked.

    4. Using automatic translation for documentation without any technical editor reading it, is simply offending. Please accept, that for many people coming from other countries to Europe, English is their third language!

    Do you want to learn .NET in let’s say Hungarian after you just moved to let’s say Spain (this is one of the most difficult languages in Europe)?

    So knowing that most Americans never got abroad: imho MSDN documentation violates the law in many european countries (at least for government contracts) because it’s useless/misleading/out of date/not existing.

    5. WPF, Silverlight, … : don’t even touch unfinished stuff! I cannot allow my students’  final projects (for which there is a corporate customer) miss their deadline, otherwise they cannot enter university.

    6. Deployment: do you really use VS to create setup projects? Has somebody ever done? Ever used the .NET license manager class to protect something valuable?

    7. I hate books from MS-Press containing C# only, ignoring VB.NET. Microsoft should not accept any writer that does not supply code samples in all .NET languages. Students which did not learn C++ before are a lot faster in VB.NET than C#. And I am not teaching "Hello World".

    8. DataBinding: a story on itself. Only one useful book (Sells/Weinhardt), no consistency, no useful online help, misleading wizards.

    On the other side: Years after leaving school, former students tell me that VS is a lot better than Java IDEs.

    I believe the outcry from Mr. Gordon and mine is because their is no reliable published roadmap. Product teams work against each other (LINQ to SQL’s dead as an example). However we as customers – yes even the school pays for VS – want to invest into something reliable we can plan on.

    And reliable also means backward compatible: How to you handle data access code created by VS.2005 wizards?

    When security problems got to heavy, MSFT took a timeout to go over all products’ source code. Maybe another timeout is needed. Make a priority list and I agree with Mr. Gordon: Data Access must come first. This is where the money is, this is where my students find jobs, this is where the decision is made between I.., O….. and Microsoft.

    And where to save money? Well, stop useless MS-Office features and UI gimmicks. Freeze office and make the team work on completing the things the customers want.

    "Developers! Developers! Developers!" (Mr. S.B.)

    sorry for my bad English. Herbert

  26. Sam says:

    There are some people here who have real high resistance to move forward. They simply refuse to understand the complexities in today’s applications. Ten years bring mammoth amount of changes in the technology industry. But these people are stuck in the past and don’t see the variety and hundreds of new avenues that have opened up since the VFP/VB days.

    I read the above comments and was shocked to see Mark upto his usual non-sense over here too. Mark, it really is incredible that you could not write a single line of code in VFP/VB to have a media player and play a video in it. Your repeated non-sense about VFP carries no value in today’s world. Besides, in earlier blog posts by Soma, I presented many more scenarios where you cannot get VB/VFP to achieve anything.

    Software is a relatively new field. Nothing is set in stone or perfect. Whether it be Java or .NET or custom open source solution. Things change and evolve over time. Nlaming Microsoft alone for this is immature and silly. That being said, yes there is work to be done and bugs/issues to be resolved.

    If you present things correctly, Microsoft are listening and improving…

  27. LucindaR says:

    Hello Herbert,

    Regarding your comment about automatic translation:

    All of our core MSDN Library documentation that goes through machine translation also has a 100% human technical review done after the machine translation. We do have some technical articles, specifically from MSDN Magazine, that are not edited after the machine translation. It would be helpful to know specifically which docs you are looking at to identify the problem – my email is lucindar@microsoft.com if you’d like to follow up with me directly.

    Thanks,

    Lucinda Rowley

    MSDN Magazine

  28. [原文地址]: Expression Blend 3 Preview | Expression Blend 3预览 [原文发表时间]:Saturday, April 04, 2009 10:07 AM

  29. phuff says:

    Comments that are disrespectful to other commenters have been removed from this comments section.  If you’d like to discuss the comment policy further, please email me directly at phuff at microsoft dot com.

    Thanks,

    Polita Paulus

    Developer Division

  30. Greg says:

    We wait 1 to 2 years before adopting new MS programming technologies outside of core .NET framework base classes and win32 api calls.

    This lets the technology mature and get at least one service pack.  It saves considerable time for us in that there are much fewer API bugs and much better documentation.

    Newer techology is adopted if it is

    – better than existing MS technology

    – better enough to justify the higher initial development cost/learning cost

    – better enough to justify the increased risk (i.e., fundamentaal bugs in the product, one-off technology from MS with no meaningful long term upgrades, niche or transitory product like VB4)

    Examples:

     – Asp.net does not give enough benefit to re-write/upgrade our large existing classic ASP applications –> no budget to reimplement a multi-man year product and no real compelling business case for major functionality changes

      – WCF, WWF, .NET 3.x, LINQ haven’t given enough benefit for us to use other than a tiny fraction of the changes since .NET 2.0.  We’re using simple changes like slightly better winforms controls, console mode IO classes, file/path handling classes, etc.

    Typically, our applications are not flashy GUI ones since most of our implemenation cost centers around data, business rules, and integration between systems. We’ve a basic GUI.

  31. Dave says:

    To Microsoft: I wasted 6 hours trying to upgrade Visual Studio 2005 to Visual Studio 2008. After uninstalling Visual Studio 2005 then installing Visual Studio 2008, I installed service pack 1, the hotfix and tried a host of trial and error fixes on the MSDN blogs, including reinstalling the coredesigner. After all of this the Visual Studio 2008 Web Designer locks up when switching to design mode. There are a lot of people having this problem why is this still an issue ?!?!?!?

    I completely understand folks frustration with Visual Studio as I’m frustrated with this software as well. I’m done "BETA" testing Microsoft software, I’m resorting back to Visual Studio 2005 which isn’t great however the IDE can at least render an HTML page!

  32. David says:

    I have had no problems with Visual Studio 2008 in designing web apps. I love blend3 in designing silverlight apps. I wish that it supported animated gif images. I am in the process of designing a silverlight control that would render a series of images like it was an animated gif image.

  33. Dave says:

    WebDevTools, Thanks but I found that last night didn’t help 🙁 I reinstalled Visual Studio 2005 it is working again. Any idea when the next service pack will be released with this show stopping bug fixed?

  34. Sam says:

    To Silverlight team,

    Over the past year or so, I have built several Silverlight websites. Done some fantastic work. Overall, its been amazing experience. However, two  things about Silverlight have been very disappointing:

    1. Why did you guys leave out Virtualization in listboxes for Silverlight? What’s the point of having these things in WPF and not having them in Silverlight? Is this being provided in Silverlight 3?

    2. This one is really beyond my comprehension: Scroll bars in listboxes, datagrids, scroll viewers, etc. do NOT work with mouse wheel? Again, this works in WPF, why was this kept out of Silverlight? Although this link:

    http://www.nikhilk.net/Silverlight-MouseWheel.aspx

    provides a way to do the above, it requires us to use a 160KB dll or hack into its source code for the same.

    Technical answers sighting excuses and wierd reasoning about keeping the size of runtime small is unacceptable for the above.

  35. phuff says:

    Sam,

    Virtualization just got checked in for Silverlight 3 – it isn’t in the beta, but will be in the final release.  Any control deriving from ItemsControl (including Listbox) will be able to support it.

    Silverlight 3 RTM also has a new mousewheel API that does not require using the JavaScript bridge to enable mousewheel support (which was required in Silverlight 2 RTM and Silverlight 3 Beta).  The new mousewheel API will make it much easier to enable mouse wheel interaction.  We are still working out which controls will have automatic support for it.

    Polita Paulus

    Developer Division

    Microsoft

  36. Sam says:

    Polita,

    Thats really good to know. Thanks for the update. Silverlight 3 is going to be exciting. I forgot to add one more issue with Silverlight 2:

    If a website developed using Silverlight 2 (running in IE 7 along with several other programs like Word, Visual Studio, Excel, other IE windows, etc on a Windows XP or Vista machine having 3GB RAM and Core 2 duo processor) is left un-used for several hours – the performance of this website upon accessing it again is extremely slow. Hitting F5 to refresh the browser is very slow to happen as well. The browser stalls for seconds before it can refresh.

    Any clue regarding this?

  37. Abbas says:

    In next version, please also include:

    (a) EditMask control in WPF, Silvelight

    (b) MDI form … I wanted to start a new project in WPF and then came to know that there is no MDI form.

  38. phuff says:

    Sam, are you seeing the same problem in Silverlight 3?  Some memory leaks were fixed in Silverlight 3, which may have fixed the performance issues you’re seeing in your app.  However, the memory leaks could be part of the application itself, and outside the control of Silverlight.

    Polita Paulus

    Developer Division

    Microsoft

  39. Sam says:

    Polita,

    I’m going to be on a roll here… 🙂

    The problem is not with my application. Even websites on the Internet using Silverlight entirely (no asp.net or html components) behave this way. I shall look into Silverlight 3 in coming months.

    I also noticed that if a ListBox with a DataTemplate containing a TextBlock has over 999 items bound to it (using ItemsSource) behaves weirdly.

    Specifically, lets say we have a Listbox with 1001 items in it. If the first 2 items in this ListBox are clicked and the code-behind listens to this event using MouseLeftButtonUp and tries to create a "new page" in Silverlight 2 (using the technique described by Jesse Liberty at: http://silverlight.net/learn/learnvideo.aspx?video=56933 ) then the page loaded event of this "new page" does not fire.

    This weird behavior does not repeat if any item after the 2nd one in the ListBox is clicked/selected. I suspect that not having virtualization is hurting the usage of the ListBox for business and data intensive applications.

    Replacing the ListBox with a Datagrid control from the Silverlight Toolkit removes the above problem and everything runs smoothly.

  40. phuff says:

    Sam, if you have specific Silverlight apps that exhibit this problem, you can send them to me at phuff [at] microsoft [dot] com and we’ll debug it.

    The best place to post specific questions or problems on Silverlight is on http://siverlight.net/forums.  The product team and other community experts will answer your questions, and then the answers will be available for other users as well.

    Polita Paulus

    Developer Division

    Microsoft

  41. How many times have you sat down and drawn out your application design literally on a napkin? Those early

  42. MisterJames says:

    Keep this stuff coming!

    The two things that will really change workflow for me are the design-time sample data and SketchFlow.

    Sample data is great.  I’ve been coding off some of Kark Shifflett’s examples over the last couple of weeks and have been putting a lot of thought into how this could be implemented.  This is a feature that will dramatically reduce styling time and improve productivity.  If you don’t know how essential this feature is, you’re not working in Xaml.

    SketchFlow is a natural extension of how I work…the ability to munch something together and feed it to a client – who operates at a much more visual level than today’s frameworks allow early on in project – is rockin’.  That you extended that experience to allow and capture feedback is genius.

    Don’t mind the naysayers; it is very easy to sit anonymously across the wire and build negative thoughts.  Samantha, Phuff and others do a great job at answering questions, as do so many others at MS (Scott Guthrie and Neil Enns are two that have answered direct questions and linked me up with other great resources to troubleshoot and solve issues, as an example).

    Cheers,

    -James

  43. phuff says:

    Thanks for the kind words, James!

    Polita Paulus

    Developer Division

    Microsoft

  44. Wilberforth says:

    Amazing how I get all hyped up about learning Expression Blend 3 & WPF (based on the internet cheerleading) – then I come here and hear of the kinds of problems I would surely run into had I gone down this road. I think I’ll stick with MS Access 2003 (but not 2007 – it just simply pisses me off every 5 minutes)

  45. Spapp says:

    I am a total beginner. Please help me. I was open the Blend 3 on Windows Vista Home Premium. I created a rectangle, and I would like to use it the tile brush. I would like to fill in his content with a picture, but the picture does not show. Shows the pictures in the browser if I run the project, but in the Blend 3 softwares no. This is then, if import single PSD file. Does not show the pictures. What may be the trouble?

  46. Joanna says:

    Hi Spapp,

    From your description it is difficult to determine what the problem might be. Here are the steps you can use to fill a rectangle with an image in a SL application.

    1. Draw a rectangle

    2. Select the Tile Brush tab in the Brushes section in the Property inspector.

    3. Under ImageSource choose the … button which will a file browser. Choose the image you would like to use.

    4. Your image should now display in the rectangle.

    It sounds like your Photoshop question is a separate issue. Do the Photoshop layers display in the import dialog? You might want to try making sure you have Maximize PSD File Compatibility selected in your Preferences and re-save the file in Photoshop.

    If you’d like to follow up you can email me directly at joamason at microsoft.com.

    Joanna Mason

    Microsoft Expression Blend