Notepad++ Plugins zonder Manager

XMLTools Plugin

Download van: https://sourceforge.net/projects/npp-plugins/files/XML%20Tools/ de juiste versie (start Notepad++ en druk op F1 om te zien of je 32 of 64 versie draait). Kopieer XMLTools.dll naar de map Plugins, je kunt daar een submap aanmaken en daar de dll in kopiëren als je dat wil. De inhoud van de map dependencies moet naar de hoofdmap gekopieerd worden waar notepad++.exe staat. Programma opnieuw opstarten en onder de tab Plugins is nu “XMLTools” te vinden.

Compare Plugin

Download van: https://github.com/pnedev/compare-plugin/releases/tag/v2.0.0 de juiste versie (start Notepad++ en druk op F1 om te zien of je 32 of 64 versie draait). Kopieer de inhoud van de zip letterlijk naar de Notepad++ Plugins map. Dus dll los in de plugins map en het mapje ComparePlugin met content ook in de plugins map. Programma opnieuw opstarten en onder de tab Plugins is nu “Compare” te vinden.

SoapUI en certificaten (root & client)

Als de webservice die je wil testen met SoapUI beveiligd is met SSL dan moet je wat instellingen aanpassen in SoapUI zodat je toegang krijgt tot de service. Zonder de certificaten kreeg ik de error iets met wsdl definities of definitions. Die error bleef zolang ik de certificaten niet goed geregeld had.

Oplossing:

Client certificaat in SoapUI bij settings en dan in de tab SSL en het vinkje over Client certificaten aan.

De server waar de webservice op draait moet ook goed ingeregeld zijn. IIS manager heeft bepaalde plekken die aandacht vereisen. Zelfde geldt voor MMC manager.

Users, rechten van die users, juiste certificaat hashes, SSL verwachten, HTTPS bindings, poorten.

ADO.NET entiteiten en LINQ

Ik heb een ASP.NET MVC project gemaakt als frontend en een ASP.NET WEB API 2 project als backend. Het opstarten van dit project duurde erg lang en alle calls naar de backend zat behoorlijk wat vertraging in. Wat was de reden? Mijn manier van data opvragen deed ik niet goed.

Mijn foute manier was:

var iqueryable = from x in db.Tabelnaam select x;
foreach (var item in iqueryable)
{
    // hier deed ik iets met 'item'
}

Waarom? Omdat blijkbaar de eerste regel gelijk staat aan var iqueryable = db.Tabelnaam; en daarnaast roept de foreach telkens de database aan omdat het iqueryable-object direct aan de database gekoppeld is. Geen wonder dat het zo traag was.

Hoe moet het wel?

De goede manier is:

var iqueryable = (from x in db.Tabelnaam select x).ToList();
foreach (var item in iqueryable)
{
    // hier deed ik iets met 'item'
}

of

var iqueryable = db.Tabelnaam.ToList();
foreach (var item in iqueryable)
{
    // hier deed ik iets met 'item'
}

Nu is het iqueryable-object een lijst met entiteiten en wordt de database maar 1x aangeroepen.

Een SQL Server voor het eerst gebruiken, hoe moeilijk kan het zijn? Right?

Ik ben XAMPP en WAMP gewend als ik een database moest gebruiken in het verleden. Dat ging altijd super makkelijk, nauwelijks problemen gehad met een MySQL database klaarzetten.

Een SQL Server klaarzetten was voor mij een hele andere ervaring. Blijkbaar moet je SQL Server Management Studio installeren. De Server Name die je daar met invullen bestaat nog niet, die moet je aanmaken met SQL Server Installation Center, tab Installation, en dan New SQL Server stand-alone installation or add featurs to an existing installation. Maar als je daar op klikt moet je een locatie opgeven van waar de Media staat.. Na lang zoeken kwam ik bij deze download: https://www.microsoft.com/nl-NL/sql-server/sql-server-downloads Ik heb de Developer versie gedownload, hier kun je met Custom een plek kiezen waar je de Media wil installeren.

Weer terug naar de Installation Center, navigeer naar waar net Media is geïnstalleerd en kies dan het mapje in die folder genaamd “Developer_ENU” en nu kom je in een wizzard om een SQL Server Instantie aan te maken.

