.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv April 2007

PropertyGrid mit Sprachunterstützung

30.04.2007 22:59:00 | Thomas Schissler

Das PropertyGrid ist ein sehr hilfreiches Control, mit dem man einfach die Inhalte der Properties einer Klasse an der Oberfläche anzeigen und bearbeiten kann. Ich hatte hierzu schon zwei Posts : Verwendung des Property-Grids, Dateien und Ordner im Property-Grid auswählen

Das Property-Grid stößt allerdings an seine Grenzen, wenn man damit mehrsprachige Umgebungen unterstützen möchte. Die Anzeige im PropertyGrid ist immer direkt vom Namen der Properties abgeleitet und die Description etc. wird über Attribute angegeben, die nicht über Ressource-Files lokalisiert werden können.

Auf Code-Project habe ich ein erweitertes Property-Grid gefunden, das genau dieses Problem beseitigt.

image

Link to PropertyGrid utilities - The Code Project - C# Programming

Danke an Chris für den Link!

Blog Publisher for CruiseControl.NET

29.04.2007 10:47:00 | Thomas Freudenberg

Some time ago I wrote a blog publisher for CruiseControl.NET, but didn't manage to blog about it. In fact, it totally slipped my mind. However, my machine behaves more and more weird lately, so I started to clean up the hard disks and back up all my data. So today it happened that I stumbled over my old blog publisher and finally posted it here.

Background: CruiseControl.NET (CC.NET) is a continuous integration server for .NET. Publishers are tasks that are executed by CC.NET after a build is done, and are primarily used to report the build results, e.g. by sending emails.

There are instructions on how to write your own publisher available, so I created one which posts the build results to a blog. It stood to reason to access the blog using MetaWeblog API. Fortunately, Charles Cook wrote the XML-RPC.NET library, so my publisher degenerated to a simple gateway Wink

The installation is simple: just drop the assemblies from the ZIP file to the server folder of CC.NET and restart the server. CC.NET uses a fixed naming scheme to find all extensions, that's why the assembly has that weird name ccnet.BlogPublisher.plugin.

The minimal configuration just takes details required to access a particular blog:

<publishers>
    ...
    <blog>
        <url><a href="http://localhost/MetaWeblog" class="linkification-ext" title="Linkification: http://localhost/MetaWeblog">http://localhost/MetaWeblog</a> url</url>
        <blog>blog</blog>
        <username>username</username>
        <password>password</password>
    </blog>

With this configuration the publisher uses the default XSL files to transform the build results before posting them. But if you want to change the content of the blog post, you can specify which XSL files sould be used. Additionally you can specify categories for the post:

<publishers>
    ...
    <blog>
        <url><a href="http://localhost/MetaWeblog" class="linkification-ext" title="Linkification: http://localhost/MetaWeblog">http://localhost/MetaWeblog</a> url</url>
        <blog>blog</blog>
        <username>username</username>
        <password>password</password>
        <categories>
            <category>category 1</category>
            <category>category 2</category>
        </categories>
        <xslFiles>
            <xslFile>xsl\header.xsl</xslFile>
            <xslFile>xsl\modifications.xsl</xslFile>
            <xslFile>xsl\msbuild2ccnet.xsl</xslFile>
        </xslFiles>
    </blog>

The assembly is built with .NET 2.0, but it shouldn't be too difficult to change that. I even put the .NET 1.1 version of XML-RPC.NET into the ZIP file.

CAPTCHA for CommunityServer 2007

29.04.2007 09:50:00 | Thomas Freudenberg

Brendan Tompkins released CAPTCHA for CommunityServer 2007:

I'm happy to announce that CodeBetter.Com is carrying on the legacy of CAPTCHA for Community Server.  CAPTCHA for CS2007 is the next generation of CS Guru Dave Burke's most excellent CAPTCHA control for Community Server 2.1This version is implemented as a Control Adapter which allows CAPTCHA to be added to Community Server site-wide without touching any ASPX or ASCX markup code.

You can get the dll and source code here.

The installation is pretty easy since Brendan leverages the same technique as I did for my CS2007 coComment support: by using ControlAdapters not a single page or control must be touched.

In the past I always hesitated to use CAPTCHA on my blog because it´s an additional obstacle a commenter must overcome. Adding this hurdle seemed like a capitulation. But because spam has taken the upper hand over all comments I get, and CAPTCHAs are commonly used everywhere so the regular visitor is used to them, I´ll give it try and add Brendan´s CAPTCHA to my blog.

 

