Ankh über Proxy Server

Surft man über einen Proxy Server und will auf seine SVN Repositories über Ankh zugreifen, genügen die globalen Einstellungen des InternetExplorers nicht.

Dennoch verfügt Ankh über die Möglichkeit einen Proxy Server zu verwenden. Dazu muss die folgende Datei editiert werden:

%APPDATA%\Subversion\servers

Dazu müssen die Elemente http-proxy-host usw. auskommentiert werden.

http-proxy-host = your-proxy.com
http-proxy-port = 80

Windows 7 RTM ab dem 13. August in der MSDN AA

Ich habe soeben folgende Nachricht erhalten:

Wir freuen uns Ihnen mitteilen zu können, dass “Windows 7 Professional ” ab dem 13. August 2009 in ELMS erhältlich ist.

  • Windows 7 Professional (32 bit ) and (64 bit )
  • Microsoft CCR and DSS Toolkit 2008 R2
  • Microsoft Robotics Developer Studio 2008 R2
  • Expression Studio 3
  • Surface SDK

(Bitte beachten Sie: “Windows 7 Professional” ist nur in englisch erhältlich)

Uni Karlsruhe: WPF Vortrag

Hier gibt es die Slides, Sourcen und Aufgaben zum WPF Vortrag vom 19.06.2009.

Sildes+Sourcen
http://janmolnar.de/msp/wpfkarlsruhe/WpfWorkshop.zip

Aufgaben
http://janmolnar.de/msp/wpfkarlsruhe/aufgaben2.pdf

 

Zum Weiterlesen

WPF DataBinding Blog
http://bea.stollnitz.com/blog/

WPF Toolkit
http://wpf.codeplex.com/

KaXaml
http://www.kaxaml.com/

Family Show
http://www.vertigo.com/familyshow.aspx

Das wahre Office kommt…

Kommende Woche - am 8. April!

Download: www.daswahreoffice.de

clip_image001

Uni Stuttgart: WPF Vortrag

Hier gibt es die Slides, Sourcen und Aufgaben zum WPF Vortrag vom 25.03.2009.

Slides + Sourcen
http://vb-magazin.de/janm/WPF-Vortrag.zip

Aufgaben
http://vb-magazin.de/janm/Aufgaben.pdf

Zum Weiterlesen

WPF DataBinding Blog
http://bea.stollnitz.com/blog/

Family Show
http://www.vertigo.com/familyshow.aspx

WPF Toolkit
http://wpf.codeplex.com/

KaXaml
http://www.kaxaml.com/

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter: , ,

Web Platfrom Installer geht in die zweite Runde

Auf der MIX wurde die Beta der Version 2 des Web Platform Installers angekündigt. Das Tool übernimmt die Installation des .NET Frameworks, IIS mit Erweiterungen, Sql Server Express und Visual Web Developer und kann einem damit viele Stunden Arbeit beim Aufsetzen einer Entwicklungs oder sogar Produktivumgebung sparen und das alles in einem 1MB Download.

Natürlich lässt sich jede Komponente einzeln auswählen und konfigurieren.

In Version 2 ist außerdem noch die Installation von beliebten Anwendungen wie DotNetNuke und WordPress möglich, sowie die Bereitstellung der neusten PHP Version als PHP für Windows!

Das Tool unterstützt Windows XP SP2+, Windows Vista SP1, Windows Server 2003 SP1+ und Windows Server 2008.

Download
http://www.microsoft.com/web/downloads/platform.aspx

Sql Server ExceptionMessageBox in WPF nutzen

Wer das Microsoft Sql Management Studio verwendet kennt sie vielleicht, die ExceptionMessageBox des Sql Servers. Sie bietet eine gute Übersicht über alle relevanten Informationen einer Exception und das Beste ist, dass sie als Assembly in jedes .NET Projekt eingebunden und damit in jeder .NET Anwendung angezeigt werden kann.

image

