Visual Studio 2010 Trainings Kit Juni 2011 Edition

Von Andreas Pollak Autor Feed 1. July 2011 10:35
Pünktlich zum Sommerbeginn haben wir eine neue Version des Visual Studio 2010 and .NET Framework 4 Training Kit & Courseveröffentlicht. Das Trainingskit enthält Videos und Hands-on-Labs zu Visual Studio 2010, C# 4.0, Visual Basic 10, F#, ASP.NET 4, Parallel computing, WCF, Windows Workflow, WPF, Silverlight und Windows Azure. Das Kit enthält 55 Labs, 22 Demos, 16 Präsentationen und 12 Videos. Neue Inhalte speziell im Application Lifecycle Management Bereich: Using Code Analysis with Visual Studio 2010 to Improve Code Quality Introduction to Exploratory Testing with Microsoft Test Manager 2010 Introduction to Platform Testing with Microsoft Test Manager 2010 Introduction to Quality Tracking with Visual Studio 2010 Introduction to Test Planning with Microsoft Test Manager 2010 Hier kannst Du die neue Version herunterladen:  Juni 2011 Release des Visual Studio 2010 and .NET Framework 4 Training Kit Übrigens publizieren wir auch regelmässig Visual Studio 2010 Hands-On-Lab’s direkt auf MSDN damit ihr nicht jedes Mal das komplette Trainings Kit herunterladen müßt. Andreas Pollak Product Marketing Manager Visual Studio & Expression Verkaufberatung für Visual Studio gewünscht? Unser Rückrufservicehilft Dir gerne unkompliziert weiter.

Neues Buch: Sharepoint Lösungen mit Windows Azure

Von Jürgen Mayrbäurl  Autor Feed 30. June 2011 08:03
Im O’Reilly Verlag ist soeben ein neues Buch mit dem Titel “Developing Microsoft SharePoint Applications Using Windows Azure” erschienen. Es handelt sich dabei um eine Expertenanleitung für die Erstellung von Sharepoint Lösungen, die die Windows Azure Plattform nutzen. Behandelt werden dabei u.a. folgende Themen: Integration von Daten aus dem Windows Azure Marketplace DataMarket in Sharepoint und Office Anwendungen Verwendung von Microsoft Business Connectivity Services für den Zugriff auf Daten in SQL Azure Erstellung von komplexen Web parts für die Integration von SQL Azure Daten mit BingMaps unter Verwendung des Sharepoint Client Object Models Dateimanagement in Windows Azure Blob Storage Verwendung von Windows Communication Foundation Services in Windows Azure Erstellung von BI Lösungen unter Verwendung von SQL Azure und Microsoft SQL Server Reporting Services Weitere Infos dazu, inklusive Inhaltsverzeichnis, am MSDN Blog. Kapitel 1 des Buches ist als kostenlose Leseprobe verfügbar.

Preismodelländerung bei Windows Azure ab 1. Juli 2011

Von Jürgen Mayrbäurl  Autor Feed 29. June 2011 10:18
Beginnend mit 1. Juli 2011 werden für eingehende Netzwerkzugriffe (Inbound Traffic für den aktuell z.B. in den europäischen Rechenzentren € 0,071 pro GB an Kosten anfallen) keine Kosten mehr verrechnet. Dies stellt eine wesentliche Reduktion der Kosten von Windows Azure betriebenen Cloud Services dar, im speziellen für diejenige, die über ein großes Volumen im Bereich von eingehenden Netzwerkzugriffen verfügen. Weiters macht dies die Abschätzung von anfallenden Kosten für den Betrieb der Cloud Services einfacher, da diese unkontrollierbare Komponente nun wegfällt.  Auch werden Lösungen, die einen regelmässigen Upload von Daten in die diversen Storage Bereiche von Windows Azure vorsehen, davon profitieren. Lesen Sie die offizielle Microsoft Ankündigung dazu am Windows Azure Team Blog.

Node.js Implementierung für Windows

