Navigation


This is Markus Egger's professional blog, which covers topics such as development, publishing, and business in general. As the publisher of CoDe and CoDe Focus magazines, and as the President and Chief Software Architect of EPS Software Corp., Markus shares his insights and opinions on this blog.

Wednesday, September 03, 2008
Ken Levy joins EPS

Ken Levy, formerly of Microsoft (VFP Program Manager, Live Community Manager, VSX Community Manger, and other things... I am hoping I got all the title right) has joined EPS. Ken's responsibilities are around our VFPConversion.com and CoDe Magazine brands. Ken will also be involved with the core EPS consulting and custom software business and head up the new EPS Seattle office.

For detailed information, check out http://www.eps-software.com/PressReleases.aspx 



Posted @ 2:36 PM by Egger, Markus (markus@code-magazine.com) -
Comments (1)


Tuesday, July 22, 2008
Using the ASP.NET Routing Engine with IIS6 on Win2k3

Today was one of those days where I almost was ready to jump out the window: I have been working long hours on building an ASP.NET web app based on the new routing framework introduced in .NET 3.5 SP1. Everything seemed to be going pretty well, until I deployed the whole app to a Win2k3 server with IIS6. Nothing worked at all!

As it turns out, ASP.NET routing does not work out of the box on IIS6. What you can do however, is add a wildcard script map that forces ASP.NET to process the routed URLs. Here's how you do that:

  1. Open the properties of your web site in IIS6.
  2. Go to the "Home Directory" tab and click "Configuration"
  3. Click the "Insert..." button to add a new *wildcard* application map.
  4. Make the executable the aspnet_isapi DLL as used for the .aspx application extension (copy the whole path from that setting to make your life easy).
  5. Uncheck the "Verify that file exists" checkbox.

And that should do the trick. The downside is that every hit (even images) is now processed by ASP.NET. So on a high-traffic server, that could be a problem.



Posted @ 7:13 PM by Egger, Markus (markus@code-magazine.com) -
Comments (2)


Friday, June 27, 2008
Why I use Twitter

I have gotten into using Twitter pretty heavily. In fact, I have been promoting it as a way within my company to promote better communications. As that, I have been sending around an internal email, trying to encourage people to check out Twitter. Some people have suggested to post that email here on my blog, so here I go:

If you haven’t used Twitter before, here’s what it does: Basically Twitter is a communication tool that is similar in some ways to IM or some even compare it to a very small blog. Basically, it is like being in a big room with all the people that you want to be connected with, and you can listen in to what they say (write) when you want.

Here’s why I like it:

  • It allows me to stay in contact with friends and business contacts.
  • I can absorb what people are doing without actively doing anything.
  • I follow Twitter when I want to, and I ignore it when I feel like it. Unlike Email or IM, Twitter never interrupts me.
  • People can follow what I do and thus get an idea of what technologies I work with and such. For instance, when I twitter that I work with WPF or VSX, someone who may eventually need WPF or VSX work now knows we do that. Similarly, people that follow me know when I work directly with Microsoft and such, which is often important to our customers.
  • I can put out questions and see if someone has an answer for it. I wouldn't’t send an email to 200 people, nor would I IM 200 people, but I could easily ask my Twitter “tribe” (as some are calling their list of friends).
  • Twitter is new and new communication mediums often allow for a more friendly communication approach. It is odd, but people on Twitter don’t mind being bothered about things that they would not want to be bothered about over email. Sure, this will change as time goes on, but right now, that’s the way it is.
  • It simply allows me to connect with a lot of people, and knowing people and being connected is the #1 way of producing business.
  • You can’t get spammed. You pick the people you want to have in your “tribe” and you will only see their stuff. You can also block people or keep them from following you.

And the list goes on, really. From an EPS internal point of view, communication is extremely important. Especially since we are an international company, communication is one of our greatest challenges. I often mention how hard it is not to walk into someone’s office to ask a question or how a lot of communication happens at lunch that off-site people are now missing out on. Twitter can at least provide part of this. I really encourage you to check it out.

You can sign up to Twitter at www.Twitter.com. It’s free. You can subscribe to follow those of us who are already on Twitter. Here are our personal URLs (in no particular order):

I think I didn’t forget anyone. As you can see, a lot of us are already on Twitter. I know some of you have said they do not like to write anything themselves. That is OK too. It is still cool to just follow along with what other people are doing. Writing anything yourself is optional. :-)

BTW: You can use Twitter by just using the Twitter web site. However, I prefer using some of the additional (free) tools such as Twhirl (www.Twhirl.org), which makes Twitter much more usable.