Interessante Entwicklerposter: VSTS, WF, ASP.NET,..

28.04.2007 10:10:55 | Thomas Schissler

 Lars Keller verweist in seinem Blog-Eintrag auf eine Seite, auf der man verschiedene Poster zu Entwicklerthemen rund um VSTS, WF, ASP.Net und mehr findet. Die Poster können kostenlos als PDF heruntergeladen werden. Als registrierter Benutzer kann man auch auf hochaufgelöste JPEGs und auf Beta-Posters zugreifen. 

Link to Lars Keller ...inspired by .NET - Interessante Entwicklerposter: VSTS, WF, ASP.NET,..

patterns & practices: Visual Studio 2005 Team System Guidance

28.04.2007 10:06:13 | Thomas Schissler

Auf Codeplex gibt es einen Guidance zu Visual Studio 2005 Team System, der verschiedene Vorgehensweisen mit VSTS beschreibt. Themen sind u.a:

und vieles anderes mehr!

Link to patterns & practices: Visual Studio 2005 Team System Guidance

Mehrere Projekte einer Solution starten

28.04.2007 09:32:27 | Thomas Schissler

 Vor allem wenn man mit Services programmiert, hat man oft die Anforderung, dass beim Debuggen mehrere Projekte innerhalb der Solution gestartet werden müssen, z.B. ein Service und ein entsprechender Client. Der manuelle Weg war hier, dass man den Service als Startup-Projekt eingertragen hat, das debuggen startet und dann auf den Client im Solution Explorer mit der rechten Maustaste klickt und dann hier Debug / Start new Instance auswählt.


Es gibt aber auch noch eine elegantere Möglichkeit. Auf der Eigenschaftsseite der Solution (rechte Maustaste / Properties) kann man unter Startup Project auch die Option Multiple startup projects wählen. Hier kann man nun bei mehreren Projekten die Action auf Start bzw. Start without debugging einstellen. Sogar die Startreihenfolge der einzlnen Projekte lässt sich definieren. Damit starten nun die eingestellten Anwendungen auf einmal.

nrw07 - Solution.Technology.Community

28.04.2007 05:20:00 | Thomas Freudenberg

nrw07Mark August 24th 2007 in your calendar. On that date we (Just Community e.V.) stage nrw07, the largest community event 2007 in North Rhine-Westphalia.

This year it will take place in Die Börse in Wuppertal.

List of Speaker and agenda are not finished yet, but we'll promise it will be a top-class conference.

Don't miss it! 

coComment for CS 2007 updated

24.04.2007 12:09:00 | Thomas Freudenberg

Every day you can learn something new. Today it was Scott who taught me ControlAdapters after he read my post about coComment with CommunityServer 2007. You know, ControlAdapters are not only good for tweaking CSS.

My original solution was a replacement for the WeblogPostCommentForm, i.e. for every blog theme you had to edit its post.aspx, register my new control and replace the original control.

ControlAdapters however give you the power to inject your code into any desired existing control. In a central file you specify which controls you want to customize, and that's it. No editing of any pages or controls is required.

So I took the chance and transformed my custom comment form into a ControlAdapter. In fact, it's as easy as writing a control. Here's the simplified code, just in case you're interested:

public class WeblogPostCommentFormAdapter : ControlAdapter
{
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        WeblogPostCommentForm commentForm = base.Control as WeblogPostCommentForm;
        if (commentForm != null)
        {
            string coCommentScript = GetCoCommentScript(commentForm);
            if (!String.IsNullOrEmpty(coCommentScript))
                CSControlUtility.Instance().RegisterStartupScript(base.Control, 
                    typeof (WeblogPostCommentForm), "cocomment", coCommentScript, false);
        }
    }

    private static string GetCoCommentScript(WeblogPostCommentForm commentForm)
    {
        // just boring stuff which creates the javascript code to make coComment happy
    }
}

Just drop the attached assembly to your ~/bin folder and add following line to the controlAdapters section in ~/App_Browsers/default.browser:

<adapter controlType="CommunityServer.Blogs.Controls.WeblogPostCommentForm"
    adapterType="ThomasFreudenberg.CS2007.WeblogPostCommentFormAdapter, ThomasFreudenberg.CS2007" />

