Hi Diräkt,
super danke schön. Auf anhieb hat es zwar nicht funktioniert aber vllt. bekomme ich es mit ein paar Modifikationen unter Windows 8 zum laufen 😉.
Vg
mbk_chilli
Hi@all,
dies ist zwar ein etwas älterer beitrag 😉 ... aber ich wollte dennoch mal nach fragen ob vllt. jemand für dieses Problem bereits eine Lösung gefunden hat.
Vg
mbk_chilli
Ist nur die Frage wo ich diese Schnittstelle implementiere.
Das Datenmodel ist ein ADO.NET Entity Data Model.
Als Rückgabe bei Linq - bzw. direkt bei jeder Arbeit damit - verwende ich auch direkt die Datenbankobjekt aus dem namespace DataBase!
Dadurch erübrigt sich das Anlegen gesonderter Datenobjekte welche ansich nur die Gleichen Properties besitzen wie die Datenobjekte in/ aus der Datenbank.
Ich denke aber, dass ich die Schnittstelle bei den Objekten verwende welche ich durch meine ModelBinder erzeuge. Sobald Usereingaben verarbeitet werden habe ich sowieso noch eigene Objekte angelegt um die Eingaben nicht auf die EntityObjects des Data Models "los zu lassen" bevor diese validiert wurden!
Die Validierung der eigenlichen Datenbankobjekte übernimmt ja dann ADO.NET nachdem ich die Usereingaben selber validierte.
Also danke für den Tipp ich werden die Schnittstelle in meinen eigenen Objekten implementieren.
PS: Jo das stimmt, dass eigentliche Problem ist gelöst! Aber es schaded ja nicht zukünftige zu verhindern!
Also in der nicht staischen Lösung (vorletzte Lösung):
Wurde je initialisierte ModelAccess Klasse ein Context erstellt.
Welches dann zu Fehlern führte.
Letzte Lösung:
Daher die statische Lösung welche dann zu anderen Problemen führte.
Die aktuelle Lösung:
Basis Controller stellt den Kontext für die ModelAccess Objekt zur Verfügung. Somit pro Request ein Kontext.
Ich habe nach der Implementierung Deiner Lösung alle Problembereiche gecheckt und es scheint sehr gut zu funktionieren.
Für das Modify (UPDATE / DELTE) verwende ich die Entity Objects welche ich bereits besitze (vor den Modify Aktionen hole ich diese aus der Datenbank weil noch einiges Überprüft werden muss) und ändere die Properties bzw. "markiere den EntityState als Deleted" und Speichere dann über die SaveChanges() Methode.
Hallo Abt,
vielen Dank schon einmal für Deine Antwort.
Bei mir ist der aktuelle Aufbau wie folgt:
BaseController : Controller für jeden Bereich (Benutzer und Admin)
Eigentlicher "x"Controller : BaseController mit den MVC Actions.
Den Datenzugriff habe ich ausserhalb der Controller gehandelt.
namespace ModelAccess.
BaseModelAccess welcher die Datenbank Connection zur Verfügung stellt.
Dann unterteilt in ModelAccess (quasi SELECT), ModelModify (quasi UPDATE / DELETE) und ModelTasks (quasi der Rest oder wenn boolsche Werte gewünscht sind wie z.B. bei "Ist die CD / DVD bereits vorhanden" etc.)
Stand: Datenbankzugriff nicht statisch
Das Problem trat nun auf, dass ich ein Object löschen wollte und mich in ObjectContext y befand jedoch das Object in Contect x registriert gewesen ist.
Da hat mich natürlich .NET getadelt und konnte das Objekt nicht löschen weil sich das Objekt nicht in dem aktuellen Context befindet.
Danach versuchte ich das Objekt zum aktuellen Context hin zu zufügen und das hat .NET ebenfalls nicht gefallen weil das Objekt bereits in einem anderen Context registriert gewesen ist.
Aktueller Stand: Datanbankzugriff statisch.
Hat super funktioniert da sich die Objekte immer im gleichen Context befinden.
Was mich ja nun zu dem neuen Problem geführt hat.
Ich werde aber nun Deine Lösung probieren und den Context im Controller aufbauen - welcher ja dann pro Request neu erstellt wird - und die Connection dann in dem MVC Controller an die ModelAccess Klassen weiterreichen.
So sollte ja dann je Request ein neuer Context verwendet werden und das Löschen und die parallelen Abfragen funktionieren.
Werde berichten ob dies funktioniert hat.
Vg
mbk_chilli
Zusatz:
Interessanterweise ließ sich das Problem zwar nicht beheben aber wohl umgehen durch:
//An welcher stelle das Event gesetzt wird: Siehe 1. Post
_Db.Connection.StateChange += new System.Data.StateChangeEventHandler( Connection_StateChange );
void Connection_StateChange( object sender, System.Data.StateChangeEventArgs e ) {
if (e.CurrentState == System.Data.ConnectionState.Closed) {
_Db.Connection.Open();
}
}
Ich denke jedoch nicht, dass dies im Sinne des Betrachters ist und wirklich eher das Problem umgeht anstatt es zu lösen. Von daher der Nachtrag und NICHT die Lösung!
Vg
mbk_chilli
verwendetes Datenbanksystem: MS SQL
HI @ all,
leider stehe ich aktuell vor einem kleinen "Halb"-Rätsel.
Ausgangsbasis:
ASP.NET MVC 3, C# 4, LinQ
Via EntityFramework eine MS SQL Datenbank eingebunden.
Folgende Fehlermeldung erhalte ich:
"The connection was not closed. The connection's current state is connecting."
Was die Fehlermeldung nun heißt ist natürlich klar. Aber wie es dazu kommt und wie ich es verhindern kann wäre nun die Frage.
Verschiedenen Objects stelle ich die Datenbankverbindung statisch zur Verfügung. Evtl. nicht der beste Weg und evtl. auch der Weg welcher mich zu dem benannten Problem führt. Allerdings - aktuell - nicht zu vermeiden.
Die verschiedenen Objects rufen sich auch gerne gegenseitig auf - denn jeder ist für eine spezielle Aufgabe zuständig bzw. behandelt verschiedene Tabellen in der Datenbank. Sie verwenden somit ALLE die Gleiche Connection.
Code in der Basisklasse welche die Connection zur Verfügung stellt:
private static DbEntities _Db = null;
protected DbEntities DbAccess {
get {
if (_Db == null) {
_Db = new DbEntities();
//_Db.Connection.StateChange += new System.Data.StateChangeEventHandler( Connection_StateChange );
}
return _Db;
}
}
Warum der statische Zugriff für alle Objekte?
Leider tritt nun sporadisch folgende Fehlermeldung auf:
The connection was not closed. The connection's current state is connecting.
Vornehmelich bei folgenden Aufruf:
foreach (DataBase.MyTapes myTape in allTapes) {
Weiß jemand direkt ob sich dieser Fehler wirklich darauf bezieht, dass der Zugriff statisch für alle Objekte zur Verfügung steht. Wobei es zu parallelen Zugriffen kommen kann.
Besonders: Wenn ich Bilddaten über eine MVC Action Abfrage und sehr oft F5 im Browser drücke!
Gibt es eine Möglichkeit dem Datenbankobjekt zu sagen:
Ist ok der Status ist "Connecting" das passt schon! naja o.Ä.!
Für jedwede Hilfe wäre ich sehr dankbar!
Falls jemand mehr infos benötigt poste ich diese gerne jederzeit!
Vg
mbk_chilli
Danke euch, mit dem WCF Service hat es auf jedenfall schon einmal sehr gut funktioniert.
Vllt. werde ich auch mal das Hammock for Rest noch testen. Bis dato reicht mir die Lösung aus die mit .NET direkt anbietet. Und der asynch Zugriff kommt mir aktuell auch sehr gelegen.
thx und weiter gehts mit der App!
greetz
mbk chilli
Also so komisch das auch klingt, aber leider sagt VS das er die TcpClient Klasse nicht kennt. 😦
Aber ich glaube mittlerweile, dass der Fehler bei mir liegt!
Ich verwende "Visual Studio Express for Windows Phone" und es scheint als würde dies nicht mit dem CF arbeiten auch wenn der System.Net.Sockets namespace durchaus bekannt ist.
Aber ich danke Dir für den Anstoss. Irgendwie muss es ja noch eine Lösung geben. Falls es hilft: Ich habe ein normales Windows Phone Application Projekt gestartet und das Windows Mobile 6.5 SDK ist ebenfalls installiert.
greetz
mbk chilli
PS: Ich werde es nun einmal so versuchen, dass ich einen WCF Service für die Server Seite schreibe und diesen dann via dem Win 7 Phone kontaktiere. Ich hoffe nur, dass ich den Standort des Services später auch noch ändern kann via Properties 😉! THX für den Anstoss!!!
Hi @ all,
ich bräuchte mal einen Denkanstoss. Ich wage mich aktuell in die Windows Phone 7 App Programmierung. Da es leider noch keine Literatur dazu gibt (jedenfalls bei z.b. amazon noch nicht lieferbar) ... stehe ich leider etwas auf dem trockenen.
Aber nun zu meinem Problem:
Ich will vom Win Phone eine NetworkConnection zu einem Programm auf meinem PC herstellen. (Also keine Web Services verwenden)
Hat jemand einen Tipp oder direkt ein Tut. für mein Problem.
Auf dem Win Desktop Client wird aktuell ein TCPListener verwendet und auf dem Phone ... naja leider noch nichts passendes 😉!
Zusatzinfos:
Die Kommunikation soll über das W-LAN laufen!
Freue mich über jeden Anstoss.
greetz
mbk chilli
Hi @ all,
ich habe derzeitig ein problem mit der Darstellung einer Html.DropDownList in meiner ASP.NET MVC Web Application.
Und zwar folgendes:
ich will mehrere Html.DropDownList auf der GUI anzeigen diese ALLE den gleichen Inhalt haben jedoch unterschiedliche SelectedItems.
Nun will ich nicht jede DropDownList immer und immer wieder neu zeichnen sondern mir quasi eine Html.DropDownList schaffen anhand einer List<T>/IQueryable<T> und dann in der *.ascx Datei bestimmten welches Item selektiert ist. Ist dies so erst einmal möglich?
Hier noch zu dem Problem meine Source-Codes:
Inhalt meiner *.ascx
<% if (Model.Company.ContactInfos != null) { %>
<% foreach (ContactModel contact in Model.Company.ContactInfos) { %>
<tr>
<td>
<%= HIER SOLL DIE Html.DropDownList ANGEZEIGT WERDEN %>
</td>
<td>
<%= Html.TextBox( "Entry[]", contact.Entry, new {
maxlength = "255",
size = "50"
}) %>
</td>
</tr>
<% } %>
<% } %>
Definiert einen Kontakttyp:
public class ContactType {
public int ID {
get;
set;
}
public string ContactTypeName {
get;
set;
}
}
Die Liste von ContactType´s:
var contactTypes = from Kontakttypen in storage.Kontakttypen
select new ContactType {
ID = Kontakttypen.id,
ContactTypeName = Kontakttypen.Kontakttyp
};
Das ContactInfo Object dessen Wert dann in der Liste gesetzt werden soll:
public class ContactModel {
public int ID {
get;
set;
}
public string Entry {
get;
set;
}
public string ContactType {
get;
set;
}
//ContactTypeId soll bestimmen welches Item in der Html.DropDownList das SelectedItem ist
public int ContactTypeId {
get;
set;
}
}
Falls Ihr mehr infos braucht einfach bescheid geben 😃!
Hoffe es hat einer von Euch eine Idee ... sitze da schon ne weile dranne.
greetz
mbk_chilli
der Process Explorer kann das. Oder musst du unbedingt ein eigenes Programm schreiben?
Ja "leider", da ich dies für ein Update benötige von einem Programm und sehen muss ob die Dateien noch verwendet werden und wenn ja muss ich den Handle auf die Datei(en) beenden.
gruß
mbk_chilli
Hey Community,
ich habe mich bereits im Forum und im Internet umgesehen und leider nur oberflächliche Lösungen bzw. Lösungsansätze gefunden die mich zu keinem Ergebnis führen.
Ich bräuchte Ansätze um folgendes Problem in .NET zu lösen.
Ich durchlaufe alle Prozesse die von Windows geöffnet sind. (Soweit so gut, dass habe ich).
Zu dem Prozess brauche ich aber folgende Informationen
Hoffe ihr könnt mir weiter helfen. Leider finde ich dazu nichts mehr 😉.
Gruß mbk_chilli
Hey jaensen,
JO das hatte ich auch schonmal probiert ... und hat sich leider als nicht nützlich erwiesen .... ABER ....
Zitat von mir selbst aus Beitrag 1 (Da haben wir wohl zur gleichen zeit geschrieben)
Durch eine Eingebung habe ich das Problem gelöst:
Lösung ...... Auch wenn es immer andere Controls sind mache ich das nun über ein Interface und adde einfach nicht ein neues Control sondern überschreibe das alte und setzte die Visiblity Eigenschaft auf true respektive auf false ... und so springt der AutoScroll nicht mehr an den Anfang der Seite. GELÖST!!!!!!
Aber danke dir trotzdem jaensen ....
greetz Maurice
Hallo Community,
jaja ... der mbk_chilli schon kommt er wieder mit einem Problem an 😉.
Also diesesmal habe ich ein paar Meinungsverschiedenheiten mit dem AutoScroll von Controls oder genauer gesagt meiner von TabPage abgeleiteten Klasse und dem Control welches sich in der TabPage befindet.
Also mal ne runde Code zum verstehen ....
Meine PageTab-Klasse (ja ich weiß super genial einfach die Nomen zu drehen 🙂 )
public partial class PageTab : TabPage
{
public PageTab()
: base()
{
base.DoubleBuffered = true;
base.ResizeRedraw = true;
base.Dock = DockStyle.Fill;
base.BackColor = Color.Gainsboro;
base.AutoScroll = true;
base.SizeChanged += new EventHandler( PageTab_SizeChanged );
base.Disposed += new EventHandler( PageTab_Disposed );
}
...........
Sooo .... innerhalb der TabPage ist nun ein weiteres Control welches Zeichenoperationen vornimmt und auch ab und zu mal ein Control anzeigt (dabei verliert es den Focus)
Nun das Problem wenn das Control (welches von Panel erbt) den Focus wieder zurück erhält dann springt der AutoScroll an die Location ( 0 , 0 ). Und wenn ich mich aber gerade in einem gescrollten Bereich des Panels befinde dann ist das ziemlich nervig wenn ich jedesmal wieder nach oben auf der Seite geschmissen werden.
Info: Mein Panel hat eine größe von 5000x5000.
Das UserControl das zu dem Panel geadded wird ... wird wie folgt hinzugefügt:
Size quickWindowSize = this.actualPropertyGroupWindow.getQuickWindowSize();
PointF groupLocation = this.actualGraphicGroup.DrawingRectangleLocation.Value;
PointF quickWindowLocation = new PointF( ( groupLocation.X + this.zeroPoint.X ) * this.zoom, ( groupLocation.Y - quickWindowSize.Height + this.zeroPoint.Y ) * this.zoom );
this.actualPropertyGroupWindow.showQuickWindowAtPosition( quickWindowLocation, this );
UserControl propertyWindowControl = this.actualPropertyGroupWindow as UserControl;
propertyWindowControl.BackColor = Color.LightBlue;
propertyWindowControl.BorderStyle = BorderStyle.FixedSingle;
this.Controls.Add( this.actualPropertyGroupWindow as UserControl );
Und so entfernt:
if (this.actualPropertyGroupWindow != null)
{
this.Controls.Remove( this.actualPropertyGroupWindow as Control );
this.actualPropertyGroupWindow = null;
}
Zwischendrinn wird das ( actualPropertyGroupWindow ) bei operationen auch auf Visible = false gesetzt und danach wieder auf true.
Ein gutes Referenzbeispiel für mein Problem ist das MultilineTextfield von mycsharp wenn eine Nachricht hinzugefügt wird in einen Thread. Füge ich dort z.b. ein csharp Tag ein dann springt der Scroll vom textfeld an oberste Stelle. (Firefox 3.0)
Mein PageTab macht das gleiche ohne das ich ihm dies sage. Der Einzige bereich der mit dem Scroll zu tun hat ist AutoScroll = true im Konstruktor der PageTab-Klasse und womöglich das entfernen und hinzufügen der Controls.
Ich hoffe das ihr mir helfen könnt und mein Problem verstanden habt.
greetz
Maurice
[EDIT] Durch eine Eingebung habe ich das Problem gelöst:
Lösung ...... Auch wenn es immer andere Controls sind mache ich das nun über ein Interface und adde einfach nicht ein neues Control sondern überschreibe das alte und setzte die Visiblity Eigenschaft auf true respektive auf false ... und so springt der AutoScroll nicht mehr an den Anfang der Seite. (GELÖST!!!!!!
Wow, rege Diskussion.
Vertraue dem GC.
Na dann werde ich das mal tun.
Zur Struktur:
Dispose ist vom Interface IDisposable in der "Img" Klasse implementiert und das mehr aus leichteren Verständnisgründen.
Diese Methode soll nur dafür sorgen das der MemoryStream nicht mehr im Speicher alloziiert ist.
Die ConvertTo* Methoden sind ebenfalls in dem "Img" Objekt und werden von meiner Speicher/Lade-Klasse aufgerufen.
Das "img.Dispose()" verweist nicht auf einen internen Member sondern ruft von einem temporären .NET-Image Objekt die Dispose Methode auf.
Ich bin derzeitig dabei die Speicheroutinen anzupassen und es mal mit dem XMLSerializer zu probieren. Wobei das Problem dadurch nicht behoben wird, nicht wirklich, da ich auch den MemoryStream für den Serializer verwende.
Aber ein wenig rumprobieren kann nicht schaden.
PS: Eigentlich will ich nur Layer-8 Probleme in meinem Prog ausschalten.
Gruß
Maurice
Über den TaskManager ... ich sehe mir an was das Programm so an Speicher alloziert wenn ich das Bild öffne und da sich beim Schließen die Speicherallozierung nicht ändert .... kann ich davon ausgehen das auch der MemoryStream nicht "gekillt" wird aus dem Speicher.
Ich konvertiere rum, da ich das Image in einer Xml Struktur zustätzlich zu anderen Daten speichere. Und ich benötige alle Daten in einer Datei um Benutzermanipulationen an der Dateistruktur besser entgegen kommen zu können. (Was schon vorkam das es nette Layer 8 Probleme gab und es dann hieß, dass das Prog daran schuld ist das ja gelösche Bilder nicht mehr geladen werden können)
Eine andere Lösung wäre noch das ich das Image-Objekt serialisiert in der Datei zu den anderen Daten speichere und je nach Methode serialisiere respektive deserialisiere.
Danke schonmal werde mal versuchen das dann direkt mit dem GC auszumachen ... mal sehen ob ich mich mit ihm einig werde 🙂.
Gruß
Maurice
Moinsen Community,
ich habe eine quasi Wrapper-Klasse für das Image Object geschrieben da ich meine grafischen Objekte gerne selber handle.
Um grafische Objekte nun zu speichern wandele ich das eigentliche Image-Object in einen Base64-String um. Und beim laden eben wieder zurück. Um die Speicherung zur Laufzeit durchzuführen benutze ich einen MemoryStream.
Lade-, und "Speicher"-Methoden:
private MemoryStream memory = null;
public void convertFromBase64( string base64 )
{
memory = new MemoryStream( Convert.FromBase64String( base64 ) );
Image img = Image.FromStream( memory );
base.Size = new SizeF( img.Size.Width, img.Size.Height );
base.setCoords();
img.Dispose();
}
public string convertToBase64()
{
string base64 = Convert.ToBase64String( memory.ToArray() );
return base64;
}
Um nun, wenn mein Img(Image) Objekt nicht mehr benötigt wird die Resourcen wieder freizugeben die von dem MemoryStream-Objekt benutzt wurden, führe ich die folgende Methode aus:
public void Dispose()
{
if (this.memory != null)
{
this.memory.Close();
this.memory.Dispose();
this.memory = null;
}
}
Leider wird der Speicher nicht freigegeben und wenn man dann so zu sagen immer und immer wieder das gleiche Bild öffnet obwohl es geschlossen wurde. Naja ich sags mal so irgendwann stößt jeder Rechner an die Grenzen seiner Speicherkapazitäten.
Kann mir jemand erklären warum er die Resourcen nicht frei gibt oder was ich dazu noch zusätzlich ausführen muss.
Zusatz: Durch einen Debug weiß ich definitiv das er in die Dispose()-Methode geht beim schließen und das auch das MemoryStream objekt dabei nicht null ist und das Programm den Körper des if-Statements behandelt.
Gruß
Maurice
Hey Community,
ich arbeite mal wieder an einem ASP.NET2.0 Projekt und setze dabei auf nHibernate (v 1.2.4000) auf um auf das DBMS zu zugreifen.
Ich habe derzeitig das Problem das ich bei dem Encoding arg an die grenzen meiner selbst stoße und ich es nicht hinbekomme das z.b. griechische Schriftzeichen richtig erkannt werden.
Ich sende ein PDF-Forumlar an eine *.ashx-Datei ab über einen Senden-Button innerhalb des PDF-Formulares, dieser Button ruft die Funktion "this.submitForm()" auf in diesem auch der "cCharset" auf "UTF-8" gesetzt ist.
Eigentlich klappt das super nur leider kommt bei der *.ashx Datei für das Wort "—±»»¿" ( eigentlich sollte da nun "Hallo" stehen mit griechischen zeichen) immer folgendes bei dem Server an: "?????".
Leider weiß ich nicht genau wo der Knackpunkt liegt da ich an allen möglichen stellen utf-8 eingestellt habe. Im ASP.NET Virtuellen verzeichnis, dierkt im IIS, in allen CharacterEncodings die ich setzten kann, im response und Request header, in der web.xml, in dem DBMS, bei nHibernate, etc. etc.!
Vllt kennt ja jemand das problem und eine Lösung dazu oder kann mir anderweitig auf die Sprünge helfen. Bin für jeden Vorschlag dankbar.
Ist das vllt. eine Einstellungssache vom Server oder brauch dieser direkt die griechische Schrift? Ratlos
greetz Maurice
verwendetes Datenbanksystem: MySql 5.0 im Zusammenspielt mit nHibernate 1.2
Hallo Community,
ich habe derzeitig ein größeres Phänomen in meiner Anwendung wenn ich mit folgendem Code eine Abfrage via nHibernate tätige dann wird ein Update auf die Entsprechenden Tabellen automatisch von nHibernate durchgeführt.
/// <summary>
/// Loads every instance of the requested type with no filtering.
/// </summary>
public List<T> GetAll() {
return GetByCriteria();
}
/// <summary>
/// Loads every instance of the requested type using the supplied <see cref="ICriterion" />.
/// If no <see cref="ICriterion" /> is supplied, this behaves like <see cref="GetAll" />.
/// </summary>
public List<T> GetByCriteria(params ICriterion[] criterion) {
ICriteria criteria = session.CreateCriteria(persitentType);
foreach (ICriterion criterium in criterion) {
criteria.Add(criterium);
}
return ConvertToGenericList(criteria.List());
}
Kann sich jemand von euch dieses Phänomen erklären ... oder mir direkt sagen wieso nHibernate sich da so einfach selbstständig macht. Obwohl es gar keinen Anlass gibt das nHibernate ein Update auf der Datenbankrelation durchführt.
Genau diese Zeile verursacht ein Update, den ich nicht verhindern kann:
ICriteria criteria = session.CreateCriteria(persitentType);
greetz and thanks
Maurice
[EDIT⚠ Ich habe etwas gefunden das sich "automatic dirty checkin" nennt, weiß jemand wie ich dies bei nHibernate abschalte. Also so dass er nur updated wenn ich dies explizit angebe???
Habs zu meiner Zufriedenheit bereits gelöst. Mit aktiv meinte einfach das respektive die Interfaces die aktiv sind. Also keine deaktivierten zum beispiel.
habs zwar nun nicht genau so hinbekommen aber ich bin erstmal mit der Lösung zufrieden.
OKAY ich habs für alle hier die Lösung ... mal ne runde schlau suchen in der MSDN hats mir dann gebracht 🙂
List<string> returnList = new List<string>();
IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
if (!adapter.NetworkInterfaceType.ToString().Equals( "Loopback" ))
{
returnList.Add( adapter.GetPhysicalAddress().ToString() );
}
}
return returnList;
greetz Maurice
An eine solche Lösung habe ich auch schon gedacht aber ich denke nicht das dies nun wirklich kosteneffizient ist bei dem einführen einer neuen Software. Dies wird denke ich später zum Einsatz kommen sobald sich die Lösung etabliert hat.
Aber zu beginn muss mir/uns eine rein integrierte Softwarelösung reichen.
Es war zwar eine gute Idee nur leider hat mir das nicht mein gewünschtes ergebnis gebracht, konnte leider damit auch nicht ermitteln welches nun ein direktes aktives Netzwerkinterface ist. 🙁
Aber trotzdem danke ein versuch ist alles immer wert!
Tja die Kunden sind denke ich auch durchaus bereit für die Software zu zahlen ... nur die Konurrenz wohl eher selten und durch die Aktivierung des Programms werden bestimmte Bereiche der SW erst freigeschaltet.
(PS: Kommerzielles Produkt kein Heimprojekt oder dergleichen)
Der Code ansich ist zwar schon verschlüsselt aber ich will es auch selbst den Kunden oder anderweitigen Interessierten so schwer wie möglich machen das sie das Produkt auf mehreren Rechner nutzen können obwohl sie nur die Lizenz für ein PC-System besitzen.
Wir haben schon einiges eingebaut (MAC, MachineName, verschlüsselte Keys u.s.w. um es schon ne ecke schwieriger zu machen ... aber naja mein perfektionismus will nicht enden.
Das schöne an dem produkt ist das es in seinem Bereich ein Newcomer ist und sich auch schon auf der Cebit gezeigt hat das viele daran interesse haben besonders eben die Konkurrenz (die wir recht fix wieder vom stand geschmissen haben) 🙂.
Moin moin,
ich hole mir mit folgendem Code alle MAC-Adressen:
ManagementClass management = new ManagementClass( "Win32_NetworkAdapter" );
ManagementObjectCollection managenemtCol = management.GetInstances();
foreach (ManagementObject managementObj in managenemtCol)
{
if (managementObj != null)
{
if (managementObj["MacAddress"] != null)
{
returnList.Add( managementObj["MACAddress"].ToString() );
}
}
}
Leider bekomme ich dabei 6 MAC-Adressen zurück, warum weiß ich leider nicht. Was ich aber gerne hätte swären nur die MAC-Adressen von dem bzw. den aktiven Netzwerkinterfaces auf dem Computer im Sinne von den physikalischen Interfaces.
Weiß jemand wie ich genau an diese MACs komme?
greetz
Maurice
Hey Community,
kennt einer von euch einen "Nicht Veränderbaren Wert" eines Computersystems? Also womit ein und das selbe Computersystem immer und immer wieder erkannt werden kann.
Na klar könnte ich über die MAC-Adresse gehen aber diese ist mir eben zu leicht zu Manipulieren.
Hoffe jemand hat da eine Idee.
gruß
Maurice
Guten Morgen Community,
ich arbeite derzeitig mal wieder an einer Web-Applikation basierend auf ASP.NET 2.0!
In einem gewissen Bereich der Anwendung soll in PDF an den Client gesendet und geöffnet werden. Was an sich auch sehr gut funktioniert.
Ich sende das PDF mittels eines OutputStreams direkt an den Client und verweise nicht auf eine auf dem Server liegende PDF. Das hat den Hintegrund das ich dann das PDF auf Serverseite nicht anlegen und Abspeichern muss. Ich habe zwar ein PDF auf Serverseite jedoch wird es in jeglicher Hinsicht vor dem Senden an den Client bearbeitet.
Nun habe ich in den verschiedenen Browsern auch verschiedene Verhaltensweisen entdeckt. (Installiert war dabei die Adobe Version 8 )
Wenn der Client den AJAX JavaScript PostBack an den Server sendet, bekommt der Client JavaScript zurück welches ein neues Fenster öffnet in diesem wiederum eine aspx Webseite angesprochen wird diese dann das aktuell angefragte PDF an den Client sendet.
Im IE7 und im FF wird das PDF sauber in dem neuen Fenster angezeigt. Im IE6 jedoch wird der Client zum download oder zum öffnen des PDF aufgefordert und je nach Aktion wird es dann im Adobe Reader und nicht mehr in dem Browserfenster angezeigt.
Ich vermute das es direkt an dem IE6 liegt da dieses Verhalten auch mit verschiedenen Adobe Reader Versionen getestet wurde und es sich immer nur beim FF/IE7 gleich verhalten hat und anders eben beim IE6.
Kennt da jemand einen Warkaround zu oder kann mir spezifisch sagen ob ich dieses verhalten des IE6 überhaupt ändern kann.
Danke an alle schon einmal im voraus.
Greetz Maurice
Habe es nun mal mit der Methode probiert und bekomme leider die folgende Fehlermeldung:
Incorrect column specifier for column 'name'
Kann mir da nur gerade nicht wirklich etwas darunter vorstellen nur die Vermutung anstellen das es sich auf folgende Zeilen in dem Code bezieht:
[Property(Name="Datetime",Type="DateTime",Column="datetime")]
public virtual DateTime Datetime
{
get { return m_datetime; }
set
{
m_datetime = value;
}
}
Denn etwas anderes als diese Klasse sollte bei der aktuellen Konfiguration nicht geladen werden und dort gibt es kein Feld namens "name"/"Name".
Grr irgendwie komm ich da net wirklich weiter, aber irgendwie scheine ich ja auf dem richtigen Weg zu sein wenn er schonmal versucht etwas anzulegen.
Hier noch der Code bei dem ich versuche die Datenbank und deren Felder anzulegen:
SchemaExport export = new SchemaExport( cfg );
export.Execute( false, true, false, true );
Habe in etwa das gleich auch noch mit der Methode SchemaExport.Create(bool, bool) ausprobiert mit der gleichen Fehlermeldung.
gruß
Maurice
[EDIT]: In der SchemaExport Klasseninstanz sind auch die SQL-Strings richtig aufgelistet, hab gesehen das er versucht mehr anzulegen jedoch ist das SQL richtig geschrieben von nHIbernate und sollte daher funktionieren.
Wenn ich das richtig gelesen habe brauche ich dann dafür die *.hbm Dateien. Da ich aber alles über Annotations bzw. Mapping.Attributes in den Klassen- und Methodendeklarationen mache wäre das ja leider keine alternative für mich.
Oder hab ich da etwas übersehen?
gruß
Maurice
Hmm jo die Lösung habe ich auch schon in Betracht gezogen nur bin ich ja dann eben wieder abhängig von dem SQL-Dialekt den das DBMS versteht/verwendet. Und durch nHibernate bin ja als Vorteil davon unabhängig und kann zu jeder Zeit die Datenbank ohne Probleme austauschen!
gruß
maurice
verwendetes Datenbanksystem: MySQL 5.0 mit nHIbernate 1.2.1.4000
Hey leute,
ich bin derzeitig dabei eine ASP.NET Anwendung zu schreiben und die Datenbankanbindung über nHIbernate zu relisieren so dass die Anwendung Datenbankunabhängig ist.
Nun kann ich aber leider nicht immer davon ausgehen das alle meine Datenbanken und Datenbankrelationen vorhanden sind und wollte daher überprüfen ob die benötigten Bereiche in meinem DBMS vorhanden sind!
Dazu habe ich leider nichts im Netz und auch nichts direkt auf nhibernate.org gefunden. Nun die Frage ob es überhaupt möglich ist dies via nHIbernate respektive nHIbernate HQL zu überprüfen und dann die Datenbanken- und relationen anzulegen.
SQL oder native SQL kann ich ja dabei theoretisch verwenden mache mich aber dann ja wieder von dem SQL Dialekt des DBMS abhängig was mir ja den Vorteil von nHibernate zu nichte macht.
Hoffe einer von euch hat da einen Ansatz oder kann mir direkt sagen ob dies möglich ist.
Gruß
Maurice
Moin Peter,
Jo hatte schon ein virtuelles Verzeichnis für die Anwendung angelegt.
Nachdem ich mit dann mit Server.MapPath(string var) den Pfad geholt habe hat es auch super funktioniert. Kann die Datei nun Problemlos laden!
Aber trotzdem dank dir. Also auf deine Hilfe kann man sich hier wirklich verlassen 😉!
Gruß
maurice
Sooo nach einigem rumprobieren habe ich einfach mal das entfernt was dem IIS gestört hat.
Aber wie es das Schicksal, nennen wir es mal Microsoft ASP.NET, so will habe ich leider wieder den nächsten Fehler.
ich habe eine XML-Konfigurationsdatei die idealerweise wichtige Daten die ich für den Programmablauf benötige. (Ja es muss in der Datei bleiben 😉)
Mein Problem ist das ich die Datei nicht laden kann sobald ich die Webseite auf dem IIS hochgeladen habe. Ich bekomme immer die Exception das die Datei in dem Verzeichnis "C:/WINDOWS/System32/datei.xml" nicht gefunden werden kann. Was ja auch richtig ist da sie im root Verzeichnis der ASP.NET Anwendung liegt.
Nach vielem rumprobieren habe ich es leider nicht geschafft ASP.NET bzw. den IIS davon zu überzeugen das die Datei gar nicht in System32 liegt und er doch besser mal in dem "Programmverzeichnis" nachschauen sollte.
Ich hoffe jemand kann mir sagen wie ich ausgehend von dem root-verzeichnis, also unabhängig davon wo die ASP.NET Seite liegt, die Datei laden kann. Den Pfad soll/darf/muss ich nur als relativen Pfad von der .aspx Seite angeben.
greetz
Maurice
Moin sra,
hmm, naja das eigenartige ist nur das derzeitig der Server und der Development-Client ein und derselbe PC sind 😉!
Will das ja vorher erst auf dem IIS testen bevor ich es in die Produktivumgebung gebe.
Bei mir hat sich nun nach versuchten beheben noch das folgende dazu getan:
Zeile 16: <system.web>
Zeile 17: <pages>
Zeile 18: <controls>
Zeile 19: <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
Zeile 20: </controls>
Denke das hängt damit zusammen das ich die Web.Extension raus genommen habe. Ich bin echt ratlos wie ich da vorgehen soll!!
Moinsen,
ich habe nun endlich mit viel mühe und nerven meine ASP.NET Webseite fertig programmiert.
Ich dachte mir dann mal so das ich dann ein Web-Setup erstelle was auch super geklappt hat, naja bis ich es installieren wollte und merkte das dort nur *.dll Dateien entpackt werden und der IIS damit leider wenig anfangen konnte.
Also bin ich über den Menüpunkt "Publish" (englische Visual Studio 2005 PRo version) gegangen und habe die Dateien in ein Verzeichnis geschrieben und mir ein neues Virtuelles Verzeichnis für die Webseite angelegt. Dieses mal hat es besser geklappt und es waren sogar *.aspx Dateien dabei.
Leider bekomme ich nun die folgende Fehlermeldung zu gesicht wenn ich meine Anwendung aufrufe:
In Zeile 4 ist der Fehler laut IIS:
Zeile 2: <configuration>
Zeile 3: <configSections>
Zeile 4: <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
Zeile 5: <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
Zeile 6: <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
Als ASP.NET Noob kann ich leider nur wenig damit anfangen, ich kann nur soviel sagen das die "Systtem.web.extensions" auch in meinem "bin" Ordner liegt und diese somit ja für den Server zur Verfügung stehen sollte.
Wenn ich die Webseite bequem über den VS2005-Webserver laufen lasse dann funktioniert alles prächtig.
Hat jemand eine Idee was ich nun schon wieder falsch mache?
Ich brauch echt mal ne ASP.NET Schulung 😉!!
greetz
Maurice
Salue Peter,
naja leider nicht direkt.
Folgendes Szenario: Ich habe in einer Datenbank 1000 Einträge, nun zeige ich aber immer nur 10 in dem GridView an. Also hole ich mir diese 10 Einträge aus der DB und lasse den Rest weg. Dann zähle ich noch wieviele Zeilen mein Ergebnis komplett erbracht hätte.
Nun will ich diese 10 Einträge anzeigen und ein Paging für alle restlichen ermöglichen, also dem Nutzer so deutlich machen das es eigentlich (böses Wort) mehr als 10 Einträge sind. Wenn der nutzer dann mittels paging auf die nächste oder eher beliebige Seite in dem gridView wechselt dann werden wieder nur genau diese 10 Einträge aus der DB geholt die angezeigt werden.
Da alles "leider" zu dynamisch ist und ich mit nHibernate arbeite muss (denke ich) ich alle Zeilen holen. Was unter umständen bis zu einer Million sein kann. Was ich aber nicht bestimmen kann den das hängt von dem Kunden ab wie er seine Oberfläche konfiguriert hat und somit wie tief und wie genau seine Ergebnisse werden.
Ich habe zwar mittlerweile eine Lösung, aber gefallen tut sie mir net wirklich:
Ich hole mir die 10 Einträge, speicher mir für welche Seite es ist und packe auf die restlichen Seiten die angezeigt werden können leere Objekte, was natürlich auch wieder dauern kann 1 Mio leere Objekte zu erzeugen, da es ja auch die gleichen sein müssen so dass die Properties zugeordnet werden können. Was dann aber worse-case ist mit der Mio.
greetz Maurice
Hey community,
also an meinen ganzen beiträgen der letzten tage sieht man deutlich das ich ein arges Problem mit dem GridView habe und es mir daher tierisch auf die Nerven geht.
Naja genug des Meckerns 😉!
Derzeitig bin ich dabei meinerm GridView n-Seiten hinzuzufügen. Ich benötige zum Beispiel die Anzeige von 15 Seiten lade davon aber nur die 10. und deren Einträge. Ich will aber Anzeigen das es 15 Seiten gibt und diese zur Verfügung stehen. Paging und Sorting habe ich schon komplett eiegens behandelt da es mit meinem Objectkonstrukt so gar nicht funktioniert wie es sich Microsoft vorgestellt hat.
Um nun aber nicht immer eine Liste von (meist) über 1000 Einträgen zu laden, lade ich einfach 10 und zeige diese an. Will aber eben zeigen das noch mehr Einträge vorhanden sind.
Hoffe ihr habt da einen Ansatz wie ich dies dem Grid klarmachen kann das es doch "bitte" anzeigt das es 15 Seiten gibt.
Habe es bereits über
GridView.PageCount und über gridView.pagerSettings.PageButtonCount
ausprobiert, leider ohne Ergebnis.
greetz
Maurice
Die ganzen Daten in einer Session abzulegen ist meist keine gute Idee.
Wieso machst du das?
Ich will die Liste nicht immer und immer wieder neu aufbauen und daher merke ich mir die Liste in der Session die als letztes (anhand der Navigation) angefragt wurde.
Funktioniert nicht, gibts nicht.
Was funktioniert und was nicht, und wieso? 🙂
Also wenn ich wüsste wieso ... würd ich wissen warum 😉.
Funktionieren tud leider das Sortieren nicht, der befehl zum Sortieren wird richtig an den Server gesendet. Mit dem RowCommand Event fange ich dann den befehl ab (command = Sort) und versuche mittels der Methode Sort des GridViews:
base.DataSource = (IList<obj>)visual_master.sessionObject["obj"];
base.Sort( e.CommandArgument as string, this.setAndGetSortBy() );
base.DataBind();
zu sortieren!
Nach dem Aufruf ändert sich leider gar nichts, das CommandArgument wird richtig übergeben z.b. "Property3" der Name der zu sortierenden Spalte. Beim erstellen der Spalten (BoundField) gebe ich auch mittels "BoundField.SortExpression" die SortExpression an die übergeben Expression ist gleich der Property "BoundField.DataField".
Das Sorting-Event der GridView wird auch behandelt, allerdings mache ich da nur eine Überprüfung der Expression den als ich da mal die Methode Sort aufgerufen habe (obwohl mir klar war was dann passiert 😉 ). Naja ist auch das eingetreten was ich gedacht habe. Tödliche Endlosschleife!
Hoffe ich konnte dir nun etwas mehr Infos geben.
greetz Maurice
PS-Edit: Es wird von mir alles zur laufzeit erstellt und nichts direkt in ASP.NET geschrieben. Vllt ist das ja ausschlagebend.
Moin community,
Da ich ja eine eigene Datenquelle verwende kann ich ja die vorgegebene Sorting und Paging Funktionalitäten nicht verwenden.
Das paging habe ich breits erfolgreich umgesetzt waren ja auch nur zwei zeilen. Die Events Sorting und PageIndexChanging habe ich auch behandelt.
Aber eben das Sorting funktioniert bei mir nicht.
Das ist derzeitig der effektive Code in dem RowCommand-Event:
IList<obj> form = (IList<obj>)Session["obj"];
this.GridView1.DataSource = form;
this.GridView1.Sort( e.SortExpression, e.SortDirection );
this.GridView1.DataBind();
Und das ist noch etwas was ich gefunden habe und versucht habe umzusetzten, jedoch da das DataTable-object immer null funktioniert es natürlich nicht!
DataTable dataTable = this.GridView1.DataSource as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView( dataTable );
dataView.Sort = e.SortExpression + " " + "ASC";
this.GridView1.DataSource = dataView;
this.GridView1.DataBind();
}
Ich hoffe jemand von euch hat eine Idee wie ich das zum laufen bekomme.
Leider kann ich wegen der dynamik der Anwendung nicht direkt die Daten aus der Datenbank holen und dann direkt die Datenbankrelationen ausgeben.
Ich bin auf die IList<obj> angewiesen und muss diese verwenden.
greetz mbk_chilli
habe das jetzt auch wieder so gemacht und nun stehe ich vor dem Problem das ich den iframe nicht wieder loswerde so bald er einmal vorhanden ist.
<div style="float:left; width:100%; height:100%; border:1px solid black;" visible="false" id="iframeDiv" runat="server">
<iframe id="iframe" src="PDFView.aspx" style="width: 100%; height: 100%;">
</iframe>
</div>
Zu beginn funktioniert es und ich kann nach dem Request den iframe anzeigen lassen. Nur leider wird er dann immer angezeigt obwohl ich hin Serverseitig wieder auf invisible gesetzt habe.
habe es schon mit dem div (siehe code) und direkt nur mit dem iframe ausprobiert und hatte immer das gleiche ergebnis.
Gruß maurice
Jo das Masterlayout wurde ja auch net bei dem iframe beeinflusst. Aber wir wollten das ohne iframe zu stande bringen. Habe gehofft und gesucht ob es irgendein client-seitiges Steuerelement gibt welches dann nur in diesem Bereich mein PDF anzeigt.
*seufz* schade, naja dann muss ich es wieder über den iframe machen.
Dank dir.
greetz mbk_chilli
PS: Habe nun auch entschieden mein Stipendium dazu zu nutzen mir ASP.NET Schulungen und zertifizierungen bezahlen zu lassen. Denn an sich ist es ja ne feine sache. Auch wenn ich P*P weiterhin vergötter 😉
Moin community,
ich habe mal wieder ein "kleines" Problem. Und zwar programmiere ich gerade eine ASP.NET 2.0 Webseite.
Dazu habe ich mir ein Master-Layout angelegt welches mein grundlegendes Design und die Navigation beinhaltet.
Dazu dann noch eine Content-Page mit den spezifischen Inhalten wie sie in meiner Navigation deklariert wurden.
In dem Contentbereich zeige ich, mittels eines GridViews, eine Tabelle an in dieser sich Daten befinden wie unter anderem ein Link zu einer PDF-Datei die zur Laufzeit generiert wird.
Nach der Generierung dieser PDF-Datei sende ich diese als Stream über über das HttpResponse-Objekt an den Client der dann die PDF im Browser ausgibt. Alles soweit ganz gut und auch ohne probs. So funktioniert es.
Nun mehr zum eigentlichen Problem. Ich will gar nicht das die PDF in dem gesamten Browserfenster ausgegeben wird sondern nur in der Content-Page-Area des Master-Layouts. Ich habe schon verschiedene Ansätze ausprobiert wie z.b. ein Frameset oder einen iFrame. Was auch alles soweit funktioniert hat (in gewisser Hinsicht). Aber das Frameset war nur ein Test und der iFrame hat kein wirklich gutes Ergebnis geliefert und mir einiges an Möglichkeiten auf meiner ASP.NET Page genommen die ich benötige. Zudem würde ich gerne ohne Frames auskommen.
Nun die Frage an euch: Gibt es eine Möglichkeit das ich eine PDF-Datei an den Client sende und diese dann nur in einem bestimmten Bereich auf der Webseite ausgegeben wird also mein Master-Layout vorhanden bleibt?
Ich kann/darf/soll dabei nur bis .NET 2.0 gehen, kein Silverlight oder .NET 3.5 oder WPF. Installiert habe ich das AJAX-Toolkit 1.0 und die AJAX-Web-Extension für .NET 2.0.
Falls wer mehr Infos braucht kann ich gerne damit dienen. Bei Quellcode wirds schwer weil zu dem Problem keiner existiert bzw. nicht mehr existiert da es nicht funktioniert hat.
greetz mbk_chilli
Da ich ja eine eigene Datenquelle verwende kann ich ja die vorgegebene Sorting und Paging Funktionalitäten nicht verwenden.
Das paging habe ich breits erfolgreich umgesetzt waren ja auch nur zwei zeilen. Die Events Sorting und PageIndexChanging habe ich auch behandelt.
Aber eben das Sorting funktioniert bei mir nicht.
Das ist derzeitig der effektive Code in dem Sorting-Event:
IList<obj> form = (IList<obj>)Session["obj"];
this.GridView1.DataSource = form;
this.GridView1.Sort( e.SortExpression, e.SortDirection );
this.GridView1.DataBind();
Und das ist noch etwas was ich gefunden habe und versucht habe umzusetzten, jedoch das DataTable-object immer null ist und es daher nicht funktioniert!
DataTable dataTable = this.GridView1.DataSource as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView( dataTable );
dataView.Sort = e.SortExpression + " " + "ASC";
this.GridView1.DataSource = dataView;
this.GridView1.DataBind();
}
Ich jemand von euch hat eine Idee wie ich das zum laufen bekomme.
Leider kann ich wegen der dynamik der Anwendung nicht direkt die Daten aus der Datenbank holen und dann direkt die Datenbankrelationen ausgeben.
greetz mbk_chilli
Super dank dir es hat funktioniert.
Jo habe einiges bei ASP nachzuholen. 😉 Bin mal gespannt ob es noch dazu kommt da dies nur ein kleines Projekt ist bin sonst für ein anderes Produkt der Firma verantwortlich (Win. Desktop-Appl.)
Naja als Entwickler darf ich mich ja eh nicht vor den technologien verstecken, da ist nur dieser kleine Schweinehund in mir der PHP vergöttert. grrr
Und da ich mehr ins kalte Wasser gesprungen bin anstatt vor dem Programmieren die Temperatur zu messen war ich etwas ... naja ... nackt bei der Entwicklung mit ASP.
Aber nochmal danke für deine Hilfe, vllt kann ich mich ja mal erkenntlich zeigen.
Gruß aus Hamburg
Maurice
Hey Peter,
also mittlerweile bin ich soweit das es klappt das ich meine eigene Spalten hinzufügen kann. Hätte ich mal besser gelesen und einen Teil nicht übersprüngen wäre ich schon gestern soweit gewesen.
this.GridView1.Columns.Clear();
foreach (string propKeys in propertyNameList.Keys)
{
string[] gridVal = propertyNameList[propKeys];
BoundField field = new BoundField();
field.DataField = gridVal[1];
field.HeaderText = gridVal[0];
this.GridView1.Columns.Add( field );
}
this.GridView1.DataSource = logicalForm;
this.GridView1.DataBind();
Mein problem ist nun nur noch das er alle Properties aus meinem locigalForm-Object ausgibt und ich eigentlich nur die haben will die ich explizit mit dem BoundField-Object festgelegt habe diese er ja auch ausgibt.
Hast du da einen Ansatz bzw. eine Lösung, denn dann wäre ich damit fertig und kann mich endlich wieder von der Oberfläche entfernen und in die (wie ich sage) echte Programmierung gehen 😉.
Und jo hast recht mit ASP.NET geht auch alles aber naja ich finde ASP hat noch ein wenig nachzuholen denn wenn ich das unter PHP geschriebn hätte wäre ich binnen kürzester Zeit fertig gewesen. Naja ok PHP ist auch meine Muttersprache seit vielen vielen Jahren und dazu trägt auch mein eigenes Framework bei was ich für meine PHP-Seiten einsetze.
Aber die Macht von .NET sehe ich mehr im Bereich der Desktop-Applikationen.
gruß
Maurice
Hey community,
ich bin derzeitig dabei eine ASP.NET anwendung zu schreiben und um ehrlich zu sein wünschte ich mir das es leichter wäre. 😉
Mein problem ist das ich eine GridView erstellen will und zwar dynamisch. Ich muss zur laufzeit bestimmen welche Spalten in der GridView angezeigt werden und welche Werte die dazugehörigen Zeilen enthalten.
Leider bekomme ich es nicht hin mir die GridView so aufzubauen und selbst Spalten und Zeilen zu Erstellen wenn das GridView ansich vorher gar nicht existiert bzw. keine Spalten respektive Zeilen enthält.
Hoffe ihr kennt einen guten Artikel dazu oder könnt mir direkt weiterhelfen den ich komme, verzweifelnderweise, nicht weiter.
Habe mich auch schon in der MSDN umgesehen und hier im Forum und leider nichts passendes gefunden.
Meine Behauptung die ich vor einigen jahren mal gemacht habe wurde leider auch heute wieder bestätigt. "Bei ASP.NET wendet man entweder die Dinge so an wie Mickeysoft es will oder man hat nen haufen Arbeit und Probleme an der Backe". grrrr
Desktop-Applikationen sind ja so schön 🙂 ....... viva las php bei web.
greetz mbk_chilli
Moin moin,
ich habe für ein Problem ein Beispiel gefunden womit ich Text besser auf einer zeichenoberfläche ausrichten kann.
// Ascent for Arial font is 728.
float arialAscent = 728;
// Descent for Arial font is -210.
float arialDescent = -210;
// Leading for Arial font is 1088.
float arialLeading = 1088;
Diese Werte sind auf die Schriftart "Arial" beschränkt. Ich benötige jedoch dynamisch die Bestimmung dieser Werte ohne nun alle möglichen Schriftarten in Windows selbst aufzuschreiben.
Nun die Frage ob jemand weiß wie ich an die Werte von den einzelnen Schriftarten komme?
Hoffe jemand kann mir helfen! Bei Fragen, fragen 😉.
gruß
mbk_chilli
Der Code erstellt derzeitig nur ein AcroFormField an einer bestimmten Position und soll bestimmte Eigenschaften setzten.
Das zeichnen mit GDI ist ja bereits fertig nun sollen ja alle Felder hinzukommen, da ich ein zwei brauche sie ausgefüllt werden sollen. Spiele da halt etwas mit rum.
Nur soll die Grafik hinter dem Textfeld auch noch zu sehen sein.
greetz mbk_chilli