Von Jürgen Mayrbäurl  Autor Feed 29. June 2011 08:11
Gemeinsam mit der Firma Joyentund Ryan Dahl wird Microsoft demnächst eine Implementierung der populären Open Source JavaScript Library Node.js für Windows zur Verfügung stellen. Node.js Ziel ist die Vereinfachung der Entwicklung von skalierbaren Netzwerkprogrammen. Damit ist es z.B. möglich mit wenigen Zeilen JavaScript Code einen einfachen Webserver aufzusetzen. Beispiel Webserver, der mit “Hello world” antwortet: var http = require('http'); http.createServer(function (req, res) {    res.writeHead(200, {'Content-Type': 'text/plain'});    res.end('Hello World\n'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); Als erster Schritt wird dazu das hochperformante IOCP API von Node.js nativ auf Windows implementiert. Das dadurch entstehende Binary node.exe wird dann unter Windows Azure und Windows Server, zurückreichend bis zur Version 2003, einsetzbar sein. Weiterführende Informationen dazu am Node.js Blog

Nachlese: Testing–Pain or Painkiller vom 4. Mai 2011

Von Andreas Pollak Autor Feed 21. June 2011 14:46
Man könnte ja schon fast von einer Spätlese sprechen . Hier kommt Sie endlich unsere Nachlese zu dem Event: Testing – Pain or Painkiller.Viel Spass dabei!  Ist Testen tatsächlich aufwendig? Was sind die Erfolgsfaktoren für erfolgreiches Testen? Wie können erste, einfache und doch wirkungsvolle Schritte aussehen, die rasch und unkompliziert Nutzen bringen? Hier geht es zu den Aufzeichnungen der einzelnen Vorträge: The Pursuit of Quality: Chasing Tornadoes or Just Hot Air? Recording/ Slides Recording published with the friendly permission of Paul Gerrard. In this talk, Paul uses famous, funny and tragic examples of system failures to illustrate ways in which testing failed. He argues strongly that the pursuit of quality requires that testers need better test models and how to create them, fast. He also introduces a new concept of using Business Stories to test requirements and systems.   (Paul Gerrard, Gerrard Consulting Limited, London, Großbritannien Testexperte, Berater und Autor sowie international ausgezeichneter Vortragender Preisträger 2010 des EuroSTAR European Testing Excellence Award)  Software-Test aktuell Recording/ Slides • Aktuelle Trends und Entwicklungen • Erfolgsfaktoren in der Praxis (Manfred Baumgartner, Leiter Software-Test, ANECON Software Design und Beratung) Testen ganz praktisch Recording/ Slides • Ein Tool stellt sich vor: Team Foundation Server (TFS) • Konkrete Anwendungsbeispiele (Manfred Baumgartner, Michael Reisinger,Software-Architekt, ANECON Software Design und Beratung ) Andreas Pollak Product Marketing Manager Visual Studio & Expression Verkaufberatung für Visual Studio gewünscht? Unser Rückrufservicehilft Dir gerne unkompliziert weiter.

DDD NLayered .NET 4.0 Architekturleitfaden verfügbar

Von Jürgen Mayrbäurl  Autor Feed 31. May 2011 16:05
Microsoft Spanien hat einen Architekturleitfaden für Domain Oriented Multi-Layer .NET 4.0 Lösungen erstellt, der nun zum kostenlosen Download zur Verfügung gestellt wurde. Architekturleitfaden als E-Book: DDD_NLayered_NET40_Architecture_Guide_Microsoft.zip Weiterführende Informationen unter: http://msdn.microsoft.com/es-es/architecture/en/

Windows Azure einfach erklärt

Von Jürgen Mayrbäurl  Autor Feed 30. May 2011 15:08
Video, das kurz und einfach Windows Azure erklärt.

Windows Azure Toolkit for Windows Phone 7

Von Andreas Pollak Autor Feed 10. May 2011 08:03
Eigentlich schon Ende März veröffentlicht, aber kennt Ihr es schon? Das Windows Azure Toolkit for Windows Phone 7macht es einfacher mobile Anwendungen zu schreiben, die auf Azure Cloud Services zugreifen. Das Toolkit enthält Visual Studio Projekt Templates für Windows Phone 7 und Windows Azure, für Windows phone optimierte Klassenbibliotheken, Beispielanwendungen und Dokumentation. Andreas Pollak Product Marketing Manager Visual Studio & Expression Verkaufberatung für Visual Studio gewünscht? Unser Rückrufservicehilft Dir gerne unkompliziert weiter.

16 GB USB Stick für Kompatibilitätstests

Von Andreas Pollak Autor Feed 2. May 2011 22:11
Einer von hundert 16 GB Ultra-Slim USB-Sticks1 kann jetzt bald Dir gehören! Teste  Deine Applikation kostenlos auf Kompatibilität und sichere Dir Deinen persönlichen 16 GB Ultra Slim USB-Stick1 - Nur noch bis zum 15.05.2011. Den USB-Stick gibt es für einen erfolgreich durchgeführten Kompatiblitätstest für eine der nachfolgenden Technologien: Windows Server 2008 R2 SQL Server 2008 R2 Windows Azure Schritt für Schritt zur Kompatibilität Melde Dich mit Deiner Live-ID auf Microsoft Platform Ready2 an Lade die technische Schritt für Schritt – Anleitungherunter. Diese leitet Dich durch den gesamten Test-Prozess (inkl. Testmaschine konfigurieren). Führe den Platformtest auf einer der drei genannten Technologien erfolgreich durch (Kann beliebig oft wiederholt werden). Gratulation! Kompatibilität erreicht - Die USB Sticks werden bis Ende Mai ausgeliefert Weitere Vorteile durch die Kompatibilitätstests Dieser Test hilft Dir beim frühzeitigen Aufdecken möglicher Kompatibilitätsprobleme Deiner End-Anwender. Für Windows Server 2008 R2 und Windows Azure qualifizierst Du Dich mit einem erfolgreich abgeschlossenen Test für die Logos “Works with Windows Server 2008 R2” oder “Powered by Windows Azure2. Du qualifizierst Dich zusätzlich für die Erlangung von Microsoft Partner-Kompetenzen – z.B. Independent Software Vendor (ISV), Application Integration, Data Platform, Business Intelligence, Unified Communications, CRM. Wusstest Du übrigens, dass über Microsoft Platform Ready auch ein technischer E-Mail Support zu den genannten Technologien angeboten wird? Viel Erfolg beim Testen Dein Microsoft Partner-Team 1) solange der Vorrat (100 Stück) reicht; Ein USB-Stick pro Unternehmen mit bis zum 15.05.2011 erfolgreich auf Kompatibilität getesteter Software (Produkt ist auf www.microsoftplatformready.com als kompatibel eingetragen) auf einer der nachfolgenden Technologien: Windows Server 2008 R2, SQL Server 2008 R2 oder Windows Azure. 2) Wenn Du mit den Tests eine der Partner Kompetenzen erreichen möchtest, verwende bitte unbedingt dieselbe Live-ID wie am Partner Portal.