So are there things I do not like about Twitter? Absolutely! For one, the reliability of it sucks! I do not know any other site that is so unreliable. People say that is because the Twitter guys are overwhelmed, and that may be true in part, but it doesn't explain everything. For instance, they seem to be constantly breaking the API so third party apps like Twhirl have a hard time with that.

 

Posted @ 5:37 PM by Egger, Markus (markus@code-magazine.com) -
Comments (2)


Friday, June 27, 2008
Persisting WPF Objects as XAML or XPS

Here's another thing people ask me about frequently: How can any in-memory WPF object be persisted as XAML? Here's how:

string xaml = System.Windows.Markup.XamlWriter.Save(some object);

This gives you the XAML that can then be persisted in a file or wherever, and it can be loaded dynamically or you could even use it as a new file in a project that gets compiled in. (Note that the created XAML can be pretty nasty compared to XAML crafted by hand or an editor).

Note: The System.Windows.Markup namespace also features a XamlReader object, which can be used to dynamically load XAML during runtime.

A similar scenario calls for converting to XPS. (XPS is basically the WPF version of PDFs). XPS is also XAML, but it is a little different in that XPS is a print-like presentation of what something looks like. XPS may use graphical elements (shapes) to represent something on screen, which is somewhat different from he above example that preserves the XAML objects as they were. (Conversion to XAML always saves a button as a <Button>, while XPS does whatever it wants to create something that looks the same, but it isn't an interactive button).

XML documents can be really great if you want to preserve the look of something exactly as is. This is generally used to save FlowDocuments as XPS. Check out this blog post for some details on that.



Posted @ 2:45 PM by Egger, Markus (markus@code-magazine.com) -
Comments (1)


Friday, June 27, 2008
Converting GDI+ Images to WPF Bitmap Sources

Here is something I have shown as a little side-note at various conferences, and I have people sending me email about how I did it: Basically, this is about converting GDI+ Bitmap/Image objects to something WPF can consume. The trick is to convert the Image into BitmapSource objects, which can then be used on all kinds of WPF objects, such as images or brushes. Here is how to convert GDI+ Bitmaps into WPF BitmapSource objects:

Bitmap bmp = some bitmap...; // Replace with a real bitmap
BitmapSource bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(
    bmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty,
    BitmapSizeOptions.FromEmptyOptions());

Sometimes, you may want to bind directly to a GDI+ bitmap object. In that case, you can create a ValueConverter object that does the conversion for you:

public class BitmapConverter : IValueConverter
{
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        // Converts a GDI bitmap to an image source
        Bitmap bmp = value as Bitmap;
        if (bmp != null)
        {
            BitmapSource bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(
                bmp.GetHbitmap(),
                IntPtr.Zero,
                Int32Rect.Empty,
                BitmapSizeOptions.FromEmptyOptions());
            return bitmapSource;
        }
        return null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
    #endregion
}

That's it! Not much to it...



Posted @ 2:28 PM by Egger, Markus (markus@code-magazine.com) -
Comments (4)


Sunday, May 11, 2008
DevTeach 2008 Toronto - Slides

You can download my slide decks for my sessions at DevTeach 2008 - Toronto (3 sessions: WPF Styles, WPF fundamentals, and UI design) here.

Hope to see you at the event!

 

CoDe Magazine's TechEd Sponsor Ad:



Posted @ 3:21 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Sunday, May 11, 2008
WPF/Blend Hockey Example

I have now used my WPF/Blend Hockey example at several events. This is a pretty cool example, not just because it shows how one can quickly (and without much artistic talent) create a decent looking WPF UI, but also because it uses a real-life middle tier, so it isn't just a contrived example. The downside is that I haven't been able to give the complete example away so far. I have been able to give the WPF part away, which enabled people to look at all the code, but I haven't been able to provide the middle tier, so people couldn't actually run the example.

Thanks to Jon Herrell from Coffey Communications, I now have a simplified version of this example that is fully executable. Jon recreated all the required business objects from scratch. The data is now dummy data, but the example now works just fine. Great! Thanks for your help, Jon.

I added two image resources so the individual items actually show images too, and I uploaded it here. Enjoy!

 

CoDe Magazine's TechEd Sponsor Ad:



Posted @ 3:02 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Friday, May 09, 2008
State of .NET - Houston, May 2008

My session materials for the "State of .NET" event we did Wednesday at Microsoft Houston are now available for download here. Enjoy!

CoDe Magazine's TechEd Sponsor Ad:



Posted @ 2:42 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Monday, April 28, 2008
Upcoming Events

Here is some information on events coming up in the near future, and a bit down the road:

  • This week, we have our VFPConversion.com training (".NET for VFP Developers") class in Houston. The class is pretty much packed, I believe, although we might be able to fit one or two more (online anyway). More information can be found here.
  • The VFPConversion event also has a free additional evening bonus event that anyone can attend for free. Check out the details here.
  • Next week, we have our week-long Milos University also here in Houston. More information about this class can be found here. (For more information about Milos in general, visit www.MilosSolutionPlatform.com).
  • Also next week (Wednesday afternoon) is our semiannual "State of .NET" presentation we do together with Microsoft at the local Microsoft offices here in Houston. You can attend completely free of charge. Check out the details here.

So that is a list of upcoming EPS events. (There is more coming in Europe, but I will announce that as soon as we are ready).

There also are a few more events we are involved with as sponsors. Here is that list:

  • DevTeach Toronto is coming up in May. Check out details at http://www.DevTeach.com
  • TechEd 2008 (Orlando) is coming up on May (this is 2 events really... one for developers and another for IT professionals).
  • PDC is also going to happen later this year.

 

CoDe Magazine's TechEd Sponsor Ad:



Posted @ 8:18 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Thursday, April 24, 2008
Session Materials for DevConnections Orlando Sessions

Here is a link to my examples and slide decks for my sessions at DevConnections 2008 Orlando:

DevConnections 2008 (Orlando) Session Materials

This covers the Blend and WPF stuff, as well as the Windows Mobile WCF session.

Note: The WPF example is based on a real-world middle tier. This is cool, because it isn't based on some made up example. On the other hand, it is a problem for the downloadable example, since I can't give away the middle tier for copyright reasons. However, I believe the example is still helpful, since you can look at the code in various stages. I may extend this example and write a compatible middle tier, so the download can be executed without errors. No promises though on when that will happen...

Update: Check out this post for a more complete version of the example.

 

CoDe Magazine's TechEd Sponsor Ad:



Posted @ 10:50 AM by Egger, Markus (markus@code-magazine.com) -
Comments (3)


Sunday, April 20, 2008
Polymorphic Podcast/ Pixel 8 Interview Available

My interview with Craig Shoemaker's Polymorphic Podcast (now Pixel8) is now available online. It focuses on WPF and Xiine. Check it out at:
http://pixel8.infragistics.com/shows/egger.aspx 



Posted @ 2:03 AM by Egger, Markus (markus@code-magazine.com) -
Comments (1)


Monday, April 07, 2008
Team Explorer for VS2008 Download

Here is something that drives me nuts: Every time I look for the stand-alone download for the Team Explorer for Visual Studio 2008, it takes me forever to find it. So I am blogging about it now, so I can go back to my own blog and get the URL. Here it is:

http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&displaylang=en



Posted @ 3:47 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Monday, April 07, 2008
Wanna join CoDe/Xiine? (Sales and Marketing Position Open)

I recently posted about job openings at CoDe/EPS/Xiine. Here is more detail on a position we are trying to fill that is somewhat difficult in its requirements: We are looking for a sales and marketing person to help out with the EPS Publishing properties, in particular CoDe Magazine (online and print) as well as Xiine (www.Xiine.com).

Basically, what we are looking for is someone interested in sales and and also in developing marketing ideas. In usual CoDe spirit, we are looking for a person that is part of the .NET community more than a sales person. I figure the sales and marketing interest gotta be there (and experience is even better), but I am much more concerned with that person being part of the community and understanding development and .NET specifically. The sales stuff is much easier to learn than the other way around :-).