Einziger Haken: Zur Anzeige der ExceptionMessageBox wird ein owner vom Typ System.Windows.Forms.IWin32Owner erwartet. Bewegt man sich in WPF, steht dieser einem natürlich nicht zur Verfügung. Abhilfe schafft der Typ ExceptionMessageBoxParent, da dieser mit einem gewöhnlichen Handle erstellt werden und somit als IWin32Owner verwendet werden kann.

Mit den WPF Interop Tools kann somit die ExceptionMessageBox problemlos in WPF einbinden.

   1:      public class ExceptionMessageBoxWpf : ExceptionMessageBox
   2:      {
   3:          public ExceptionMessageBoxWpf() : base() { }
   4:          public ExceptionMessageBoxWpf(Exception exception) : base(exception) { }
   5:          public ExceptionMessageBoxWpf(string text) : base(text) { }
   6:          public ExceptionMessageBoxWpf(Exception exception, ExceptionMessageBoxButtons buttons) : base(exception, buttons) { }
   7:          public ExceptionMessageBoxWpf(string text, string caption) : base(text, caption) { }
   8:          public ExceptionMessageBoxWpf(Exception exception, ExceptionMessageBoxButtons buttons, ExceptionMessageBoxSymbol symbol) : base(exception, buttons, symbol) { }
   9:          public ExceptionMessageBoxWpf(string text, string caption, ExceptionMessageBoxButtons buttons) : base(text, caption, buttons) { }
  10:          public ExceptionMessageBoxWpf(Exception exception, ExceptionMessageBoxButtons buttons, ExceptionMessageBoxSymbol symbol, ExceptionMessageBoxDefaultButton defaultButton) : base(exception, buttons, symbol, defaultButton) { }
  11:          public ExceptionMessageBoxWpf(string text, string caption, ExceptionMessageBoxButtons buttons, ExceptionMessageBoxSymbol symbol) : base(text, caption, buttons, symbol) { }
  12:          public ExceptionMessageBoxWpf(Exception exception, ExceptionMessageBoxButtons buttons, ExceptionMessageBoxSymbol symbol, ExceptionMessageBoxDefaultButton defaultButton, ExceptionMessageBoxOptions options) : base(exception, buttons, symbol, defaultButton, options) { }
  13:          public ExceptionMessageBoxWpf(string text, string caption, ExceptionMessageBoxButtons buttons, ExceptionMessageBoxSymbol symbol, ExceptionMessageBoxDefaultButton defaultButton) : base(text, caption, buttons, symbol, defaultButton) { }
  14:          public ExceptionMessageBoxWpf(string text, string caption, ExceptionMessageBoxButtons buttons, ExceptionMessageBoxSymbol symbol, ExceptionMessageBoxDefaultButton defaultButton, ExceptionMessageBoxOptions options) : base(text, caption, buttons, symbol, defaultButton, options) { }
  15:   
  16:          public void Show(Window owner) {
  17:              // the owner window is required
  18:              if (owner == null) throw new ArgumentNullException("owner");
  19:   
  20:              Type exbParentType;
  21:              Type exbType;
  22:              System.Windows.Interop.WindowInteropHelper helper;
  23:   
  24:              // The ExceptionMessageBox Show method requires a owner which implements
  25:              // System.Windows.Forms.IWin32Window - the WPF Windows don't do that
  26:              // but we can use the internal class ExceptionMessageBoxParent
  27:              // the create a appropriate owner.
  28:              exbParentType = Type.GetType("Microsoft.SqlServer.MessageBox.ExceptionMessageBoxParent, Microsoft.ExceptionMessageBox, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91");
  29:              exbType = this.GetType();
  30:   
  31:              // WindowInteropHelper allows access to the root handle of the wpf window.
  32:              helper = new System.Windows.Interop.WindowInteropHelper(owner);
  33:   
  34:              IWin32Window parent = (IWin32Window)Activator.CreateInstance(exbParentType, new object[] { helper.Handle });
  35:   
  36:              this.Show(parent);
  37:          }
  38:  }