Windows Firewall kan een warning geven, gewoon negeren. Nieuwe installatie. Ik heb de Developer editie gekozen. De volgende dingen heb ik aangevinkt: Database Engine Services, Client Tools Connectivity, Client Tools SDK en SQL Client Connectivity SDK. De eerste heb je sowieso nodig. De instantienaam is de naam van de SQL Server instantie die nu aangemaakt zal worden. Dus gebruik de naam die je wil gebruiker voor je databaseserver, dit is niet de naam van een database zelf. Instance ID wordt automatisch gevuld. Server Agent enzo heb ik allemaal gelaten zoals ze stonden. Autenticatie heb ik op mixed gezet, met wachtwoord voor admin PLUS Add Current User.

En dan kun je het allemaal installeren. Hier heb ik twee verschillende errors gekregen:

“VS Shell installation has failed with exit code 1638” met extra info iets over Microsoft Visual C++ 2015 unable to install. Bij mijn programma’s stond geen 2015, wel 2017. Oplossing: deïnstalleer Microsoft Visual C++ 2017 (64 en 86). Weer door de wizzard heen lopen om Server Instantie aan te maken, dit kan goed gaan of de volgende error komt in beeld:

“The system cannot find the path specified”. Dit houdt in dat de Server Instantie al wel is aangemaakt, ook al is deze kapot omdat de installatie faalde. Oplossing: deïnstalleer de SQL Server Instance. Control Panel – Uninstall a program. Microsoft SQL Server 2017 (64-bit) – Uninstall. Kies remove en uiteindelijk kun je de instantie kiezen en die verwijderen. Ga nogmaals door de installatie wizzard en nu zou het moeten lukken.

Start SQL Server Management Studio en log in met de server naam. Dit is niet alleen de naam van de Instantie, maar daarvoor moet nog de computer naam. Dus Server Name: computernaam\instantienaam en dan inloggen.

Als dit niet werkt, check of de server instantie überhaubt bestaat. Ga naar start, mapje SQL Server en kies SQL Server 2017 Configuration Management. Bij SQL Server Services moet een SQL Server (instantienaam) staan. Als die er niet staat, is de instantie niet goed aangemaakt. Staat de server er wel bij, staat de server aan? .. Verder kan ik niet helpen, want inmiddels werkt het allemaal bij mij gelukkig. Maar wat een moeite om een database aan de praat te krijgen.. xD

*edit*

Nog een installatie error tegengekomen tijdens het installeren op mijn laptop:

“Wait on the Database Engine recovery handle failed”. Voor mij was de oplossing zoals hier beschreven staat: https://www.mssqltips.com/sqlservertip/4526/sql-server-install-error-wait-on-the-database-engine-recovery-handle-failed/ Ik heb gezocht naar de user System en die toegevoegd bij Agent en Engine.

 

Spring.Scheduling.Quartz JobType error

Ik volgde de tutorial van: http://logcorner.com/using-spring-net-and-quartz-net-job-scheduler/ en kreeg het niet aan werkend. Ik kreeg de error: “Cannot convert property value of type [System.String] to required type [System.Type] for property ‘JobType’.,”. Het probleem lag blijkbaar ergens anders.

De volgende regel gaf het probleem:

<property name=”JobType” value=”spring_quartz.ExampleJob, spring_quartz” />

Oplossing:

<property name=”JobType” value=”spring_quartz.ExampleJob, spring-quartz” />

Ik wist niet dat de value bestond uit namespace.class, assemblyname. Ik dacht dat het namespace.class, namespace was. Ik heb hier helaas 5 uur aan gespendeerd maar wel weer wat geleerd.

Ik ben tot de oplossing gekomen dankzij https://stackoverflow.com/questions/8689750/spring-net-error-propertyaccessexceptions-spring-core-typemismatchexception-c het antwoord van Marijn.

Daarnaast heb ik geleerd dat het spring-objects.xml bestand moet in de properties Copy to Output Directory – Copy always zijn, anders wordt het bestand niet gelezen als config file.