Woahh! This is awesome news! Virtual Earth (VE) is available in version 6 and – as you might know – I have strong feelings about VE since I started www.woistdaniel.de :-) As a matter of fact the first thing I did was upgrading www.woistdaniel.de to v6 of VE.
Because of the awesome improvements in the VE engine and performance improvements in general I was also able to increase the display accuracy from 500 points to 1000 points being shown at a time (have a look at the nice resolution above) with increased performance on my site. The restriction of 500 points had been a limitation of v5 where a VEShape of type VEShapeType.Polyline could only hold 500 points. Fortunately this limitation has been lifted in v6 :-) To be honest I have no idea if there still is a limit on the max. numbers on points in a VEShape. I did a tiny test with all the geodata I collected since May 2007 (45606 points) and the VEShape got drawn nice and dandy ;-) although it took a little while...
The remaining improvements of v6 over v5 can be read at the Virtual Earth Developer blog >> Virtual Earth Version 6 - Now Available. To name just a few v6 features as a small teaser VE offers now Multipoint routing, Safari support, Ability to use MapPoint Web Service (MWS) as a routing engine, Localization, Bulk addition of VEShapes and much more! One of my favorite features is the Traffic Tile Overlay which can be seen below and I hope to be available in Germany soon!
Btw. there is also a SDK for v6 which can be found on http://dev.live.com/virtualearth/sdk/.
All the best!
Daniel
Alright, cause this troubles me regularly when restoring databases... ;-) If you ever encounter Error 15023: User already exists in current database you need to use sp_change_users_login to map an existing database user to a SQL Server login.
sp_change_users_login [ @Action = ] 'action' [ , [ @UserNamePattern = ] 'user' ] [ , [ @LoginName = ] 'login' ] [ , [ @Password = ] 'password' ]
HTHs
What a great day for photo enthusiasts :-) Michael Palermiti announced today on the Microsoft PhotoBlog that Windows Live Photo Gallery has received the stamp of approval from the super cool people at Flickr as a first-class application for uploading your photos to your Flickr account.
Read the full story on Do you use Flickr? Then check out Windows Live Photo Gallery (Beta)! or at our friends blog at flickr More Ways to Upload. If you want to read even further check out the following blogs:
That being said make sure you get the latest version of Windows Live Photo Gallery beta from http://get.live.com/!
Cheers
P.S. You might have noticed that I started blogging in English. How do you feel about this? Does this makes you uncomfortable, do you like it or don't you probably mind? As always I am interested in your opinion! Thank you!
Finally, Popfly goes public :-) You don't longer need to get an invitation or wait to get your account approved. Get your account today on www.popfly.ms and get funky ;-)
Was ist das Problem?
Vielleicht haben Sie schon bemerkt, dass clientseitige IDs von Controls gelegentlich von den ursprünglich vergebenen IDs abweichen. Dieses Phänomen tritt immer dann auf, wenn Controls in Container eingefügt werden, die das Interface INamingContainer implementieren. Anbei ein kleines Beispiel:
<
In diesem Beispiel wurden zwei Controls in einen ContentPlaceHolder eingefügt woraus ASP.NET den folgenden Markup Code erzeugt:
<div> <input name="ctl00$ContentPlaceHolder1$TextBox1" type="text" id="ctl00_ContentPlaceHolder1_TextBox1" /> <br /> <input type="submit" name="ctl00$ContentPlaceHolder1$Button1" value="Button" id="ctl00_ContentPlaceHolder1_Button1" /></div>
Problematisch wird es nun, wenn Sie versuchen in JavaScript über die ID des Controls auf das Control zuzugreifen. Da die ID des Controls von ASP.NET geändert wurde findet getElementById in dem folgenden Beispiel kein Control und der Code resultiert in einem Scriptfehler (Fehler 21, Objekt erforderlich).
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <script type="text/javascript"> function SayHello() { alert("Hallo " + document.getElementById("TextBox1").value); } </script>
<asp:TextBox ID="TextBox1" runat="server" /> <br /> <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="SayHello();" />
</asp:Content>
Warum verhält sich ASP.NET so?
In dem Beispiel ändert ASP.NET den Namen der Controls um eindeutige IDs auf dem Client zu garantieren. Befände sich beispielsweise auf der Seite ein weiterer ContentPlaceHolder mit einer TextBox mit gleicher ID käme es zu einem Namenskonflikt. Verantwortlich für diese Änderung ist das Interface INamingContainer. Wenn ein Control INamingContainer implementiert (in diesem Fall ContentPlaceHolder1) erzeugt ASP.NET UniqueIDs für jedes ChildControl (in diesem Fall TextBox1 und Button1) indem die UniqueID des NamingContainers und die UniqueID des ChildControls mit einem Doppelpunkt verknüpft werden. Um clientseitig auf ein Control zugreifen zu können gibt es die ClientID die ebenso wie die UniqueID eindeutig für eine Webseite ist. Die ClientID ist die "scriptfreundliche" Version der UniqueID und verwendet im Gegensatz zu der UniqueID einen Unterstrich als Trennzeichen.
Was ist die Lösung?
Neben der Möglichkeit die voraussichtliche ClientID im Vorfeld in den JavaScript Code einzufügen (nein, das wollen Sie NICHT!!!) können Sie die ClientID über DataBinding Inline Code in Ihren Code überführen:
<script type="text/javascript">
function SayHello() { var con = document.getElementById("<%= TextBox1.ClientID %>"); alert("Hallo " + con.value); }
</script>
Alternativ haben Sie übrigens auch die Möglichkeit die ClientID über ClientScript.RegisterClientScriptBlock auf der Seite verfügbar zu machen:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim js As String = "function GetTextBox1() { return document.getElementById('" & TextBox1.ClientID & "'); }" ClientScript.RegisterClientScriptBlock(Me.GetType, "TextBox1_ClientID", js, True)
End Sub
Happy Coding!
20071018 - DataBinding Inline Code; Danke Hannes!
So… aller Voraussicht bin ich im Januar wieder auf Tour und zwar mit einem TechTalk zu ASP.NET Ajax :-)))
Auch wenn das grobe Konzept schon steht würde mich natürlich interessieren worauf Sie Lust haben (Immerhin geht es ja um Sie ;-) )? Welche Fragen wollten Sie immer schon einmal loswerden bzw. vor welchen Problemen stehen Sie bei Ihren Ajax Anwendungen?
Bis bald!
Ok, dass ich soetwas mal schreiben würde hätte ich nicht gedacht! Seit ich meinen neuen GPS Empfänger (DG-100 GPS Data Logger) habe, der auch im Flugzeug funktioniert, wollte ich schon immer wissen, wie ein Landeanflug mit Warteschleife aussieht :-) Heute war es dann soweit und hier ist das Ergebnis (leider hat der Empfänger bei der einen Linkskurve den Empfang verloren wodurch sich die Delle erklärt):
Nachdem inzwischen die http://www.ice-lingen.de, die BASTA! und heute die xtopia 2007 zu Ende gegangen sind habe ich hoffentlich etwas mehr Zeit mich wieder um www.woistdaniel.de zu kümmern. Immerhin stehen ja noch ein paar Punkte aus wie beispielsweise "deep links" oder woistdaniel für alle Anwender zu öffnen. Wer also gerne zukünftig woistdaniel verwenden würde um seine eigenen Routen (Wandern, Hiking, Fahradtouren, Urlaub, etc.) zu verfolgen kann mir gerne schreiben...
On Tuesday, Bill Staples announced the imminent release of the October 2007 Community Technology Preview as part of the Zend/PHP Conference keynote address. It is my pleasure to announce that today, this release is available for download by our customers and the PHP community. This CTP is intended to provide the PHP community an early look at the PHP/SQL Server connectivity story planned for release in the first half of CY2008, and to gather feedback from the community to help refine the design of the API, the feature set, and the target scenarios.
This release marks another step in substantiating Microsoft's continued commitment to interoperability. SQL Server joins IIS in providing components optimized to enable PHP to run effectively on the Microsoft platform, giving our customers greater choice, and creating a stronger value proposition around deploying PHP applications on Microsoft technology.
Sweet :-)
How sweet is this? We're updating Windows Live SkyDrive (http://skydrive.live.com) with some new features, and with more storage! Here are the highlights of these updates.
Read the whole story on http://skydriveteam.spaces.live.com/blog/cns!977F793E846B3C96!879.entry
Unfortunately I still have to wait since Windows Live SkyDrive in not availible in Germany right now :-(((
Yahoos' Exceptional Performance Team has identified 14 rules to speed up your web applications. Be sure to read them on http://developer.yahoo.com/performance/rules.html or see them on the Yahoo! Theater.
Additionally Yahoo! released Yslow which analyzes web pages and tells you why they're slow based on the rules for high performance web sites. Definitive worth a try!
Ok, nachdem ich die ASP.NET AJAX Client Life-Cycle Events regelmäßig suche (eben schon wieder) kommen sie jetzt in meinen Blog ;-) So! Vielleicht nützen sie ja auch jemand anderem…
ASP.NET AJAX Client Life-Cycle Events
Schöne Grüße und gute n8 (bzw. guten Mittag, je nach Tätigkeit ;-) )
Impressive! Based on this feedback I should do more quizzes ;-) What do you think?
((floatobject)1.2F) is not *really* a float, but a float box. You're allowed to cast from float to double, but not from a boxed float to double. You can unbox to float and then convert that to a double via double d = (double)((float)1.2F);
Details can be found at C# Programmer's Reference > Unboxing Conversion.
20071008, 23:58: Typo corrected. Thx Roger!
Why does double d = (double)((object)1.2F); result in a System.InvalidCastException?
Polls are open ;-)
Kris Vandermotten zeigt auf seinem Blog wie die von Linq to SQL erzeugten SQL Befehle in dem "Debugger Output" Fenster angezeigt werden können (http://www.u2u.info/Blogs/Kris/Lists/Posts/Post.aspx?ID=11). Sehr praktisch :-)
Wie die von Linq to SQL erzeugten Befehle auf der Console ausgegeben werden können zeigt dieser Artikel: Wie sehe ich welche SQL Befehle eine Linq to SQL Abfrage erzeugt?
Schöne Grüße
This is super awesome!! We announced yesterday that we are going to make the . NET Framework libraries source code available as an online resource or download for everybody!!!
We'll begin by offering the source code (with source file comments included) for the .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows). We'll then be adding more libraries in the months ahead (including WCF, Workflow, and LINQ). The source code will be released under the Microsoft Reference License (MS-RL).
Read the whole story on http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx
In so ziemlich jeder Anwendung müssen benutzerspezifische Einstellungen gespeichert werden. Wie hierbei am besten vorzugehen ist hat Thomas Wendel, einer der AntMe Erfinder, in einem CodeClip und dem dazugehörigen How-To-Guide zusammengefasst. Zusätzlich steht der Quellcode in VB.NET und C# zum Download zur Verfügung.
Viel Spaß!
Auf http://bubblemark.com/ findet sich ein kleiner Benchmark der die Performance mehrerer Technologien (Silverlight (JavaScript and CLR), DHTML, Flash (Flex), WPF, Apollo, Java (Swing)) vergleicht. Wie der Name der Seite vermuten lässt werden mehrere, sich bewegende Kugeln dargestellt und die Anzahl der Frames/Sekunde angezeigt. Da sich auf besagter Webseite auch der Quellcode der einzelnen Demos befindet kann jeder für sich selbst entscheiden wie glaubwürdig dieser Benchmark ist.