That's all, without further editing of any files1 coComment support is enabled for all blog themes automagically.

1 unless of course if you're already using the assembly I published yesterday; in this case revert all changes done to your post.aspx'

coComment support for CS 2007

23.04.2007 14:34:00 | Thomas Freudenberg

If you are one of my two regular readers, you may have noticed that I published many posts regarding coComment. In fact, I published instructions to integrate coComment in original CommunityServer and CS2.1SP1 (for CS2.0 and CS2.1 Keyvan was faster than me Stick out tongue)

(if you think I write so much about coComment is because I love it so much, you totally missed the point of my blog)

Anyway, if you follow the old instructions you'll see that there's bunch of script code you have to add to your blog theme. Unfortunately, that solution does not work anymore with CS 2007, because the controls in the comment form are wrapped in a new Chameleon control. I did not see a chance to access the ids of the contained controls and continue the old solution with my limited ASP.NET knowledge.

Instead, I developed another solution. I simply inherited a new control from WeblogPostCommentForm, where I have all access to the contained elements. And up to now I didn't know how easy it is to add some script in your code to be added to the rendered HTML

Long story short, here's my solution for coComment support in CS2007:

  1. Drop the attached ThomasFreudenberg.CS2007.dll into your ~/bin folder.
  2. Open post.aspx of your desired blog theme
    1. Add following line right after the imports:
      <%@ Register TagPrefix="TFr" Namespace="ThomasFreudenberg.CS2007"
          Assembly="ThomasFreudenberg.CS2007" %>
      
    2. Replace <CSBlog:WeblogPostCommentForm … with <TFr:WeblogPostCommentForm …
    3. and </CSBlog:WeblogPostCommentForm> with </TFr:WeblogPostCommentForm>

In fact, for me as a non-web developer that approach seems much more natural to me than adding fancy instructions in the web control.

ThomasFreudenberg.com Upgraded to CommunityServer 2007

22.04.2007 18:14:00 | Thomas Freudenberg

This site has been upgraded to CommunityServer 2007 (I guess visitors to my site do know CommunityServer, and they already read the announcements.) Of all all CS MVPs, I am again late to the party Wink

The upgrade was pretty easy. I spent about 2 hours on it, mainly because of my limited upload bandwidth. However, I had to create a new CS2007 package, because all the cool extensions I used for my old installation are not yet released for CS2007. But don´t worry, the CS MVPs are busy upgrading the CSMVP CSModule package.

I started to create my own theme a couple of weeks ago, but because of lack of time and CSS experience, it’s not finished yet. Therefore my site still looks the same as before.

BTW, Starting with CS 2007 there´s a new distributable called “One-Click Install”. This package is a kinda XCOPY distribution, using Cassini and a file-based database. It's great for developers because you neither need to configure IIS nor the SQL Server.

Visual Studio "Orcas" und .NET 3.5 Beta 1

19.04.2007 23:33:46 | Mathias Raacke

Die 1. Beta Version von Visual Studio "Orcas" ist fertig!

http://blogs.msdn.com/somasegar/archive/2007/04/19/visual-studio-orcas-and-net-fx-3-5-beta1-shipped.aspx

Außerdem gibt es die ersten CTP Versionen der "Orcas" Express Editionen.

Ich hoffe die Beta 1 verträgt sich besser mit Vista und Visual Studio 2005 als die März CTP.

image

Technorati tags: ,

Der TechTalk kommt nach Paderborn!

18.04.2007 13:52:24 | Mathias Raacke

Das nächste Treffen der .NET User Group Paderborn ist gleichzeitig ein ganz offizieller Microsoft TechTalk! Bisher waren die nächsten TechTalk Veranstaltungsorte immer Dortmund oder Hannover, in Zukunft müssen wir nicht mehr soweit fahren. Ob und wie oft der TechTalk danach in Paderborn angeboten wird, hängt aber auch von der Teilnehmerzahl ab. Also anmelden und weiter sagen! :)

Das Thema:

TechTalk: 10 Dinge, die Sie nicht über .NET und Ihre Lieblingsprogrammiersprache wussten
Dirk Primbs, Technologieberater, Microsoft Deutschland GmbH
„Manchmal sind es Kleinigkeiten, die verblüffen: versteckte Perlen im Framework oder kaum bekannte Tools, die richtig viel Arbeit sparen. In dieser TechTalk-Vortragsreihe wird Dirk Primbs mit Ihnen zehn dieser Perlen ausgraben. Ob’s nun die originelle Verwendung alltäglicher Sprachkonstruktionen ist, ob Tipps zu Visual Studio oder wenig bekannte Framework-Klassen: für jeden ist in diesem Vortrag etwas enthalten. Und Spass an Technologie gibt's gratis obendrauf :-)“