So you can see that this is not a really easy position to fill. If you are interested, or know anyone who might be, or have a good idea where I could post a real job posting for this, please let me know. Thanks.

BTW: As mentioned before, we are also hiring other positions. Devs for just about anything .NET related, such as WPF/Silverlight (for Xiine as well as customer projects) and web developers, and service developers, and... Even sales & marketing for our consulting business...

Candidates can either send me an email, or send an email to jobs@eps-software.com.



Posted @ 12:00 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Friday, April 04, 2008
Don't like my Apple TV as much as I would have expected

As some of you know, I have kind of become a consumer-fan of Apple stuff. I think their stuff is just about useless when it comes to business and functional needs, but as far as coolness factor and entertainment value goes, I think their stuff absolutely rocks! I love my iPhone as it has basically changed my life, and I have given iPod Touches to several people who love them too. I have a car with an iPod interface, and I have several hardware add-ons to dock my iPhone when I am home. I have bought several external harddrives (on 2TB) to store iTunes media, and I generally like iTunes a lot too.

So I guess in some ways it was just natural to buy an Apple TV. If you have never seen one, basically, it is an iPod for the TV, so you can watch your movies, TV Shows, and video podcasts on your TV. It syncs with iTunes. So everything you have in iTunes, you can access on the TV. I like the concept.

