Hallo Chazon
Was hast du diesbezüglich schon probiert ? Wo genau liegt das Problem ?
Mir würde spontan folgendes einfallen :
=> Timer welcher im Tick_Event die Transparentz des Bildes erhöht
Beste Grüsse
Diräkt
Hallo ThoHei
Struktur:
>Solution
->>Projekt 1
->>Projekt 2
Wenn du für ein "Gesamtprojekt" mehrere Solutions nutzt, würde ich ein Ordner z.B "LIB" anlegen und der Release Output der Projekte von Solution 1 darauf festlegen.
Von Solution 2 kannst die Assemblys dann vom LIB Ordner referenzieren.
Beste Grüsse
Diräkt
Hallo herrfuchs
Genau versteh ich Dein Vorhaben nicht, aber schau Dir mal lock
an.
Beste Grüsse
Diräkt
Hallo Stony17
Das geht mit allen Controls. Es gibt da Eingenschaften wie Visible oder Enable die sich dafür eignen könnten.
Theoretisch kannst du auch ein Plugin System erstellen um dein Ziel zu erreichen.
Beste Grüsse
Diräkt
Hallo Stony17
Genereller gesagt, brauchst du nicht einmal ein Login, sondern nur eine Konfiguration.
Du kannst ein config.xml erstellen und darin alles gewünschte definieren.
Beim Start deiner Applikation wird dieses eingelesen und als Einstellungen verwendet.
Wenn das Bedürfniss da ist, kannst für das config.xml ja sogar noch ein GUI machen um es benutzerfreundlich anpassen zu können.....
(z.B. "Screenshot" der Applikation, wo man sich zusammenklicken kann was man gerne möchte..)
Beste Grüsse
Diräkt
Hallo DatMilu
Ganz verstehe ich nicht was du möchtest...
Dein gewünschtes Resultat erhältst du mit:
var result = php.Replace("function","void");
Wenn du ein Converter schreiben willst, brauchst natürlich noch ein paar Zeilen mehr 😉
( Auch wäre dann mein Statement nicht korrekt, weil wenn die function ein return benutzt ist es nicht mehr void ... )
Beste Grüsse
Diräkt
Hallo ill_son
Du kannst die Liste einfach Filtern nach dem Text. Wird etwas nicht vorhandenes eingegeben, ist die Auswahl in der ComboBox leer.
Beste Grüsse
Diräkt
Hallo GeneralKampfKeks
Ehrlich gesagt würde ich den Kontostand nicht ausgerechnet abspeichern, ausser du hast Millionen von Datensätzen.
Vorgeschlagene Möglichkeiten:
1.
Tabelle Einnahmen, Tabelle Ausgaben.
2.
Boolean Flag ob Einnahme oder Ausgabe....
3.
Ausgaben mit einem (-) versehen.
Du hättest dann den Vorteil, den Betrag dynamisch auszurechnen :
Du kannst dann sowas machen wie Sum(Einnahmen)-Sum(Ausgaben).
Beste Grüsse
Diräkt
Hallo
Ein auf asp basierendes CMS wäre z.b. DOT NET NUKE !
Grundsätzlich empfehlenswert, aber wie ABT schon gesagt hat, die PHP Community ist was CMS betrifft einiges grösser....
Beste Grüsse
Diräkt
Zitat von Diräkt:
Du kannst deine BL Methoden über ein Web-Service "freigeben".
Somit können Web+Console Anwendung die Selbe Logik teilen. ( Wartung etc... )Könntest du das villeicht etwas genauer ausführen?
Du wirst ja eine BL haben. Um keinen Code zweimal zu schreiben ( never repeat your self ), kannst du ein WebService erstellen (WCF) und die relevanten BL Methoden zur Verfügung stellen :
public List<T> GetData()
{
var bl = new Bl();
return bl.GetData();
}
Das hatte ich mir auch schon als "Notlösung" überlegt, wenn die beiden Anwendungsteile (Service + Web) sonst nicht miteinander kommunizieren könnten. Da die Hardware auf der das Ganze läuft/laufen soll etwas schwachbrüstig ist wollte ich eine DB wenn möglich umgehen.
Wenn du die alten Daten (Hisotry) nicht brauchst, sondern nur das Aktuelle, ist eine DB der falsche Ansatz, richtig.
Du kannst von deinem WebService oder von der Web-Applikation oder von beidem aus, auch auf dein Windows Dienst zugreifen, damit sollte dein Vorhaben gut umsetzbar sein.
Stichwörter dafür wären z.B. :
.Net Remoting
Service Controller
Beste Grüsse
Diräkt
Hallo Phatdaro
Du kannst deine BL Methoden über ein Web-Service "freigeben".
Somit können Web+Console Anwendung die Selbe Logik teilen. ( Wartung etc... )
- Über die Website möchte ich die Anwendung starten und stoppen können
Hat jeder User eine Instanz der Anwendung ?! Wenn ja sollte die Architektur überarbeitet werden 😃
Grundsätzlich ist das Starten und Stoppen kein Problem, sinnvoll wäre dann z.B. ein Windows Service..
Die bestehende Anwendung gibt kontinuierlich Rückmeldung, diese würde ich gerne auf der Website in einer Textbox anzeigen.
Die Daten kannst du in eine DB speichern. Und für die WebSite liest einfach wieder aus und stellt wie gewünscht dar...
Die bestehende Anwendung soll, auch wenn die Website durch den Browser(Benutzer) geschlossen wird weiterlaufen, öffnet der Benutzer die Website wieder soll er die aktuellen Stand sehen
Siehe Windows-Dienst...
- Kann ich das prinzipiell in einer WebAnwendung hinbekommen?
Es gibt eigentlich fast keine Grenzen, was man mit WebAnwendungen hinbekommt, also ja.
Beste Grüsse
Diräkt
Hallo CoderboyPB
Wenn man den ObjectContext verwendet heisst es :
Context.AddObject();
wenn du den DbContext verwendest hesist es :
Context.Person.Add(...);
Beste Grüsse
Diräkt
Hallo Abt
Danke werde ich testen! Gerne würde ich noch Deine Frage beantworten und dazu Deine (oder Eure) Meinung wissen.
Ich habe mir überlegt anstatt den Timeout auf z.B 8 Stunden zu stellen, lieber alle 30 Minuten ein Post ( sieher erster Thread ) abzusetzen, um die Applikation aktiv zu halten.
=> Ja , das ist Overhead und Dein Einwand ist berechtigt
ABER:
Mein Control würde also erlauben :
=> Timeout auf 1 Stunde
==> User loggt sich ein
==> Alle z.B. 30 Minuten ein Post => session refresh ( damit auch 8 Stunden gehen .... )
==> User schliesst Browser (ohne sich abzumelden)
==> Session bleibt max 1 Stunde in den Ram des Servers
Ist mein Verständniss falsch ? Oder gibts dafür ne bessere Lösung ?
[OFF]
Ich persönlich halte es nicht für sinnvoll eine Session solange am leben lassen zu wollen. Das "neu" Anmelden dauert ja 2-3 Sekunden.... Nur was Entwickler denken interessiert ja niemand 😃
[/OFF]
Beste Grüsse
Diräkt
Hallo Abt
Danke für Deine Antwort.
Es gibt doch 2 Einstellungen nicht ?
=> APP - Pool
=> (screenshot => ist das diese Einstellung)?
=> Web.Config
=> <sessionState timeout="60" />
Mit diesen beiden Einstellungen müsste die WebApp also nach einloggen, 60 minuten aktiv bleiben ?
Beste Grüsse
Diräkt
Hallo Leute 😃
Ich habe ein Control, welches alle X Sekunden ein Post absetzt um die Session zu verlängern. Das geschieht per Javascript, etwa so :
$.ajax({
timeout: options.AJAXTimeout,
url: options.keepAliveURL,
error: function () {
self.failedRequests--;
},
success: function (response) {
if ($.trim(response) !== options.serverResponseEquals) {
self.failedRequests--;
}
},
complete: function () {
if (recurse) {
self._startTimer();
}
}
});
Die Keep-Alive Seite sieht so aus :
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
OK
</form>
</body>
</html>
protected void Page_Load(object sender, EventArgs e)
{
Session["KeepSessionAlive"] = DateTime.Now;
}
Auch wenn der Post abgesetzt wird, wird dadurch die Session-Zeit nicht wieder zurück-gesetzt.
Sprich:
=> Wenn im IIS 20 minuten konfiguriert sind, flieg ich nach 20 minuten raus, trotz des Controls, warum, was mach ich falsch ?
Beste Grüsse
Diräkt
...
es gibt noch so schöne Methoden wie string.Format und Path.Combine
...
Beste Grüsse
Diräkt
Hallo Skywalker
Dies ist ggf. nicht gewünschte Antwort, jedoch eine mögliche Lösung 😃
Ich würde ein Ordner im FTP Pfad erstellen. Genau genommen nicht ein "normalen Ordner" sondern ein hard Link auf dein F:\bla Verzeichniss.
Beste Grüsse
Diräkt
Hallo Asimon
generell will ich damit eine "wenn false da speichern" Abfrage umsetzen.
irgendwas neues = new irgendwas(false);
class irgendwas
{
public bool Flag{get;set;}
public irgendwas (boolean flag)
{
Flag = flag
doWork();
}
private void doWork()
{
if(Flag)
{
}else
{
}
}
}
So könnte das etwa aussehen...
Beste Grüsse
Diräkt
@Cat
Und dies ist "witzigerweise" die Standard-Einstellung 😃
Hallo Abt
Perfekt! Danke für den Tipp !
Null Value ignore:
string ignored = JsonConvert.SerializeObject(movie,Formatting.Indented,new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
"Custom Mapping"
[JsonProperty("name")]
public string Name { get; set; }
Scheint als würde alles abgedeckt werden !!!
Danke !
Beste Grüsse
Diräkt
Danke Abt für Deine Antwort.
Letzte Nachfrage :
=> Gibts eine Möglichkeit die Kürzung per Attribute zu lösen ?
(damit es dann automatisch wieder gemappt wird)
sowas in dieser Art:
public class X
{
[Json-Attribute:A]
public string Abcdefgh{get;set;}
}
Beste Grüsse
Diräkt
Hallo Abt
Danke für Deine Antwort.
Ich habe den Overhead wirklich nur im Response. Der Rest wird ja nur einmal geladen. Ob es hier ein paar bytes mehr oder weniger sind, ist nicht match-entscheidend.
Wenn die spezifische Seite jedoch 24/7 läuft, und alle 3 Sekunden ein Update erfährt, spielen die paar bytes (des Respones) eine entscheidende Rolle...
Es geht darum, das sehr viele Werte updated werden müssen. Als Veranschaulichung, wenn ich 4 Controls auf der Page habe (in real sind es im Schnitt etwa 20), sieht die Response etwa so aus :
{"d":[{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":1,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"12","AlarmValue":"11","AvailableValue":"11","OccupiedValue":"16","ProductionValue":"14","OPercent":1,"CPercent":10,"Signal":"efefef","DockPosition":"","ClientInformation":{"OeeValueClientId":"1_C_ctl01_lblOPct","CapacityValueClientId":"1_C_ctl01_lblCpct","TitleTextClientId":"1_C_ctl01_lblTitle","MembersValueClientId":"1_C_ctl01_lblMembersValue","AvailableValueClientId":"1_C_ctl01_lblAvailableValue","OccupiedValueClientId":"1_C_ctl01_lblOccupiedValue","SignalColorClientId":"1_C_ctl01_signal","GaugeOeeClientId":"1_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"1_C_ctl01_RadLinearGauge1","ProductionValueClientId":"1_C_ctl01_lblProductiveValue","WidgetClientId":"1_C_ctl00"}},{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":2,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"11","AlarmValue":"112","AvailableValue":"113","OccupiedValue":"614","ProductionValue":"915","OPercent":1,"CPercent":6,"Signal":"dedede","DockPosition":"","ClientInformation":{"OeeValueClientId":"2_C_ctl01_lblOPct","CapacityValueClientId":"2_C_ctl01_lblCpct","TitleTextClientId":"2_C_ctl01_lblTitle","MembersValueClientId":"2_C_ctl01_lblMembersValue","AvailableValueClientId":"2_C_ctl01_lblAvailableValue","OccupiedValueClientId":"2_C_ctl01_lblOccupiedValue","SignalColorClientId":"2_C_ctl01_signal","GaugeOeeClientId":"2_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"2_C_ctl01_RadLinearGauge1","ProductionValueClientId":"2_C_ctl01_lblProductiveValue","WidgetClientId":"2_C_ctl00"}},{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":3,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"172","AlarmValue":"171","AvailableValue":"100","OccupiedValue":"176","ProductionValue":"174","OPercent":90,"CPercent":2,"Signal":"ababab","DockPosition":"","ClientInformation":{"OeeValueClientId":"3_C_ctl01_lblOPct","CapacityValueClientId":"3_C_ctl01_lblCpct","TitleTextClientId":"3_C_ctl01_lblTitle","MembersValueClientId":"3_C_ctl01_lblMembersValue","AvailableValueClientId":"3_C_ctl01_lblAvailableValue","OccupiedValueClientId":"3_C_ctl01_lblOccupiedValue","SignalColorClientId":"3_C_ctl01_signal","GaugeOeeClientId":"3_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"3_C_ctl01_RadLinearGauge1","ProductionValueClientId":"3_C_ctl01_lblProductiveValue","WidgetClientId":"3_C_ctl00"}},{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":4,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"1112","AlarmValue":"1111","AvailableValue":"1101","OccupiedValue":"1161","ProductionValue":"1141","OPercent":51,"CPercent":49,"Signal":"fff","DockPosition":"","ClientInformation":{"OeeValueClientId":"4_C_ctl01_lblOPct","CapacityValueClientId":"4_C_ctl01_lblCpct","TitleTextClientId":"4_C_ctl01_lblTitle","MembersValueClientId":"4_C_ctl01_lblMembersValue","AvailableValueClientId":"4_C_ctl01_lblAvailableValue","OccupiedValueClientId":"4_C_ctl01_lblOccupiedValue","SignalColorClientId":"4_C_ctl01_signal","GaugeOeeClientId":"4_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"4_C_ctl01_RadLinearGauge1","ProductionValueClientId":"4_C_ctl01_lblProductiveValue","WidgetClientId":"4_C_ctl00"}}]}
Daher die Frage, wie ich dies optimiere.
=> das Aktivieren der dynamischen Komprimierung vom IIS.
Ok werde ich gleich testen ! Danke !
Dann blieben noch die Fragen :
=> Kann ich ein Wert "NULL" setzen und dieser wird dann GAR NICHT in JSON serialisiert?
=> Kann ich die VariablenNamen irgendwie "einfach" drastisch kürzen, (nur für die Übertragung)
Beste Grüsse
Diräkt
Hallo Abt
Danke für Deine Antwort.
Ich bekomme die Daten als JSON, das Problem aber ist dabei auch folgendes:
TitleTextValue = "1";
TitleTextValue = null;
{TitleTextValue:1;}
{TitleTextValue:;}
Wie man sieht benötigt der Variablen-Namen einiges mehr an bytes als der Wert. Selbst wenn der Wert nicht vorhanden ist, wird das Property mitgegeben.
Eigentlich geht es mir ja nur darum, diesen "overhead" irgendwie einsparen zu können.
Gibts dafür eine Lösung ?
Beste Grüsse
Diräkt
Hallo
Verwendete Technologien:
=> ASP WebForms
=> Jquery
=> EF
=> Ajax
Scenario:
Ich habe UserControls, diese werden zuerst serverseitig erstellt und gerendert. Danach werden diese alle 3 Sekunden updated, etwa so :
window.setInterval(update, 10000);
function update()
{
PageMethods.GetList(onsuccess);
function onsuccess(data)
{
$('#' + data[i].ClientInformation.TitleTextClientId).text(data[i].TitleText);
}
}
Das funktioniert auch wunderbar nur :
=>1. Wie kann ich nur die veränderten Eigenschaften updaten, um den Post zu minimieren ?
=>2. Gibt es eine sinvollere Möglichkeit also meine Überlegung zu Punkt 1 ?
( 1.
Überlegung :
=> Ich cache das Entity und gebe dieses dem BL mit. Dieser vergleicht auf "veränderte Properties" und gibt nur dieses zurück, die andern mit dem Wert NULL. ( nicht veränderten )
=> Problem bei der Überlegung:
Die Daten gehen dennoch an den Client ( {TitleText=null;....}
Wie kann ich den Traffic minimieren ?
)
( 2.
Muss ich jetzt wirklich eine Art eigenes Protokoll (oder Parser) schreiben, um den Traffic zu minimieren ? Das ich im Request z.B. erhalte : "T="Title", und ich dann weiss T = TitleText ?!
)
Herzlichen Dank für Anregungen und Ideen
Beste Grüsse
Diräkt
Hallo ill_son
Hatte mal eine ähnliche Anforderung. Nicht ganz konventionell, aber hab sie so gelöst :
=> RadioButton so überschreiben, dass z.B ein Doppelklick oder ein weiteres selektieren eines bereits aktiven RadioButton's, zum de-selektieren führt 😃
Beste Grüsse
Diräkt
Hallo Comand
Mittlerweile sind es über 1000 Filme
Ich verwende das im Zusammenhang mit einem DataGridView
Ich bezweifle das ein Mensch mehr als (sind wir grosszügig) 100 Datensätze miteinander verarbeiten kann. Daher wäre da wohl Paging angebracht mit SKIP und TAKE. Deine 2 Sekunden werden dann wohl zu 2 milisekunden 😉
Beste Grüsse
Diräkt
Hallo neo
Der Proxy hat doch eine IP ..?!
request.Proxy = New WebProxy(proxyAddress) { UseDefaultCredentials = true };
Beste Grüsse
Diräkt
Hallo Asimon
Ich zumindest weiss nicht wie du es perfomanter gestalten könntest.
Empfehlen würde ich bei diesem Daten-Volumen eine Datenbank (z.B Sql Express).
Der Vorteil wäre natürlich das du dann die Möglichkeit hast nur die benötigten Daten zu selektieren, und ggf. gleich Aggregations-Funktion dem SQL Server überlassen kannst.
Beste Grüsse
Diräkt
OFFTOPIC
das lässt sich nämlich nur schwierig nachträglich installieren
## Habs schon etwa 7-10 mal nachträglicher installiert. Jedes mal ein Theater ... 😃
Beste Grüsse
Diräkt
Hallo CoderboyPB
Link : MS SQL EXPRESS
DEU\x64\SQLEXPR_x64_DEU.exe => 64 bit
DEU\x86\SQLEXPR_x86_DEU.exe => 32 bit
Die weiteren Angebote sind :
=> Advanced (Reporting Servies ...)
=> SQL Management Studio ....
Beste Grüsse
Diräkt
Hallo Poldi45354
Herzliche Willkommen im Forum.
Die Listbox hat ein Event Selected_IndexChanged(object sender, EventArgs e).
Abonier dieses Event und reagiere entsprechend darauf.
Beste Grüsse
Diräkt
Hallo Da_Flo
Du kannst im Grid DATAKEYNAMES definieren. Auf dieses kannst du zugreifen, etwa so :
protected void grid1_ItemCommand(object source, DataGridCommandEventArgs e)
{
var id=int.Parse(((GridDataItem)e.Item).GetDataKeyValue("AuftragID").ToString();
}
(Natürlich solltest du TryParse verwenden etc...)
Beste Grüsse
Diräkt
Hallo Schaffi
Das könnte etwa so aussehen:
var query = DeineDaten
.GroupBy(x => x.Id,
(k, g) => g.Aggregate((a, x) => (x.TimeStamp > a.TimeStamp ) ? x : a));
Es gibt ein cooles Tool namens LINQ PAD, schau es Dir doch mal an, damit kann man spielend zum Ergebniss finden 😉
Beste Grüsse
Diräkt
Edit :
ggf. einfacher wäre (ohne Aggregate):
var result= yourData.GroupBy(x => x.Id)
.Select(y => y.OrderByDescending(z => z.TimeStamp).First()).ToList();
Hallo Tachyon176
Überlicherweise sollte sie geschlossen werden, wenn sie nicht mehr verwendet wird.
(Open, Commands, Close)
Wenn du durch eine Logik die Verbindung in sehr kurzer Zeit sehr oft öffnest und wieder schliesst, sollte es selbstverständlich sein, die Verbindung etwas länger geöffnet zu haben.... (anstatt 100 Verbindungen in einer Sekunde aufzubauen 😃 )
Beste Grüsse
Diräkt
Hallo Rr.Robot
byte[] array = new byte[] { };
var result = array.ToList();
Funktioniert....
Wenn du erst ein Object daraus machst funktioniert es auch :
byte[] array = new byte[] { };
object arrayAsObject = array;
var result = ((byte[])arrayAsObject).ToList();
Beste Grüsse
Diräkt
Hallo Rr.Roboto
Herzliche Willkommen im Forum.
Ein Array hat folgende Methode "ToList()", damit kannst du ein Array in eine Liste umwandeln. (Eine List hat auch "ToArray()" ...)
Du kannst mittels "override ToString()" die Methode überschreiben und selbst definieren was zurück kommen soll. Wenn object == Byte dann ist eine explizites Casten nicht notwendig.
Alle nicht typisierten Collections soll man nicht mehr verwenden !
Beste Grüsse
Diräkt
Hallo jogibear9988
Meinst du ein Property-Grid für WPF?
Beste Grüsse
Diräkt
Hallo Werdy
Herzlich Willkommen im Forum.
Der Kunde sollte auf dem GUI die Möglichkeit haben dass er ein Mitarbeiter wählt und dann sollten die oberen Comboboxen vom System befüllt werden.
Laut Deiner Beschreibung hat jeder Mitarbeiter nur ein Team, dieses gehört jeweils zu einer Abteilung welche einer Domäne zugeordnet ist. Somit ist ja immer eindeutig welcher Wert drinn stehen muss.
( Filtern )
Wenn der Kunde die Combobox Abteilung wählt sollten die Domäne selektiert werden und im Team natürlich nur noch die möglichen Werte angezeigt werden ebenfalls für die Mitarbeiter.
Ein ComboBox Item hat ja "Text" und "Value". Als Value nimmst du die ID. Somit weisst du genau welche Domäne selektiert sein muss (combobox.Items.First(c=>c.Value==id))...
Nach unten hast du ja N Möglichkeiten, somit kannst du einfach wieder Filtern.
MSDN - DataSet Filtern und Sortieren
Beispiele von Galileo Computing
Beste Grüsse
Diräkt
Edit:
Schau Dir das mal an : Cascading ComboBox
Hallo lazy
Versuch es mal mit:
e.SuppressKeyPress = true
Beste Grüsse
Diräkt
Hallo Abt
Ich weiss du beziehst es auf Windows 8 und nicht auf Windows Phones. Aber ...
Hat man also eine kleine aber feine Idee, die meinetwegen nur 99c kostet aber dafür ~10 Millionen Anweder erreicht - wo gibt es schon solche Chancen?
Genau das dachte ich mir auch. Habe etwa 5-6 Windows Phone Apps. Leider keine so weltbekannte App und keine 100 Mio. Downloads, aber als zusätzliche Einnahme-Quelle wirklich interessant.
Habe mittlerweile knapp 35k Apps verkauft (WP 7) und wenn man bedenkt, dass mittlefristig der Markt für Windows 8 Apps einiges grösser sein wird (fast jeder hat ein PC, aber nur ganz wenige ein Windows Phone), sehe ich da grosse Chancen.
Kurzfristig gesehen haben die Leute noch zuviel Angst vor Windows 8. Dies weil es auf den ersten Blick ein bisschen anderst aussieht. ( Was der Bauer nicht kennt, das frisst er nicht ).
Dies gibt uns Entwicklern aber die Gelegenheit, unsere Windows Store Apps gemütlich in der Freizeit zu entwickeln.
Beste Grüsse
Diräkt
Hallo mbk_chilli
Es ist zwar nicht in c# aber du kannst es via c# aufrufen 😉
Beste Grüsse
Diräkt
Hallo Starki
Herzlich Willkommen im Forum 😃
Wenn es nur um das Testen geht:
Online Regex Testing
Geniales Regex "Labor"
Wenn du nun wirklich ein "Generator" willst, schau Dir mal das an :
Rex is a simple command line tool that takes a .NET regex pattern or several regex patterns and generates matching string(s) for them....
Beste Grüsse
Diräkt
Hallo Knoden
MySqlConnection connection = new MySqlConnection();
command.CommandText = "SELECT * FROM
zeiten
WHEREzeiten_fk_personal_id
= " + txtEmployeeId.Text;
Desweitern findest du in diesem Forum dutzende Beispiele. Gerne darfst du die Ergebnisse Deiner Suche hier posten.
ich suche schon seit ein paar Stunden
Ich garantiere Dir auch, das du schnell fündig wirst. ( Suche benutzen )
Beste Grüsse
Diräkt
Hallo Crank
Das sollte etwa so aussehen:
class DemoViewModel : BasicViewModel
{
private string _name;
public string Name
{
get
{
return _name;
}
set
{
if(_name!=value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
}
Es heisst ja "OnPropertyChanged", somit solltest du dies auch nur feuern, wenn dem so ist...
Wenn du nun dem Property Name ein Wert zuweist und die selbe Instanz weiterhin nutzt, ist der Wert sicherlich vorhanden.
Beste Grüsse
Diräkt
Hallo Kom2006
Du erreichst dies indem du alle Eigenschaften von B auf XML Ignore setzt. (Attribut hinzufügen)
Somit sieht dann B gleich aus wie A wenn es serialisiert wird.
Damit die Serialisierung überhaupt klaptt (Vererbung etc.) musst du aber entweder im Serialize-Konstruktor den Typ mitgeben oder die Klasse mit XmlInclude versehen.
Beste Grüsse
Diräkt
Hallo Kom2006
Also Dein Problem ist also das Serializen. Selbst wenn du eine Kaffeemaschine in ein Elektrogerät castest, bleibt es eine Kaffeemaschine (nur halt generalisiert).
Dem Serializer musst du "erklären" das Elektrogerät auch serialisiert werden soll, dafür gibts 2 Varianten.
1.
[Serializable()]
[XmlInclude(typeof(KaffeeMaschine))]
public class Elektrogerät
Die Serialize Methode hat eine Überladung wo du solche Typen als Array mitgeben kannst.
Wenn du Eigenschaften ausblenden willst, kannst du dies so erreichen:
[XmlIgnore]
public bool MaschineHatStrom{get;set;}
(Um dein Ziel zu erreichen also :
Beste Grüsse
Diräkt
Edit: Bedürfniss für Exclude entdeckt und hinzugefügt
Hallo FZelle
Danke für die Antwort.
Es geht darum das der Benutzer ein DOCX hochladen kann als Vorlage.
Ich erweitere die Vorlage dann, ersetze die Bookmarks mit Werten aus Datenbank und muss dies auch als PDF anbieten können.
Warum docx ?
=> Jeder Benutzer kann ein Word Dokument bearbeiten.
Beste Grüsse
Diräkt
Hallo gfoidl
Danke für Deine Antwort !!
Wie erhalte ich das XSLT vom Word Dokument ?
Wenn die meisten umwandler schon rechte Probleme hatten mit Tabellen, Grafiken, Tabulatoren, Einzügen ...
Meinst du über all diese Konvertierungen erhalte ich dann ein sauberes Resultat ?
Beste Grüsse
Diräkt
Hallo gfoidl
Meine Anforderung ist es aus einer WebApplikation ein byte[] Docx zu einem byte[] im PDF Format zu konvertieren.
Du denkst der Einsatz von einem PDF Drucker würde funktionieren für meine Anforderung? Wenn ja, kennst du gleich ein betimmten ? ( Kann ich das Ergebniss als byte[] bekommen, oder in einem stream ? )
Den Einsatz von Word-Automation (welcher auch von MS nicht empfohlen wird), halte ich für sehr problematisch und auch will ich keine Abhängigkeit zu MS Office.
Hallo FZelle
Danke für die Erklärung. Die Doku scheint so umfassend zu sein, das es "niemand" wirklich bewältigen kann, und die andern verlangen dann gleich 3'000-10'000 was für ein kleines Projekt doch recht krass wäre 😉
Beste Grüsse
Diräkt