Wichtig: Für die Teilnahme ist dieses Mal eine Anmeldung erforderlich!

Anmeldung: http://www.microsoft.com/germany/msdn/techtalk/anmeldung/default.mspx

Weitere Informationen gibt es außerdem unter http://www.techtalk.ms.

WPF/E wird Microsoft Silverlight

16.04.2007 07:51:04 | Mathias Raacke

Microsoft Silverlight

Mein erster Gedanke zum neuen Namen von WPF/E war "Der kann nicht von uns sein?!". Er hört sich nicht nur toll an, sondern besteht auch noch aus weniger als drei Worten, und der Name fängt nicht mit "Windows" an.

Silverlight ist "Cross Plattform" und "Cross Browser", es läuft also nicht nur im Internet Explorer unter Windows sondern auch in Firefox und anderen Browsern und auch auf dem Mac.

Was mir aber bei Silverlight am besten gefällt ist... nein, das darf ich noch nicht schreiben, das kommt erst zur MIX ;)

"As I mentioned, this Silverlight announcement at NAB is only part of the story, the rest will be unveiled at MIX including details about how Silverlight is a core component of Microsoft’s broader .NET platform. Keep your eyes on Mix07 as part of Ray Ozzie’s and Scott Guthrie’s keynote – be sure to check it out. " (Somasegar's Weblog)

Weitere Infos gibt's unter:
http://blogs.msdn.com/tims/archive/2007/04/15/introducing-microsoft-silverlight.aspx
http://www.microsoft.com/presspass/presskits/silverlight/materials.mspx

 

Problem beim Serialisieren von Listen

11.04.2007 18:50:22 | Thomas Schissler

Will man eine Liste nach XML serialisieren, die über ein Interface definiert ist, dann funktioniert das nicht. Es bleibt hier wohl nur die Möglichkeit, einen eigenen Serialisierer zu schreiben. In meinem Fall konnte ich das umgehen, indem ich auf das Interface verzichtet habe. Sollte jemand hier eine gute Idee haben, dann wäre ich für ein kurzes Feedback dankbar um das zukünftig zu berücksichtigen. Im Moment heißt das für mich, dass beim Serialisieren Interfaces tabu sind.

Ein Beispiel für eine nicht serialisierbare Liste ist z.B.

List<IMyInterface>

CardSpace Vorurteile

11.04.2007 15:20:59 | Mathias Raacke

Wenn ich mit anderen Entwicklern über CardSpace spreche höre ich leider immer wieder die gleichen Vorurteile über CardSpace. Das kommt wohl daher, dass viele die CardSpace nicht kennen erstmal von Passport ausgehen und vermuten, dass CardSpace wohl so ähnlich sein muss. Dabei haben aber beide Technologien nichts miteinander zu tun, mal abgesehen davon, dass beide von Microsoft sind.

Einige dieser Vorurteile sind:

"Meine Daten werden bei Microsoft gespeichert"
Falsch! Bei CardSpace gibt es keine zentralen Server, die alle Daten des Anwenders speichern. Daten werden entweder lokal auf dem Rechner des Anwenders gespeichert (bei sogenannten selbstausgestellten Karten) oder auf dem Server eines Identitätsanbieters (bei verwalteten Karten). Im Prinzip kann jeder der das möchte ein Identitätsanbieter für CardSpace werden. Mögliche Identitätsanbieter könnten z.B. Banken, Universitäten, Vereine oder vielleicht sogar Behörden sein. Das hängt ganz davon ab, was man mit CardSpace mache möchte.

"CardSpace funktioniert doch nur mit dem Internet Explorer und Windows"
Falsch! CardSpace basiert auf offenen und freien Standards. Jeder der möchte, kann diese Standards selbst implementieren. So gibt es z.B. schon CardSpace Identity-Selektoren ("CardSpace UIs") für Firefox und Safari. Die Standards, auf denen CardSpace basiert sind z.B.: WS-Trust, WS-Security und SAML, um nur einige zu nennen.

"CardSpace funktioniert doch sicher nur mit ASP.NET Web Servern"
Falsch! CardSpace lässt sich problemlos mit beliebigen Web Servern und Webtechnologien nutzen, da es auf freien und offenen Standards basiert. Kim Cameron, einer der Architekten von CardSpace, hat z.B. CardSpace in sein Wordpress (PHP) Blog integriert.

"CardSpace in meine Webseite einbauen ist zu kompliziert"
Falsch! Je nachdem mit welcher Plattform man arbeitet gibt es bereits viele fertige Bibliotheken und Beispiele, die man nutzen kann, um CardSpace in eigene Webseiten zu integrieren. Am einfachsten geht das natürlich mit ASP .NET, dafür gibt es einfach schon die meisten Beispiele. Es gibt aber auch schon CardSpace Bibliotheken für PHP [1], [2] und Java. Mit solchen fertigen Beispielen und Bibliotheken lässt sich CardSpace mit wenigen Zeilen Code in eigene Webseiten integrieren. Auf Plattformen wo es solche Bibliotheken noch nicht gibt ist das natürlich wirklich aufwändiger. In dem Fall hängt es davon ab, wie gut die jeweilige Plattform die von CardSpace verwendeten Technologien unterstützt, insbesondere XML Encryption, XML Signaturen und SAML Tokens. Diese Arbeit muss aber für jede Plattform nur einmal von irgendjemandem gemacht werden. Früher oder später wird es für alle wichtigen Plattformen CardSpace Bibliotheken geben.

"CardSpace ist nicht kostenlos"
Falsch! Zumindest CardSpace selbst basiert auf offenen und frei verfügbaren Standards und kann somit ohne Lizenzgebühren verwendet werden. Allerdings benötigt CardSpace eine verschlüsselte Verbindung über HTTPS und somit SSL Zertifikate. Die sind aber gar nicht so teuer wie man zunächst denkt (was man z.B. daran sieht, dass ich mir eins für mein Blog leisten konnte ;) ). SSL Zertifikate gibt es ab ca. $15 pro Jahr. Für den Einsatz in kommerziellen Projekten also quasi "Peanuts", für den privaten Einsatz aber sicher nicht ganz unproblematisch. Eine mögliche Alternative für den privaten Einsatz sind kostenlose Zertifikate von startssl.com. Diese Zertifikate funktionieren mit CardSpace jedoch nur bei Anwendern, die das CA Root Zertifikat von startssl auf ihrem Rechner installiert haben.