Erweiterung des Windows Azure Kontingents für MSDN Abonnenten

Von Andreas Pollak Autor Feed 12. April 2011 19:40
Ab sofort erweitern wir die Windows Azure Kontingente für InhaberInnen von Visual Studio 2010 Ultimate mit MSDN oder Visual Studio 2010 Premium mit MSDN. Zusätzlich stellen wir nun auch Visual Studio Professional mit MSDN Kunden und Kundinnen ein Windows Azure Grundkontingent im Rahmen der MSDN zu Verfügung. Detailinformationen Services bestehendens Angebot (zur Referenz) Visual Studio 2010 Ultimate mit MSDN Visual Studio 2010 Premium mit MSDN Visual Studio 2010 Professional mit MSDN Compute 750 hours 1,500 hours (small compute instance) 1,500 hours (extra small compute instance) 750 hours (extra small compute instance) Storage 10 GB 30 GB 25 GB 20 GB Storage Transactions 1,000,000 2,000,000 1,000,000 250,000 Size 3 GB Web Edition 5 GB Web Edition 1 GB Web Edition 1 GB Web Edition Access Control Transactions 1,000,000 500,000 200,000 100,000 Service Bus Connections 1 pack of 5 connections 1 pack of 5 connections 1 pack of 5 connections 2 connections In 7 GB (Europe & NA) 2.5 GB (Asia Pacific) 35 GB 30 GB 25 GB Out 14 GB (Europe & NA) 5 GB (Asia Pacific) 35 GB 30 GB 25 GB Jeder Kunde oder jede Kundin. welche bereits eine bestehendes Angebot von Visual Studio 2010 Ultimate mit MSDN nutzt, erhält die neuen Kontingent. Zusätzlich behalten diese Kunden die 1.000.000 Access Control Transactions pro Monat, welche im aktuellen Angebot enthalten sind. Die Windows Azure Kontingente gelten solange die MSDN Subscription aktiv ist, bzw. bis auf Weiteres. Wir bieten nun auch die Möglichkeit die Mehrnutzung (über das enthaltene Kontingent hinaus) über eine Rechnung zu abzurechen anstelle der Kreditkarte. BizSpark Nutzer und Nutzerinnen erhalten die Kontingente der Visual Studio 2010 Ultimate mit MSDN. Mitarbeiter und Mitarbeiterinnen von MPN Partnern, die eine Visual Studio mit MSDN Subscription zugewiesen haben, können diese Kontingente ebenfalls nutzen (zusätzlich zu den partnerspezifischen Angeboten). Andreas Pollak Product Marketing Manager Visual Studio & Expression Verkaufberatung für Visual Studio gewünscht? Unser Rückrufservicehilft Dir gerne unkompliziert weiter.