So what is not to like? Well, for one, the thing seems to be totally unreliable. It often looses wireless connectivity and iTunes just can't sync to it. Also, the syncing seems to be flaky. Often things that are supposed to be synced are not, and things I never selected for syncing is synced. Sometimes it seems to loose all content. And worst of all, syncing performance brings on visions of molasses in January. It takes *days* to sync a large media library!

Also, syncing options are not sufficient. On an iPod, I watch my own shows only, but on a TV, I might watch a show, and then someone else might want to watch the same show later. So just picking "last X unseen episodes" of a TV show is not good enough. I need more options. Some shows I want all episodes of regardless of whether they are seen or not, while others I only want to see unseen ones, and so forth. iTunes does not allow me that level of detailed control.

Another thing that is just plain unbelievable is the interaction with the device. It comes with a tiny remote that is very simple to use, but at the same time it is just too primitive. It is not good enough to be able to switch forward by 5 minutes (or whatever the interval is they allow for). There is no fast forward or rewind for instance. WTF?!? Wanna re-watch the last minute of a show? Sorry, you gotta skip back and re-watch the last 10 minutes (I am not exactly sure of what the interval is to be honest, and I think it changes with the length of the show). Lame!

Also, the high-def and wide-screen only requirement is bad. Why not allow the device to hoop up to an old-style TV? Yes, I know, I should finally break down and get an HDTV, but even when I do, I will put it in my living room, while I run my Apple TV in the bedroom. It will be quite some time before I have an HDTV there. And also, I use my Apple TV to watch podcasts as well as movies and TV shows I buy from iTunes, which are generally not HDTV. So why would I spend the money on an HDTV?!? (I was able to get around this buy buying a hardware add-on that allows me to hook the Apple TV up to a regular TV, but it is hard to read the UI and also, the TV is not wide screen which makes it sub-optimal).

Now it does have cool things. Direct integration with YouTube for instance, is pretty cool. But I don't use that often enough to really matter.



Posted @ 1:37 PM by Egger, Markus (markus@code-magazine.com) -
Comments (1)


Friday, March 28, 2008
Various EPS Training Events in early May

EPS is doing a bunch of training events in early May. Some of them are for developers, others for managers and decision makers. And one is more just a cool party :-).

Mike has actually blogged about some of the details recently. Check it out here

The basic idea is to have 10 days filled with great knowledge. We have .NET training for VFP developers (2 days). We have an evening bonus event (free of charge) for VFP developers and decision makers who want to adopt .NET. We have a 5-day Milos training event. We have a "State of the .NET union" afternoon that is also free of charge (and probably the largest of all these events). And we have a cool evening party for .NET influencers and other people, which should be a cool way to mingle with .NET people.

For more information, check out this URL: http://www.vfpconversion.com/Training.aspx

For some of the events, space is limited, so sign up as soon as possible.



Posted @ 1:56 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Wednesday, March 26, 2008
EPS/CoDe/Xiine is Hiring!

We are hiring again, and this time on all fronts, from developers and consultants to designers and even sales and marketing, and much more. Here's a quick overview of the types of positions we are filling:

  • Windows Developers (.NET)
  • Silverlight Developers
  • WPF Developers
  • ASP.NET Developers
  • (Web) Designers
  • SQL Server Developers
  • Combinations of all the above
  • People interested in creating .NET related content (writing, blogging, podcasts,...)
  • Slightly lower priority: Sales and marketing staff for all departments, from consulting to magazine ad sales, to product sales people for products such as Xiine.

The skills we are looking for include .NET, C#, VB.NET, ASP.NET, WinForms, WPF, Silverlight, Design, Development, Visual Studio, Expression Studio (in particular Blend), WCF, Web Services, SQL Server, and so forth...

One position I am personally looking to fill right now is a developer who will work directly with me. I think this is kind of a cool position for someone who is early in his/her developer career and is interested in moving up and learning a ton of new stuff. The goal for this person is to work directly with me and assist me in various development related tasks. Fundamental C# and Win/Web development know how is required, but we are not looking for a superstar developer for this, but for someone who is motivated to grow into such a role over time. :-).

For those of you interested, send an email either to myself, or to jobs@eps-software.com



Posted @ 3:45 PM by Egger, Markus (markus@code-magazine.com) -
Comments


Wednesday, March 26, 2008
Dallas ASP.NET User Group Silverlight Materials