"CardSpace ist nicht interoperabel zu anderen Identitätstechnologien (OpenID, ...)"
Falsch! CardSpace ist sogar so extra konzipiert, dass es wunderbar mit anderen Technologien zusammenarbeiten kann. Die CardSpace-Spezifikation schreibt z.B. nicht vor, welches Sicherheitstokenformat für die Authentifizierung mit CardSpace verwendet werden soll. Selbstausgestellte Karten arbeiten mit SAML Tokens, die auch in anderen ID-Technologien wie z.B. Shibboleth oder Liberty Alliance und natürlich SAML selbst verwendet werden. Bei verwalteten Karten kann ein beliebiges Securitytokenformat verwendet werden. Solange der Identitätsanbieter und die Relying Party (= z.B. die Webseite, gegenüber der man sich authentifiziert) beide eine gemeinsame "Sprache" sprechen und das Token verstehen ist das Format vollkommen egal.

Auch mit OpenID kann man CardSpace wunderbar verwenden. Im xmldap CardSpace Identity Selector kann man z.B. eine OpenID als "verwalte Karte" nutzen. Eine weitere sinnvolle Anwendungsmöglichkeit ist der Einsatz von CardSpace als Authentifizierungsmöglichkeit gegenüber einem OpenID-Identitätsanbieter. OpenID selbst ist anfällig gegenüber Phishing. Diese Schwäche lässt sich vermeiden, wenn man beide Technologien kombiniert. Ich bin gerade dabei, diese Idee von Kim umzusetzen und einen OpenID-Server zu schreiben, der CardSpace als Authentifizierung nutzen kann - mehr dazu später in einem eigenen Eintrag.

