Bug: Wpf/e Ctp For Mac
Posted : admin On 09.02.2020This could be big. At Microsoft significantly augmented. I watched the keynote, and I was a little confused at first, but here are the important bits from my perspective:. Replaces the WPF/E CTP plug-in. Works on OS X 10.4 (though MS reqs don't say so, but Safari version is a giveaway) in Safari 2.0.4 and Firefox 1.5.0.8 + 2.0.x. Big deal here is that this release includes a subset of the.NET CLR. I haven't found anything that says truly yet.
Works on OS X 10.4 (though MS reqs don't say so, but Safari version is a giveaway) in Safari 2.0.4 and Firefox 1.5.0.8 + 2.0.x. Works on Vista and XP SP2 in IE 6, IE 7, Firefox 1.5.0.8, and Firefox 2.0.x. Works on Vista and XP SP2 in IE 6, IE 7, Firefox 1.5.0.8, and Firefox 2.0.x.
Credit to for linking to this. This isn't just for Windows, its for Mac OS X too!! This is not Visual Studio for Mac OS X, but it does start to answer leveled against MS for not inviting OS X developers to the party.
I haven't fully dove in, and you will need to install to read the documentation since it's in Compressed HTML (CHM, pronounced chum) files. I actually didn't realize this existed, which is really cool.
What in the bits on OS X? This isn't immediately obvious, but the Silverlight 1.1 Alpha is a superset of Silverlight 1.0 Beta. How do I know?
By inspecting the files, installers and the plug-in. When you install Silverlight 1.0 Beta, this is what the installer package looks like immediately before letting it rip: When the installer is done, this is what /Library/Internet Plug-Ins looks like: So what's inside? Right-click on on the.plugin and click Show Package Contents. Then go to Contents/MacOS and this is what you see: Look at the size of agcore and the Date Modified. Now install Silverlight 1.1 Alpha.
The first thing that set off my was that the Install button had changed to Upgrade: What a minute? This actually had me nervous at first, I didn't want to mess up 1.0 Beta by installing the 1.1 Alpha, how come the Silverlight plug-in can't have both versions side-by-side? Take a look at the contents of Silverlight.plugin after 1.1 Alpha is installed: Talk about file explosion. The immediate most interesting thing is that agcore is the same size and has the same Date Modified with 1.1 Alpha installed as with 1.0 Beta (to bad there is no version info on these files). Ah hah, agcore is the same in both 1.0 Beta and 1.1 Alpha, thus 1.1 Alpha appears to be a superset and you can install it without fear of breaking code that uses 1.0 after you install 1.1. In fact, I think you can install 1.1 Alpha and just skip 1.0.
The other clue to this is the info windows if you extract the plug-ins from the installer packages and Get Info on both: Notice the version is the same, 0.8.5 (side rant: why isn't this at least 1.0.0? Oversight or more weird Microsoft versioning?). I kind of hope that MS preserves multiple version of Silverlight.plugin to avoid code conflicts, like the full.NET runtime does with major version releases. The packaged format of the plugin on OS X doesn't really support that right now, but no reason that I know of that couldn't be the case. It seems that's partially the beauty of the.plugin bundle on OS X, you can put just about anything you want in there, but my understanding of how files are loaded and referenced inside a bundle is pretty limited, so I could easily be glossing over a much more complicated problem. One more thing of interest, inside the plug-in is another bundle, CoreCLR.bundle, which has the following contents: All and all, I am very excited about the possibilities.
I am not ready to proclaim that, but they certainly look like stronger competition to Flash/FLEX/Apollo than before today. I also can't believe that McLaws is correct and that the.NET CLR subset in Silverlight 1.1 Alpha is a stepping stone to MS having the complete.NET Framework running on Macs and PCs. I'll believe it when I see it. I responded to a bunch of comments on my since I got a lot of conclusions wrong about what was happening (key takeaway: always check your assumptions!) and it frustrated me that that you can't edit comments once posted. I mean this has annoyed me before, but I missed a bunch of editing errors this time.
Sorry, sick day so I am a bit foggy and the stupid comment window is way to small. What can you do once this happens? You can trash your comments and start over or just let the typos stand.
Oh well, the typos stand because I don't have the patience to copy and paste and edit all the typos and editing mistakes out. This restriction seems ridiculous to me.
Could apps have problems opening apps from the Trash? That's the only reason I can think of. Can I test that? In fact, yes. What would I expect to happen when I double-clicked on Picture 1.png? Open in Preview.app of course. Can I make that happen another way?
Let's find out. First of all, where is the user's trash?
That's easy, it's the.Trash directory in your home directory. Open Terminal and run ls -al to see the directory. Execute cd.Trash to get into the directory. Now run open 'picture 1.png'. Tada, it opens in Preview immediately, no problem. The.Trash directory is a hidden directory in UNIX (because of the dot prefix, works the same for files), could that be the reason for preventing opening files from the Trash, apps might not understand it?
If that's true, Preview has no problem, and while there is a clear workaround to fixing this, from the user's perspective, this just makes no sense. Hopefully in Leopard.
I downloaded this morning based seeing it recommended in on the I happened to go to and tried to play a video when I saw this: Piece of crap. I was annoyed because of browser detection in general, and specifically I thought Camino is never going to take off when you can't even get past a gate like this. So I tried to open the site in Firefox 2, Firefox 1.5, and Safari 2.0, and I see the same damn pop-up!
MSN Video was made directly Mac compatible a couple months ago, switching to Flash video, but it looks like someone can't figure out how to do browser detection, let alone get right. Update I configured the site last night to use and after I created this post I logged on to cruise the reports. One thing it reports on is Flash versions, and I went to see how many were out there. Quite a lot actually, I am seeing at least 10 different versions, with 9.0 r28, 9.0, and 9.0 r45 making up 78.98% of my current traffic. I vaguely remember seeing 9.0 r28 installed,.gasp., could I be behind the latest? Sure 'nough, I am, 9.0 r45 is available, I install, and now I can see the MSN Video!
In Safari 2 no less. I know, Step 2 in the MSN troubleshooting steps was uninstall and reinstall Flash, but I knew when I saw the pop-up I had Flash installed and it it working, I was using it on another site like 5 minutes before the MSN Video thing. I guess the title on this post is misleading now, it should really be MSN VIdeo's dodgy required components detection, because if the latest version of Flash is required to view your site, say that. Also, this is the first time in a long time I have ever had to update Flash to view anything on the Web. I returned to Windows to work on some customer changes in the when I see Windows Update is ready to install something.
I tell it to go ahead, and then I see this a couple minutes later: Ut oh, what is that? I just wrote about how with dumb error messages like in the Apple ad, here we go again. I then look to see what Windows Update is doing: So it's installing the update describing in, not a lot of detail here. Not much I can do, I click OK, and then I see this a few seconds later. Going downhill fast.
I click OK again, and see this: Thanks Windows Update, glad to know there was nothing to worry about. I'll just go into Event Viewer and see if there are any errors, and here is what is in Application: Event Type: Error Event Source: Application Error Event Category: (100) Event ID: 1000 Date: 4/26/2007 Time: 3:11:13 PM Description: Faulting application printfilterpipelinesvc.exe, version 6.0.6000.16438, faulting module printfilterpipelinesvc.exe, version 6.0.6000.16438, fault address 0x000216c8. And in System, some more information about what was being installed. I am loving me some XPS: Event Type: Information Event Source: NtServicePack Event Category: None Event ID: 4377 Date: 4/26/2007 Time: 3:11:59 PM Description: XML Paper Specification Shared Components Pack 1.0 Hotfix XpsEPSC was installed.
When I wrote and just outright called the Halo 3 Beta, I had no idea how wrong I was going to be. Perhaps my opinion on this is colored by never playing a Grand Theft Auto game, but after reading about and talking to former GTA players playing Crackdown, I don't think so. Let me make this clear, Crackdown is great. Because you have total freedom to do anything you want in the game, it is entirely non-linear. Apparently this can be jarring at first to some, but it was eye opening and refreshing to me. I don't think I am exaggerating to say I had a similar feeling playing Doom for the first time.
Finally a new type of game! Crackdown's setup seems simple. You are a genetically engineering cop working for the Agency in Pacific City, which is controlled by a bunch of gang bosses across 3 gangs.
That's almost the entire preamble. As you find the headquarters for each boss, you are shown a dossier video of that boss, which provides additional color, and a little more depth to the 'story', but it's not much and you don't have to follow any pre-set path to ridding the city of crime. The games real depth though comes from the near limitless ability you have as a player to try just about anything because of your characters skills. It dawned on me this morning though that not only does Crackdown owe an obviously huge debt to GTA and the 'sandbox' genre, but nearly equally to the first Matrix film. This is really the first game I have seen which captures the feeling of awakening and increasing powers from that film, called skills in the game, which eventually make you a superhero.
It might be the best solo superhero game ever made. Unlike say an existing superhero game, where you start out with nearly all powers and you expect it, in Crackdown you start out only slightly super powered and you level up mostly just by doing the stuff you want to do already. Remember the first scene in the Matrix where Trinity jumps across a huge canyon between 2 tall buildings, you will do that kind of stuff all the time in Crackdown, and you will love it. I have spent hours just running on rooftop to see how far I can jump once I leveled up my agility skill. I should re-address the Halo 3 Beta tying. I was extremely disappointed with Microsoft when this scheme was announced, like what kind of piece of crap must Crackdown be for it to need this marketing stunt.
I think Crackdown was initially harmed by this, gamers just wrote it off no matter how the reviews where. Look at sales past the initial surge, Crackdown for the week of April 15, 2007 according to, moved only 15,673 units in the US, for a grand total of 597,498 units. It sprinted to 495,984 between 2/25/07 and 3/11/2007, then really trailed off and now looks like it will not hit the magically million sold mark.
That's a shame, because this game deserves to in your 360 right now. This interview in is a great read and explains the marketing thing and what developer was trying to achieve. You also might need this guide. Asks because, who was pleased when and later followed up with. Confused yet?
Here's the gist of all 4 posts. Apple is great at application experiences, has Quicktime on 50 million (take # of iPods sold and divide by randomly picked divisor) Mac+PCs, and Adobe and Microsoft are already in the game, when is Apple going to drop the hammer and make Quicktime a ubiquitous cross OS runtime for RIAs? An interesting theory, but that's all it is. If you believe and that Apple is 'skating to where the puck is going, not where it's been', then it seems Apple has to get into the RIA game. Could for related reasons? That is just as much idle speculation, which is great fun, but doesn't give us any answers.
Unless a cross OS runtime is one of he Leopard 'Top Secret' features, there is near zero evidence that Apple is going to play in this space at all. If that were true, I for one would be shocked. But let's look at what we know is coming in Leopard:. Click on the link, watch the demo, and imagine fluid easy to develop animation being added to all of OS X and applications.
Sweet right, but this is going to differentiate OS X from Windows and Linux, with RIAs nascent right now, no way Apple gives away the new crown jewel to knife Leopard in the back.yet. No sign of a declarative user interface generation tool, its drag-n-drop and binary nib files for the foreseeable future. The most complete and serious overhall to the Cocoa runtime and Objective-C language since, well possibly it's inception.
Objective-C and more importantly the Cocoa runtime has been cross OS before, so its tempting, but this combination is another key differentiator that makes OS X apps what they are. Looking at that list of developer technologies, it seems like Apple is doubling down on OS X desktop apps. With OS X inside Apple TV, iPhone, and eventually iPod, where do they have time to put together an RIA platform? Follow the Money Why does it make sense for Adobe and Microsoft to develop and give away a cross OS runtime? Because they have tools, lots of them, for you to buy to build stuff for their respective run-times, and they will be competing nearly head-on now, from design through development. How does Apple make money?
The same way it always has, selling hardware. Software is a necessity to move hardware, which is why Apple develops an increasing number of applications itself, keep their hardware different from everything else.
Xcode is free with every Mac and free to download if you simply register as a developer with Apple, no money involved. Adobe and previously Macromedia have been Mac OS supporters (in all its forms) for a long time. Apple moving to compete directly against Adobe in a total war seems nearly out of the question. The Intel version of is going to move a lot of Macs (witness the cross promotion), and it doesn't hurt that are finding the OS X version a better performer than the same version of the product running on Windows. Says Wait, Silverlight (I actually like this name, but given the first name, how could it not be better) WPF/E runs, what's this person talking about? He's talking about no Mac developer love, no development tools, no documentation, and no HD VC-1 encoding (required for Silverlight, hello, get H.264 in there) tools are being offered by Microsoft, and in some cases for no good reason (at least through the documentation bone). I downloaded Silverlight, the runtime formerly known as WPF/E, back in Feb when it was first released, and I too was disappointed that on the Mac all you got was the runtime, but then I didn't think much more about it because this is Microsoft and it is exactly the sort of thing you expect.
Speaking of Silverlight, has a new. This is in addition to all the, which compare Silveright to Flash/Flex. There are now some Apollo apps to run as well. The 3D Silverlight demo on my MacBook Pro was getting 9 fps, that's not a typo, and Safari is using about 105% of my two cores. The Apollo 2D demo was getting 93 fps using 60% of my two cores.
I didn't shutdown anything to run my tests, including Parallels. When browsing around iTunes, I saw something that I was shocked by at first. Since most of the TV Shows I have bought are all from the modern era (00s on), I just assumed that commercial-less shows ran about 44 minutes, like: But then I saw that older shows actually have a runtime around 50 minutes, like: Let's review. When viewers sat down to watch the episode of (I picked the Remastered links, running time is no different) on broadcast TV it was free to watch as long as you sat through 9.5 minutes out of 60 watching commercials, between 15.8% of the hour. When watching of, 15.5 minutes out of 60 were dedicated to commercials, 25.8% of the hour, a 10% increase in commerical time over the original Star Trek, even though you were most likely paying for UPN, and thus the show, either through cable or satellite TV. The only real mystery here is why people have accepted the errosion of actual show for more commercials while always paying more for TV?
Once you start playing with Parallels images, ripping DVDs, and maintaining a Windows partition, even the 100 GB drive in my MacBook Pro can feel tight, hence. But even if you take those measures (I clearly have) and still max out your disk, what happens when OS X runs out of space? You might see a dialog like this: I always find it interesting what a piece of software does when it hits a boundary condition. In my mind, this is what sets the good software apart from the bad.
Good software gracefully degrades or fails when it encounters a boundary condition, bad software chokes and gives up for dead. Even good software can choke and give up for dead, but the situations under which it does better be extremely rare. This Disk Full Alert dialog (with double exclamations) is amusing to me because it's one of two times (that I know about) the OS X end user is even aware that their hard drive might be used for memory. It's only really at the breaking point for the operating system virtual memory subsystem that the user is made aware of it, and this is really the way it ought to be. By the way, the other time the user might be aware of the virtual memory system is by setting the Secure Virtual Memory preference in the Security System Preferences. I really haven't found a reason this should be an option at all. Apple should just turn it on and take the preference away from the UI.
I can see no performance difference all they way down to an iBook G4 933 MHz, why isn't it just on by default? First thing I try is loading anything of Firefox, and of course it works. I remembered that there was an Internet Explorer Event Log.
I fire up the Event Viewer, and nothing, dust bunnies and tumbleweed apparently get logged here. I have never seen an entry show up under Internet Explorer in the Event Viewer, what's it for? Do you have to flip a switch? I close event viewer and start thinking, this error smells like a IE network settings configuration error, but I never touch those. Well I guess I can cruise through settings to see if something looks amise.
My got me started on another run of Halo craziness. I downloaded all the 'vidocs' and trailers again off Xbox Live Marketplace to watch on my new HDTV (52' Mitsubishi 1080p), and then I spent some money on Halo. I must have plunked down nearly $70 in the last couple days, between the Halo 3 Pulic Beta (oops, I meant to say Crackdown;-)) and the 2 new maps that were released for Halo 2 today, Tombstone and Desolation, remakes of Halo 1 maps Hang 'Em High and Derelict. Hang 'Em High is my all time favorite multiplayer map, I played that map so much when Halo 1 came out, very fond memories. Just downloaded, and very nice to buy in U.S.
Dollars since it's an Xbox Classic game and MS accountants hadn't dreamed up Points yet. Then I finally get into Xbox Live in Halo 2, and it's here where my lack of playing Halo 2 on Live makes me want to cry. Since all my friends that played Halo 2 are offline or stopping playing a long time ago, there is no way to play the new maps since you can only invite people to a custom game from your friends list (or so it seems I could be wrong).
According to, the new maps won't be cycled into the matchmaking system, really the only thing I can use at this point to play against other people, until next Tuesday, 4/24/2007. Damn, all I really want to do is play Tombstone on a loop, so I guess I am kinda out of luck until then.
Even then, playing Tombstone will be kinda hit or miss. I guess I better convince some friends to get back into Halo 2.
Paul G will look like a fortune teller if he is correct in predicting that the last few years of Microsoft losing its' edge were the tipping point to a larger irrelevance. Is absolutely correct in saying the beast from Redmond isn't dead yet. You simply can't discount the financial resources and the large number of very smart people there. One thing that Paul G. Says which I don't agree with is: everyone can see the desktop is over Sure, some future version of the Web may in fact consume all applications that previously didn't run in a browser, but I don't see it happening for a long time. In my view, the Web will lag behind what is possible with an actual desktop application.
We have been waiting for the WebOS (what would that even mean anyway?), or Web applications to fully replace desktop apps for a lot of years already. This is some interesting. Also, would Adobe be spending as much time and money as it is on Apollo if the desktop were dead? That answer seems obvious to me. Update that Adobe is working on a full fledged, the succesor to the Flash Player, and Scoble is the only place I see mention that it is going to be built on Apollo.
Well it's on the site. I swear, I had absolutely no insider information when I suggested Adobe should do this on 4/10/07 (Scoble blogged it on 4/16). Now where is Adobe Reader;-)? Original Post from Adobe had Apollo engineers Oliver (Goldman? He commented on ) and Ethan on his, and Oliver said something interesting, well more interesting than the rest which was also pretty good: Flash is on like 98% of computers, Acrobat Reader is on like 80%, most machines already run 2 pieces of software from Adobe at least.
Those are pretty exceptional distribution numbers ( if true;-), ), so if an end-user installs the Apollo run-time, they would then have 3 seperate pieces of Adobe software (that was hard math right!) Why not bundle it all together? Both Apple and Google have started doing this. Apple obviously, for architectural reasons (iTunes uses Quicktime), bundles Quicktime+iTunes together. They could do more, putting the iDisk Utility, Airport Utility, and into one big bundle, but those things have a far less logical connection, so I can understand not putting them together.
Put together most Google software you might need or want, and hey it includes non-Google software, like Adobe Reader! So why not distribute the Apollo runtime with Flash Player and Acrobat Reader? One anti-reason could be size of the combined distribution.
Reader is 22 MB, Flash Player is 4 MB, Apollo Runtime is 8 MB, so that's 34 MB (all OS X Intel sizes). That is hardly worth a second thought, put it all together! One thing that also need's to be included is Adobe Update, which would work across all Adobe products that makes sure all Adobe software on a box is up-to-date. Apple has ported their Software Update over from OS X to Windows to do this, Microsoft has Microsoft Update on OS X. But when I said Apollo Runtime should consume, I actually had the another meaning in mind, which is why would I need Flash Player or Adobe Reader at all? Couldn't they just be Apollo applications? Reader seems much harder to do, and I understand not wanting to just through away good working software, but it would be a powerful statement from Adobe if this were done.
Same problem Microsoft had at the beginning and still does to some degree, if.NET is so great, how come you haven't rewritten at least some of Windows in.NET? I know, right tool for the right job, and it all depends on how Apollo is sold, but you are going to get some using this as a con against Apollo (not me!).
One more thing,.air as the Apollo app install extension is cool, don't change it! If you haven't heard of, it's Adobe's new cross-OS runtime for what is being calling (RIAs, yeah another acronym) built using Flash, FLEX, HTML, and AJAX.
That means you use the same skills you have been using to build Web applications to build desktop applications that run on the big 3 OSes, Windows, Mac, and Linux. Adobe released Alpha 1 a few weeks ago. Sound kinda like Java right, except its more about pushing browser technology down to the desktop. Why should you care, isn't everything going to be all Web x.0? Desktop apps are dead right? I don't think so, they are a bunch of use cases that are too dangerous with the Web right now. I think of this as the Persistant Storage and Local Device Access (PSALDA, wow that even has a nice ring to it, and I just made it up) problem.
If we can't even view text, images, and video in a container (the browser) with some interactivity without risk of losing our entire machines with the Web stack right now, prospects don't seem good for solving PSALDA without a serious rethink of the Web platform Apollo then is about going the other way, leveraging developers investment in Web technologies and making their reach even larger. The value proposition would be: You already have to develop for the Web, everyone does, why not use the same skills for the desktop instead of forking your own knowledge base to figure out desktop development in Windows Forms/WPE/Java/Cocoa and a bunch of other sub technologies to make that work?
Use what you know and extend it using the Apollo runtime to create richer user experiencies through desktop applications. Sounds like a very compelling proposition, and one I think may hit the sweet spot for the next deep knowledge dive for a lot of developers. I haven't dug in yet to see how close Apollo's promise is to reality, the first thing I did was install the runtime and then a sample application. Here is what the end-user experience looks like: Yes, this was running on Mac OS X 10.4.8, and no I wasn't being cute (yet) and running it on Windows in Parallels. Did Adobe lift the Windows Scary Security Shield straight from XP or Vista?
I am not sure I like where they going with this. I know, what can you do with this? How can you install applications downloaded from the Internet with any sense of security? It's a tough problem to solve, and I can't be too critical about it since I can't come up with a great solution right now, but having Mom or Grandma evaluate this dialog and make a trust decision is still kind of crazy. Hell, I thought about cancelling when I saw all those Stop signs. Uh, why didn't I see some of this information on the first dialog so I had a better idea what I was installing instead of just Application: Fresh You can't see it here, but this took all of 15 seconds to 'install', which is great of course. Hey that is not bad at all.
It looks a weird on OS X though with the title bar and jelly beans in 'unified' mode, and then the light blueish tones that look more at home on Windows. I actually haven't used the application much, but is seems to work. Here is the Preferences dialog: This looks like nothing on any platform, so maybe the main application window feeling like Windows is partially unintentional. The Preference dialog though feels wrong on the Mac, the Close button is in the wrong place, window title should be centered. And what does that other button do? Not minimize, its like a window shade, how odd. There is definitely a lot of promise with Apollo, and I am going to take a much closer look.
I had trouble even coming up with a title, this one is so bizarre I am on the train home tonight, and sitting next to me are a pretty hot girl and a guy in his early thirties. I wasn't really paying attention to either of them, except when I closed the laptop as the train was pulling into my stop. It was then that I noticed the early thirties guy watching on his portable DVD player The Golden Girls! I felt like the space-time continium was about to explode, I did a double, no a triple take. I couldn't wrap my mind around how this guy could decide that on his train ride home, yeah, he was going to get him some Bea Arthur geriatric action. If I was on a desert island and I had to choose between The Golden Girls and watching the waves, I take the waves every time.
And I think there are just some flat out dumb suggestions on the list, in their order:. Internet streaming support. I have no problem with this one, streaming support for live evnets would greatly increase the devices utility, but doing this without sacrificing simplicity would be a challenge. Browsing Web video libraries. This makes absolutely no sense when you actually think about it.
YouTub style video is all crap quality, far lower than what you buy on iTunes right now, and if you think that is not acceptable (the article says it doesn't, I think its acceptable), this will look absolutely terrible. Buying and browsing via the Apple Remote. I agree with this one too, but I can see NOT doing it because it could be confusing as hell to the normal consumer. More podcasting. Sure why not, I am all for making all the categories (Movies, TV Shows, Podcasts) more alike than different.
Photo flexibility. I have no problem with iTunes and Apple TV syncing completely, not content fractured off one library, video from another, music from another. How could you keep track of it all? Streaming photos though, that needs to be implemented. More HD video. Patience young one. HD from iTunes is certainly coming, but 1080.
content instead of 720p, I don't care at all. Downloading 720p is already going to be a chore for a lot of people. DVD quality audio. You might as well call this More HD video part 2. Guys its all about file size, if you have 2 channels of audio now in iTunes Store bought content, and you want 5,6,7, well do the math. Support for optical media.
This is the one were the list goes off the rails. It is like asking for a CD player IN an iPod. And I don't think Apple wants you to buy everything from iTunes, I bet they WISH they could rip DVDs into iTunes, uh again just like the iPod and CDs, but it is currently illegal to sell software to break the encryption, even though us geeks have and ripped DVDs work just fine in Apple TV. Apple TV will replace your DVD player, just not the limited vision way most are thinking. TiVo support. According to, Tivo has 30-40% of 10-12 million DVR market.
That's between 3-5 million boxes total, and Apple is going to spend engineering dollars on a box that is not dominant by any stretch for the last gen delivery system Apple is trying to replace?!?! Not a chance it will happen. Apple TV isn't perfect, nothing ever is, you can always add/tweak features, but some of Macworlds just don't make any sense.
One of the features I always liked about Visual Studio.NET was the Publish to Web feature. For those unfamiliar, you tell VS where to send your ASP.NET web site files and it strips out all the stuff unneeded to run the site, leaving just the minimum necessary files. This is a great feature, except when it doesn't work. In Visual Studio 2005, when I started publishing the site I am working on, the first server I published too it worked fine.
That's where the fun ended. You see when Publish to the Web fails this is all you see: Sadly, this is the only information you receive. Double-clicking on the status bar yields no additional clues as to why the publish 'failed'. So I resorted to using the Publish by Hand non-feature. And this is no April Fools joke, except perhaps I am the fool for hoping this feature would just work. Update a few weeks ago. I am not seeing the compilation issues, but the article caught my attention not just because I thought it might solve me issue, but the screenshot.
It shows that the Build Output window shows you exactly what is going on with Publish! Why didn't I notice this?
Because I have the Output window Auto Hide, and when I publish, it does not automatically make itself visible, succeed or fail, so I never realized anything was going on there.
This is a part of. Windows Presentation Foundation ( WPF) is a graphical subsystem by for rendering user interfaces in Windows-based applications. WPF, previously known as 'Avalon', was initially released as part of in 2006.
WPF uses and attempts to provide a consistent programming model for building applications. It separates the user interface from, and resembles similar -oriented, such as those implemented in. WPF employs, an -based language, to define and link various interface elements.
WPF applications can be deployed as standalone desktop programs or hosted as an embedded object in a website. WPF aims to unify a number of common elements, such as 2D/3D rendering, fixed and adaptive, runtime, and pre-rendered media. These elements can then be linked and manipulated based on various events, user interactions,.
WPF are included with all versions of since. Users of SP2/SP3 and can optionally install the necessary libraries.
Provided functionality that is mostly a subset of WPF to provide embedded web controls comparable to. 3D runtime rendering had been supported in Silverlight since Silverlight 5. At the event on December 4, 2018, announced releasing WPF as open source project on.
It is released under the. Windows Presentation Foundation has became available for projects targeting the framework, however, the system is not cross-platform and is still available only on Windows. Contents. Features Direct3D Graphics, including desktop items like windows, are rendered using. This allows the display of more complex graphics and custom themes, at the cost of wider range of support and uniform control theming. It allows Windows to offload some graphics tasks to the. This reduces the workload on the computer's.
GPUs are optimized for parallel pixel computations. This tends to speed up screen refreshes at the cost of decreased compatibility in markets where GPUs are not necessarily as powerful, such as the market. The Windows Presentation Foundation (WPF) is Microsoft's UI framework to create applications with a rich user experience.
It is part of the.NET framework 3.0 and higher. WPF's emphasis on vector graphics allows most controls and elements to be scaled without loss in quality or, thus increasing accessibility. With the exception of Silverlight, Direct3D integration allows for streamlined 3D rendering. In addition, interactive 2D content can be overlaid on 3D surfaces natively.
Data binding. WPF has a built-in set of data services to enable application developers to bind and manipulate data within applications. It supports four types of data binding:. one time: where the client ignores updates on the server. one way: where the client has read-only access to data.
two way: where client can read from and write data to the server. one way to source: where the client has write-only access to data. queries, including LINQ to XML, can also act as data sources for data binding. Binding of data has no bearing on its presentation.
WPF provides data templates to control presentation of data. A set of built-in controls is provided as part of WPF, containing items such as button, menu, grids, and list box.
A powerful concept in the WPF is the logical separation of a control from its appearance. A control's template can be overridden to completely change its visual appearance.
A control can contain any other control or layout, allowing for a high degree of control over composition. Features graphics. Repainting the display isn't always necessary. Media services. The WPF provides an integrated system for building user interfaces with common media elements like vector and raster images, audio, and video. WPF also provides an animation system and a 2D/3D rendering system.
WPF provides shape primitives for 2D graphics along with a built-in set of brushes, pens, geometries, and transforms. The 3D capabilities in WPF are a subset of the full-feature set provided by Direct3D. However, WPF provides tighter integration with other features like user interfaces, documents, and media.
This makes it possible to have 3D user interfaces, 3D documents, or 3D media. There is support for most common image formats: BMP, JPEG, PNG, TIFF, Windows Media Photo, GIF, and ICON. WPF supports the video formats, and some files by default, but since it has Windows Media Player running beneath, WPF can use all the codecs installed for it. Templates. In WPF you can define the look of an element directly, via its properties, or indirectly with a template or style. At its simplest a style is a combination of property settings that can be applied to a UI element with a single property attribute.
Templates are a mechanism for defining alternative UI for portions of your WPF application. There are several template types available in WPF (ControlTemplate, DataTemplate, HierarchicalDataTemplate, and ItemsPanelTemplate). Control templates.
Underlying all UI controls in WPF is a new composition model. Every control is composed of one or more ‘visuals’. These visual sub-elements are turned into a hierarchical visual tree by WPF and eventually rendered by the GPU.
Because WPF controls are not wrappers for standard Windows controls their UI can be radically changed without affecting the normal behavior of the control. Every control in WPF has a default ‘template’ that defines its visual tree. The default template is created by the control author and is replaceable by other developers and designers. The substitute UI is placed within a ControlTemplate. Data templates. WPF has a flexible data binding system.
UI elements can be populated and synchronized with data from an underlying data model. Rather than showing simple text for the bound data, WPF can apply a data template (replaceable UI for.NET types) before rendering to the visual tree.
Animations. WPF supports time-based animations, in contrast to the frame-based approach. This decouples the speed of the animation from how the system is performing. WPF supports low level animation via timers and higher level abstractions of animations via the Animation classes.
Any WPF element property can be animated as long as it is registered as a dependency property. Animation classes are based on the.NET type of property to be animated. For instance, changing the color of an element is done with the ColorAnimation class and animating the width of an element (which is typed as a double) is done with the DoubleAnimation class. Animations can be grouped into Storyboards. Storyboards are the primary way to start, stop, pause and otherwise manipulate the animations.
Animations can be triggered by external events, including user action. Scene redraws are time triggered. Presentation timers are initialized and managed by WPF. Animation effects can be defined on a per-object basis, which can be accessed directly from markup. Imaging. WPF can natively access (WIC) code and APIs allowing developers to write image codecs for their specific image file formats.
Effects. WPF 3.0 provides for Bitmap effects (BitmapEffect class), which are raster effects applied to a Visual. These raster effects are written in unmanaged code and force rendering of the Visual to be performed on the CPU and not hardware accelerated by the GPU. BitmapEffects were deprecated in.NET 3.5 SP 1.NET Framework 3.5 SP1 adds the Effect class, which is a Pixel-Shader 2.0 effect that can be applied to a visual, which allows all rendering to remain on the GPU. The Effect class is extensible, allowing applications to specify their own shader effects. The Effect class, in.NET 3.5 SP1 and 4.0, ships with two built-in effects, BlurEffect and DropShadowEffect.
There are no direct replacements for OuterGlowBitmapEffect, EmbossBitmapEffect and BevelBitmapEffect, previously provided by the deprecated BitmapEffect class. However, there are other ways of achieving the same results with the Effect class. For example, developers can get an outer glow effect by using the DropShadowEffect with its ShadowDepth set to 0.
Although the BitmapEffect class was marked as deprecated in.Net Framework 3.5 SP1, its use was still allowed and these effects would still render correctly. In.Net Framework 4.0 the BitmapEffect class was effectively deprecated - code referencing BitmapEffect still builds without errors, but no effect gets actually rendered. Documents. WPF natively supports paginated documents. It provides the DocumentViewer class, which is for reading fixed layout documents.
The FlowDocumentReader class offers different view modes such as per-page or scrollable and also if the viewing area is resized. Natively supports documents. Supports reading and writing paginated documents using. Text. WPF includes a number of text rendering features that were not available in. This is the first Windows programming interface to expose features to software developers, supporting OpenType, TrueType, and OpenType CFF fonts.
Support for OpenType typographic features includes:. (for example, parts of the glyph hang below the text baseline). variants. Fractions. and. Line-level. Multiple.
Contextual and Stylistic Alternates. WPF handles texts in, and handles texts independent of global settings, such as system locale. In addition, fallback mechanisms are provided to allow writing direction (horizontal versus vertical) handled independent of font name; building international fonts from composite fonts, using a group of single-language fonts; composite fonts embedding. Font linking and font fallback information is stored in a portable XML file, using composite font technology. The XML file has extension.CompositeFont.
The WPF text engine also supports built-in. It also supports such features as automatic line spacing, enhanced international text, language-guided line breaking, and justification, bitmap effects, transforms, and text effects such as shadows, blur, glow, rotation etc. Animated text is also supported; this refers to animated glyphs, as well as real-time changes in position, size, color, and opacity of the text. WPF text rendering takes advantage of advances in technology, such as sub-pixel positioning, natural advance widths, Y-direction anti-aliasing, text rendering, as well as aggressive caching of pre-rendered text in video memory. ClearType cannot be turned off in older WPF 3.x applications. Unlike the ClearType in GDI or GDI+, WPF ClearType does not snap glyphs to pixels horizontally, leading to a loss of contrast disliked by some users.
The text rendering engine has been rewritten in WPF 4.0, correcting this issue. The extent to which glyphs are cached is dependent on the video card. 10 cards are able to cache the font glyphs in, then perform the composition (assembling of character glyphs in the correct order, with the correct spacing), alpha-blending (application of anti-aliasing), and RGB blending (ClearType's sub-pixel color calculations), entirely in hardware. This means that only the original glyphs need to be stored in video memory once per font (Microsoft estimates that this would require 2 MB of video memory per font), and other operations such as the display of anti-aliased text on top of other graphics—including video—can also be done with no computation effort on the part of the CPU. DirectX 9 cards are only able to cache the alpha-blended glyphs in memory, thus requiring the CPU to handle glyph composition and alpha-blending before passing this to the video card.
Caching these partially rendered glyphs requires significantly more memory (Microsoft estimates 5 MB per process). Cards that don't support DirectX 9 have no hardware-accelerated text rendering capabilities. Interoperability. is also possible through the use of the ElementHost and WindowsFormsHost classes. To enable the use of WinForms, the developer executes this from their WPF C# code: System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop; Alternative input. WPF supports -related functionality. WPF 4.0 supports multi-touch input on and above.
Accessibility. WPF supports to allow developers to create accessible interfaces. This also allows automated test scripts to interact with the UI. Main article: Following the success of for web development, WPF introduces eXtensible Application Markup Language (; ), which is based on. XAML is designed as a more efficient method of developing application user interfaces.
The specific advantage that XAML brings to WPF is that XAML is a completely language, allowing the developer (or designer) to describe the behavior and integration of components without the use of. Although it is rare that an entire application will be built completely in XAML, the introduction of XAML allows application designers to more effectively contribute to the application development cycle. Using to develop user interfaces also allows for separation of model and view, which is considered a good architectural principle. In XAML, elements and attributes map to classes and properties in the underlying APIs. As in web development, both layouts and specific themes are well suited to markup, but is not required for either.
Indeed, all elements of WPF may be coded in a language (, ). The XAML code can ultimately be compiled into a managed assembly in the same way all.NET languages are.
Architecture. The WPF architecture. Blue elements are Windows components; brown ones are WPF components. The architecture of WPF spans both and components. However, the public exposed is only available via managed code. While the majority of WPF is in managed code, the composition engine which renders the WPF applications is a native component. It is named Media Integration Layer (MIL) and resides in milcore.dll.
It interfaces directly with and provides basic support for 2D and 3D surfaces, timer-controlled manipulation of contents of a surface with a view to exposing animation constructs at a higher level, and the individual elements of a WPF application into a final 3D 'scene' that represents the UI of the application and renders it to the screen. The also uses the MIL for desktop and window composition. The media codecs are also implemented in unmanaged code, and are shipped as windowscodecs.dll. In the managed world, PresentationCore ( presentationcore.dll) provides a managed wrapper for MIL and implements the core services for WPF, including a property system that is aware of the dependencies between the setters and consumers of the property, a message dispatching system by means of a Dispatcher object to implement a specialized event system and services which can implement a layout system such as measurement for UI elements. PresentationFramework ( presentationframework.dll) implements the end-user presentational features, including layouts, time-dependent, story-board based animations, and data binding. WPF exposes a property system for objects which inherit from DependencyObject, that is aware of the dependencies between the consumers of the property, and can trigger actions based on changes in properties.
Properties can be either hard coded values or expressions, which are specific expressions that evaluate to a result. In the initial release, however, the set of expressions supported is closed. The value of the properties can be inherited from parent objects as well. WPF properties support change notifications, which invoke bound whenever some property of some element is changed. Custom behaviors can be used to propagate a property change notification across a set of WPF objects. This is used by the layout system to trigger a recalculation of the layout on property-changes, thus exposing a style for WPF, whereby almost everything, from setting colors and positions to animating elements can be achieved by setting properties.
This allows WPF applications to be written in, which is a declarative mark-up language, by binding the keywords and attributes directly to WPF classes and properties. The interface elements of a WPF application are maintained as a class of Visual objects. Visual objects provide a managed interface to a composition tree which is maintained by Media Integration Layer (MIL). Each element of WPF creates and adds one or more composition nodes to the tree. The composition nodes contain rendering instructions, such as clipping and transformation instructions, along with other visual attributes. Thus the entire application is represented as a collection of composition nodes, which are stored in a buffer in the system memory. Periodically, MIL walks the tree and executes the rendering instructions in each node, thus compositing each element on to a DirectX surface, which is then rendered on screen.
MIL uses the, where all the components are rendered from back of the screen to the front, which allows complex effects like transparencies to be easily achieved. This rendering process is hardware accelerated using the GPU. The composition tree is cached by MIL, creating a, so that any changes to the composition tree needs only to be incrementally communicated to MIL. This also frees the applications of managing repainting the screen; MIL can do that itself as it has all the information necessary. Animations can be implemented as time-triggered changes to the composition tree. On the user visible side, animations are specified declaratively, by setting some animation effect to some element via a property and specifying the duration.
The updates the specific nodes of the tree, via Visual objects, to represent both the intermediate states at specified time intervals as well as the final state of the element. MIL will render the changes to the element automatically.
All WPF applications start with two threads: one for managing the UI and another background thread for handling rendering and repainting. Rendering and repainting is managed by WPF itself, without any developer intervention. The UI thread houses the Dispatcher (via an instance of DispatcherObject), which maintains a queue of UI operations that need to be performed (as a tree of Visual objects), sorted by priority. UI events, including changing a property that affects the layout, and user interaction events raised are queued up in the dispatcher, which invokes the handlers for the events.
Microsoft recommends that the event handlers only update the properties to reflect new content for application responsiveness, with the new content being generated or retrieved in a background thread. The render thread picks up a copy of the visual tree and walks the tree calculating which components will be visible and renders them to Direct3D surfaces. The render thread also caches the visual tree, so only changes to the tree need to be communicated, which will result in updating just the changed pixels. WPF supports an extensible layout model.
Layout is divided into two phases: Measure; and Arrange. The Measure phase recursively calls all elements and determines the size they will take. In the Arrange phase, the child elements are recursively arranged by their parents, invoking the of the layout module in use. Tools A number of development tools are available for developing Windows Presentation Foundation applications.
Microsoft tools. is a developer-oriented that contains a combination XAML editor and WPF visual designer, beginning with Visual Studio 2008. Prior to Visual Studio 2008, the add-in, codenamed Cider, was the original release of a WYSIWYG editor for creating WPF windows, pages, and user controls. It was available for Visual Studio 2005 as a Visual Studio 2005 extensions for.NET Framework 3.0 for the initial release of WPF.
2008 and later editions, particularly Visual C# Express and Visual Basic Express, also have the WPF designer integrated. is a designer-oriented tool that provides an artboard for the creation of WPF applications with 2D and 3D graphics, text and forms content. It generates that may be exported into other tools and shares solution (sln files) and project formats (csproj, vbproj) with Microsoft Visual Studio. is a bitmap and 2D-vector graphics tool for exporting to. is a lightweight tool included in the.NET Framework SDK.
It can create and render XAML files using a split screen UI layout. It also provides a tree view of the markup in a panel. Third-party tools., an open-source.NET IDE, includes WPF application design abilities. It is a free alternative to Visual Studio.
by Sybase is a 4GL tool that translates PowerBuilder code, graphical objects to XAML and allows deploying the application as a WPF target. Deployment WPF's deployment model offers both standalone and XAML Browser Applications (XBAP, pronounced 'ex-bap') flavors.
The programming model for building either type of application is similar. Standalone applications are those that have been locally installed on the computer using software such as or (MSI) and which run on the desktop. Standalone applications are considered full trust and have full access to a computer's resources. are programs that are hosted inside a.
Pre.NET4 XBAP applications run in a partial trust environment, and are not given full access to the computer's resources and not all WPF functionality is available. The hosted environment is intended to protect the computer from malicious applications. XBAPs can run as fully trusted applications in.NET 4, with full access to computer resources. Starting an XBAP from an HTML page or vice versa is seamless (there is no security or installation prompt). Although one gets the perception of the application running in the browser, it actually runs in an out-of-process executable different from the browser. Internet Explorer As of the release of.NET Framework 3.0, XBAPs would only run in IE. Firefox support With the release of.NET Framework 3.5 SP1, XBAP also runs in Mozilla Firefox using the included extension.
On October 16, 2009, Mozilla added the Firefox plugin and extension to its add-ons blocklist, because of a remotely exploitable serious security vulnerability, in agreement with Microsoft. Two days later, the block was removed. On Windows 7, the Firefox plugin does not run by default. A reinstallation of the.NET Framework 3.5 SP1 will install the plugin and add support for XBAP applications on Firefox. Alternatively, hard-copying the plugin from a working Windows XP/Vista installation to the plugin directory of Mozilla Firefox will also reinstate support for XBAP applications. The WPF plugin DLLs reside in the following directories (depending on the Framework version): 3.5 SP1 C: Windows Microsoft.NET Framework v3.5 WPF NPWPF.dll 4.0 C: Windows Microsoft.NET Framework WPF NPWPF.dll Microsoft Silverlight. Main article: Silverlight (codenamed WPF/E) is a deprecated cross-browser which contained WPF-based technology (including XAML) that provided features such as video, vector graphics, and animations to multiple operating systems including,.
Microsoft sanctioned a limited number of 3rd party developers to work on ports for certain distributions. Specifically, it was provided as an add-on for, and above, 42 and below and.NET Micro Framework The includes a GUI object model loosely based on WPF, although without support for XAML. References.
dotnet-bot. Retrieved 31 March 2018.
Retrieved 31 March 2018. Retrieved 31 March 2018.
Retrieved on 2013-08-29. Martin, Jeff (4 December 2018). Retrieved 2018-12-06. Hanselman, Scott (4 December 2018). Retrieved 2018-12-06. Retrieved 31 March 2018.
^ Retrieved 2007-10-14. Retrieved on 2013-08-29. Retrieved 2007-10-14. Retrieved 31 March 2018. dotnet-bot. Retrieved 31 March 2018.
Retrieved 31 March 2018. Retrieved 31 March 2018. Retrieved on 2013-08-29. Retrieved 31 March 2018. ^ Chris Anderson.
Retrieved 2007-10-14. Retrieved 2007-10-14. Schechter, Greg (June 9, 2006). Retrieved 2015-07-27. Retrieved 2007-10-14.
Retrieved 2007-10-14. Retrieved from.
Bug: Wpf/e Ctp For Mac Pro
christophw@icsharpcode.net, Christoph Wille. Retrieved 31 March 2018. Retrieved on 2013-08-29. Retrieved 2009-10-17.
Retrieved 2010-09-07. Retrieved 2010-09-29. The Official Microsoft ASP.NET Site. Retrieved 31 March 2018.
Retrieved 2007-09-05. Bibliography.: Windows Presentation Foundation Unleashed (WPF), December 21, 2006, Sams Publishing,.: Essential Windows Presentation Foundation (WPF), April 11, 2007, Addison-Wesley,.
Chris Sells, Ian Griffiths: Programming WPF, August 28, 2007, O'Reilly Media,.,: WPF in Action with Visual Studio 2008, November 21, 2008, Manning Publications, External links.