I just uploaded the slide deck as well as the new Silverlight 2.0 interactive league standings example I used at the Dallas ASP.NET user group last night.

Click here to download it.



Posted @ 11:32 AM by Egger, Markus (markus@code-magazine.com) -
Comments (2)


Wednesday, March 26, 2008
Twitter

FYI: I broke down and am now twittering. You can check it out at www.twitter.com/markusegger



Posted @ 11:29 AM by Egger, Markus (markus@code-magazine.com) -
Comments


Thursday, March 06, 2008
Do you ever google yourself?

So I hear it's all the rage to google yourself, so I did. Who knows: I might learn something about myself :-).

Here's something interesting: If I just google "Markus", I come up as the 4th hit (not counting the 3 "Marcus" hits Google throws in in between but separated). Cool. I wouldn't have expected that. After all, Markus is a very common name, especially in Europe, even in my spelling.

Also interesting: If I google "markus" with a lowercase "m", I drop to the second page. Hmmm...

Anyway: Here's the link: http://www.google.com/search?hl=en&q=Markus&btnG=Google+Search

Note: The total hit count for "Markus" is 42.5 million. Not too bad. To give those people from areas where "Markus" is not as common a name an idea: It is roughly as common as "Kenneth" (Ken) is in the US.



Posted @ 1:33 PM by Egger, Markus (markus@code-magazine.com) -
Comments (1)


Thursday, March 06, 2008
WPF and Silverlight News

Mix 08 is currently going on in Vegas, and there have been some interesting new announcements. Many of you that have been at my recent WPF and Silverlight sessions have asked a number of questions that I couldn't directly answer at that time. Now, some announcements have been made, so here are some answers to those questions:

  1. Silverlight 2.0 is now available as a Beta 1 version. It includes rich controls, so it is much better suited for real application development than Silverlight 1.0, which was really mostly a media platform.
  2. Silverlight 2.0 has now been officially announced for Windows Mobile devices. (And a very specific announcement involving Nokia has been made).
  3. WPF has some interesting new features coming, most interesting (and something I have been waiting for for a long time), WPF will support shader development. Yipieeee! :-)
  4. Appropriate dev tools are now available as preview versions, including a new Expression Studio beta and also beta tools for Silverlight and Visual Studio 2008.

On another interesting development, there now is a new community site for Expression developers and designers at http://expression.microsoft.com

 

Posted @ 1:22 PM by Egger, Markus (markus@code-magazine.com) -
Comments


 

 

 

 

 

 

My Twitter Status

    follow me on Twitter  

    Syndication
    RSS 2.0 RSS 2.0

    All My Blogs:
    My personal blogs:
    Dev and Publishing Dev and Publishing
    Travel and Internat. Living Travel and Internat. Living
    Other blogs I contribute to:
    Milos Blog (US) Milos Blog (US)
    VFPConv. Dev Blog (US) VFPConv. Dev Blog (US)
    VFPConv. Mngr. Blog (US) VFPConv. Mngr. Blog (US)
    VFPConv. Dev Blog (DE) VFPConv. Dev Blog (DE)

     

    Blog Archives
    September, 2008 (1)
    July, 2008 (1)
    June, 2008 (3)
    May, 2008 (3)
    April, 2008 (6)
    March, 2008 (6)
    February, 2008 (4)
    December, 2007 (1)
    November, 2007 (1)
    October, 2007 (5)
    September, 2007 (1)
    August, 2007 (1)
    July, 2007 (6)
    June, 2007 (3)
    May, 2007 (3)
    April, 2007 (1)
    March, 2007 (2)
    January, 2007 (2)
    December, 2006 (3)
    November, 2006 (4)
    October, 2006 (1)
    September, 2006 (2)
    August, 2006 (2)
    July, 2006 (4)
    June, 2006 (1)
    May, 2006 (2)
    April, 2006 (10)
    March, 2006 (2)
    February, 2006 (3)
    January, 2006 (1)
    December, 2005 (6)
    November, 2005 (7)
    October, 2005 (6)
    September, 2005 (8)
    August, 2005 (10)
    July, 2005 (6)
    June, 2005 (9)

    Blog Roll
    Partners and Co-Workers
    Claudio Lassala
    Rod Paddock
    Rick Strahl
    Bernard Wong
    Mike Yaeger
    Developers and Designers
    Nick Landry
    Rocky Lhotka
    Dr. Neil
    Tricky
    Publishing
    Melanie Spiller
    Business
    Guy Kawasaki
    Seth Godin
    Personal
    Sunhild Haitzmann

     

     

     

    This Blog is powered by MilosTM Collaboration Components.