"Durch CardSpace kann ein Profil über die Seiten die ich besuche erstellt werden"
Falsch! Bei CardSpace authentifiziert man sich nicht mit nur einer Identität, sondern man besitzt beliebig viele Karten und somit auch Identitäten. Selbst wenn die gleiche Karte auf mehreren Seiten eingesetzt wird, enthält die Karte für jede Seite eine eigene PPID (private personal identifier). Wenn ich z.B. eine Karte auf Seite A und Seite B verwende, so hat Seite A keine Möglichkeit, die Daten aus der Karte zu verwenden, um sich unter meinem Namen auf Seite B anzumelden.

Ein Identitätsanbieter sieht (in der Standardeinstellung) auch nicht, auf welchen Seiten ich mich mit der Identität dieses Anbieters authentifiziere. Er kann also kein Profil über mich erstellen. Für Anwendungsfälle, in denen diese Information dennoch notwendig ist, ist das möglich, dann wird der Benutzer bei der Verwendung der Karte darauf hingewiesen, dass der Identitätsanbieter diese Information erhält.

"Wenn mein Computer gestohlen/gehackt wird hat der Dieb/Hacker zugriff auf alle meine Identitäten"
Falsch! Um auf die Karten eines Benutzeraccounts zugreifen zu können müsste jemand, der den Computer gestohlen hat, zumindest das Benutzerkennwort kennen. Karten können außerdem zusätzlich mit einer eigenen PIN pro Karte versehen werden, in dem Fall kommt also auch ein angemeldeter Nutzer ohne die PIN nicht an die Karten. Die Karten werden besonders geschützt auf dem Rechner gespeichert und sind doppelt verschlüsselt (mit einem Schlüssel des jeweiligen Benutzers und mit dem des Systems). Selbst ein Administrator hat so ohne das Kennwort des Nutzers keinen Zugriff auf die Karten. Selbst  wenn er das Nutzerkonto ändert hat er keinen Zugriff, der Schlüssel wäre in dem Fall zerstört (wie z.B. auch bei Verschlüsselung im Dateisystem). Verwaltete Karten können zusätzlich geschützt werden, z.B. über SmartCards oder ein zusätzliches Passwort. Die Daten von verwalteten Karten sind ja außerdem sowieso beim Identitätsanbieter gespeichert, der sie ausgestellt hat.

Das CardSpace User Interface wird in einem eigenen, abgeschotteten Desktop angezeigt. Andere Prozesse haben auf diesen Desktop keinen Zugriff. Ein Trojaner hätte also keine Möglichkeit, CardSpace fernzusteuern und den Benutzer irgendwo anzumelden oder seine Daten aus der CardSpace Benutzeroberfläche zu stehlen.

 

Ich hoffe ich konnte mit diesem Artikel einige Vorurteile beseitigen. Wer neugierig geworden ist und jetzt mehr über CardSapce erfahren möchte sollte auf der CardSpace Seite und in Kims IdentityBlog beginnen.

Technorati tags: ,

Suche neue Student Partner

05.04.2007 22:07:09 | Mathias Raacke

Wie die meisten Leser meines Blogs ja wahrscheinlich wissen arbeite ich als Senior Student Partner im Microsoft Student Program. Dort betreue ich die Student Partner an den Universitäten in Paderborn, Kassel, Münster, Bielefeld, und im Moment vorübergehend auch in Dortmund. Für diese Universitäten suche ich neue Student Partner. Das sind nur die Unis, an denen ich selbst Student Partner suche - meine Kollegen suchen auch an anderen Unis neue Student Partner. Sebastian sucht z.B. Student Partner für Köln und Bonn.

Das Microsoft Student Program
Im Microsoft Student Program haben wir im Moment über 100 Student Partner an ca. 50 Universitäten in Deutschland. Student Partner sind Studenten, die sich mit neuen Technologien (natürlich hauptsächlich von Microsoft) beschäftigen, und ihr Wissen über diese Technologien über Vorträge und Workshops an Studierende an ihrer Hochschule weiter geben.

Zu den Aufgaben eines Student Partners gehört nicht nur die Durchführung des Vortrags oder Workshops, sondern auch die Organisation - für einen Vortrag muss ein Raum mit Beamer organisiert werden, ein Workshop erfordert einen Poolraum. Und der beste Vortrag bringt natürlich gar nichts, wenn keiner kommt - der Vortrag oder Workshop muss also auch an der Uni bekannt gemacht werden, damit ausreichend Teilnehmer zur Veranstaltung kommen.