ASP.NET MVC 3 Tutorial #4-Der Controller im Detail

Von Mario Meir-Huber Autor Feed 11. April 2011 14:59
Im Tutorial #2 habe ich einige Controller-Aktionen vorgestellt, bis dato jedoch noch keinen Quellcode im Controller gezeigt. Sehen wir uns zu allererst mal den HomeController an. Hier haben wir die Methode “Index”, welche auf den gleichnamigen View verweist. Außerdem geben wir dem View noch Daten mit. Dies kann man über mehrere Möglichkeiten erreichen. In unserem Beispiel verwenden wir ViewData. In einem späteren Post werde ich noch weitere Möglichkeiten vorstellen. public ActionResult Index() { ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); } Dies hat dann folgenden Output als Effekt: Im Home-Controller befindet sich auch noch die Methode “About”. Hier wird ebenfalls wie in der Index-Methode “return View” angegeben. Diese Methode gibt jetzt einen View mit den Namen “About” zurück. Es ist auch möglich, andere Views anzugeben. public ActionResult About() { return View(); } Der View “About” ist im Ordner unter “Views/Home/” zu finden. Will man einen anderen Controller aufrufen – in meinem Fall den Controller “ForceController” so wird auch hier der Default Route mit Index aufgerufen. Ein Aufruf von “/Force” landet demnach auf Index. public ActionResult Index() { return View(); } Asp.NET MVC stellt uns jedoch auch noch wesentlich mehr Möglichkeiten zur Verfügung, Daten zurückzugeben. Bis jetzt hatten wir immer “return View()” verwendet. Es ist jedoch auch möglich, einfachen Content zurückzugeben. Dies funktioniert mit “return Content”. public ActionResult HelloWorld() { return Content("Hello World"); } In diesem Fall wird der Content ausgegeben. Im Tutorial 2 habe ich auch auf Nullable Types als Parameter hingewiesen. Hierfür muss man dies nur in der Methode so definieren: public ActionResult GetSomeId(int? id) { if (id.HasValue) return Content(string.Format("Hello Number {0}", id.Value)); else return Content("No value specificed"); } Wird die Methode ohne Parameter aufgerufen, so gibt diese “No value specified” zurück. Asp.NET MVC erlaubt es uns auch, auf andere Controller/Actions zu verlinken. Dies geschieht beispielsweise mit “RedirectToAction”. Wenn man sich ein standard-CRUD System vorstellt, so macht dies durchaus Sinn. public ActionResult NoWay() { return RedirectToAction("Index"); } In diesem Beispiel wird auf die Action Index am selben Controller verlinkt. Außerdem kann man beispielsweise sehr einfach ein Datum zurückgeben. Hierbei wird es in “Content” gewrappt. Today kann auch vom Controller aufgerufen werden. public DateTime Today() { return DateTime.Now; } Besonders interessant ist jedoch die Möglichkeit, weiter Typen wie Dateien oder JSON zurück zu geben. Vor allem JSON eignet sich hervorragend für JScript/jQuery Interaktionen. public ActionResult JSONGoesToHell() { return Json(new { Id = 1, Content = "Hello JSON" }, JsonRequestBehavior.AllowGet); } Dies gibt folgendes aus: Im nächsten Post werden wir uns CustomRoutes mal ansehen und was die so alles schönes für uns machen können.

ASP.NET MVC 3 Tutorial #3-Die Ordnerstruktur des Asp.NET MVC Projektes in Visual Studio

Von Mario Meir-Huber Autor Feed 5. April 2011 14:26
Erstellt man ein neues Projekt mit Asp.NET MVC, so fällt sehr schnell auf das dies mit einigen Ordnern kommt. Im folgenden Bild ist die Ordnerstruktur eines neu erstellten MVC Projektes dargestellt. Im ersten Unterordner Namens “Content” befindet sich die Datei “Site.css”. Hier werden typischerweise die statischen Inhalte wie Stylesheets oder ähnlichem abgelegt. Der Ordner “Controllers” ist, wie könnte es auch anders sein, für die Controller bestimmt. Der AccountController ist für Login/Logout und Benutzerinteraktion da. Der “HomeController” ist der Controller für die Startseite. Im Ordner “Scripts” befinden sich verschiedene JavaScript Dateien. Hier ist vor allem die jQuery Integration von Interesse. jQuery ist gut in Asp.NET MVC integriert und wir werden gegen Ende dieser Tutorial-Reihe noch stärker auf jQuery eingehen. Im Ordner “Views” sind nun die Views geschachtelt. Wenn ein Controller einen View aufruft, so sucht dieser entweder im Ordner “Shared” oder im dafür zuständigen Ordner. Dies ist für den HomeController der Ordner “Home”. Dazu kommen noch die Dateien “Global.asax” und “Web.config” im Root-Verzeichnis. Im nächsten Beitrag werden wir uns mal etwas Code im Controller ansehen.

ASP.NET MVC 3 Tutorial #2–Was ein Controller so alles kann.

Von Mario Meir-Huber Autor Feed 28. March 2011 14:08
Im vorigen Teil habe ich damit begonnen, die Architektur des MVC Patterns kurz vorzustellen. Nun wollen wir uns dem Controller – beziehungsweise vielmehr dem URL-Mapping – widmen. Die gute Nachricht vorweg: Asp.NET MVC mapped die URLs per default bereits sehr schön auf die Controller und deren Methoden. Man kann also davon ausgehen das Controller/Methodenname im Browser ähnlich vorkommen. In der folgenden Abbildung wird die Startseite angezeigt. Diese kann auch über /Home/Index aufgerufen werden. Für die Startseite ist dies jedoch nicht notwendig da die leere URL standardgemäß auf /Home/Index zeigt. Prinzipiell kann man sich folgendes Schema vorstellen: http://myurl.com/Controller/Action?Parameters Der Controller in der URL ist in diesem Fall der jeweilige Controller – z.B. der HomeController (wobei in der URL die Silbe “Controller” weg fällt) und Action ist die Methode “Index” am Controller. In Asp.NET MVC werden diese Routings, auf welche verwiesen wird, in der Datei “Global.asax.cs” geregelt. Der Default-Route, welcher in diesem Fall verwendet wird, sieht folgendermaßen aus: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); Dies kann z.B. “Home/Index” sein. Die Routes werde ich in einem späteren Artikel noch genauer vorstellen. Damit kann man sehr einfach Browser-freundliche URLs erzeugen. Wenn ich nun einen neuen Controller einfüge und diesen “ForceController” nenne, so kann ich auf die Index-Methode durch Angabe der URL /Force darauf zugreifen. Wie bereits oben dargestellt: "Index” als Action ist laut unserem Controller der Standard. Natürlich kann ich den Controller auch um viele Methoden erweitern. Wenn ich eine Action “HelloWorld” einfüge, so kann ich diese mit “/Force/HelloWorld” aufrufen. Mit der Methode “GetSomeId” übergebe ich einen Parameter an den Controller. In diesem Fall ist es die ID 5. Diese sende ich im View auch an den Browser zurück. Außerdem ist es möglich, Parameter nicht mitzusenden – in diesem Fall als Nullable. Im kommenden Post werden wir uns ansehen wie dieser Controller nun auf Quellcode-Seite aussieht.

Big>Days 2011 Bregenz Fotos