Als Parameter lässt sich somit jedes WPF Window übergeben.

   1:              try {
   2:                  throw new ApplicationException("Hello from WPF!");
   3:              } catch (Exception ex) {
   4:                  ExceptionMessageBoxWpf ebx = new ExceptionMessageBoxWpf(ex);
   5:                  ebx.Show(this);
   6:                  throw;
   7:              }
.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

Die ExceptionMessageBox ist jedoch erstaunlich vielseitig und lässt sich auch für Meldungen jeglicher Art verwenden (siehe [2]).

Zum Weiterlesen

[1] How to: Program Exception Message Box (MSDN)
http://msdn.microsoft.com/en-us/library/ms166340.aspx

[2] Make your exceptions shine with SQL Server Exception Message Box
http://geekswithblogs.net/kobush/archive/2006/05/21/ExceptionMessageBox.aspx

Posted von Jan-Cornelius Molnar mit 1 comment(s)
Abgelegt unter: , ,

Web Plattform Installer

Microsoft hat ein neues Tool veröffentlicht, das die Einrichtung von Web Development Plattformen erleichtern soll.

Der Microsoft Web Plattform Installer ist ein kostenloses Tool, das die Installation und Konfiguration von IIS7, Visual Web Developer 2008, Sql Server 2008 Express und dem .NET Framework 3.5 unterstützt. Es besteht aus einem lediglich 600kb großen Bootstrapper, mit dem sich festlegen lässt, welche Module installiert werden sollen. Dannach  werden die Komponenten heruntergeladen und installiert. Außerdem wird sichergestellt, dass stets die neuste Version incl. aller Sicherheitsupdates zur Verfügung steht.

Dafür wird entweder Windows Vista oder Windows Server 2008 benötigt, sowie das .NET Framework 2.0.
Unterstützt werden sowohl 32 als auch 64-bit Betriebssysteme.

Ich denke mit diesem Tool lässt sich einiges an Zeit sparen, mit der Installtion von solchen Systemen habe ich schon Tage verbracht ...

Download
http://www.microsoft.com/web/channel/products/WebPlatformInstaller.aspx

LINQ mit dem .NET Framework 2.0 nutzen

LINQ ist ein neues Feature von C# 3.0 und VB 9, das mit dem .NET Framework 3.5 Einzug erhält.

Klar, dass .NET Anwendungen, die LINQ verwenden, dann auch ein installiertes .NET Framework 3.5 erfordern? Nicht ganz!

Schaut man sich .NET 3.5 genauer an, stellt man fest, dass die CLR sich nicht geändert hat, also die Laufzeitumgebung immernoch die des Frameworks 2.0 ist. Auch der C# 3.0 bzw. VB9 Compiler generiert MSIL, die 100% kompatibel zu .NET 2.0 ist.

Und genau dadurch wird es möglich, Anwendungen, die lokale Linq Queries (also Linq-to Objects) einsetzten, auch auf dem .NET Framework 2.0 auszuführen. Möglich macht dies das Multi Targeting feature von Visual Studio 2008 und eine nur 60kb große Assembly LinqBridge, die vom LinqPad Author zur freien Verfügung gestellt wird.

Wie das genau funktioniert, wird in diesem Artikel beschrieben:
http://www.albahari.com/nutshell/linqbridge.aspx

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter: , ,

JCQ Alpha 3 Release

JCQ ist einen ICQ Instant Messenger, der zu 100% in .NET geschrieben ist. Als Programiersprache kommt Visual Basic zum Einsatz, für das UI wird WPF verwendet.

Das Projekt wird auf Codeplex gehostet und sucht nach Entwicklern, Designern und Testern, die es voranbringen wollen.

Gestern habe ich die Alpha 3 veröffentlicht, die zahlreiche Verbesserungen im UI mit sich bringt und ab sofort unter der GPLv2 steht.

Es wird das .NET Framework in der Version 3.5 benötigt.

Zum Download

 

Hier noch einige Screenshots