Gerade an Universitäten an denen es bisher noch keine Student Partner gab müssen dabei zuerst Vorurteile abgebaut werden, denn an vielen Unis gilt Microsoft gerade bei Informatikstudenten, Professoren und Fachschaften noch als der "böse Monopolist". Solche Vorurteile muss ein Student Partner abbauen, indem er keine Werbeveranstaltungen, sondern Schulungen und Workshops durchführt, in denen Wissen vermittelt wird, und die Studenten einen echten Mehrwert bieten. Ein Student Partner ist außerdem Ansprechpartner für Studenten bei allen Fragen rund um Microsoft an der Uni.

Warum Student Partner werden?
Student Partner sammeln durch ihre Aktivitäten nicht nur wertvolle Erfahrung über Technologien (man lernt ja am besten, indem man anderen etwas beibringt) und verbessern ihre Soft-Skills, sondern bekommen auch noch verschiedene Fördermaßnahmen von Microsoft. Für alle Aktivitäten erhalten Student Partner Punkte, die sie in verschiedene Fördermaßnahmen eintauschen können. Da gibt es z.B. Soft-Skill-Trainings von unseren Partnern Accenture und Avanade, Voucher für Microsoft Zertifizierungsprüfungen, Software, Hardware und verschiedene andere Dinge. Die 10 aktivsten Student Partner werden außerdem "Student of the Year" und bekommen dafür noch mal weitere Preise und Urkunden. Es gibt regelmäßige regionale und deutschlandweite Student Program Summits. Beim letzten Summit sind wir z.B. mit der Fähre nach Göteborg gefahren. Je mehr Zeit man ins Student Program investiert, desto mehr bekommt man als Gegenleistung. Wer nichts tut bekommt natürlich auch (fast) nichts.

Mir persönlich hat das Student Program z.B. sehr sehr viel gebracht. Ich habe sehr viele Interessante Menschen kennen gelernt und konnte auch viele nützliche Kontakte aufbauen. Als Student Partner bekommt man zwar kein Geld, aber alles was ich im Moment an Schulungen und anderen Aufträgen durchführe ist entweder direkt oder indirekt über Kontakte aus dem Student Program zustande gekommen. Sowohl mein fachliches Wissen als auch meine Soft-Skills wurden durch das Student Program und die Trainings aus dem Student Program sehr gefördert. Außerdem bin ich ständig unterwegs. Durch das Student Program (oder aus anderen Dingen, die sich aus dem Student Program ergeben haben) war ich schon 2 x auf der TechEd (Amsterdam + Barcelona), in der Schweiz, in Schweden und in Japan, im Sommer kommt jetzt noch Florida dazu, und auch innerhalb Deutschlands bin ich sehr viel unterwegs.

Wie kann man sich bewerben?
Ganz einfach mit einer E-Mail mit Lebenslauf und Foto an info@studentprogram.de.

Folien für "Visual Studio anpassen und erweitern" online

05.04.2007 13:44:00 | Roland Weigelt

Am Montag waren Jens Schaller und ich bei der .NET User Group Paderborn zu Gast, um einen Vortrag über Anpassung und Erweiterung von Visual Studio 2005 zu halten. Wir hatten ingesamt 15 Zuhörer, angesichts des tollen Wetters eine durchaus erfreuliche Zahl.

20070405_Paderborn1 20070405_Paderborn2

Die Folien für die Vorträge liegen nun zum Download bereit (PowerPoint 2007, PowerPoint 2003).

VB vs C#

05.04.2007 08:26:55 | Boas Enkler

Da immerwieder die Frage aufkommt "Was ist denn nun besser? VB oder C#, ist das nicht sowieso egal?"
Habe ich ein paar Sachen zusammengetragen.
Wichtig ist es im hinterkopf zu halten dass i.d.R. man sowieso mehr .NET Framework als Sprachspezifische Features verwenden (sollte).

Theoretisch sollte bei 2 codes die exakt das gleiche tun auhc der gleiche IL Code rauskommen. Allerdings ist das nicht immer der Fall s. http://www.codeproject.com/dotnet/vbvscsmsil.asp
Das deckt sich auch mit dem was ich sonst so auf anderen Sites gelesen habe, der C# Code soll leicht effizienter sein.

Auch haben nicht unbedingt beide Sprachen die gleichen Features . Hier eine gegenüberstellung (Wenn jemand ncoh mehr punkte findet, würde ich mich über Feedback freuen um die Tabelle möglichst vollständig zu bekommen)