Von Rolf Mistelbacher Autor Feed 22. March 2011 10:18
In aller Eile…hier ein paar Fotos!

ASP.NET MVC 3 Tutorial #1 – Das Model View Controller (MVC) Pattern erklärt

Von Mario Meir-Huber Autor Feed 21. March 2011 22:31
Nachdem auf CodeFest noch etwas wenig Content zu Asp.NET MVC 3 vorhanden ist, habe ich mich dazu entschlossen eine neue Tutorial-Reihe zu diesem Thema zu starten. Im ersten Post möchte ich darstellen, was das MVC Pattern eigentlich genau ist, bevor wir uns auf ASP.NET MVC tatsächlich stürzen. MVC steht nicht für “Mercedes Benz Veteranen Club” sondern für “Model-View-Controller”. Das MVC Pattern wurde erstmals 1978 durch Trygve Reenskaug beschrieben. Trygve arbeitete damals an Smalltalk. Da dieses Pattern bereits 33 Jahre  alt ist, gehört es definitiv zu den Urgesteinen der Software-Patterns. Heute findet man eine Vielzahl an MVC Frameworks für die unterschiedlichen Frameworks und Plattformen. Das MVC Pattern wird auch oft in etwas abgewandter Form verwendet, wie etwa dem MVP (Model View Presenter) und dem MVVM (Model View ViewModel) Patterns. Das MVC Pattern ist heutzutage eine Standardlektüre an jeder Universität und jeder Schule an der Softwareentwicklung gelehrt wird. Wie auch immer – mit ASP.NET MVC ist nun auch ein schlagkräftiges MVC Framework für .NET vorhanden. Prinzipiell bietet das MVC-Pattern eine relativ große Flexibilität, welche von der jeweiligen Implementierung abhängt. Doch wofür stehen nun die eigentlichen Begriffe? Model Das Model stellt die Daten dar, welche für die Anwendung verwendet werden. Je nach Anwendung kann das beispielsweise eine Person, ein Produkt oder viele andere Dinge sein. In manchen Implementierungen wird die Geschäftslogik in das Model ausgelagert. Hierbei teilen sich die Meinung ob dies nun richtig oder falsch sei. Idealerweise sollte keine Logik im Model sein. View Der View dient der Anzeige der Daten und stellt dem Benutzer gewisse Interaktionsmöglichkeiten zur Verfügung. Dies können Beispielsweise Dateneingaben oder Datenmanipulationen sein. Wichtig ist jedoch, das der View auf gar keinen Fall Geschäftslogik enthalten darf. Der View ist nur eine Anzeige, nicht jedoch die Verarbeitung dieser Daten. In Asp.NET MVC gibt es einige ViewEngines, wie etwa Razor. Controller Der Controller hat die Aufgabe, Views anzuzeigen und das Modell an den View zu übergeben. Der Controller verarbeitet Benutzereingaben und leitet diese an die dafür zuständigen Layer weiter. In Asp.NET können die Controller sehr komfortabel über die URL des Browsers aufgerufen werden. Wie dies funktioniert wird in einem späteren Artikel erklärt. Asp.NET MVC hat einige tolle Möglichkeiten, welche in den kommenden Wochen in weiteren Tutorials erklärt werden. Weitere Informationen: Trygve Reenskaug über MVC: http://heim.ifi.uio.no/~trygver/2003/javazone-jaoo/MVC_pattern.pdf Josh Smith erklärt MVVM auf MSDN; http://msdn.microsoft.com/en-us/magazine/dd419663.aspx Martin Fowler über Model View Presenter: http://www.martinfowler.com/eaaDev/uiArchs.html#Model-view-presentermvp

Entwickler Wettbewerbe:

Wettbewerbe

Entwickler Events:

Developer Events

App für Windows 8, Windows Phone oder/und Azure? Diese Events zeigen Dir, wie es geht:

Mehr Information

Aktuelle Downloads

Visual Studio Downloads
 
Windows Azure Free Trial
Instagram
CodeFest.at on Facebook

Datenschutz & Cookies · Nutzungsbedingungen · Impressum · Markenzeichen
© 2013 Microsoft. Alle Rechte vorbehalten · BlogEngine.NET 2.7.0.0 · Diese Website wird für Microsoft von atwork gehostet.
powered by atwork