Welcome Screen

welcome.png

Kontaktliste

ContactList.png

 

Chatfenster

ChatWindow.png

 

Übersicht

AllWindows.png

WCF HTTP Hosting - ohne Admin Rechte

WCF bietet von Haus aus die Möglichkeit einen Service in einem Prozess anstatt im IIS zu hosten. Dadurch ist das Hosting auch wesentlich flexibler, denn zum einen erfordert dann ein HTTP Hosting nicht zwingend die Installation des IIS auf dem Server, zum anderen stehen auch andere Protokolle wie TCP/IP und NetPipes zur Vefügung, die dem IIS fehlen.

Der einzige Haken daran ist, dass ein Prozess, der ohne Admin Rechte läuft, nicht die Rechte hat um einen Service via HTTP zu hosten.
Versucht man z.B. einen Windows Service ohne diese Rechte zu starten, erhält man die Fehlermeldung:

Service cannot be started. System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL http://+:7270/[ServiceName]/. Your process does not have access rights to this namespace.

Es gibt aber einen Weg, den Wcf Service auch ohne Admin Rechte zu hosten. Unter Windows Vista / Windows Server 2008 steht dafür das Tool netsh zur Verfügung. Dadurch ist es möglich, einem Benutzer oder einer Gruppe Rechte auf einen HTTP Namespace, also z.b. "http://+:7270/ServiceName" zu geben.

Die Syntax dafür lautet

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user

Für Windows XP oder Windows Server 2003 übernimmt das Tool httpcfg diese Aufgabe.

Weitere Informationen liefert der Artikel Configuring Namespace Reservations (http://msdn.microsoft.com/en-us/library/ms733768.aspx)

Vortrag: C# 3.0 Was gibt's neues?

Hier habe ich den Demo-Code und die Folien meines Vortrags vom 21. Mai an der Uni Stuttgart zusammengestellt.

Vielen Dank fürs Kommen! Für Themenvorschläge bin ich immer offen :)

Slides
Download (pdf) | Download (pptx)

Demos
Download (zip)

Posted von Jan-Cornelius Molnar mit no comments
Abgelegt unter: , ,

CampusLaunch Karlsruhe - Demos und Slides

Wie versprochen veröffentliche ich hier die Demos und Slides meiner Vorträge vom CampusLaunch in Karlsruhe.

Windows Presentation Foundation
Slides | Demos

LINQ mit C# 3.0 und VB 9
Slides | Demos

ASP.NET AJAX
Slides | Demos

In meinen Vorträgen habe ich mehrmals CodePlex erhwähnt, hier also die Url
http://www.codeplex.com

Hier findet man z.B. das AJAX Toolkit und zusätzliche Linq Provider!

 

Nochmal VIELEN DANK an unsere Sponsoren, Organisatoren und natürlich den Teilnehmern für das Kommen :)

CampusLaunch Tour 2008

Am 19. Februar fiel in Frankfurt am Main der deutsche Startschuss für Windows Server 2008, SQL Server 2008 und Visual Studio 2008. Mehr als 6.500 angemeldete Teilnehmer informierten sich auf der Launch-Veranstaltung in Frankfurt erstmals über die neuesten Microsoft-Technologien. Wir bringen die Technologien nun zu Euch!

An insgesamt zwölf Standorten werden die Microsoft Student Partner - unterstützt von Microsoft Mitarbeitern - Euch Einblicke in die neueste .NET-Technologie, die Entwicklerplattform Visual Studio 2008 und die Infrastrukturlösungen Windows Server 2008 und SQL Server 2008 geben.

Ich werde in Karlsruhe und in Freiburg mit Vorträgen zu WPF, Linq und Ajax anwesend sein.

Schaut einfach auf die Homepage der CampusLaunch Tour 2008, um euch über die individuellen Programme an euren Hochschulen zu informieren.

Der Besuch der Veranstaltung ist kostenlos, also nichts wie anmelden!

 

image

Mehr Beiträge Nächste Seite »