| Bernhard 的个人资料Bernhard Grojer - Blog照片日志列表 | 帮助 |
Bernhard Grojer - BlogTalking About .NET |
||||
|
10月27日 MKV & XBOX 360 und Windows 7 - Filme ohne (neues) encoden streamenJeder XBOX 360 Benutzer der Videos auf seiner Console (Streaming) abspíelen möchte kennt das Problem: MKV ist eines der (vielen) nicht unterstützten Formate dessen Verbreitung immer mehr zunimmt Bisher war man oft gezwungen zeitaufwendige und nervenaufreibende Arbeit zu investieren um den Film neu zu encodieren. Alternativ: -> Streaming via Windows Media Center Extender "Modus" Was muss gemacht werden: -> MKV Support unter Windows 7 Media Center hinzfügen (DivX MKV sowie AC3 Filter) - keine weiteren CodePacks notwendig (!) -> Media Center starten und die XBOX als Extender hinzufügen -> Auf der XBOX 360 MKV ansehen Das DivX MKV Projekt ist noch in Entwicklung,- aktuell ist "nur" eine Beta3 Preview verfügbar die bei mir allerdings wunderbar funktioniert. 10月8日 ADC 09 – Advanced DataBinding in WPF
9月16日 System.Reflection, Properties mit einem bestimmten Typ schreiben
Die Klasse Customer ist hierbei wie folgt definiert:
Active, und IsNew würden in diesem Fall auf true gesetzt werden. FirstName wird ausgelassen.
9月4日 Hosting – Windows Server 2008 R2Neues Zuhause gesucht für Ihre Web-Anwendungen? 8月6日 Windows 7 - RTM (MSDN / TECHNET) - JETZT!Seit ein paar Minuten gibts Windows 7 RTM in MSDN / TECHNET / CONNECT.
http://msdn.microsoft.com/ http://technet.microsoft.com/ 7月22日 Windows 7 - RTM - Wann ist es soweit?Technet und MSDN Kunden können am 6. August damit rechnen. Microsoft Partner Program (Gold) kann am 16. August downloaden. Für Endkunden bleibt der Start am 22. Okt 2009 Alles Infos gibt es hier: http://windowsteamblog.com/blogs/windows7/archive/2009/07/21/when-will-you-get-windows-7-rtm.aspx 6月23日 Microsoft Security Essentials, Codename: Morro
5月31日 Windows Azure, Visual Studio 2010, Class Library (Klassen Biblioteken)Scheinbar gibt es unter Visual Studio 2010 bzw. den Windows Azure Templates ein Problem mit zusätzlichen "Projekten" in der Windows Azure Solution.
Fügt man eine neue (leere) Class Library zum Projekt hinzu und setzt Referenzen auf das Projekt kann man das Projekt nicht mehr bauen: ![]() Error 1 The OutputPath property is not set for this project. Please check to make sure that you have specified a valid Configuration/Platform combination. Configuration='Debug' Platform='AnyCPU' C:\Windows\Microsoft.NET\Framework\v4.0.20506\Microsoft.Common.targets 582 10 ServiceState Es hat sich danach rausgestellt, dass scheinbar in der Class Library (Klassen Bibliothek) nur Build-Einstellungen für x86 verfügbar sind. Dies dürfte das eigentliche Problem auslösen: ![]() Ich habe keine Möglichkeit gefunden dies in Visual Studio 2010 direkt zu ändern. Daher habe ich (manuel) die Projekt-Datei der Class Library bearbeitet: Die Visual C# Project file (.csproj) - original (nur x86 Build): <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> <ProductVersion>10.0.20506</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{C4DA9B13-3879-4F55-8510-DE795CD4E9BE}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>ServiceStateLib</RootNamespace> <AssemblyName>ServiceStateLib</AssemblyName> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <PlatformTarget>x86</PlatformTarget> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <PlatformTarget>AnyCPU</PlatformTarget> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> ... Geändert auf (AnyCPU): <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>10.0.20506</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>C4DA9B13-3879-4F55-8510-DE795CD4E9BE}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>ServiceStateLib</RootNamespace> <AssemblyName>ServiceStateLib</AssemblyName> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> ... Danach neue einbinden und alles läuft wunderbar. Windows Azure - Visual Studio 2010Für Visual Studio 2010 gibt es seit kurzem das Windows Azure May CTP. Damit bekommt man nun auch Unterstüzung für VS 2010 und die passenden "Cloud Templates". Wahrlich hat man f. VS 2010 keine wirkliche Vorteile durchs neue Framework bei der Azure Entwicklung da .net 4.0 im Moment NICHT unterstützt ist unter Windows Azure. Da Visual Studio 2010 allerdings Multi-Targeting unterstützt können .net 3.5 SP1 Anwendung ohne Probleme erzeugt werden. 5月26日 MKV und Windows 7, XBOX 360Nunja Windows 7 kommt auf uns zu. Filme finden sich öfters in einem neuen Standard. Doch wie passt beides Zusammen? Naja leider nicht unterstützt (und scheinbar hat Microsoft in dem Bereich auch nichts vor) Allerdings bietet Windows7 im MediaCenter gute Erweiterungsmöglichkeiten in dem Bereich und mithilfe von einem Plugin nachbessern: Infos gibts hier: http://labs.divx.com/mkvwin7preview 5月18日 Visual Studio 2010 - Beta1 (via MSDN)Visual Studio 2010 Beta 1 soll ab heute in via MSDN verfügbar sein! Im Moment ist noch nichts online (Stichwort Zeitverschiebung) 5月15日 Silverlight - dotnet Cologne 2009 - DatenaustauschAnbei die Samples von meiner Session auf der dotnet Cologne 2009 zum Thema "Datenaustausch mit dem Server". Inhalt: Databinding in Silverlight an ein Webservice (ASMX), Webservice (WCF), REST (WCF) sowie ein Beispiel mit CRUD und den ADO.net DataServices. Download gibt es hier. 4月9日 Silverlight: DataBinding zu WCF Service - Teil 2/2
Dictionary<Customer, string> _ChangedObjects = new Dictionary<Customer, string>();
public void RegisterChangeTracking(Customer c)
{
c.PropertyChanged += (sender, e) =>
{
var cus = sender as Customer;
if (_ChangedObjects.ContainsKey(cus))
_ChangedObjects[cus] += ";" + e.PropertyName;
else
_ChangedObjects.Add(cus, e.PropertyName);
};
}Bevor nun ein Objekt in die Observable<T> Liste wandert (und somit im UI dargestellt wird) wird es mithilfe von RegisterChangeTracking T o) registriert. private void LoadCustomers()
{
CustomerServiceClient client = new CustomerServiceClient();
client.GetCustomersCompleted += (sender, e) =>
{
foreach (var c in e.Result)
{
_Customers.Add(c);
RegisterChangeTracking(c);
}
};
client.GetCustomersAsync();
}Nun müssen wir nur noch das Dictionary mit den geänderten Daten dem WCF Service übergeben. private void SaveCustomers()
{
CustomerServiceClient client = new CustomerServiceClient();
client.SaveCustomersCompleted += (sender, e) =>
{
var b = e.Result;
};
client.SaveCustomersAsync(_ChangedObjects);
}
Die Methode SaveCustomer wird nun aus der Silverlight-Anwendung aufgerufen (ein Button im UI triggert folgenden Code): private CustomerDataSource CustomerDataSource
{
get
{
return this.Resources["Customers"] as CustomerDataSource;
}
}
private void ButtonSave_Click(object sender, RoutedEventArgs e)
{
CustomerDataSource.Save();
}
public bool SaveCustomers(Dictionary<Customer, string> Customers)
{
using (var DB = new NorthwindDataContext())
{
var query = from c in DB.Customers
where Customers.Keys.Select(cus => cus.CustomerID).Contains(c.CustomerID)
select c;
var lst = query.ToList();
Type t = typeof(Customer);
foreach (var kv in Customers)
{
var oldCustomer = kv.Key;
var newCustomer = lst.Single(cus => cus.CustomerID == oldCustomer.CustomerID);
foreach (var s in kv.Value.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries))
{
var propInfo = t.GetProperty(s);
var v = propInfo.GetValue(oldCustomer, null);
propInfo.SetValue(newCustomer, v,null);
}
}
DB.SubmitChanges();
}
return true;
}Das fertige Beispiel (selber Link wie im Teil 1 d. Blog-Serie) steht zum Download bereit: SilverlightConsumeWCF 08042009.zip 4月8日 Silverlight: DataBinding zu WCF Service - Teil 1/2
[ServiceContract]
public interface ICustomerService
{
[OperationContract]
List<Customer> GetCustomers();
[OperationContract]
bool SaveCustomers(Dictionary<Customer, string> Customers);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CustomerService : ICustomerService
{
#region ICustomerService Members
public List<Customer> GetCustomers()
{
using (var DB = new NorthwindDataContext())
{
var query = from c in DB.Customers
select c;
return query.ToList();
}
}
public bool SaveCustomers(Dictionary<Customer, string> Customers)
{
TODO: Implement Save
return true;
}
#endregion
}Damit dieses Service verfügbar ist muss noch die passende web.config (Service Configuration Editor) erstellt werden (passende .svc Datei nicht vergessen bei WCF Service unter WAS/IIS) Damit die Daten aber tatsächlich nachgeladen werden können brauchen wir zuerst einen Proxy den wir über “Add Service Reference” erzeugen lassen. (Meta-Daten müssen vom Service aktiviert/bereitgestellt werden). Sobald der CustomerServiceCleint (generierter Code) nun verfügbar ist können wir eine passende Klasse erzeugen und das Service benutzen. public class CustomerDataSource
{
public CustomerDataSource()
{
LoadCustomers();
}
private void LoadCustomers()
{
CustomerServiceClient client = new CustomerServiceClient();
client.GetCustomersCompleted += (sender, e) =>
{
foreach (var c in e.Result)
{
_Customers.Add(c);
}
};
client.GetCustomersAsync();
}
ObservableCollection<Customer> _Customers = new ObservableCollection<Customer>();
public ObservableCollection<Customer> Customers
{
get {
return _Customers;
}
}
}
<UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightConsumeWCF.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SilverlightConsumeWCF">
<UserControl.Resources>
<local:CustomerDataSource x:Key="Customers" />
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<data:DataGrid ItemsSource="{Binding Path=Customers, Source={StaticResource Customers}}">
</data:DataGrid>
</Grid>
</UserControl>Download: SilverlightConsumeWCF 08042009.zip Im Teil 2 wird noch editieren der Customer-Objekte ermöglicht. Das Service stellt die entsprechende Methodensignatur bereits bereit. 4月7日 Silverlight 3: NetworkChange (u. DataBinding mit INotifyPropertyChanged)In Silverlight 3 gibt es nun eine einfache Möglichkeit um den aktuellen Netzwerkstatus zu erkennen. DataBinding: public class NetworkState : INotifyPropertyChanged
{
public NetworkState()
{
NetworkChange.NetworkAddressChanged +=
(sender, args) => SendNotifyPropertyChanged("IsOnline");
}
public void SendNotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public bool IsOnline
{
get
{
return NetworkInterface.GetIsNetworkAvailable(); ;
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}UserControl (XAML): <UserControl x:Class="SilverlightNetworkState.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SilverlightNetworkState"
Width="400" Height="300">
<UserControl.Resources>
<local:NetworkState x:Key="State" />
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<CheckBox Margin="10" IsChecked="{Binding Path=IsOnline, Source={StaticResource State}}" Content="Online" />
</Grid>
</UserControl>Download: SilverlightNetworkState 07042009.zip 3月3日 HYPER-V Managment unter Windows 7
2月12日 Visual Studio 2008, WPF, NVidia Treiber = (Designer)Problem
ObjectDataSource in ASP.net (Keine Einträge in der “Auswahlliste” mit Klassen f. Datenquelle)
|
||||
|
|