VB.NET

C#

Optionale Paramters (in C# nur objter ParaArray lösbar)

Using(…) Konstrukt

Wahlweise ignorieren des ref für Parametertypen

Unsafe CodeBlocks für PErformance

Switch / case statement erlaubt das abbilden von bereichen also i ZWISCHEN 2 UND 3 C# nur je eine exakt prüfung

Anonyme Methoden

With…Endwith

NullAble Structures

 

Custom Iterators

 

Multi Line Comments

 

Static Classes

 

Numerische Opertionen zum Teil etwas schneller

 

Namespace Alias

 

C# IL Code  u.U. effizienter s.             http://www.codeproject.com/dotnet/vbvscsmsil.asp

 

Increment/Decrement a++;a--;

 

Explizite Interface Implementation möglich.     

 

Handling bei großer anzahl von Klassen optimiert


























Gerade das Using Statement fehlt mir doch schmerzhaft bei VB.NET um gezielt kritische Ressourcen beseitigen zu können.
Anonyme Methoden sind an einigen Stellen auch sehr angehmme Helferlein z.bsp. beim Starten eines Backgroundthreads.

In der Kompatibilität gibts es auch ein paar Schwierigkeiten

VB.NET -> C#

C# ->VB.NET

Variablen müssen nicht deklariert sein

Nicht alle numersichen Operationen werden zur gunsten der Performance auf Overflow geprüft

NonCaseSensitiv

 

StronType optional

 










Insgesamt ist es also wesentlcih einfacher an ein C# Programm VB zu hängen als umgekehrt und die reine Struktur eines VB Programms kan wohl C# nicht ins Stolpern bringen aber umgekehrt.


Beispiel: folgende Klasse

    class Class1
    {
        public int myValue;

        public string MyValue ="5";

    }

Diese Klasse in VB eingebunden könnte zu problemen führen da sich "myValue" von "MyValue" für VB nicht unbedingt unerscheidet...
An dieser Stele sei noch das Attribut [CLSCompliant] zu empfehlen welches sich auf Restriktionen von .NET zwecks besserer Kompatiblität bezieht

Zusammengefast bleibt für mich nur der Schluss, dass durchaus beide Sprachen auf der CLR aufbauen und deswegen das programmieren sich sehr ähnlich anfühlt ,aber wenn man die möglichst görßte Kompatibilität & Performance haben möchte man zu C# tendieren sollte.

Gerade das fehlen von anonymen Methoden, expliziten Interfaces sowie Custom Interators könnte in einigen Szenarien zu problemen führen. Man stelle sich nur mal eine KLasse vor die ein von mir gewähltes Interface erfüllt und zufällig muss sich ein weiteres Interface eines Third Party herstellers erfüllen, der dummerweise eine gleiche Methode in seinem Interface vorraussetzt.

Unter VB wäre dies nicht mehr unterscheid bar. in C# geht dies mit den Expliziten Interfaces ohne probleme. Ein Beispiel zu expliziten Interfaces liegt unter : http://msdn2.microsoft.com/en-us/library/9c12as0k(VS.80).aspx

Die in VB fehlenden Custom interators sind ein eigentlcih sehr mächtiges Feature mit dem mann sich viel arbeit ersparen kann. So kann ich mir z.Bsp. eigene Tabellen objekte vorstellen die eine eine SQL Like Filter/ WhereClausel haben können und bei dem Foreach über dieses Objekt automatisch nur passende rows zurückliefern.

Ich denke der Satz aus wikipedia( s. nachfolgenden Link) trifft es am besten "Bottomline is that the VB.Net is for small application and C# is for Enterprise application development."

Guter Artikel zu dem Thema "VB vs. C#" gibt es auch noch unter http://en.wikipedia.org/wiki/Comparison_of_C_sharp_and_Visual_Basic_.NET

Von Norbert Eder habe ich gerade noch einen Hinweis auf seinen BLog bekommen. Dort sind  zu diesem Thema noch einige gute Links drin:
s. http://blog.norberteder.com/index.php?entry=entry060408-120430
u.a. Top 10 reasons why C# is better then VB .NET http://www.vbrad.com/article.aspx?id=63

Hier noch ein letzer Link http://www.codeproject.com/dotnet/dnlp.asp
Hier noch ein Link bei dem man sehen kann wie VB & C# Code nebeneinander aussieht : http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum